かぴぶろぐ

またかぴったかと思った・・・(´A`;)

Repcachedでmemcachedをレプリケーション

カテゴリ[ Linux Unix ]

前回memcachedのアプリサイドでのバランシングを行ったが、
前回のやり方だと、どちから片方にしかデータが存在しない形となる。

両方のnodeに同期するには、Repcachedを使用すると良い。


あらかじめ必要になるものを入れておく

yum install libevent-devel
yum install c++

Repcachedの取得先はこちら

Repcached - KLablabWiki

前提条件

node1、node2のサーバを用意し、同期する。

node1サーバの作業

上記からダウンロードしてmake install

# wget http://downloads.sourceforge.net/repcached/memcached-1.2.8-repcached-2.2.tar.gz
# tar zxf memcached-1.2.8-repcached-2.2.tar.gz
# memcached-1.2.8-repcached-2.2
# ./configure --enable-replication --prefix=/opt/softwares/memcached-1.2.8-repcached-2.2

--enable-replicationはレプリケーションするには必須のオプション。

起動

# cd /opt/softwares/memcached-1.2.8-repcached-2.2
# ./memcached -v -x node2 -u root

node2サーバの作業

node1サーバと同じようにRepcachedをインストールする。

起動

# cd /opt/softwares/memcached-1.2.8-repcached-2.2
# ./memcached -v -x node1 -u root

起動はnode1を指定する。
これで同期完了。

接続テスト

テストはtelnetでもかまわないがsocatというツールを使うと便利。

# yum list |grep socat
socat.i386                               1.7.1.2-1.el5.rf       installed

yumでさっくり入れといた。

localhostに接続してみる

# socat READLINE tcp:localhost:11211,crlf

接続ポートはRepcachedの標準11212ではなく、memcachedの標準、11211を使う点に注意。

後はset getなど試してみて、もう一方のnodeでも確認。

ちなみに、Repcachedのレプリケーションは2台まで、という制限があり、冗長化をどうしようかと悩んだが、
よく考えてみれば、このnode充てに同期させれば、3台、4台といけるんだよね。

node3の場合

# ./memcached -v -x node3 -u root

試しに3台目でテストしたが、うまく同期できた。すごい!
但し、このやり方は本家のRepcached - KLablabWikiさんの記事では見られなかったので(ざっと見た感じだが)
推奨されているやり方かどうかは分からないけど。自己責任で。

参考URL

 

http://kapi.jp/kapi_blog/268

2010年04月15日

関連カテゴリ Linux Unix

この記事のコメント

この記事にコメントする