web-dev-qa-db-ja.com

実行時にLibvirtでVirtioブロックデバイスを追加するKVM

同じオペレーティングシステムを実行するKVMベースのゲストシステムでDebianWheezy Beta4を実行しています。仮想化を管理するためにLibVirtを使用しています。

私がやりたいのは、Virtioを介して実行中のゲストシステムにLVMベースのブロックデバイスを接続することです。 virsh edit [MACHINE]を使用して構成すると、次のようになります。

<disk type='block' device='disk'>
  <driver name='qemu' type='raw' cache='none' io='native'/>
  <source dev='/dev/volume_group/logical_volume'/>
  <target dev='vdb' bus='virtio'/>
</disk>

virsh attach-diskでこれを行う方法を見つけようとしました。これまでのところ、私は次のことを考えました。

virsh attach-disk guest /dev/volume_group/logical_volume vdb --driver qemu --type raw --cache none --persistent

ターゲットのbusフィールドとドライバーのioフィールドを指定するにはどうすればよいですか?これらのオプションは、XMLで指定されているとおりにする必要があります。

2
aef

オプションを指定するコマンドラインの方法は非常に限られていると思います。 attach-device action を使用して、XMLファイルでディスク構成を指定してみてください。

virsh # attach-device [MACHINE] /tmp/new-disk.xml

editを使用して追加する5行を含むnew-disk.xmlファイルを使用します。

--persistentを追加して、マシンのXML定義を更新してもらいます。

更新

デバイスを追加する前に、ホットプラグカーネルモジュールがゲストにロードされていることを確認してください。

modprobe acpiphp
modprobe pci_hotplug

次に、カーネルがdmesgに次のようなデバッグメッセージをスローするのを確認する必要があります。

[  321.946440] virtio-pci 0000:00:06.0: using default PCI settings
[...]
[  321.952782]  vdb: vdb1 vdb2
1
gertvdijk