VM instance handling for Linux KVM(1)
これまでいじってきたLinux KVM+libvirt+Sheepdogな環境下で,VM instanceの扱いをまとめてみる.
今回は特に仮想ディスクイメージ(VDI)に関することを扱う.
# Sheepdog上でのsnapshot関連は(今回は)やってないけどw
とりあえず,Sheepdog上のVDIをローカルストレージへコンバートするにはこんな感じ.
コンバートされた仮想ディスクイメージの詳細を知るにはこんな感じ.
とりあえず,VDIのファイルフォーマット(今回はraw image)とか,仮想ディスクサイズがわかる.
で,今回コンバートした仮想ディスクイメージをbzip2とgzipで圧縮してみた.
ま,内部はスパースなので,こんなもんでしょう.
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 ufsとufstype=ufs2を指定している.
あと,安全のためRead Only(-r)をつけてる.
マウントしたファイルシステムの内容を書き換えたい場合は,当然,-r オプションを外せばよい.
で,ゆるい確認で(マウントしたFreeBSD rootパーティション内の)/etc/motdを表示させて見たw
とりあえずこんだけ出来れば,仮想ディスクイメージに対する最低限の取り扱いは可能でしょう.
今回は特に仮想ディスクイメージ(VDI)に関することを扱う.
# Sheepdog上でのsnapshot関連は(今回は)やってないけどw
とりあえず,Sheepdog上のVDIをローカルストレージへコンバートするにはこんな感じ.
コンバートされた仮想ディスクイメージの詳細を知るにはこんな感じ.
とりあえず,VDIのファイルフォーマット(今回はraw image)とか,仮想ディスクサイズがわかる.
で,今回コンバートした仮想ディスクイメージをbzip2とgzipで圧縮してみた.
ま,内部はスパースなので,こんなもんでしょう.
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 ufsとufstype=ufs2を指定している.
あと,安全のためRead Only(-r)をつけてる.
マウントしたファイルシステムの内容を書き換えたい場合は,当然,-r オプションを外せばよい.
で,ゆるい確認で(マウントしたFreeBSD rootパーティション内の)/etc/motdを表示させて見たw
とりあえずこんだけ出来れば,仮想ディスクイメージに対する最低限の取り扱いは可能でしょう.