web-dev-qa-db-ja.com

USBドライブをlibvirtに直接マッピングKVM仮想マシン?

既存のドライブ(USBドライブ)をKVM libvirtを使用する仮想マシンにマッピングすることについての情報を探しています。私は http:// libvirt .org/formatstorage.html#StoragePoolTarget 。しかし、既存のデバイスをVM(またはさえ可能です)。

私が読んでいることから、target要素は、ファイルベースのイメージを保存するために、マシン上のフォルダーにpath要素を期待しています。 path/dev/sdc1などのデバイスにすることはできますか? type of raw

9
Andy Shinn

「USBパススルー| Edubuntu wikiの このページ のLibvirt 'セクションを使用します。詳細 ここ および ここ

ゲストの実行中にUSBドライブをホットプラグ/アンプラグする予定がない場合は、次のようなセクションを追加することもできます。

<disk type='block' device='disk'>
  <driver name='qemu' type='raw'/>
  <source dev='/dev/sdb'/>
  <target dev='sdb' bus='scsi'/>
</disk>

vMのxml定義ファイルに追加します。 USBが接続されたときにUSBに割り当てられたものと一致するようにソース開発を変更するだけです。ただし、他のデバイスが追加または削除された場合、USBの開発割り当てが再起動後も存続することは保証できないため、代わりに上記の最初のリンク。

リンクが消えた場合、リンクされたドキュメントの関連するUSB​​パススルーセクションは次のとおりです。

Libvirtの使用

既存のVMを起動しました

virsh start maverick2

uSBドライブに接続されている
lsusbを使用してUSBアドレスを見つけたので、
{{ Bus 002 Device 006: ID 1058:1023 Western Digital Technologies, Inc. }}}

デバイス情報を含むxmlファイルを定義しました:

<hostdev mode='subsystem' type='usb'> <source> <vendor id='0x1058'/> <product id='0x1023'/> </source> </hostdev>
USBドライブをVMに渡しました

Sudo virsh attach-device maverick2 /tmp/a.xml

ただし、これはapparmorを有効にすると機能しません。 apparmorを無効にするか、追加する必要があります

/dev/bus/usb/*/[0-9]* rw,

/etc/apparmor.d/libvirt-qemu(すべてのゲストに物理ホストデバイスへのフルアクセスを提供します)または

/etc/apparmor.d/libvirt/libvirt-<uuid>

これにより、アクセスするゲストは1人だけになります。 (jdstrandに感謝します)。

9
nedm