CloudStoreを動かす
前回でコンパイルが済んだので、今回は動作させるまでをメモしておく。基本的に、Deploying KFS の手順に従っている。
想定しているサーバ構成は以下のような感じ。
ノード名 | 役割 |
---|---|
kfs0 | metaserver |
kfs1 | chunkserver |
kfs2 | chunkserver |
kfs3 | chunkserver |
まず、kfs0 から全てのノードに ssh でパスワードなしでアクセスできるように設定しておく。たとえば、kfs0 上で
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
として生成できた ~/.ssh/id_dsa.pub を各ノードに配布し各ノードで
$ cat id_dsa.pub >> ~/.ssh/authorized_keys $ chmod 600 ~/.ssh/authorized_keys
としておく感じ。
次に、設定ファイルを用意する。これは、kfs-0.3 解凍ディレクトリ配下の scripts ディレクトリに作成する。machines.cfg を以下のように作成した。
[metaserver] node: kfs0 clusterkey: kfs-test-cluster rundir: /home/kfs/meta baseport: 20000 loglevel: INFO numservers: 2 [chunkserver_defaults] rundir: /home/kfs/chunk chunkDir: /home/kfs/chunk/bin/kfschunk baseport: 30000 space: 5 G loglevel: INFO
なお、今回は kfs ユーザ、ホームディレクトリ /home/kfs として作業した。これらは、すべてのノードで用意済みである。
また、machines.txt には chunkserver となるホスト名を列挙する。
kfs1 kfs2 kfs3
KFS では WebUI による状況の確認ができるようになっているが、これを使うにはこの段階で
cp machines.txt ../webui/all-machines.txt
のようにして、webui ディレクトリに all-machines.txt を作成しておく。
以上の設定ができれば、kfs-3.0/scripts ディレクトリにて
$ python kfssetup.py -f machines.cfg -m machines.txt -b ~/cloudstore -w ../webui
を実行する。これにより、各サーバに必要なファイルが配布される。
これで開始する準備が整ったので、kfs0:/home/kfs/meta/scripts ディレクトリにて
$ python kfslaunch.py -f machines.cfg -m machines.txt -s
を実行する。これで、chunkserver 上でもサービスが開始される。
起動しているかの確認は、前回のコンパイル・インストールの設定であれば、/home/kfs/cloudstore/bin に kfsping というのがあるので、以下のように実行してやる。
$ ./kfsping -m -s kfs0 -p 20000 Up servers: 3 s=192.168.251.83, p=30000, rack=251, used=0(GB), free=4.17221(GB), util=0%, nblocks=0, lastheard=55 (sec), ncorrupt=0, nchunksToMove=0 s=192.168.251.81, p=30000, rack=251, used=0(GB), free=4.19322(GB), util=0%, nblocks=0, lastheard=55 (sec), ncorrupt=0, nchunksToMove=0 s=192.168.251.82, p=30000, rack=251, used=0(GB), free=4.15773(GB), util=0%, nblocks=0, lastheard=55 (sec), ncorrupt=0, nchunksToMove=0
もしくは、ブラウザから
にアクセスする。
停止は、
python kfslaunch.py -f machines.cfg -m machines.txt -S
とする。(s/S で start/stop はちと間違いやすいような気がする。。。)
とりあえず、動くところまでというとこで、今回はここまで。