仮想ディスクにZFSデバイスファイルを使って性能アップ
これまで2回に渡ってFreeBSD 10で導入されたハイパーバイザbhyveの使い方を紹介してきました。今回は仮想ディスクにZFSデバイスファイルを使うことで仮想ディスクI/
説明が重複するので,
ホスト側のセットアップ
ホスト側でbhyveを使うための設定を行います。システムを再起動しても有効にしておくために設定ファイルにも必要な設定を書き込んでおきます。
図1 ホスト側の準備
# kldload vmm # ifconfig tap0 create # ifconfig tap1 create # sysctl net.link.tap.up_on_open=1 net.link.tap.up_on_open: 0 -> 1 # ifconfig bridge0 create # ifconfig bridge0 addm bge0 addm tap0 addm tap1 up # cat /boot/loader.conf vmm_load="YES" # cat /etc/rc.conf | grep bridge0 cloned_interfaces="bridge0 tap0 tap1" ifconfig_bridge0="addm bge0 addm tap0 addm tap1" # cat /etc/sysctl.conf net.link.tap.up_on_open=1 #
ここではtap0をホストのUFS上のファイルを仮想ディスクとした仮想環境(freebsd-10.2),
ゲスト環境の構築
FreeBSD 10.2-RELEASEのISOインストールイメージファイルを取得します。
図2 インストール用のISOイメージファイルを取得
# fetch ftp://ftp.jp.freebsd.org/pub/FreeBSD/releases/ISO-IMAGES/10.2/FreeBSD-10.2-RELEASE-amd64-disc1.iso.xz FreeBSD-10.2-RELEASE-amd64-disc1.iso.xz 100% of 413 MB 5844 kBps 01m13s # unxz FreeBSD-10.2-RELEASE-amd64-disc1.iso.xz
ホストのUFS上のファイルを仮想ディスクとする場合のインストール方法はこれまでと同じです。
図3 ホストのUFS上のファイルとして仮想ディスクを作成してゲストをインストール
# truncate -s 32G freebsd-10.2.img # sh /usr/share/examples/bhyve/vmrun.sh -c 2 -m 2G -t tap0 -d freebsd-10.2.img -i -I FreeBSD-10.2-RELEASE-amd64-disc1.iso freeb # bhyvectl --destroy --vm=freebsd-10.2 # sh /usr/share/examples/bhyve/vmrun.sh -c 2 -m 2G -t tap0 -d freebsd-10.2.img freebsd-10.2
ホストのZFSデバイスファイルを仮想ディスクとして使う場合には,
図4 ホストのZFSデバイスファイルを仮想ディスクとしてゲストをインストール
# zfs create -V 32G -o volmode=dev z/freebsd-10.2 # bhyve -A -H -P -s 0:0,hostbridge -s 1:0,lpc -s 2:0,virtio-net,tap1 -s 3:0,virtio-blk,/dev/zvol/z/freebsd-10.2 -s 4:0,ahci-cd,./FreeBSD-10.2-RELEASE-amd64-disc1.iso -l com1,stdio -c 2 -m 2G freebsd-10.2-on-zfs # bhyvectl --destroy --vm=freebsd-10.2-on-zfs # bhyve -A -H -P -s 0:0,hostbridge -s 1:0,lpc -s 2:0,virtio-net,tap1 -s 3:0,virtio-blk,/dev/zvol/z/freebsd-10.2 -l com1,stdio -c 2 -m 2G freebsd-10.2-on-zfs
truncate(1)コマンドでファイルを作成するのではなく,