VMware仮想マシンでシリアルポートを使用する方法

VMware 仮想マシン内から、設定、ログ通信、またはデバッグ目的でシリアルポートにアクセスする必要がある場合があります。前提条件を満たしていれば、VMware Workstation Pro では物理・リモートのいずれの新しいシリアルポートも簡単に追加できます。

しかし、後で仮想環境内で使用するためにそれらへアクセスするとなると話は別です。そこで Serial Port Redirectorの出番となります。

この記事では、VMware 仮想マシンにシリアルポートを追加する方法を紹介し、さまざまな接続タイプを説明し、VM 内でそれにアクセスする方法を実演します。

VMware Workstation でシリアルポートを構成する

仮想マシン(VM)にシリアルポート(または COM ポート)を追加すると、VM 環境内でルーターや開発ボードなどのシリアルデバイスとやり取りできるようになります。仮想シリアルポートを接続する方法はいくつもあり、物理ポート、ファイル、名前付きパイプ、ネットワークへの接続などがあります。

仮想マシンには最大 32 個の COM ポートを設定できます。ただし、VM を作成する際に、実際には 1 つも含めないことも選択できます。その方法を選ぶと、ゲストオペレーティングシステム(VM 内で動作する OS)からは利用可能なシリアルポートが存在しないように見えます。

要件

仮想シリアルポートを追加する前に、仮想マシンがすでに電源オフになっていることを確認してください。

ポート構成に関連する適切なメディアタイプと vSPC 接続の詳細を把握していることを確認してください。vSPC(Virtual Serial Port Concentrator)は、シリアルポートをネットワーク経由で仮想マシンからリモートアクセスできるようにするサービスです。続行するには、Virtual machine.Config.Add or remove device(Virtual machine > Configuration > Add or remove device)権限を付与する必要もあります。

特定の接続タイプには固有の前提条件もあります。たとえば、ネットワーク経由でシリアルポートを使用する場合は、次のファイアウォールルールセットが必要です。

  1. vSPC に接続された VM のシリアルポート仮想シリアルポートコンセントレーターを使用”オプションを有効にして、ホストコンピューターからの送信信号のみを容易にします。

2. ネットワーク経由で接続されたVMシリアルポート。これは基本的に最初のルールセットと同じですが、仮想シリアルポート・コンセントレーター(vSPC)を使用しない点が異なります。

それを踏まえて、VMware の仮想シリアルポートを設定する方法を紹介します。

VMware 仮想シリアルポートを追加する

  1. インベントリで、選択した仮想マシンを右クリックし、設定の編集」を選択します。ハードウェア」タブに切り替えて、追加」をクリックします。

2. ドロップダウンメニューを展開し、シリアルポート」を選択します。新しいシリアルポートがデバイスの一覧に表示されます。

3. 「新しいシリアルポート」ドロップダウンメニューを開き、希望する接続タイプ(物理ポート、ファイル、名前付きパイプ、またはネットワーク)を選択します。次に、OK」をクリックして完了します。

新しいシリアルポート

適切な仮想シリアルポート接続タイプの選択

どのようなデータ処理を実現したいかに応じて、仮想シリアルポートに適した接続タイプを選択する必要があります。以下は、使用できる4つの異なる接続方法の簡単な概要です。

  • 物理シリアルポート: これは最も一般的な構成で、VMがモデムなどの物理デバイスとやり取りできるようにします。
  • ホストコンピューター上のファイル: 仮想ポートを通じて送信されたデータは、ホストコンピューター上のファイルに書き込まれます。これにより、VMで実行されている特定のプロセスに関する情報を記録でき、通信のログ取得に便利です。
  • ホスト側の名前付きパイプ: これにより、VMとホストマシン上のアプリケーションまたは別のVMとの間でデータ交換を行うための直接接続が作成されます。2台の別々のマシンをシリアルケーブルで接続するようなものですが、実際には単一のコンピューター上で行われます。リモートデバッグでよく使用される一般的な方法です。
  • ネットワークポートまたは vSPC URI: これは仮想シリアルポートコンセントレーター(vSPC)を使用して、ネットワーク経由で接続を確立します。つまり、このモードを使用して、仮想シリアルポートとリモートデバイス間で通信します。

 

出力を名前付きパイプに設定する

  1. 名前付きパイプ接続を選択:

    ○ 「新しいシリアルポート」ドロップダウンメニューで、名前付きパイプを選択します。

2. パイプ名を指定します:

○ 「Pipe Name」フィールドに、パイプの名前を入力します(例: \\.\pipe\namedpipe

○ Windows ホストを使用している場合は、デフォルトのパイプ名のままにできます。

サーバーとクライアントの両方で同じパイプ名が使用されていることを確認してください。

3. 配管の端点を定義します:

○ 利用可能なドロップダウンメニューから、配管の近端遠端を選択して設定を完了します。

ネットワーク接続のサーバーモードとクライアントモード

ネットワーク接続タイプを選択した場合、シリアルポートをクライアント接続またはサーバー接続のどちらとして設定するかも選択できます。

サーバー接続モード
サーバー接続を選択すると、シリアルポートに接続された仮想マシンを制御できるようになります。これにより、VM はサーバーのように動作し、ホストからの受信接続を待機します。これは、デバッグや構成中など、VM を時折制御したいシナリオに最適です。

クライアント接続モード
一方、仮想マシンをクライアントとして使用したい場合は、クライアント接続を選択します。つまり、VM は起動時に指定されたプログラムへの接続を能動的に開始します。別のシステムにデータを自動的に送信するロギングアプリケーションなどで一般的です。

認証パラメータなしでシリアルポートのネットワーク接続を作成する

サーバー接続の例
telnet://:11111 の URI(Uniform Resource Identifier)でシリアルポートのサーバー接続を使用して VM を構成するには、次のコマンドを実行します。

telnet yourESXiServerIPAddress 11111

クライアント接続の例
一方、Linux 上でポート 11(telnet://yourLinuxBox:11)で Telnet Server を実行して、クライアント接続を使用してシリアルポートを設定することもできます。次のコマンドを使用します。

telnet://yourLinuxBox:11

VMwareにシリアルからイーサネットコネクタを使用してシリアルポートを接続する

VMware にはネイティブのシリアルポート・パススルー機能が含まれており、仮想マシンがシリアル接続デバイスと通信できるようになっています。これらの組み込みオプションは基本的なシナリオでは機能しますが、リモートアクセス、デバイス互換性、または安定したパフォーマンスが必要な場合には制限となることがあります。

Serial to Ethernet Connector は、VMware 環境におけるシリアルポート統合に、より柔軟なアプローチを提供します。ホストへの直接的な物理接続に依存するのではなく、シリアルポートをネットワーク経由でリダイレクトできるようにします。これにより、仮想マシンはシリアルデバイスにリモートでアクセスでき、分散インフラストラクチャや最新の仮想化デプロイメントでの作業が容易になります。

ステップバイステップガイド:

1. セットアップするには、シリアルポートを共有するPCにSerial to Ethernet Connectorをダウンロードしてインストールします。

2. Serial to Ethernet Connector アプリで、サーバー接続」タブに移動し、ホストコンピューターの COM ポートを選択します。次に、デジタル通信監視に使用する TCP ポートを入力します。

「サーバー接続」タブ

3. 「サーバー接続を作成」ボタンをクリックします。次に、VMware を介してシリアルポートを仮想マシンに接続します(前述のとおり)

「サーバー接続を作成」ボタン

4. ゲストOSに移動します。Serial to Ethernet Connectorアプリを開き、クライアント接続」タブに切り替えます。そこで、同じTCPポートの詳細を入力し、ホストコンピューターのIPアドレスを指定します。

5. 仮想マシンのシリアルインターフェースに名前を付けて、クライアント接続を作成」をクリックします。

Create a client connection

シリアル-イーサネットコネクタが一般的なVMwareシリアルポートの問題に対処する方法

多くの産業用システムやレガシーデバイスはいまだにシリアル通信に依存しており、仮想環境では信頼性の高いシリアルポートアクセスが不可欠です。しかし、VMware のシリアルポートパススルーにはいくつかの課題が生じる可能性があります。

リモートアクセスの制限
物理パススルーを使用する場合、シリアル接続されたハードウェアへリモートからアクセスするのは困難であり、とくにクラウドやデータセンター環境では直接ハードウェアにアクセスすることが現実的ではありません。Serial to Ethernet Connector はシリアルポートを仮想化し、ネットワーク経由でアクセス可能にすることでこれを解決します。

互換性の制約
一部のシリアルデバイスは、仮想マシン内で正しく動作しない可能性のある特定のドライバーや構成を必要とします。ネットワークレベルでシリアル通信をリダイレクトすることで、Serial to Ethernet Connector はデバイス固有の VM 構成への依存を軽減します。

パフォーマンスとレイテンシの問題
物理シリアルパススルーは、特にデータが長距離で転送される場合や複数のシステム間で転送される場合に、レイテンシや不安定さを招く可能性があります。ネットワークベースのシリアルリダイレクトは、より一貫したデータ伝送と中断の減少に役立ちます。

レガシーハードウェアのサポートが限定的
仮想プラットフォームは、古いシリアルデバイスに対するネイティブサポートが限定的であることがよくあります。Serial to Ethernet Connector は、ネイティブ統合が利用できない、または信頼性が低い場合でも、レガシー機器に仮想シリアルポートとしてアクセスできるようにすることで、VMware の機能を拡張します。

結論

仮想シリアルポートは、デバッグやログ取得の用途で便利です。VMware Workstation Proで簡単に追加できますが、仮想環境内でそれらにアクセスするのは、Serial to Ethernet Connectorを使用するのが最も簡単です。

よくある質問

ESXiホストの物理シリアルポートをVMに使用している場合、USB経由で接続したシリアルポートはVMwareのシリアルポートパススルーではサポートされません。代わりに、USBパススルーを選択してください。ESXiホストから仮想マシンへのUSB構成」を参照してください。

VMware ESXi では最大 32 個のシリアルポートを使用できます。マザーボード上のシリアルポートは、ESXi ホストから仮想マシンへ簡単にリダイレクトできます。