-
PVEのUSBパススルーとは何ですか? そしてなぜ必要なのか?
-
Proxmox VEでのUSBパススルーの前提条件
-
PVEは内部でUSBの直接割り当てをどう処理しますか?
-
方法 1: Web UI を介して VM に USB デバイスを接続する
-
方法2: デバイスをLXCコンテナに直接割り当てる
-
方法3:PCIe割り当てを使用したフルコントローラーパススルー
-
Proxmox VEにおけるUSBパススルーのベストプラクティス
-
PVE USBパススルーの一般的な問題のトラブルシューティング
-
VinchinでProxmox VMを保護する
-
PVE USBパススルーに関するよくある質問
-
結論
USBのパススルー機能は、多数のProxmox VE ユーザーにとって重要な機能です。これにより、ライセンスドングルやスマートカードリーダーなどの物理的なUSBデバイスを、仮想マシンやコンテナに直接接続したかのように接続することが可能です。しかし、実際には内部でどのような処理が行われているのでしょうか。また、さまざまな環境でこの機能を確実に動作させるにはどうすればよいのでしょうか。
このガイドでは、基本的なデバイスマッピングから高度なコントローラーパストスルーまで、段階的に理解を深めていきます。一般的な課題に対する実用的な解決策も紹介しながら、家庭用ラボ環境から企業向けインフラ管理まで、パストスルー技術を習得することで仮想環境に新たな可能性を開くことができます。
PVEのUSBパススルーとは何ですか? そしてなぜ必要なのか?
USBパススルーの基本的な機能は、VMまたはLXCコンテナがProxmoxホストに接続された物理的なUSBデバイスにアクセスできるようにすることです。これにより、ゲストシステム内のソフトウェアは、ハードウェアキー、ストレージドライブ、Zigbeeスタック、または他の周辺機器を、まるで物理マシン上で動作しているかのように利用することが可能です。
これはどのように動作しますか? VMの場合、Proxmox はQEMU組み込みのサポート機能を使用して、ホストからゲストOSへUSB通信をリダイレクトします。コンテナ(LXC)の場合、cgroupsやネームスペースといったLinuxカーネルの機能を利用して、セキュアにデバイスノードを公開します。
なぜこれが重要なのでしょうか?多くのビジネスアプリケーションは、直接ハードウェアにアクセスする必要があります。例えば:
二要素認証にハードウェアセキュリティキーを使用すること
データ転送のための外部ドライブ接続
セキュアなログインのためのスマートカードリーダーの接続
ジグビーやZ-Waveドングルを介してIoTデバイスを統合
適切なパススルー設定がなされていない場合、これらのデバイスはゲスト内に表示されません。パススルーの動作原理とその制限を理解することで、将来的に困惑することを避けることができます。
Proxmox VEでのUSBパススルーの前提条件
Proxmox VEでUSBパススルーを設定する前に、いくつかの基本的な要件を確認してください:
まず、サーバーのBIOS/UEFIで仮想化機能(Intel VT-dまたはAMD-Vi)が有効になっていることを確認してください。PCIeコントローラーのパススルー(上級用途)については、カーネルのブートパラメーターにintel_iommu=onまたはamd_iommu=onを追加してIOMMUサポートを有効にしてください。
次に、使用しているUSBコントローラーの種類がEHCI(USB 2.0)であるかxHCI(USB 3.x)であるかを確認してください。これは、コントローラー全体を通過させる場合の互換性と安定性に影響を与えるためです。
最後に、Proxmoxの新バージョンでは、udevルールやカーネルの更新により、デバイスの権限管理が以前と異なる可能性があることを念頭に置いてください。本番環境をアップグレードする前には、必ず互換性に関する注意事項を確認してください。
PVEは内部でUSBの直接割り当てをどう処理しますか?
物理的なUSBデバイスをProxmox VEを使用して仮想マシンに割り当てる場合:
1. ホストは、デバイスの固有のベンダーID(idVendor)および製品ID(idProduct)を介してデバイスを検出します。
2. QEMUはVM内でそのデバイスの仮想表現を作成します。
3. ゲストソフトウェアとハードウェア間のすべての通信はこのチャネルを通じて行われ、エミュレーションをバイパスすることで、ネイティブに近い速度を実現します。
LXCコンテナの場合:
1. ホストはbindマウントを使用して特定の/devノードを公開します。
2. Cgroupの権限は、各コンテナ内で表示されるデバイスを制御します。
3. /dev/serial/by-id 配下での永続的なシンボリックリンクにより、デバイスを抜き差ししても安定したパスを維持できます。
この直接的なアプローチは高いパフォーマンスを提供しますが、特に権限や分離境界に関する設定を慎重に行う必要があります。
方法 1: Web UI を介して VM に USB デバイスを接続する
USB デバイスを仮想マシンに接続する最も簡単な方法は、Proxmox の Web インターフェースを使用することです。この方法は、Linux または Windows のゲストを実行しているほとんどのユーザーに適しています。
ホストサーバーの利用可能なポートに、目的のUSBデバイスを接続します。
Web UI でターゲット VM を選択します。
ハードウェアをクリックし、次に追加 > USB デバイスを選択します。
以下のいずれかを選択してください:
USBベンダー/デバイスIDを使用: 特定の固定されたデバイスの場合。
USBポートを使用:特定のポートに接続された任意のデバイスがそのまま使用できるようにする、柔軟な設定向け。
変更を保存して仮想マシンを再起動します。ゲストOS内で
lsusb(Linux)を実行するか、またはデバイスマネージャー(Windows)を確認して、デバイスが正しくパススルーされたことを確認してください。
方法2: デバイスをLXCコンテナに直接割り当てる
物理デバイスをLXCコンテナに割り当てる方法は、より厳格な分離が施されているため若干複雑ですが、依然として実行可能です。
ヒント 1: 永続的なデバイスパスの使用
/dev/serial/by-id 配下の永続的なパスを使用すると、デバイスを抜き差ししても安定したデバイスリンクを維持できます。この方法を使用するには:
ホスト上で以下のコマンドを実行してください:
ls -l /dev/serial/by-id
出力例:lrwxrwxrwx 1 root root 13 Sep 9 10:54 usb-Silicon_Labs_CP210x-if00-port0 -> ../../ttyUSB0
Web UIで対象のコンテナーを選択し、リソースをクリックします。
追加 > デバイスパススルー をクリックし、完全なデバイスパス(例:
/dev/serial/by-id/...)を入力します。変更を保存してコンテナを再起動します。
ヒント2: LXC設定ファイルの手動編集
永続化されたパスが利用できない場合、または権限のより細かい制御が必要な場合は、次のようにします:
コンテナの設定ファイル
/etc/pve/lxc/<CTID>.confを編集し、以下を追加します:lxc.cgroup2.devices.allow: c 188:* rwm lxc.mount.entry: /dev/ttyUSB0 dev/ttyUSB0 none bind,optional,create=file
変更を適用するためにコンテナを再起動します。
パーミッションと再接続イベントの処理
デバイスの抜き差しにより、パーミッションのリセットや/devノードの割り当てが変更される場合があります。これを処理するには、以下の対応を行ってください:
永続的なUDEVルールを作成する:
パーミッションの修正およびシンボリックリンク作成を自動化するためのカスタムUDEVルールを作成してください:再接続イベント後にコンテナの再起動を自動化:
UDEVトリガとスクリプトを組み合わせて、デバイスの再接続イベント後にコンテナを自動的に再起動します:pct restart <CTID>
方法3:PCIe割り当てを使用したフルコントローラーパススルー
最大のパフォーマンスを得るために、個々のデバイスではなく、USBコントローラー全体をパススルーしたい場合があります。これは、外付けSSDなどの高スループットデバイスに特に有効です。
1. IOMMUを有効にする BIOSおよびブートローダーで(intel_iommu=on または amd_iommu=on)。
2. コントローラーのアドレスを以下のコマンドで確認してください:lspci | grep -i usb
3. 必要に応じてVFIOツールを使用してコントローラードライバーをバインドします:
echo "8086:a36d" > /sys/bus/pci/drivers/vfio-pci/new_id
4. Web UIで対象のVMを選択し、ハードウェアをクリックしてから、追加 > PCIデバイスを選択します。
5. 適切なコントローラーのアドレスを選択し、確認します。
重要な警告: リモート管理ツールが利用可能でない限り、キーボード/マウスを扱うルートハブ/コントローラーに割り当てないようにしてください。そうしないと、システムからログアウトできなくなる可能性があります。
Proxmox VEにおけるUSBパススルーのベストプラクティス
ホストとゲストの間で物理デバイスをパススルーする際は、常に最小権限の原則に従い、セキュリティリスクを軽減してください。
必要な以上に広範なアクセスを付与しないでください。必要なベンダー/製品IDのみを渡してください。
異常な活動がないか定期的にログを監視し、特にアップグレードやハードウェア交換後に注意してください。
マルチユーザー環境では、デバイスへのアクセスを制限するために、カスタムUDEVルール/スクリプトを介したグループベースの制限を使用することを検討してください。
PVE USBパススルーの一般的な問題のトラブルシューティング
デバイスが認識されない、または権限が失敗した場合:
USB認識の確認:
lsusbコマンドをホストとゲストの両方で実行して、認識状況を確認してください。権限エラー:
/dev配下のグループ/ユーザー所有権を確認し、必要に応じてchownまたはchmodで修正してください。ホットプラグ障害:
VMでQEMUエージェントを有効にし、LXCのコンテナ再起動を自動化するスクリプトを使用してください。
VinchinでProxmox VMを保護する
USBパススルーなどの高度な機能を含む信頼性の高いPVE環境を構築した後は、安心と事業継続計画のために強固なバックアップ保護が必要になります。
Vinchin Backup & Recovery は、Proxmox VEをはじめVMware、Hyper-V、oVirt、OLVM、RHV、XCP-ng、XenServer、OpenStack、ZStack およびその他の15種類以上の主要プラットフォームをサポートする、企業向け仮想マシンバックアップソリューションです。すべて統一されたプラットフォームから管理が可能です。
主な機能には、ストレージ使用量を最小限に抑えるiンクレメンタルバックアップ技術、組み込みの重複データ削除および圧縮、異種プラットフォーム間でのシームレスなV2V移行、細かい復元機能、柔軟な保持方針を持つスケジュールされた自動バックアップが含まれます。これらはすべて、信頼性や速度を犠牲にすることなく大規模でも効率的に運用できるように設計されています。
直感的なVinchin Webコンソールにより、任意のProxmox VMの保護が簡単になります:
1. バックアップするProxmox VMを選択;

2. バックアップ保存先を選択;

3. バックアップ戦略を構成する;

4. 仕事の提出

世界中で何千もの企業がVinchinを信頼し、さまざまな業界で高い評価を獲得しています。今すぐ60日間の無料トライアルで、すべての機能を体験できます。
PVE USBパススルーに関するよくある質問
Q1: 新しいUSBメモリをホットプラグして、Windows Serverが即座に認識できるようにすることはできますか?
A1: はい—QEMUの設定でホットプラグサポートが有効であり、ゲストツールがインストールされている限り、スティックは再起動することなくすぐに表示されます。
Q2 : シリアルアダプタを接続したにもかかわらず、LXCアプリがファイルを書き込めません。なぜですか?
A2 : /dev 下のグループ所有権やモードビットを確認する;必要に応じて、カスタム udev ルールまたは chmod/chown コマンドでそれらを調整する。
結論
PVEの柔軟なアプローチにより、管理者はシングルユースのドングルから高速コントローラー全体に至るまで、ほぼあらゆる種類の物理的な周辺機器を仮想化されたワークロードに安全かつ効率よく接続することが可能です。Vinchinが提供する信頼性の高いバックアップによって、いかに複雑な状況でも重要なデータを保護し続けます。今日Vinchinを試してみてください。安心感とピークパフォーマンスを同時に手に入れることができます!
共有: