ネットワーク管理者の憂鬱な日常

とある組織でネットワーク管理に携わる管理者の憂鬱な日常を書いてみたりするブログ

VM instance handling for Linux KVM(1)

これまでいじってきたLinux KVM+libvirt+Sheepdogな環境下で,VM instanceの扱いをまとめてみる.
今回は特に仮想ディスクイメージ(VDI)に関することを扱う.
# Sheepdog上でのsnapshot関連は(今回は)やってないけどw

とりあえず,Sheepdog上のVDIをローカルストレージへコンバートするにはこんな感じ.


コンバートされた仮想ディスクイメージの詳細を知るにはこんな感じ.

とりあえず,VDIのファイルフォーマット(今回はraw image)とか,仮想ディスクサイズがわかる.

で,今回コンバートした仮想ディスクイメージをbzip2gzipで圧縮してみた.

ま,内部はスパースなので,こんなもんでしょう.
VDIのバックアップはこんな感じで維持しとけば,とりあえず十分かもw

で,ローカルストレージ上の仮想ディスクイメージのパーティション構成を調べるために,fdiskに食わせてみた.

MBR(Master Boot Record)じゃなく,GPT(GUID Partition Table)でパーティション管理してるから,fdiskでは扱えないw

ってことで,とりあえずparted使って仮想ディスクイメージのパーティション見てみると,こんな感じ.


ま,でも,オペレーションミスでラベル消したりすると泣くに泣けないw
GPTを扱える別ツール探してると,gdiskなるものがあるらしい.

ということで,sudo apt-get install gdiskでインストールw
これらのパッケージが導入された.


早速gdiskで仮想イメージディスクを見てみるw


仮想ディスクイメージにおけるパーティションの開始セクタが分かったので,マウントしてみるw


今回は,仮想ディスクイメージのPartition#2をゲストOS(FreeBSD 9.0)のrootパーティションにしたので,
Partition#2の開始セクタ(162)×512bytes = 82944bytesがマウント時のオフセットになる.
# ゲストOSのパーティションを分割した場合は,当然それぞれにオフセット計算してマウントする.
# どのレイヤで分割するかによるけどw

ファイルシステムはUFS2なので,-t ufsufstype=ufs2を指定している.

あと,安全のためRead Only(-r)をつけてる.
マウントしたファイルシステムの内容を書き換えたい場合は,当然,-r オプションを外せばよい.

で,ゆるい確認で(マウントしたFreeBSD rootパーティション内の)/etc/motdを表示させて見たw


とりあえずこんだけ出来れば,仮想ディスクイメージに対する最低限の取り扱いは可能でしょう.

スポンサーリンク