kvmでは /etc/libvirt/qemu 以下にあるゲスト名.xmlで割り当てる領域(disk)を定義するが、その挙動がよく解らないので調べてみた。
1:最初にゲストのインストレーションで指定をすると、必ず指定した領域にさらに領域を作る。例えばvdaに指定したものを、kvmホスト側から単純な方法ではマウント出来ない。CentOS 6.3に挑戦 : 10:ゲストの領域をマウントする場合を参照。例えばインストレーション時にvdaとvdbをそれぞれルートとスワップに指定してインストールすると、それぞれの領域にさらに領域を作り、そこにルートにするext4とswapを作っている。つまり指定された領域をdiskに見立てそこにパティションを作っている感じ。
2:インストールが終わってから/etc/libvirt/qemu/ゲスト名.xmlを修正し、vdcを追加後、virsh define /etc/libvirt/qemu/ゲスト名.xmlで再定義後、起動すると、その中には領域を作らない。
3:それではと、試しにゲストをシャットダウン後、swapに指定したvdbを mkswap /dev/Swap/testSwap(これがvdbに指定した領域)で、直接swap領域に作り直したが、swapとして認識してくれない。
4:仕方なくゲスト.xmlを修正し、vdbの代わりにvdcを指定(vdbはなくなった)し、vdcはvddにして、define後、起動しても認識してくれない。それどころか /devの中を見るとあるのは、vda,vda1(これが領域の中の領域ールートになっている),vdb, vdb1となっておりvddが無い所か、指定の無いvdbがある!!!???
vddが無くなっているので、fstabで指定のある/dev/vddの部分はエラーになる。詰まりvdb等の最後のアルファベッドはxmlの指定に関わらず、aから順番に付く!!
もちろん全体を再起動しても同じ現象!
5:.xmlの指定はswapにする領域の指定はvdbに戻し、ゲストの /etc/fstab の指定を /dev/sdb swap swap defaults 0 0 にしたらOKになった。
今もって何だかよく分からない。どなたか詳しい方是非教えてください。