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


9

libvirtを使用して、既存のドライブ(USBドライブ)をKVM仮想マシンにマッピングする方法について検索しています。私はhttp://libvirt.org/formatstorage.html#StoragePoolTargetを調べてきました。しかし、既存のデバイスをVMに公開するために必要なオプション(またはそれが可能かどうか)がよくわかりません。

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

回答:


9

「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に割り当てられたものと一致するようにソースDEVを変更するだけです。ただし、他のデバイスが追加または削除された場合、USBのDEV割り当てが再起動後も存続することは保証できないため、代わりに上記の最初のリンク。

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

Libvirtの使用

既存のVMを起動しました

virsh start maverick2

USBドライブにプラグインを
使用してUSBアドレス見つかったlsusb私を与えました、
{{ 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に感謝します)。


1
ありがとう、そのページはとても役に立ちました。私はそれを機能させました。しかし、ベンダーと製品の代わりに、address要素を使用しました。ベンダーと製品を使用すると、同じUSBドライブを2つマウントできませんでした。最初のものだけを通過します。
Andy Shinn、2012年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.