USBインターフェースを持つ外部物理デバイスの場合、USBパススルー機能を使用して、VMware WorkstationまたはESXiサーバーで実行されているVMに接続できます。このブログ投稿では、ESXiホスト上のVMware vSphereでこの機能を使用する方法、必要な要件、およびUSBデバイスを接続する手順について説明します。
USBパススルーとは何ですか?
VMware USBデバイスのパススルーは、物理ESXiサーバーのUSBポートに接続された物理USBデバイスを、まるでUSBデバイスが直接仮想マシンに接続されているかのように、仮想マシンに接続できる機能です。VMwareパススルーは、ESXi 4.1から利用可能な機能です。
ESXiサーバーから仮想マシンのゲストオペレーティングシステム(OS)にUSBデバイスをパススルーする理由はさまざまです。たとえば、最新のWindows OSバージョン用のドライバーがない古いスキャナーやプリンターがある場合、USBデバイスがサポートする古いWindowsバージョンをインストールし、このデバイスを仮想マシンに接続できます。この機能の別の使用例は、USBハードディスクドライブから仮想マシンへのファイルのコピー、およびその逆の高速での直接転送が必要な場合です。ユーザーが仮想マシンでハードウェアUSBライセンスキーによって保護されたソフトウェアを使用する必要があることがあります。
USBパススルーの動作方法
USBパススルーの動作には、アービトレータ、USBコントローラ、物理的なUSBデバイスの3つの主要なコンポーネントが必要です。
アービトレータはESXiサーバー上の専用サービスです。アービトレータは物理サーバーに接続された物理的なUSBデバイスをスキャンし、物理ホストと仮想マシンの間でのUSBデバイストラフィックのルーティングを担当します。一度に1つのVMだけがUSBデバイスにアクセスできます。1つのVMに接続されたUSBデバイスへのアクセスは、他のVMにはブロックされます。USBアービトレータは最大15のUSBコントローラ(vSphere 7.0)をサポートします。アービトレータサービスはESXiでデフォルトで有効になっています。
A USB controller used on a physical ESXi server is the controller to which physical USB ports are connected. The physical USB controller works with physical USB devices inserted into the physical USB ports of the server. USB controllers can be onboard (they are also called integrated and are built-in on a chip in a motherboard) or external (implemented as PCI or PCIe cards that are inserted into the appropriate slots on a motherboard of a server). The onboard USB controller acts as a bridge between a USB bus and a PCIe (or PCI) bus. The onboard USB controller is physically connected by the appropriate number of PCIe lanes to a chipset on a motherboard.
A virtual USB controller is an emulated device created especially for a virtual machine running on a hypervisor. A virtual USB controller interacts with a physical USB controller when you passthrough a physical USB device from a physical ESXi server to a guest OS on the VM. Presence of a virtual USB controller in VM configuration is required to use the USB passthrough feature on the VM. A maximum of eight virtual USB controllers can be connected to a VM on an ESXi host. If you need to remove a virtual USB controller from a VM configuration, you have to remove all USB devices connected to that controller first. VMware USB driver is installed in a guest OS after adding a virtual USB controller to VM configuration.
A physical USB device is any USB device that has a USB interface and USB port for being connected to a computer. Maximum 20 USB devices can be connected to a single VM or ESXi host.
USB規格とコントローラモードは次のとおりです:
- USB 2.0およびUSB 1.1(EHCI+UHCI)
- USB 3.0(xHCI)VMハードウェアバージョン8以上
VMware USBパススルー機能を使用して物理USBデバイスを仮想マシンに接続した後、ゲストオペレーティングシステムに接続されたUSBデバイスのドライバーをインストールする必要があります。
USB 3.0の要件
USB 3.0は、VMware vSphere 5.5パッチ3からESXiサーバーで利用可能です。これにはVM構成でxHCI USBコントローラーが必要です。USB 3.0パススルーを使用するためのOS要件は、Windows 8.1以上、Windows Server 2012 R2以上、またはLinuxカーネル2.6.35以上が必要です。USB 3.1デバイスは、VMware vSphere 7.0以降でその最大速度でサポートされています。
USBパススルーの制限
USBパススルー機能を使用し始める前に知っておくべきいくつかの制限があります:
- A USB drive cannot be used as a boot drive for a VM.
- USBドライブがESXiを起動するために使用されている場合、このUSBドライブをVMにアタッチできません。
- VMには、仮想ハードウェアバージョン7以上が必要です。
一部のUSBデバイスは、VMwareでサポートされない場合があります:
- USBハブ
- 非同期データ転送を使用するオーディオデバイスおよびビデオカメラ
- 一部のUSBキーボードおよびマウス(詳細はVMware 1021345記事で確認できます)
- VMへの接続に追加の調整が必要な一部のCCIDを使用するスマートカード
vMotionは、USBパススルーデバイスを接続したVMに対して可能です。適切なVM構成とvMotionの有効化後、USBデバイスは別のESXiホストに移行してもVMに接続されたままです。
USBパススルーディスクを使用するVMのvMotionには制限があります:
- 分散電源管理(DPM)はサポートされていません。ESXiホストはUSBデバイスがVMから切断されない限り、電源節約のためにシャットダウンされることができません(DPMによってホストが電源オフにされるとUSBデバイスが切断されます)。このホストでDPMを無効にする必要があります。
- 冗長性はサポートされていません。
- A VM cannot be suspended or powered off (otherwise USB devices are disconnected from a VM and they can be reconnected only after migration of the VM to the initial ESXi server to which USB devices are physically connected). The VM must be manually migrated to the ESXi host with the attached USB device when you need to power on this VM. Linux guests that were resumed can mount USB devices to different mount points after reconnection.
- USBパススルー デバイスを持つVMがあるESXiホストは、VMカーネル インターフェイスvmk0(管理ネットワーク用)およびTCPポート902を介してアクセスできる必要があります。
ホットアド機能を使用してCPU、メモリ、またはPCIデバイスを追加する前に、VMからUSBデバイスを切断してください。そうしないと、USBデバイスが自動的に切断され、ホットアド機能を使用すると一部のデータが失われる場合があります。VMを一時停止してから再開すると、USBデバイスが切断され、その後再びVMに接続されます。
ESXiまたはVMware Workstationで実行されている仮想マシンにアタッチするためのVMware仮想USBドライブまたは仮想フラッシュドライブを作成する方法は、現在のところ可能ではありません。
USBデバイスをVMに接続する方法
理論に慣れたので、実践的な部分に移り、VMware vSphereでの構成を見てみましょう。
- USBデバイスをESXiサーバーのUSBポートに挿入します。私の場合、USBフラッシュドライブを挿入します。
- その後、ESXiのコマンドライン インターフェイスでUSBデバイスが接続されているかどうかを確認できます:
lsusb - 以下のスクリーンショットで示されているように、私のフラッシュドライブは現在ESXiサーバーに接続されています。
- USBアービトレーターサービスが実行されている必要があります。次のコマンドでサービスの状態を確認できます:
chkconfig usbarbitrator –list - USBアービトレーターが停止している場合は、次のコマンドでUSBアービトレーターを起動できます:
/etc/init.d/usbarbitrator start注意: ESXiCLIについては、ブログ投稿で詳細を確認してください。
VMは、私の例では
ホストとクラスターに移動します。ナビゲータペインで、パススルー機能を使用してUSBデバイスに接続したい仮想マシンを選択します。VMは電源がオフの状態である必要があります。ゲストOSにはVMware Toolsをインストールする必要があります。 - VMを選択したら、アクション > 設定の編集をクリックします。
- 設定の編集ウィンドウで、VMの構成にUSBコントローラが存在するかどうかを確認します。USBコントローラが欠落している場合は、新しいデバイスの追加 > USBコントローラをクリックし、USBコントローラの種類(USB 2.0またはUSB 3.0)を選択します。
- USBコントローラーが存在する場合、ESXiサーバーに接続されたUSBデバイスをVMに追加する必要があります。「新しいデバイスを追加」>「ホストUSBデバイス」
- A new string is added to the VM configuration. In the New USB Host device string, select one USB device that you want to connect to the VM. Now I have two USB flash drives attached to my physical ESXi server, and I’m connecting the Verbatim Flash drive to my VM (Verbatim product 0x0302).
vMotionサポートを有効にする必要がある場合、「新しいホストUSB」デバイスを展開し、「デバイスが接続されている間はvMotionをサポート」チェックボックスを選択してください。vMotionの要件と制限を考慮してください。OKを押して設定を保存し、このウィンドウを閉じます。
- 仮想マシンを起動します。ゲストOSが読み込まれた後、USBフラッシュドライブが初期化され、インストールされるのを待ちます。その後、Windowsデバイスマネージャーを開きます。「マイコンピューター」を右クリックし、コンテキストメニューで「管理」をクリックします。「コンピューター管理」ウィンドウで、「デバイスマネージャー」をクリックし、「ディスクドライブ」セクションを展開します(USBフラッシュドライブを接続したため、このデバイスカテゴリーにこのデバイスが表示されるはずです)。私のVMに接続されたVMware USB Passthrough機能を使用してUSBフラッシュドライブとして名前が「Verbatim USB device」になっているデバイスを確認できます。
- コンピューター管理ウィンドウでディスク管理を開き、USBフラッシュドライブにディスクドライブが割り当てられていることを確認します。私の場合、すべて正しいので、USBフラッシュドライブからゲストWindowsの仮想ディスクへデータをコピーしたり、その逆を行ったりできます。
VMware PCIパススルー
VMwareのUSBパススルー機能を使用してVMに接続したいUSBデバイスがVMwareによってサポートされていない場合、PCIパススルー機能を使用してPCIインターフェースを持つ物理USBコントローラ全体をVMに接続してみることができます。
ESXiサーバーにPCIスロットに挿入されたUSBコントローラがある場合、このPCIデバイスを仮想マシンにパススルーできます。VMware PCIパススルーはVMDirectPassとも呼ばれます。この方法はUSBパススルーよりも便利ではありませんが、作業を完了させるのに役立ちます。
要件
サーバーハードウェアがIntel Directed I/OまたはAMD I/O Virtualization Technology(AMD IOMMU)をサポートし、UEFI/BIOSで有効にされている必要があります。サーバーに1つのUSBコントローラしかない場合は、物理的なESXiサーバーで使用されているUSBデバイスへの接続を失わないように、追加のUSBコントローラを接続する必要があります。
制限と制約:
- A VM cannot be suspended.
- A VM cannot be migrated to other ESXi hosts with vMotion.
- VMスナップショットはサポートされていません。
USBデバイスをVMに接続するためのワークフローを見てみましょう。PCIパススルーを使用して、USBデバイスが接続されているUSBコントローラ全体をVMに接続します。
- 複数のUSBコントローラがサーバにインストールされている場合、USBデバイスとUSBコントローラを特定するために、次のコマンドを使用します:
lsusb -v | grep -e Bus -e iSerial - USBデバイスがUSBコントローラに接続されている名前の文字列を見つけ、コントローラのID(例:bus002)を特定します。
- USBデバイスをESXiサーバに接続する際に、VMkernelログを確認できます:
tail -f /var/log/vmkernel.log | grep -i USB - VMware vSphere Clientを開き、ホストとクラスタに移動します。
- USBデバイスを接続する必要のあるVMが存在するESXiホストを選択します。
- 構成タブに移動し、PCIデバイスをハードウェアセクションで選択します。
- 事前に検出したIDを使用して、PCIデバイスのリストから必要なUSBコントローラを見つけて選択します。
- 選択したコントローラのステータスは、利用可能に変更されます。
- 設定を保存するには、OKをクリックします。
- 変更を有効にするために、ESXiホストを再起動します。
- VMがオフになっていることを確認します。VMの設定に移動し、新しいデバイスの追加>PCIデバイスの追加をクリックします。正しいIDを使用して、ドロップダウンメニューからUSBコントローラを選択します。
- 仮想マシンを電源オンにします。ゲストOSでデバイスを確認します。仮想マシンにWindowsがインストールされている場合は、デバイスマネージャーを開き、コントローラーとストレージデバイスを確認します。
USBスマートカードの接続
適切なCCIDクラスを持つ一部のUSBデバイスは、デフォルトでVMに接続されていない場合があります。エラーメッセージ「この仮想マシンに ‘path:0/1/6/1’ を接続できませんでした。デバイスが見つかりませんでした」が表示されます。ログで、次のメッセージが表示されます:
(vmx-vcpu-0) 使用前にインターフェイス0を要求しませんでした
PCSCDは、スマートカードリーダーを制御するESXiデーモンです。ESXiサーバーがスマートカードを必要とするため、仮想マシンでUSBスマートカードのアクセスが無効になっています。その結果、USBスマートカードのデフォルト構成でのUSBパススルーを使用できません。USBスマートカードのUSBパススルーを有効にするには、ESXiホストの構成を編集する必要があります。
- 仮想マシンを停止します。仮想マシンの設定を開き、VMオプションタブを選択し、構成の編集をクリックします。
- 設定パラメータウィンドウで、構成パラメータの追加をクリックします。
代替手段として、SSHクライアントを使用してESXiコンソールに接続し、仮想マシンのVMX構成ファイルを編集することができます。 - パラメータが存在しない場合は、VM構成にこの行を編集または追加します:
usb.generic.allowCCID = “TRUE” - VM構成を保存します。
- 次のコマンドを使用してESXiコマンドラインでPCSCDサービスを停止します:
sudo /etc/init.d/pcscd stop - PCSCDサービスが実行されていないことを確認してください:
ps | grep pcscd - VMを起動し、デバイスを確認して、USBスマートカードリーダーがVMに接続されていることを確認します。
結論
物理的なESXiサーバーのUSBポートに接続されたさまざまなデバイスを仮想マシンに直接接続し、これらのUSBデバイスを通常の物理コンピューター上で使用するのと同じように、VMのゲストオペレーティングシステムで使用できます。さらに、vMotionを使用して親ESXiホストに接続された外部USBデバイスを使用して、仮想マシンを別のホストに移行することもできます。一部の制限があるものの、VMware USBパススルー機能は、さまざまな状況でより多くの機能と柔軟性を追加します。
VMware VMのバックアップは、VMware vSphereを使用する人にとって重要です。NAKIVO Backup & Replicationをダウンロードして、この汎用データ保護ソリューションを試して、VMware vSphereのVMおよび環境内のその他のデータを保護してください。
Source:
https://www.nakivo.com/blog/how-to-use-usb-devices-with-a-vmware-vsphere-virtual-machine/