Xen
XenServer 訪客 PV - 串列埠 RS232
有什麼方法可以將物理串口轉發(直通)到 XenGuest PV 系統?我需要能夠在 XenServer 6.2 上使用虛擬伺服器配置串列設備。
我正在尋找如何進行串列埠轉發的解決方案。
編輯:我更合理地購買 RS-232 到乙太網轉換器。我在此評論中提到過https://serverfault.com/a/740196/187680。主要和最重要的原因是虛擬機不依賴於一個特定的託管伺服器,這使您可以更輕鬆地管理 XenServer 更新和虛擬機的容錯。
對您來說可能為時已晚,但您的問題可能引起普遍關注。如果您的串列埠(或 USB 埠或其他)可以辨識為 PCI 設備,您可以避免 XS 控制該設備並讓來賓作業系統管理它。
lspci
列出設備並選擇哪一個代表您的串口,在以下範例中,串口 PCI id 為 02:00.001: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)
- 編輯
/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
- 保存文件,發出
extlinux -i /boot
命令並重新啟動伺服器。- 現在您應該將 PCI 設備分配給您要管理它們的 VM。儘管有更多方法可以獲取 VM 的 UUID,但您可以使用
xe vm-list
命令將它們全部列出並從結果列表中選擇正確的方法。在範例中,所需的 UUID 是 a82769ff-9dc4-56bb-61f9-57d741162a14uuid ( RO) : a82769ff-9dc4-56bb-61f9-57d741162a14 name-label ( RW): sersrv03.xyz.lan power-state ( RO): running
- 最後,告訴 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
- 啟動相關虛擬機並檢查是否正確檢測到新硬體。
這個方法來自這裡,感謝sotech的分享。
筆記
- 當然,您的設備將綁定到特定的虛擬機。
- 如果您的應用程序依賴於特定的 PCI 設備,請忘記將 VM 移動到其他地方。
- 如果您的設備未列為 PCI,那麼您就不走運了。
- 並非所有設備都適合以這種方式進行管理。我在 USB 控制的 UPS 上度過了一段糟糕的時光,它拒絕通過這種直通方式進行管理。
- 我同意 TomTom 的建議是解決串列埠問題的最通用和最規範的方法。
不可能。我建議獲得一個串列到乙太網介面,然後使用它。虛擬化和串列埠並不真正兼容。