VMware vSphere 仮想マシンで USB デバイスを使用する方法
ハイパーバイザーの主な機能は、仮想マシンが使用するデバイスをソフトウェアレベルでエミュレートすることです。仮想コントローラ、ディスク、DVD-ROM、ビデオカード、ネットワークカード、入力デバイスなどのデバイスは、仮想マシン内に作成されます。しかし、プリンタ、スキャナ、USBフラッシュドライブ、USBハードドライブ、USBスマートカードリーダー、セキュリティドングル、USBライセンスキーなどを接続したい場合はどうすればよいでしょうか?
USBインターフェースを備えた外部物理デバイスについては、以下で実行されている仮想マシンに接続することができます。 VMware Workstation または ESXiホスト USBパススルー機能を使用することで。このブログ記事では、この機能の活用方法について解説します。 VMware vSphere ESXiホストにおけるUSBデバイスの接続に関する要件と手順について。
USBパススルーとは何ですか?
VMwareのUSBデバイスパススルーは、物理ESXiホストのUSBポートに接続された物理USBデバイスを、あたかもそのUSBデバイスが仮想マシンに直接接続されているかのように、仮想マシンに接続できる機能です。VMwareのパススルー機能は、ESXi 4.1以降で利用可能です。
ESXiホストから仮想マシンのゲストOSへUSBデバイスをパススルーする理由は様々です。 たとえば、最新の Windows オペレーティングシステムのドライバーがない古いスキャナーやプリンターがある場合です。その USB デバイスをサポートする古いバージョンの Windows をインストールし、このデバイスを仮想マシンに接続することができます。この機能のもう 1 つの実用的な用途は、USB ハードドライブと仮想マシンとの間で、高速にファイルを直接コピーする必要がある場合です。また、ユーザーが仮想マシン内で、ハードウェア USB ライセンスキーによって保護されたソフトウェアを使用する必要がある場合もあります。
USBパススルーの仕組み
USBパススルーを機能させるには、主に3つの構成要素が必要です。それは、アービトレータ、USBコントローラ、そして物理的なUSBデバイスです。
The arbitrator これは、ESXi サーバー上の専用サービスです。アービトレータは、物理サーバーに接続された物理 USB デバイスをスキャンし、物理ホストと仮想マシン間の USB デバイストラフィックのルーティングを担当します。USB デバイスに同時にアクセスできる仮想マシンは 1 台のみです。 仮想マシンに接続されたUSBデバイスへのアクセスは、他の仮想マシンからはブロックされます。USBアービトレータは最大15個のUSBコントローラをサポートします(vSphere 7.0)。アービトレータサービスは、ESXiではデフォルトで有効になっています。
A USB controller 物理ESXiサーバーで使用されるのは、物理USBポートが接続されているコントローラーです。物理USBコントローラーは、サーバーの物理USBポートに挿入された物理USBデバイスと連携して動作します。USBコントローラーには、オンボード型(マザーボード上のチップに統合・内蔵されているもの)と、外部型(サーバーのマザーボード上の対応するスロットに挿入されるPCIまたはPCIeカードとして実装されているもの)があります。 オンボードUSBコントローラは、USBバスとPCIe(またはPCI)バスの間のブリッジとして機能します。オンボードUSBコントローラは、適切な数のPCIeレーンを介してマザーボードのチップセットに物理的に接続されています。
A virtual USB controller これは、ハイパーバイザー上で動作する仮想マシン専用に作成されたエミュレートされたデバイスです。物理的なUSBデバイスが物理ESXiホストから仮想マシン内のゲストOSに渡される際、仮想USBコントローラは物理USBコントローラと連携します。仮想マシンでUSBパススルー機能を使用するには、VM構成に仮想USBコントローラが存在している必要があります。 ESXiホスト上の仮想マシンには、最大8つの仮想USBコントローラを接続できます。仮想マシンの構成から仮想USBコントローラを削除する必要がある場合は、まずそのコントローラに接続されているすべてのUSBデバイスを取り外す必要があります。仮想USBコントローラが仮想マシンの構成に追加されると、VMware USBドライバがゲストOSにインストールされます。
A physical USB device USBインターフェースと、コンピュータに接続するためのUSBポートを備えたあらゆるUSBデバイスです。1台の仮想マシンまたはESXiホストには、最大20台のUSBデバイスを接続できます。
USBの規格およびコントローラモードは以下の通りです:
- USB 2.0 および USB 1.1 (
EHCI+UHCI) - USB 3.0 (
xHCI) VMハードウェアバージョン8以降
VMwareのUSBパススルー機能を使用して物理USBデバイスを仮想マシンに接続した後、ゲストOSに接続したUSBデバイスのドライバをインストールする必要がある場合があります。
USB 3.0 の要件
VMware vSphere 5.5 パッチ 3 以降では、ESXi サーバーで USB 3.0 を利用できるようになりました。これには、VM の構成に USB xHCI ドライバーが必要です。USB 3.0 パススルーを使用するための OS 要件は、Windows 8.1 以降、Windows Server 2012 R2 以降、または Linux カーネル 2.6.35 以降の Linux です。 USB 3.1 デバイスは、VMware vSphere 7.0 以降でフルスピードでの動作がサポートされています。
USBパススルーの制限事項
USBパススルー機能の使用を開始する前に、以下の制限事項についてご確認ください:
- USBメモリは、仮想マシンの起動ドライブとして使用することはできません。
- USBメモリを使用して ESXiを起動するこのUSBメモリは、仮想マシンには接続できません。
- 仮想マシンには、仮想ハードウェアバージョン7以降が必要です。
一部のUSBデバイスは、VMwareでサポートされていない場合があります:
- USBハブ
- 非同期データ転送を使用するオーディオ機器およびビデオカメラ
- 一部のUSBキーボードおよびマウス(詳細については、VMwareの記事1021345を参照してください)
- CCIDを使用する一部のスマートカードでは、仮想マシンに接続するために追加の設定が必要になる場合があります。
vMotion USBパススルーデバイスが接続されたVMでは、これが可能です。VMを適切に構成し、vMotionを有効にすると、別のESXiホストへの移行後も、USBデバイスはVMに接続されたままになります。
USBパススルーディスクを使用する仮想マシンには、vMotionに関する制限があります:
- ESXiホストは、仮想マシンからUSBデバイスを切断せずに省電力のために電源をオフにすることはできないため(DPMを使用してホストの電源をオフにするとUSBデバイスが切断される)、分散電源管理(DPM)はサポートされていません。このホストではDPMを無効にする必要があります。
- フォールトトレランスはサポートされていません。
- VMを一時停止またはシャットダウンすることはできません(そうすると、USBデバイスがVMから切断され、USBデバイスが物理的に接続されている元のESXiホストへVMを移行するまで再接続できなくなります)。このVMを起動する必要がある場合は、USBデバイスが接続されたESXiホストへ手動で移行する必要があります。再開されたLinuxゲストは、再接続後にUSBデバイスを別のマウントポイントにマウントできます。
- USBパススルーデバイスを搭載した仮想マシンを実行しているESXiホストには、vmk0仮想マシンカーネルインターフェース(管理用ネットワーク用)およびTCPポート902を介してアクセスできる必要があります。
ホットアド機能を適用してCPU、メモリ、またはPCIデバイスを追加する前に、仮想マシンからUSBデバイスを取り外してください。そうしないと、ホットアド機能の使用時にUSBデバイスが自動的に切断され、データが失われる可能性があります。仮想マシンを一時停止してから再開すると、USBデバイスは一度切断された後、再び仮想マシンに接続されます。
ESXi または VMware Workstation を実行している仮想マシンに接続するための VMware 仮想 USB ドライブや仮想フラッシュドライブの作成については、仮想フロッピーディスクや CD/DVD ディスクをマウントする場合と同様に、現在このオプションはサポートされていません。
仮想マシンにUSBデバイスを接続する方法
理論について理解できたところで、次は実践編に進み、VMware vSphere での設定を確認してみましょう。
- ESXiサーバーのUSBポートにUSBデバイスを接続します。私の場合は、USBフラッシュドライブを接続します。
- その後、ESXiのコマンドラインインターフェースで、USBデバイスがESXiに接続されているかどうかを確認できます:
lsusb - 次のスクリーンショットでご覧いただけるように、私のUSBメモリは現在ESXiサーバーに接続されています。
- USB アービター サービスが実行されている必要があります。次のコマンドでサービスの状態を確認できます:
chkconfig usbarbitrator --list - USBアービターが停止している場合は、次のコマンドで起動できます
/etc/init.d/usbarbitrator start注: ESXiCLIの詳細については、 ブログ記事.
このVMは、によって管理されているESXiホスト上に存在します vCenter Server 私の例では、仮想マシンにWindowsがゲストOSとしてインストールされています。VMware vSphere Clientを開き、[
Hosts and Clusters. ナビゲーターペインで、パススルー機能を使用してUSBデバイスを接続したい仮想マシンを選択します。仮想マシンは電源がオフになっている必要があります。必ず VMware Tools をインストールする ゲストOS上で。 - 仮想マシンを選択したら、[クリック] をクリックします
Actions > Edit settings. - その 設定を編集 ウィンドウで、仮想マシンの設定にUSBコントローラがあるか確認してください。USBコントローラがない場合は、[クリック]
Add New Device > USB Controller、そしてUSBコントローラのタイプ(USB 2.0またはUSB 3.0)を選択します。 - USBコントローラが存在する場合は、ESXiホストに接続されているUSBデバイスを仮想マシンに追加する必要があります。[A]をクリックしてください
dd New Device > Host USB Device.
- 仮想マシンの構成に新しい文字列が追加されます。 新しいUSBホスト "デバイス文字列"で、VMに接続したいUSBデバイスを選択します。現在、物理ESXiサーバーには2つのUSBフラッシュドライブが接続されており、Verbatim製のフラッシュドライブ(Verbatim製品 0x0302)をVMに接続します。vMotionのサポートを有効にする必要がある場合は、 新しいUSBホスト デバイスを選択し、 "デバイスが接続されている間もvMotionをサポートする" チェックボックス。vMotionの要件と制限事項に注意してください。[クリック]
OK設定を保存してこのウィンドウを閉じます。
- 仮想マシンを起動します。ゲストOSが読み込まれたら、初期化が完了するのを待ち、USBフラッシュドライブをマウントします。次に、Windowsの"デバイスマネージャー"を開きます。右クリックして
My Computerそして、コンテキストメニューから、[ ] をクリックしますManage. その コンピュータの管理 ウィンドウで、[クリック]Device Managerそして、Disk drivesセクション(USBフラッシュドライブを接続したため、このデバイスはこのデバイスカテゴリに表示されるはずです)。ここには"Verbatim USBデバイス"と表示されていますが、これはVMwareのUSBパススルー機能を使用してVMに接続した私のUSBメモリの名前です。 - 開く
Disk Management~の中で コンピュータの管理 ウィンドウを開き、USBフラッシュドライブにドライブ文字が割り当てられていることを確認してください。私の環境ではすべて正常に動作しており、USBフラッシュドライブからWindowsゲスト内の仮想ディスクへ、またその逆方向へもデータをコピーできるようになりました。
VMware PCIパススルー
VMwareのUSBパススルー機能を使用して仮想マシンに接続したいUSBデバイスがVMwareでサポートされていない場合、PCIパススルー機能を使用し、PCIインターフェースを備えた物理USBコントローラ全体を仮想マシンに接続することができます。
ESXiサーバーのPCIスロットにUSBコントローラが挿入されている場合、このPCIデバイスを仮想マシンにパススルーすることができます。 VMwareのPCIパススルーは、VMDirectPassとも呼ばれます。この方法はUSBパススルーを使用するよりも利便性は劣りますが、目的を達成するのに役立ちます。
要件
サーバーのハードウェアが Intel Directed I/O または AMD I/O Virtualization Technology (AMD IOMMU) をサポートしており、かつ UEFI/BIOS で有効になっている必要があります。サーバーに USB コントローラが 1 つしかない場合は、物理 ESXi ホストで使用されている USB デバイスとの接続が切断されないよう、追加の USB コントローラを接続する必要があります。
の制限事項:
- 仮想マシンを一時停止することはできません。
- vMotion を使用して、VM を他の ESXi ホストに移行することはできません。
- 仮想マシンのスナップショットはサポートされていません。
ここでは、PCIパススルーを使用してUSBデバイスを仮想マシンに接続する方法と、USBデバイスが接続されたUSBコントローラ全体を仮想マシンに接続する方法について見ていきましょう。
- USBデバイスおよびそのデバイスが接続されているUSBコントローラ(サーバーに複数のUSBコントローラがインストールされている場合)を特定するには、次のコマンドを使用します:
lsusb -v | grep -e Bus -e iSerial - USBコントローラに接続されているUSBデバイスの名前が含まれる文字列を探し、コントローラID(例:bus002)を特定してください。
- ESXiサーバーにUSBデバイスを接続した際、VMkernelログを確認できます:
tail -f /var/log/vmkernel.log | grep -i USB - VMware vSphere Client を開き、次の場所へ移動します
Hosts and Clusters. - 仮想マシンが存在するESXiホスト(USBデバイスを接続する必要があるホスト)を選択してください。
- [ここ](https://example.com)へ移動
Configureタブをクリックして選択PCI Devices~の中でHardwareセクション。 - 先ほど検出したIDを使用して、PCIデバイスの一覧から必要なUSBコントローラを探して選択してください。
- 選択したドライバーの状態は、これで 在庫あり.
- 報道
OK設定を保存するには。 - 変更を反映させるには、ESXiホストを再起動してください。
- 仮想マシンの電源がオフになっていることを確認してください。仮想マシンの設定を開き、[クリック]
Add New Device > PCI device > Add. ドロップダウンメニューから、正しい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 Optionsタブをクリックし、Edit Configuration. - その 設定パラメータ ウィンドウで、クリック
Add Configuration Params.あるいは、SSHクライアントを使用してESXiコンソールに接続し、コマンドラインインターフェースから仮想マシンのVMX設定ファイルを編集することもできます。
- このパラメータが存在しない場合は、仮想マシンの設定にこの行を追加または編集してください:
usb.generic.allowCCID = "TRUE" - 仮想マシンの設定を保存します。
- ESXiのコマンドラインで次のコマンドを実行し、PCSCDサービスを停止します:
sudo /etc/init.d/pcscd stop - PCSCD サービスが実行されていないことを確認してください:
ps | grep pcscd - 仮想マシンの電源を入れ、デバイスを確認して、USBスマートカードリーダーが仮想マシンに接続されていることを確認してください。
結論
物理ESXiホストのUSBポートに接続されたさまざまなデバイスを仮想マシンに直接接続し、通常の物理コンピュータでこれらのUSBデバイスを使用するのと同じように、仮想マシンのゲストOS内で使用することができます。さらに、プライマリESXiホストに接続された外部USBデバイスを使用している仮想マシンを、vMotionを使用して別のホストへ移行することも可能です。いくつかの制限はありますが、VMwareのUSBパススルー機能は、さまざまな状況においてさらなる機能と柔軟性を提供します。
VMware VMのバックアップは、VMware vSphereをご利用の方にとって重要です。ダウンロード NAKIVO Backup & Replication ぜひこの汎用的なデータ保護ソリューションをお試しいただき、環境内のVMware vSphere仮想マシンやその他のデータを保護してください。



