2013年2月20日水曜日

MoxiでElastiCacheのノードをまとめてみた

スズキです。

以前、TwemproxyでElastiCacheのノードをまとめてみたのですが、
TwemproxyからElastiCacheに分散(同じキーは同じElastiCacheへ)してみる

今回はmoxiでまとめて見ました。
Moxi Server 1.8

インストール

# rpm -Uvh http://packages.couchbase.com/releases/1.8.1/moxi-server_x86_64_1.8.1.rpm

初期起動(/etc/init.d/moxi-server)スクリプトの調整

# diff /etc/init.d/moxi-server /etc/init.d/moxi-server.bak 
30,35c30
< MOXI_CLUSTER_CFG="11211=localhost:11211"
< 
< # Source Config
< if [ -f /etc/sysconfig/${0##*/} ] ; then
<     . /etc/sysconfig/${0##*/}
< fi
---
> MOXI_CLUSTER_CFG=/opt/moxi/etc/moxi-cluster.cfg
37a33,34
> test -f $MOXI_CFG || exit 0
> test -f $MOXI_CLUSTER_CFG || exit 0
45c42
<     daemon "/bin/su -c \"$DAEMON -d -P $PIDFILE -z $MOXI_CLUSTER_CFG\" moxi"
---
>     daemon "/bin/su -c \"$DAEMON -d -P $PIDFILE -Z $MOXI_CFG -z $MOXI_CLUSTER_CFG\" moxi"

対象ノード(ElastiCache)の設定

# cat /etc/sysconfig/moxi-server
MOXI_CLUSTER_CFG="11211=test.xxxxxx.0001.apne1.cache.amazonaws.com:11211,test.xxxxxx.0002.apne1.cache.amazonaws.com:11211"

Moxiの起動

# service moxi-server start
Starting moxi server                                       [  OK  ]

設定内容の確認

# echo stats proxy config | nc localhost 11211
STAT 11211:default:config test.bia10i.0001.apne1.cache.amazonaws.com:11211,test.bia10i.0002.apne1.cache.amazonaws.com:11211
END
確かTwenproxyではIPアドレスでの登録になってしまい、DNS名でエンドポイントが
提供されるElastiCacheでは、相性はよくないかなーと思っていたのですが、Moxiだと
上記の通りDNS名での登録もOKなので、そうなるとMoxiの方がいいかも知れません。
(あまり検証はしていませんが...)

データの登録

# echo -e 'set mykey 0 60 5\r\nhello\r' | nc localhost 11211
STORED

データの取得

# echo -e 'get mykey\r' | nc localhost 11211
VALUE mykey 0 5
hello
END
# echo -e 'get mykey\r' | nc localhost 11211
VALUE mykey 0 5
hello
END
# echo -e 'get mykey\r' | nc localhost 11211
VALUE mykey 0 5
hello
END
# echo -e 'get mykey\r' | nc localhost 11211
VALUE mykey 0 5
hello
END
# echo -e 'get mykey\r' | nc localhost 11211
VALUE mykey 0 5
hello
END
上記より、同じキーなら同じノードから取得していることがわかります。
下記にも「"ketama"ですよ」って書いてありました。
Chapter 4. Moxi with Memcached

When used with standard, classic memcached, Moxi should be
started with different command-line parameters that will make
Moxi use libmemcached (ketama) hashing.

"Auto Discovery"関係で、もう少し、いろいろやってみよう。
--------
http://www.suz-lab.com

0 コメント: