Xen

XenServer 訪客 PV - 串列埠 RS232

  • December 10, 2019

有什麼方法可以將物理串口轉發(直通)到 XenGuest PV 系統?我需要能夠在 XenServer 6.2 上使用虛擬伺服器配置串列設備。

我正在尋找如何進行串列埠轉發的解決方案。

編輯:我更合理地購買 RS-232 到乙太網轉換器。我在此評論中提到過https://serverfault.com/a/740196/187680。主要和最重要的原因是虛擬機不依賴於一個特定的託管伺服器,這使您可以更輕鬆地管理 XenServer 更新和虛擬機的容錯。

對您來說可能為時已晚,但您的問題可能引起普遍關注。如果您的串列埠(或 USB 埠或其他)可以辨識為 PCI 設備,您可以避免 XS 控制該設備並讓來賓作業系統管理它。

  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)
  1. 編輯/boot/extlinux.conf並查找“label xe”行,該行標識您的引導預設配置;在以“append /boot …”開頭的行上,有參數;在“splash”之後添加另一個參數為“pciback.hide=(02.00.0)”,您應該在括號中放入您之前找到的相同 PCI id。如果您要傳遞給來賓的 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
  1. 保存文件,發出extlinux -i /boot命令並重新啟動伺服器。
  2. 現在您應該將 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
  1. 最後,告訴 VM 直接為 PCI 設備充電的命令如下,在其中放置所需 VM 的 UUID 和 PCI 設備的 PCI id。在範例中,列出了兩個 PCI 設備,以逗號分隔。
xe vm-param-set other-config:pci=0/0000:02:00.0,0/0000:00:1d.0 uuid=a82769ff-9dc4-56bb-61f9-57d741162a14
  1. 啟動相關虛擬機並檢查是否正確檢測到新硬體。

這個方法來自這裡,感謝sotech的分享。

筆記

  • 當然,您的設備將綁定到特定的虛擬機。
  • 如果您的應用程序依賴於特定的 PCI 設備,請忘記將 VM 移動到其他地方。
  • 如果您的設備未列為 PCI,那麼您就不走運了。
  • 並非所有設備都適合以這種方式進行管理。我在 USB 控制的 UPS 上度過了一段糟糕的時光,它拒絕通過這種直通方式進行管理。
  • 我同意 TomTom 的建議是解決串列埠問題的最通用和最規範的方法。

不可能。我建議獲得一個串列到乙太網介面,然後使用它。虛擬化和串列埠並不真正兼容。

引用自:https://serverfault.com/questions/564507