kumofsを一台のサーバーで動かす
hbstudy #10に参加してきたんですが、いいかげんkumofsくらい動かしてみないとなぁということで動かすだけ動かしてみました。
基本的には複数のサーバーで使われることを想定されてるものなので、この構成は、あまり検証には向かないはず。とりあえずどんな感じか触ってみたい人向け。(どんな手順で起動させるのか、とか管理ツールはどんな感じなのか、とか。
setup
kumofsまでのインストールは基本的には、
http://d.hatena.ne.jp/conceal-rs/20100119/1263871161
と同様。違うのはtar ballじゃなくてgit cloneして最新版をとってきたくらい。ruby版のmsgpackは、gem installではなく直接リポジトリをおとしてきて、ruby extconf.rb && make installした。
kumofsをinstallして、起動しようとすると、
kumo-manager: error while loading shared libraries: libmsgpackc.so.2: cannot open shared object file: No such file or directory
といわれてしまうのに少しつまづいたが、
sudo /sbin/ldconfig
しわすれていたのが原因
概要
kumofsのアーキテクチャは、manager, server, gatewayから構成される。managerはserverを監視するので最低2台は必要で、severは1つにつき2ノードにレプリカを用意するので、3ノード必要になるらしい。(1ノードでも動作させることはできるっぽい
とりあえずまとめてみると、必要なサーバーは次のscriptでまとめて起動できる
#!/bin/sh screen -t dummy # manager系はport 1000xで起動する screen -t manager1 kumo-manager -v -l localhost:10001 -p localhost:10002 screen -t manager2 kumo-manager -v -l localhost:10002 -p localhost:10001 # server系はport 1100xで起動する. # replication用のportもあるらしいのでそれもズラしとかないと複数台起動できないっぽい # ということで、そちらは1200xにする # データは、/tmp/kumo$n.tchに保存させる screen -t server1 kumo-server -v -l localhost:11001 -L 12001 -m localhost:10001 -p localhost:10002 -s /tmp/kumo1.tch screen -t server2 kumo-server -v -l localhost:11002 -L 12002 -m localhost:10001 -p localhost:10002 -s /tmp/kumo2.tch screen -t server3 kumo-server -v -l localhost:11003 -L 12003 -m localhost:10001 -p localhost:10002 -s /tmp/kumo3.tch # gatewayはport 1300xで起動させる screen -t gateway1 kumo-gateway -v -t 13001 -m localhost:10001 -p localhost:10002
既に起動しているscreen上で実行する前提で、dummyとやってるのは何故か最初のscreenでとまってしまうため
無事起動できたら、
kumoctl localhost:10001 status
で、server1, server2, server3がattachされていないのを確認して、
kumoctl localhost:10001 attach
で、attachする。
各サーバーの状況は、
kumotop -m localhost:10001
で確認できる。managerのアドレスさえ知っておけばserverの場所は覚えてなくてもよいというのは管理の面では非常に便利
http://d.hatena.ne.jp/conceal-rs/20100119/1263871161
にあったruby scriptでデータをつっこんでみたが、どうも100おきにsleep 1とかしてやらないとgatewayのプロセスが落ちてしまうもよう。
ややinstallはめんどうなのでちゃんとした検証はdebを作るなりして環境を簡単に作れるようにしときたいかも。