vHoge

VMwareのアレコレ備忘録。CLIでがんばるネタ多め。

USB パススルーで仮想マシンに USB メモリを挿してみる

機能としては耳にするが実際に使っている人はあまり聞かない USB パススルーで、仮想マシンに USB メモリを挿してファイルをやりとりできるか試してみる。

試したデバイス

SanDisk SDDDC2-256G-G46 256GB
USB-Type-A/C のデュアルコネクタモデル
Amazon で見当たらなかったので kakaku.com より。
256GB、USB 3.0、Type-A/C デュアルコネクタで3000円とか良い時代や… kakaku.com
こちらに Windows 端末より exFAT でフォーマットをし、適当なファイルとして vCSA のインストーラ ISO イメージファイルをコピっておく。

ESXi に接続

公式ドキュメントは ↓ docs.vmware.com デフォルトでインストールされている USB アービトレータサービスが USB デバイスの接続を検出し、ESXi から USB デバイスへのトラフィックパスを構成する。

[root@hm90:~] /etc/init.d/usbarbitrator status
usbarbitrator is running
[root@hm90:~] ps | grep usbarbitrator
1049574  1049574  vmware-usbarbitrator

チェーン階層数や速度などもろもろ細かい要件や制約はあるが、実験的に USB メモリ1個接続するだけなので、細かいことは気にせずにひとまず装着!
ESXi のイベントを眺めていると USB 構成変更のイベントが出力される。
ESXi shell 上でlsusbを実行すると接続したデバイスが確認できる。

[root@hm90:~] lsusb
Bus 001 Device 001: ID 0e0f:8003 VMware, Inc. Root Hub
Bus 002 Device 001: ID 0e0f:8003 VMware, Inc. Root Hub
Bus 003 Device 001: ID 0e0f:8003 VMware, Inc. Root Hub
Bus 001 Device 002: ID 2109:3431 VIA Labs, Inc. Hub
Bus 003 Device 002: ID 0d8c:0014 C-Media Electronics, Inc. Audio Adapter (Unitek Y-247A)
Bus 003 Device 003: ID 0e8d:0608 MediaTek Inc.
Bus 001 Device 003: ID 0b95:1790 ASIX Electronics Corp. AX88179 Gigabit Ethernet
Bus 002 Device 002: ID 0781:5595 SanDisk Corp. ★コレ

仮想マシンに接続する

仮想マシンに USB を接続する場合、仮想マシンのデバイスに仮想 USB コントローラを作成しておく必要がある。 docs.vmware.com 仮想マシン作成時に Windows 系の OS を選択している場合はデフォルトで仮想 USB コントローラが作成される。
Linux 系など、Windows 以外の OS の場合はデフォルトでは作成されないので個別に作る必要がある。


接続した USB メモリを接続するには新規デバイスを追加よりホストの USB デバイス
新規ホスト USB デバイスが追加されるので、追加する USB デバイスを選択し OK。
仮想マシンのハードウェア情報に追加した USB デバイスが表示される。
これで vSphere Client 側の作業は終わり。

仮想マシンの中から見てみる

仮想マシン内の OS(Windows Server 2016)から見ると E ドライブが追加されている。
中も見えて、さきほどコピった vCSA の ISO ファイルが。
ローカルにコピー。ほぼ Max 速度?
ISO もマウントでき、インストーラも起動。問題なし。

USB デバイスを取り外す

まずは仮想マシン内から。Windows OS で普通に取り外し。
(最近の Windows だとコレで外さなくてもいいらしい?)

OS でアンマウントできたら仮想マシンより取り外し。
仮想マシンの編集からデバイスの削除。

問題なくデバイス削除できたら物理的に取り外しておk。

USB メモリを挿した状態で vMotion しようとする。

当然ながら移動先ホストにデバイスが無いので怒られる。
USB デバイスが接続された状態でも vMotion 自体はサポートされているので移動先ホストにも同じ USB デバイスがあれば vMotion できるはずだが、ストレージ系の USB デバイスはどうなんだろう…

余談

自宅でなら数 GB ぐらいのサイズのファイルを仮想マシン内にもっていくぐらいのユースケースがあるからなーと思ったが
USB メモリへの書き込みが遅杉…
USB HDD/SSD とならまだ速度でるかもだが、ネットワーク転送で十分なような…

使い道がやはり難しい。