ディスクを動的に追加する


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