本ページの記述はIdPv2に対するものです。IdPv3では組み込み機能となっているMemcachedStorageServiceをお使いください。
https://wiki.shibboleth.net/confluence/display/IDP30/StorageConfiguration#StorageConfiguration-MemcachedStorageService
Shibboleth-IdP冗長化環境構築手順書(memcached編)
2011年12月26日
国立情報学研究所
- 目次 -
1. はじめに
1.1. 本章の目的
1.2. 前提条件
1.3. ソフトウェア配布元
2. memcachedの構築
2.1. 必要なパッケージのインストール
2.2. memcachedのインストールと起動
2.3. memcachedの起動確認
3. Shibboleth-IdPとの連携
3.1. Apache Tomcatの停止
3.2. memcachedを利用するためのライブラリを追加します。
3.3. Shibboleth-IdPの設定ファイルの変更
3.4. Apache Tomcatの再実行
4. repcached対応
1. はじめに
1.1. 本章の目的
本書は、キャッシュサーバであるmemcachedのインストールとShibboleth-IdPの冗長化手順書です。
本書にて、memcachedとShibboleth-IdPの連携ができることを目的とします。
1.2. 前提条件
memcachedを使ったShibboleth-IdPの冗長化を構築するにあたり、下記を前提条件とします。
前提条件
- Shibboleth-IdPは、学認の技術ガイドに基づいてインストールされており、認証できる状態であるものとします。
- OSはCentOS(64bit)を前提とします。
- memcachedを構築するサーバは2台とします。
本書は下記のソフトウェアを使用して記述します。
ソフトウェア
バージョン
インストール先
memcached
1.4.10
/usr/local/
Memcached StorageService
Revision 151
-
repcached
?
Shibboleth-IdP
2.3.5
/opt/shibboleth-idp
Apache Tomcat
6.0.35
/usr/java/tomcat
1.3. ソフトウェア配布元
本手順書で参照されている主なソフトウェアおよび配布元は以下の通りです。
- Memcached StorageService
https://wiki.shibboleth.net/confluence/display/SHIB2/Memcached+StorageService - memcached
http://memcached.org/ - repcached
http://repcached.lab.klab.org/
2. memcachedの構築
memcachedを構築する全てのサーバで実施します。
2.1. 必要なパッケージのインストール
memcachedをインストールするために必要なパッケージをインストールします。
# yum install -y wget libevent-devel make gcc gcc-c++
2.2. memcachedのインストールと起動
RHEL 6系など、yumリポジトリからmemcachedパッケージをインストールできる場合はそちらの使用をお勧めします。
ただし、後述のrepcachedを使用する場合はソースからのコンパイルが必要です。
memcachedのソースコードをダウンロードし解凍します。
# cd /usr/local/src # wget http://memcached.googlecode.com/files/memcached-1.4.10.tar.gz # tar zxf memcached-1.4.10.tar.gz # rm memcached-1.4.10.tar.gz ←解凍後、削除します。
コンパイルしインストールします。
# cd /usr/local/src/memcached-1.4.10 # ./configure --build=x86_64-unknown-linux-gnu --enable-64bit # make # make install
memcachedをキャッシュ(-m) = 500MB、最大同時接続数(-c) = 1024で起動します。
root権限で実行している場合は -u root オプションを付けて実行してください。
# memcached -d -m 512 -c 1024
2.3. memcachedの起動確認
telnetにてmemcachedの起動を確認します。
# telnet localhost 11211 ←11211ポートは指定なし起動時の規定値です。
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
stats ←入力しEnterします。
STAT total_items 36
STAT evictions 0
STAT reclaimed 0
END
↑このような文字列が表示されれば起動しています。
3. Shibboleth-IdPとの連携
3.1. Apache Tomcatの停止
Tomcatが起動している場合は停止します。
# /etc/init.d/tomcat stop
3.2. memcachedを利用するためのライブラリを追加します。
# wget --no-check-certificate https://www.aai.dfn.de/fileadmin/tools/unimr-memcached.tar.gz # tar zxf unimr-memcached.tar.gz # cd unimr-memcached # cp unimr-memcached-idp2.3-rev151.jar /usr/java/tomcat/webapps/idp/WEB-INF/lib/ # cp lib/spymemcached-2.7.jar /usr/java/tomcat/webapps/idp/WEB-INF/lib/
3.3. Shibboleth-IdPの設定ファイルの変更
ログイン設定(login.config) を変更します。
# vi /opt/shibboleth-idp/conf/login.config
{}内に一行追加します。
setLdapPrincipal="false"; ←;(セミコロン)は最後の行のみ入力します。
例
edu.vt.middleware.ldap.jaas.LdapLoginModule required
host="ldap://192.168.1.1"
base="o=Test Organization,dc=ac,c=jp"
ssl="false"
userField="uid"
subtreeSearch="true"
setLdapPrincipal="false"; ←;(セミコロン)は最後の行のみ入力します。
};内部保存設定(internal.xml)を変更します。
# vi /opt/shibboleth-idp/conf/internal.xml
85行目をコメントアウトします。
<!--
<bean id="shibboleth.StorageService" cla・・・省略
-->コメントアウトした下に追加します。
<bean id="shibboleth.StorageService"
class="unimr.shib2.UniMrMemcachedStorageService" depends-on="shibboleth.LogbackLogging">
<constructor-arg value="XXX.XXX.XXX.XXX:11211 YYY.YYY.YYY.YYY:11211" />←memcached のIPを指定します。
</bean>※XXX.XXX.XXX.XXX および YYY.YYY.YYY.YYY はmemcached を構築したサーバのIPアドレスです。
ポイント constructor-argのvalueにはスペース区切りでmemcachedのIPとポートを指定する。後で起動したものは前(左)に追加する。上記では2つmemcachedがありXXX.XXX.XXX.XXX が後で起動したmemcachedです。
webの設定を変更しサーブレットフィルターの設定を追加します。
# vi /usr/java/tomcat/webapps/idp/WEB-INF/web.xml
53行目付近に以下を追加します。
<!-- Store the modified session object in the memcached storage service --> <filter> <filter-name>UniMrMemcachedServletFilter</filter-name> <filter-class>unimr.shib2.UniMrMemcachedServletFilter</filter-class> </filter> <filter-mapping> <filter-name>UniMrMemcachedServletFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
3.4. Apache Tomcatの再実行
tomcatの起動(対象は全てのShibboleth-idpサーバ)
# /etc/init.d/tomcat start
4. repcached対応
複数memcached上のデータレプリケーションを行うrepcachedに変更するには以下のページの手順に従ってインストールしてください。
http://repcached.lab.klab.org/
以上。
1 コメント
Takeshi Nishimura
常用するには/etc/init.d/等でmemcachedを自動起動する設定が必要です。