Sheepdog/概要

sheepdogの利用方法

corosyncの設定

sheepdogの設定に入る前にcorosyncの設定を行います.
corosyncはクラスタ環境を構築するために利用するIPアドレスを指定する設定が必要です. /etc/corosync内にcorosync.conf.sampleがあるので,同じディレクトリにcorosync.confをいう名前でコピーします.

$ cd /etc/corosync
$ sudo cp corosync.conf.example corosync.conf

次にcorosync.confを編集します. ここではIPアドレス192.50.109.82をクラスタ環境の構築に利用します.

# 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を使用します. 各ソフトウェアのインストール方法はこちらを参考にしてください.

まずクラスタ環境に使用するディスクスペースの設定を行います.
ここでは,クラスタ環境に提供するディスクをstore_device,store_deviceをマウントしているディレクトリをstore_dirとしています.
store_dirとして提供するディレクトリはxattrをサポートしている必要があります.
そのため,マウントオプションでxattrを有効にしておきます.
例として,ext3でのオプションの指定方法を書いておきます.

$ sudo mount -o remount,user_xattr /store_device

次に,マウントしているディレクトリをクラスタ環境に提供します.

$ sudo collie /store_dir

デフォルトではTCPの7000番ポートが使用されます.ポート番号を変更したい場合は,

$ sudo collie --port 7000 /store_dir

でポート番号の変更が可能です. また-dオプションをつけるとデバックメッセージの表示が可能です.

$ sudo collie --port 7000 /store_dir -d

sheepdogのディレクトリに起動スクリプトも用意されています.

$ cd sheepdog
$ sudo sudo script/start-sheepdog

なお,sheepdog起動時に現在動作しているsheepdogを停止させるスクリプトも同時に動作するため,start-sheepdogの起動はscriptディレクトリの指定から行う必要があります. また,start-sheepdogで起動した場合,/tmp以下にXX.XXXXXX(Xには数字が入ります.)という名前のディレクトリが作成され,そのディレクトリがstore_dirとなります.

start-sheepdogが起動すると各ノードは自律的にクラスタ環境を構築します. どのノードがクラスタ環境を構築しているかは以下のコマンドで確認できます.

$ shepherd info -t dog

ここでは8台でクラスタ環境を構築したとします. この際に,shepherd info -t dogでは,以下のような表示がでるはずです.(IPアドレス,Node idは各環境によって異なります.)

   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

ファイルシステムの構築を行います.
copiesは冗長構成を行う数を指定します.
ここでは,3台のマシンにデータを複製するように指定しています.

$ shepherd mkfs --copies=3

VMイメージの作成

sheepdogで利用するVMイメージはqemu-imgを用いて作成します. インストールのページでgitを用いてダウンロードしたqemu-kvmをインストールしていれば,VMイメージのフォーマットにsheepdogが追加されているはずです.

$ qemu-img create -f sheepdog Alice 20G

VMイメージが正しく作成されたかは,以下のコマンドで確認できます.

$ shepherd info -t vdi
  name        id    size    used  shared    creation time  object id
--------------------------------------------------------------------
  Alice        1   20 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

以下に自動自動のためのスクリプトを書いておきます. debianですと,/etc/rc.localに記述すると良いと思います. 2010年5月3日にこのスクリプトでsheepdogがOS起動時に自動的に起動することを確認しています.(store_dirは適宜書き換えてください)

/usr/sbin/corosync
/bin/rm -rf /store_dir/*
/usr/sbin/collie --port 7000 /store_dir -d

トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS