ホスト間で/ devの下のデバイスを共有できますか?

ホスト間で/ devの下のデバイスを共有できますか?

状況はこんな感じです。/dev/video0仮想マシン内からアクセスしたいVMwareサーバーにビデオデバイスがあります。ただし、何らかの理由でデバイスを仮想マシンに直接接続できないため、ホストマシンに接続する必要があります。

Unixの哲学では、すべてが実際にはファイルにすぎないため、/devNFS、Samba、sshfs、または他のプロトコルを使用して2つのホスト間でデバイスを共有し、1台のサーバー上のLinuxがデバイスにアクセスできるようにすることができます。

ベストアンサー1

いいえ。

NFS またはその他のネットワークファイルシステムからデバイスファイルをエクスポートできます。ただし、デバイスファイルの意味は、そのファイルを開くコンピュータによって異なります。 NFSを介してサーバーシステムからクライアントシステムにエクスポートすると、クライアント/dev/video0システムは「文字デバイス81:0」のみを表示し、それを独自のビデオキャプチャデバイスとして解釈します。クライアントシステムには、サーバーと同じデバイス番号を割り当てる必要もありません。たとえば、OpenBSD クライアントは次のように表示できます。擬似端末ドライバこれは、OpenBSDでchar 81:0を意味するからです。

あなたが求めるのは良いでしょうが、難しいでしょう。クライアントからのすべての要求はサーバーに転送する必要があり、その逆も同様です。個々のドライバーは特定の支援を受ける必要があります。たとえば、一部のドライバはプロセスとカーネル間の共有メモリに依存しており、ネットワーク全体で透過的にサポートするのは困難で費用がかかります。ビデオキャプチャドライバが実際に共有メモリを使用しているかどうかはわかりませんが、大量のデータを非同期的に転送できることを考慮すると、それが予想されます。

Linuxにはいくつかの特定のサポートがあります。ネットワークブロックデバイス。これらはネットワークファイルシステムに依存しません。デバイスファイルはクライアントにのみ存在し、サーバーのデーモンは実際のブロックデバイスをエミュレートします。実際の物理デバイスとタスクを中継できますが、通常はインポートとインポートを読みます。イメージファイルの作成)。

ビデオキャプチャに関連するソリューションを見つける必要があります。物理デバイスが接続されているコンピュータでデータ集約的な部分をできるだけ実行してみてください。または、VM内で物理デバイスへの直接アクセスをサポートするVMソリューションを見つけます(ホスト/ゲストソリューションがそれをサポートしているかどうかはわかりません。ハイパーバイザーベースのソリューションがそれをサポートする可能性が高い)。

おすすめ記事