web-dev-qa-db-ja.com

XenServerゲストPV-シリアルポートRS232

物理シリアルポートをXenGuestPVシステムに転送(パススルー)する方法はありますか? XenServer6.2の仮想サーバーでシリアルデバイスを構成できる必要があります。

シリアルポートフォワーディングを行う方法の解決策を探しています。

[〜#〜]編集[〜#〜]:RS-232からイーサネットへのコンバーターを購入する方が合理的でした。私はこのコメントの下でそれを述べました https://serverfault.com/a/740196/18768 。主な最も重要な理由は、仮想マシンが1つの特定のホスティングサーバーに依存していないため、XenServerの更新と仮想マシンのフォールトトレランスをより簡単に管理できることです。

1
Lukáš Viktora

XenServerをRS-232パススルーさせようとしました。そして、私は成功しませんでした。最後に最も簡単な方法は、購入することでした IP COMデバイス 。 VMはホストサーバーから独立しており、VM移行を使用できます。このデバイスの安定性に驚きました。問題はありません。

0
Lukáš Viktora

おそらく手遅れですが、あなたの質問は一般的に興味深いかもしれません。シリアルポート(またはUSBポートなど)がPCIデバイスとして識別できる場合は、XSがそのデバイスを制御し、ゲストOSで管理できるようにすることを回避できます。

  1. lspciを使用してデバイスを一覧表示し、シリアルポートを表すデバイスを選択します。次の例では、シリアルポートのPCI IDは02:00.0です。

    01:00.0 RAID bus controller: LSI Logic / Symbios Logic MegaRAID SAS 2108 [Liberator] (rev 05)
    02:00.0 Serial controller: MosChip Semiconductor Technology Ltd. PCIe 9922 Multi-I/O Controller
    05:00.0 USB controller: Renesas Technology Corp. uPD720202 USB 3.0 Host Controller (rev 02)
    
  2. /boot/extlinux.confを編集し、ブートのデフォルト構成を識別する「labelxe」行を探します。 「append/boot ...」で始まる行には、パラメーターがあります。 「splash」の後に、「pciback.hide =(02.00.0)」として別のパラメーターを追加します。ここで、前に見つけたのと同じPCIIDを括弧で囲む必要があります。ゲストに渡すPCIデバイスが複数ある場合は、例のように、それぞれを括弧で囲み、空白で区切ってリストします。

    label xe
      # XenServer
      kernel mboot.c32
      append /boot/xen.gz mem=1024G dom0_max_vcpus=4 dom0_mem=752M,max:752M watchdog_timeout=300 lowmem_emergency_pool=1M crashkernel=64M@32M cpuid_mask_xsave_eax=0 console=vga vga=mode-0x0311 --- /boot/vmlinuz-2.6-xen root=LABEL=root-mvyxdjwc ro xencons=hvc console=hvc0 console=tty0 quiet vga=785 splash pciback.hide=(05:00.0) (02:00.0) (00:1d.0) --- /boot/initrd-2.6-xen.img
    
  3. ファイルを保存し、extlinux -i /bootコマンドを発行して、サーバーを再起動します。

  4. ここで、PCIデバイスを管理するVMに割り当てる必要があります。VMのUUIDを取得する方法は他にもありますが、xe vm-listコマンドを使用してすべてを一覧表示できます。結果のリストから適切なものを選択します。この例では、必要なUUIDはa82769ff-9dc4-56bb-61f9-57d741162a14です。

    uuid ( RO)           : a82769ff-9dc4-56bb-61f9-57d741162a14
         name-label ( RW): sersrv03.xyz.lan
        power-state ( RO): running
    
  5. そして最後に、PCIデバイスを直接充電するようにVMに指示するコマンドは次のとおりです。ここで、必要なVM)のUUIDを入力します。 =およびPCIデバイスのPCIID。この例では、コンマで区切られた2つのPCIデバイスがリストされています。

    xe vm-param-set other-config:pci=0/0000:02:00.0,0/0000:00:1d.0 uuid=a82769ff-9dc4-56bb-61f9-57d741162a14
    
  6. 関連するVM)を開始し、新しいハードウェアが正しく検出されているかどうかを確認します。

このメソッドは、共有してくれたsotechのおかげで、 ここ から来ています。

メモ

  • もちろん、デバイスは特定のVMに関連付けられます。
  • アプリケーションがその特定のPCIデバイスに依存している場合は、VMを他の場所に移動することを忘れてください。
  • デバイスがPCIとしてリストされていない場合は、運が悪いです。
  • すべてのデバイスがこの方法で管理できるわけではありません。この種のパススルーでの管理を拒否したUSB制御のUPSで苦労しました。
  • TomTomの提案が、シリアルポートの問題を解決するための最も一般的で標準的な方法であることに同意します。
2
carlo ritter

ありえない。シリアルからイーサネットへのインターフェースを取得し、それを使用することをお勧めします。仮想化ポートとシリアルポートは実際には互換性がありません。

0
TomTom