sheepdogの利用方法 †corosyncの設定 †sheepdogの設定に入る前にcorosyncの設定を行います. $ cd /etc/corosync $ sudo cp corosync.conf.example corosync.conf 次にcorosync.confを編集します. ここではIPアドレス192.50.109.182をクラスタ環境の構築に利用します. # Please read the corosync.conf.5 manual page compatibility: whitetank totem { version: 2 secauth: off threads: 0 interface { ringnumber: 0 bindnetaddr: 192.50.109.182 # クラスタ環境の構築に利用するIPアドレス mcastaddr: 226.94.1.1 mcastport: 5405 } } logging { fileline: off to_stderr: yes to_logfile: yes to_syslog: yes logfile: /tmp/corosync.log debug: off timestamp: on logger_subsys { subsys: AMF debug: off } } amf { mode: disabled } sheepdogの設定 †sheepdogの利用にはcorosyncとqemu-kvmを使用します. 各ソフトウェアのインストール方法はこちらを参考にしてください. まずクラスタ環境に使用するディスクスペースの設定を行います. $ sudo mount -o remount,user_xattr /store_device 次に,マウントしているディレクトリをクラスタ環境に提供します.
$ sudo sheep /store_dir デフォルトではTCPの7000番ポートが使用されます.ポート番号を変更したい場合は, $ sudo sheep --port 7000 /store_dir でポート番号の変更が可能です. また-dオプションをつけるとデバックメッセージの表示が可能です. $ sudo sheep --port 7000 /store_dir -d 最新のsheepdogでは、sheep /store_dirで-dのオプションまでつきます. $ cd sheepdog $ sudo sudo script/start-sheepdog なお,sheepdog起動時に現在動作しているsheepdogを停止させるスクリプトも同時に動作するため,start-sheepdogの起動はscriptディレクトリの指定から行う必要があります. また,start-sheepdogで起動した場合,/tmp以下にXX.XXXXXX(Xには数字が入ります.)という名前のディレクトリが作成され,そのディレクトリがstore_dirとなります. start-sheepdogが起動すると各ノードは自律的にクラスタ環境を構築します. どのノードがクラスタ環境を構築しているかは以下のコマンドで確認できます. $ collie node list ここでは8台でクラスタ環境を構築したとします. この際に,collie node listでは,以下のような表示がでるはずです.(IPアドレス,Node idは各環境によって異なります.) $ collie node list Idx Node id (FNV-1a) - Host:Port ------------------------------------------------ * 0 3751ad4d1b9d6dcb - 192.50.109.182:7000 1 492815213580505c - 192.50.109.185:7000 2 d0c7ee6eee054e72 - 192.50.109.187:7000 3 d208d1cfb8fb0451 - 192.50.109.184:7000 4 dfefba81b1c87f1f - 192.50.109.186:7000 5 e48b7ede454ea360 - 192.50.109.189:7000 6 eb7f884fecfa4f35 - 192.50.109.188:7000 7 ed01cd77b045713e - 192.50.109.183:7000 ファイルシステムの構築を行います. $ collie cluster format --copies=3 VMイメージの作成 †sheepdogで利用するVMイメージはqemu-imgを用いて作成します. インストールのページでgitを用いてダウンロードしたqemu-kvmをインストールしていれば,VMイメージのフォーマットにsheepdogが追加されているはずです. $ qemu-img create -f sheepdog Alice 40G VMイメージが正しく作成されたかは,以下のコマンドで確認できます. $ collie vdi list name id size used shared creation time object id -------------------------------------------------------------------- Alice 1 40 GB 0.0 MB 0.0 MB 2010-05-02 13:16 8015d16700000000
また,既に作成した他のフォーマットのVMイメージからsheepdog用のVMイメージに変換することもできます. $ qemu-img convert -f raw -O sheepdog ~/amd64.raw Bob VMの起動 †仮想マシンの起動は以下のコマンドで行います. $ qemu-system-x86_64 --drive format=sheepdog,file=Alice CDドライブから起動する場合には、-cdromのオプションでisoイメージを指定し,-bootオプションでdを指定します. $ qemu-system-x86_64 --drive format=sheepdog,file=Alice -cdrom <iso_file> -bood d VMの情報はcollie vm listで表示することができます. $ collie vm list Name |Vdi size |Allocated| Shared | Status ----------------+---------+---------+---------+------------ Alice | 40 GB| 0.0 MB| 0.0 MB| not running qemu-system-x86_64でVMを起動すると,VNCがlocalhostの5900番ポートで待ち受けます. $ ssh 192.50.109.182 -X サーバにloginします. $ vncviewer localhost:5900 vncviewerが起動すると,PC上に画面が表示されるはずです. また,先程表示したVMの情報も起動しているノードのIPアドレスが表示されます. $ collie vm list Name |Vdi size |Allocated| Shared | Status ----------------+---------+---------+---------+------------ Alice | 40 GB| 0.0 MB| 0.0 MB| running on 192.50.109.182 以下に自動自動のためのスクリプトを書いておきます. debianですと,/etc/rc.localに記述すると良いと思います. 2010年5月3日にこのスクリプトでsheepdogがOS起動時に自動的に起動することを確認しています.(store_dirは適宜書き換えてください) /usr/sbin/corosync /bin/rm -rf /store_dir/* /usr/sbin/sheep /store_dir |