XenServerのSRとしてGlusterFSを利用する

GlusterFSの設定が完了したので、XenServerのSRとして設定する。

各サーバにSR用のBRICK用ディレクトリを作成。
[code]
[gluster1]# mkdir /var/brick/sr-mount
[gluster2]# mkdir /var/brick/sr-mount
[/code]

GlusterFSにSR用のボリュームを設定する。
[code]
# /usr/local/sbin/gluster volume create SR_VOL \
 replica 2 \
 transport tcp \
 gluster1.furelo.jp:/var/brick/sr-mount \
 gluster2.furelo.jp:/var/brick/sr-mount

# /usr/local/sbin/gluster volume start SR_VOL
# /usr/local/sbin/gluster volume info
[/code]

NFSマウントできればOK。
[code]
# mount -t nfs -o mountproto=tcp localhost:/SR_VOL /mnt
# umount /mnt
[/code]

ここで問題なのが、これらのメールによると、XenServerのNFS SR機能は、Portmapperからポート番号を取得せずに2049に決め打ちらしい。
http://gluster.org/pipermail/gluster-users/2010-November/005751.html
http://gluster.org/pipermail/gluster-users/2010-November/005755.html
対応策として2つの方法がある。
1.GlusterNFSのポート番号を2049に固定する。
[code]
# vi /etc/glusterd/nfs/nfs-server.vol
以下のように、option nfs.port の行を追加すればいいらしい。
volume nfs-server
    type nfs/server
    option nfs.port 2049
    option nfs.dynamic-volumes on
    option rpc-auth.addr.BACKUP_VOL.allow *
    option nfs3.BACKUP_VOL.volume-id 44fb814c-f2e7-48b3-bd2b-7533e04c3703
    option rpc-auth.addr.SR_VOL.allow *
    option nfs3.SR_VOL.volume-id a3a74863-60c9-4929-9f0c-dcc1d49791fe
    subvolumes BACKUP_VOL SR_VOL
end-volume
※ただし、Glusterの現在のバージョン(3.1.2)では、CLIで操作したときにこのファイルはデフォルトの内容に上書きされる。デーモンを再起動しても上書きされてしまうようだ。
[/code]
2.ポート転送プログラムを動かす
gluster nfsのポート番号はtcpの38467番ポートになるようなので、tcpの2049番ポートに来たパケットを中継するように設定する。
[code]
# zypper install socat
# rpcinfo -p
   program vers proto   port  service
    100000    4   tcp    111  portmapper
    100000    3   tcp    111  portmapper
    100000    2   tcp    111  portmapper
    100000    4   udp    111  portmapper
    100000    3   udp    111  portmapper
    100000    2   udp    111  portmapper
    100005    3   tcp  38465  mountd
    100005    1   tcp  38466  mountd
    100003    3   tcp  38467  nfs

# socat TCP-LISTEN:2049,reuseaddr,fork TCP:localhost:38467 &
# vi /etc/init.d/after.local
以下の行を追加
socat TCP-LISTEN:2049,reuseaddr,fork TCP:localhost:38467 &
[/code]
XenCeneterからNew Storage -> NFS VHDを選択し、以下のパラメータで登録する。
[code]
Name: GlusterNFS virtual disk storage
Share Name: gluster2.furelo.jp:/SR_VOL
[/code]

※それぞれのサーバでCreate a new SRとする。

カテゴリー: Technology タグ: , パーマリンク

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)