monoの開発ブログ

blktapの仮想デバイスをDom0にマウント

前の記事ではDomUを作ってblktapの動作を確認しましたが、DomUを作らなくてもDom0にマウントしてしまえばよいようなので試してみました。仮想デバイスをいじるだけであれば、DomUのOS部分には用はないのでDom0だけで完結した方が楽ですね。

なお、blktapにはblktapとblktap2の2バージョンが存在するようです。正直どちらを使っているのかわからないという酷い状況なのですが、例のMatrixやディレクトリ名を見た感じだとblktap2なんだろうと思います。

イメージ作成

今回はとりあえずaioを利用します。aioはLinuxのaioを利用してrawイメージを扱う実装です。

テスト用に適当なイメージを作成してフォーマットしておきます。

# dd if=/dev/zero of=/path/to/test.img bs=1 count=1 seek=16M
# mkfs.ext4 -F -q /path/to/test.img

マウント

tap-ctlコマンドでblktapデバイスを作成し、それをmountコマンドでマウントします。

# mkdir /mnt/test
# mount -t ext4 $(tap-ctl create -a aio:/path/to/test.img) /mnt/test

アンマウント

マウント時とは逆にumountしてblktapデバイスを削除すればOKです。

# umount /mnt/test
# tap-ctl list
# tap-ctl destroy -m 0 -p <tap-ctl listで表示されるpid>