Proxmox サーバー PC に組込み開発環境をまとめたい。
そのために、USB デバイスを手元のノート PC からサーバー PC に共有する方法を3通りほど試した。
① USBIP で Proxmox VE LXC に USB デバイスを共有
② USBIP で Proxmox VE VM に USB デバイスを共有
③ SPICE USB redirect で Proxmox VE VM に USB デバイスを共有
① USBIP で Proxmox VE LXC に USB デバイスを共有
Proxmox VE の LXC に開発環境をまとめる想定でのユースケース。
Client に USB デバイスを挿す
Client から USBIP で USB デバイスを共有する
Proxmox Host から USBIP で USB デバイスにアタッチする
Proxmox Host から Proxmox LXC に USB デバイスを渡す
Proxmox LXC から USB デバイスにアクセスする
② USBIP で Proxmox VE VM に USB デバイスを共有
Proxmox VE の VM に開発環境をまとめる想定でのユースケース。
Client に USB デバイスを挿す
Client から USBIP で USB デバイスを共有する
Proxmox VM から USBIP で USB デバイスにアタッチする
Proxmox VM から USB デバイスにアクセスする
③ SPICE USB redirect で Proxmox VE VM に USB デバイスを共有
Proxmox VE の VM に開発環境をまとめる想定でのユースケース。
Client に USB デバイスを挿す
Client から SPICE で USB デバイスを共有する
Proxmox VM から USB デバイスにアクセスする
どれを採用するか
使い勝手: ③ > ② > ①
③の SPICE USB redirect が最も手順少なく利用ができる。次点で②。①は Proxmox Host から LXC へのデバイス共有設定が若干面倒。
通信速度: ① = ② > ③
通信速度は①②の USBIP が、③の SPICE redirect よりも3倍以上速い。
128MB のデータを Client の USB メモリから、Proxmox VM に USBIP/SPICE 経由でコピーしたところ、USBIP は9.3秒で、SPICE は30.8秒で完了した。(ちなみに scp だと4秒で完了)
使い勝手とパフォーマンスを考慮し、 ②「Proxmox VM に Linux 開発環境を構築し、USBIP 経由で USB デバイスを共有」 を採用することにする。
補足情報
使用した USBIP と USB redirect に関する参考情報はこちら。
USBIP
SPICE USB redirect
セットアップのメモ
https://www.spice-space.org/download.html の "Windows installers" より virt-viewer と UsbDk をインストールする。
Widnows Client に SPICE の viewer である virt-viewer をインストールする
virt-viewer 11.0 には USB redirect にクラッシュするバグがあるため、 virt-viewer 10.0 の bin\libusb-1.0.dll を `C:\Program Files\VirtViewer v11.0-256\bin` にコピーする。
virt-viewer は USB redirect に対応していないため、 UsbDk_1.0.22 をインストールする。