CentOS 5(ホストもゲストも)の KVM で、ゲストのディスクを動的に追加した時のメモです。
ゲスト側でカーネルモジュールを追加
ゲスト側でディスクのホットプラグに対応させるために acpiphp というモジュールが必要らしいので追加します。
modprobe acpiphp
ホスト側でディスクを追加する
まず、追加するディスクイメージを作成します。
qemu-img create /var/lib/libvirt/images/test.img 100M
イメージをゲストにアタッチします。
virsh attach-device hogeserver <(cat <<EOS <disk type='file' device='disk'> <driver name='qemu' type='raw' cache='none'/> <source file='/var/lib/libvirt/images/test.img'/> <target dev='vdb' bus='virtio'/> </disk> EOS)
追加できているか確認します。
virsh dumpxml hogeserver
下記のような部分があれば追加できています。
<disk type='file' device='disk'> <driver name='qemu' type='raw' cache='none'/> <source file='/var/lib/libvirt/images/test.img'/> <target dev='vdb' bus='virtio'/> </disk>
ゲスト側で確認
fdisk でアタッチされたディスクが認識できているか確認します。
fdisk -l
下記のように追加されているはずなので、後はパーティションを切るなりフォーマットするなりマウントするなり好きに出来ます。
Disk /dev/vdb: 104 MB, 104857600 bytes 16 heads, 63 sectors/track, 203 cylinders Units = シリンダ数 of 1008 * 512 = 516096 bytes ディスク /dev/vdb は正常な領域テーブルを含んでいません
最後に、追加後は acpiphp は要らないので、アンロードしておきます。
modprobe -r acpiphp