Pages

2011/03/16

libvirt下のVMでSheepdogのdiskを使おう

SheepdogからのVM作成ができたらば、次はvirshやvirt-managerから操作するためにlibvirtで管理できると助かると思う。
 

前提としてこのくらい必要だが、できるようになっている。

  • Sheepdogが動いており、利用可能なボリュームがある

  • libvirtのバージョンは0.8.7 以降(diskのtypeにnetworkが追加)

  • virshがどこかで使える


 


 

VMにアタッチする


参考に使った環境。

# virsh version
Compiled against library: libvir 0.8.8
Using library: libvir 0.8.8
Using API: QEMU 0.8.8
Running hypervisor: QEMU 0.13.50

 

libvirtでsheepdogの定義はType=network, Protocol=sheepdog という扱いになる。
サンプルが意外としれっと公式に載っているので参考にさせてもらった。
 

手数節約のため、virt-manager で適当なVMを作って保存、OSインストール用のISOやNICなども設定しておく。


画像:仮作成のVM

仮のVMができた。
このあとvirshからXMLをEditし、SheepdogのDiskをアタッチします。

virsh # edit test01


<devices> の下にDiskの定義をいれます、VTなしのサーバで動かす例。
おなじみのAliceを使用します。

    <disk type='network'>
<driver name="qemu" type="raw" io="threads"/>
<source protocol="sheepdog" name="Alice">
<host name="127.0.0.1" port="7000"/>
</source>
<target dev="hda" bus="ide"/>
</disk>


これで準備は完了。
 

追記:virtio の場合はこう
    <disk type='network'>
<driver name="qemu" type="raw" io="threads"/>
<source protocol="sheepdog" name="Alice">
<host name="127.0.0.1" port="7000"/>
</source>
<target dev="vda" bus="virtio"/>
</disk>

 


使ってみる


XMLの編集が完了したらvirt-managerから再度確認。

画像:Sheepdogアタッチ

virt-manager でもDiskがあることを認識しています、その他の情報が取れませんけど。。


起動してみると、このように動作しますね。

画像:Sheepdogへインストール

なんでSCSIなんだろうとは思いつつ。
 

あとはSheepdogの頭数さえ揃えれば、libvirtとKVMで十分な基盤ができますね。
 
 


余談:libvirt0.8.8のエラー


libvirt0.8.8とUbuntu10.10 の組み合わせだと、libvirt経由でのVM起動時に
libvir: Security Labeling error : internal error error calling aa_change_profile()

こんなエラーが出て起動しません
 

AppArmor関連のエラーのようなので外してからmakeして回避した。

./configure --without-apparmor --prefix=/usr

0 件のコメント:

コメントを投稿