ovmzfs
Xen ベースの OracleVM の共有ストレージとして ZFS を使うための ovmzfs というツールが公開されています.
コレがどのように ZFS を使っているのか,理解 (OracleVM, ZFS 両方のね ^^;) が足りないので,実際に動かしてみて調べてみようということで,動かし中.
セットアップ
手順は ovmzfsセットアップ手順 at nkjmkzk.net の通りで,
- opensolaris インストール.とりあえず GUI いらんので OpenSolaris Text-Based Installer を使用しました.
- opensolaris自体がちゃんと動くようになった後,
# pkg install SUNWiscsidm SUNWiscsit SUNWiscsitgt
# svcadm enable iscsitgt - OracleVM Manager インストール.
- OracleVM Server インストール.
- ovmzfs 実行の際,SSL/TLS で Oracle VM Manager にアクセスする場合,証明書の関係で commonName にあるホスト名でアクセスが必要な場合があるので,一応,設定したホスト群の名前を /etc/hosts に設定しておきます.もちろん DNS で名前引けるちゃんとしたホストの場合は不要です.
- OracleVM Manager 上で ovmzfs を実行.実行すると色々聞かれます.以下のような感じ.あとは自動的に色々処理が行われます.
[root@vmmgr ~]# ovmzfs init >>> >>> >>> Initial Configuration >>> >>> >>> Please enter Ip Address of ZFS Server: opensolaris.ten-forward.test Please enter Username of ZFS Server (just Enter to accept default 'root'): karma Please enter Root filesystem of Repository (just Enter to accept default 'rpool/ovmzfs'): Please enter Ip Address of VM Manager: vmmgr.ten-forward.test Please enter Port Number of VM Manager (just Enter to accept default '4443'): Please enter SSL [on/off] of VM Manager (just Enter to accept default 'on'): Please enter admin Password of VM Manager: password Please enter Name of Server Pool: Please enter Name of Server Pool: ServerPool >>> >>> >>> Configuration Confirmation >>> >>> >>> zfs_ip: opensolaris.ten-forward.test zfs_username: karma zfs_root: rpool/ovmzfs vmmanager_ip: vmmgr.ten-forward.test vmmanager_port: 4443 vmmanager_ssl: on vmmanager_password: password server_pool_name: ServerPool OK ? [y/n]: y : (snip) >>> >>> >>> New repository has been created >>> >>> >>> Shared Filesystem for /OVS is exported as opensolaris.ten-forward.test:/rpool/ovmzfs/ServerPool/ovs Please run following command on VM Server. [root@vmserver]# /opt/ovs-agent-2.3/utils/repos.py --new opensolaris.ten-forward.test:/rpool/ovmzfs/ServerPool/ovs (UUID of this filesystem will be displayed) [root@vmserver]# /opt/ovs-agent-2.3/utils/repos.py --root [UUID] And then, please create Server Pool using VM Manager
次は OracleVM Server 上で,上記に指示が出てるように,OracleVM のリポジトリの設定を行います.
# /opt/ovs-agent-2.3/utils/repos.py --new opensolaris.ten-forward.test:/rpool/ovmzfs/ServerPool/ovs [ NEW ] 5354612d-1fda-4f16-a642-e2d31b26191f => opensolaris.ten-forward.test:/rpool/ovmzfs/ServerPool/ovs # /opt/ovs-agent-2.3/utils/repos.py --root 5354612d-1fda-4f16-a642-e2d31b26191f [ R ] 5354612d-1fda-4f16-a642-e2d31b26191f => opensolaris.ten-forward.test:/rpool/ovmzfs/ServerPool/ovs
この後,OracleVM Manger にアクセスして,Server Pool を作成します.上記の例だと "ServerPool" という名前で作成.
opensolaris
opensolaris ホスト上はどんな感じか.概観はこんな感じです.
$ zpool list NAME SIZE ALLOC FREE CAP DEDUP HEALTH ALTROOT rpool 39.8G 3.11G 36.6G 7% 1.00x ONLINE - $ zfs list NAME USED AVAIL REFER MOUNTPOINT : (snip) rpool/ovmzfs 132K 35.6G 22K /rpool/ovmzfs rpool/ovmzfs/ServerPool 110K 35.6G 26K /rpool/ovmzfs/ServerPool rpool/ovmzfs/ServerPool/ovs 21K 35.6G 21K /rpool/ovmzfs/ServerPool/ovs rpool/ovmzfs/ServerPool/shareddisk 21K 35.6G 21K /rpool/ovmzfs/ServerPool/shareddisk rpool/ovmzfs/ServerPool/template 21K 35.6G 21K /rpool/ovmzfs/ServerPool/template rpool/ovmzfs/ServerPool/vm 21K 35.6G 21K /rpool/ovmzfs/ServerPool/vm rpool/swap 544M 36.0G 105M -
OracleVM Server の /OVS 向けに NFS でエクスポートされている領域が一つ.
$ share -F nfs -@rpool/ovmzfs /rpool/ovmzfs/ServerPool/ovs anon=0,sec=sys,rw ""