本ページの記述はIdPv2に対するものです。IdPv3では組み込み機能となっているMemcachedStorageServiceをお使いください。 |
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対応
本書は、キャッシュサーバであるmemcachedのインストールとShibboleth-IdPの冗長化手順書です。
本書にて、memcachedとShibboleth-IdPの連携ができることを目的とします。
memcachedを使ったShibboleth-IdPの冗長化を構築するにあたり、下記を前提条件とします。
前提条件
本書は下記のソフトウェアを使用して記述します。
ソフトウェア | バージョン | インストール先 |
---|---|---|
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 |
本手順書で参照されている主なソフトウェアおよび配布元は以下の通りです。
memcachedを構築する全てのサーバで実施します。
memcachedをインストールするために必要なパッケージをインストールします。
# yum install -y wget libevent-devel make gcc gcc-c++ |
RHEL 6系など、yumリポジトリからmemcachedパッケージをインストールできる場合はそちらの使用をお勧めします。 |
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 |
telnetにてmemcachedの起動を確認します。
# telnet localhost 11211 ←11211ポートは指定なし起動時の規定値です。 |
Tomcatが起動している場合は停止します。
# /etc/init.d/tomcat stop |
# 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/ |
ログイン設定(login.config) を変更します。
# vi /opt/shibboleth-idp/conf/login.config |
内部保存設定(internal.xml)を変更します。
# vi /opt/shibboleth-idp/conf/internal.xml |
85行目をコメントアウトします。
<!-- |
コメントアウトした下に追加します。
<bean id="shibboleth.StorageService" |
※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> |
tomcatの起動(対象は全てのShibboleth-idpサーバ)
# /etc/init.d/tomcat start |
複数memcached上のデータレプリケーションを行うrepcachedに変更するには以下のページの手順に従ってインストールしてください。
http://repcached.lab.klab.org/
以上。