memcached-1.4.5 + repcached のRPM作成
はじめに
rpmbuildする際、CPUコアがシングルコアだと処理が途中で止まってしまう。
2コア以上の環境でbuildすること。
RPM作成まで
- コンパイル用パッケージインストール
- build用ディレクトリ作成
# cd /usr/src/
# cp -rp redhat redhat.org
# mkdir -p /home/daggun/rpm/{BUILD,SRPMS,SPECS,SOURCES,RPMS}
# chown -R daggun:daggun /home/daggun/rpm
# ln -s /home/daggun/rpm redhat
ここから一般ユーザーでの作業。~
- rpmパッケージの定義ファイルを用意しておく(かなり雑)
- memcachedのソースと、repcachedを適用するためのパッチを取得
$ cd /home/daggun/rpm/SOURCES
$ wget http://memcached.googlecode.com/files/memcached-1.4.5.tar.gz
$ wget http://mdounin.ru/files/repcached-2.3-1.4.5.patch.gz
http://mdounin.ru/
- パッチ適用
$ tar zxvf memcached-1.4.5.tar.gz
$ gunzip repcached-2.3-1.4.5.patch.gz
$ patch -p0 -i repcached-2.3-1.4.5.patch
- configure処理
$ cd /home/daggun/rpm/SOURCES/memcached-1.4.5
$ ./configure --enable-64bit --build=x86_64-unknown-linux --enable-replication
$ cp -p memcached.spec ../../SPECS/
- specfile修正(replication対応)
- tarball準備
$ cd ../
$ mv memcached-1.4.5.tar.gz memcached-1.4.5.tar.gz.org
$ tar zcvf memcached-1.4.5.tar.gz memcached-1.4.5
- rpm作成
$ rpmbuild -ba ../SPECS/memcached.spec
- rpmの確認
memcached設定
以下のサーバ構成で動作確認する。
- サーバ1
- OS:centos5.6
- サーバ名:mem_master
- IPアドレス:192.168.1.20/24
- サーバ2
- OS:centos5.6
- サーバ名:mem_slave
- IPアドレス:192.168.1.21/24
memcached定義ファイル
memcached起動時のパラメータ定義ファイルを作成。
レプリケーションポートはデフォルトの11212とする。
レプリケーション方向は mem_master -> mem_slave を想定する。
- mem_masterパラメータ設定
レプリケーション確認
下記のようにsetした値がレプリケーションされている事を確認する。
- mem_master
- 1. setコマンドで値を投入
- 2. getコマンドで値を取得
- mem_slave
- 3. getコマンドでmaster側で投入したキー値を取得
では確認してみる。
- 1. setコマンドで値を投入
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
set daggun 0 0 5
world
STORED
-
- 2. getコマンドで値を取得
get daggun
VALUE daggun 0 5
world
END
quit
-
- 3. getコマンドでmaster側で投入したキー値を取得