XenServer 客户机 PV - 串行端口 RS232

XenServer 客户机 PV - 串行端口 RS232

有什么方法可以将物理串行端口转发(直通)到 XenGuest PV 系统吗?我需要能够在 XenServer 6.2 上使用虚拟服务器配置串行设备。

我正在寻找如何进行串行端口转发的解决方案。

编辑:我更合理的做法是购买 RS-232 转以太网转换器。我在此评论下提到过https://serverfault.com/a/740196/187680. 主要且最重要的原因是虚拟机不依赖于某个特定的托管服务器,这使您能够更轻松地管理 XenServer 更新和虚拟机的容错。

答案1

对你来说可能已经太晚了,但你的问题可能具有普遍意义。如果你的串行端口(或 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)
    
  2. 编辑/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
    
  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 设备的命令如下,其中输入所需虚拟机的 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
    
  6. 启动相关虚拟机并检查是否正确检测到新硬件。

此方法源自这里, 谢谢索特共享的。

笔记

  • 当然,您的设备将与特定的虚拟机绑定。
  • 如果您的应用程序依赖于该特定的 PCI 设备,请不要将 VM 移动到其他地方。
  • 如果您的设备未列为 PCI,那么您就倒霉了。
  • 并非所有设备都适合以这种方式管理。我曾经使用过 USB 控制的 UPS,它拒绝通过这种直通方式进行管理。
  • 我同意 TomTom 的建议是解决串行端口问题最通用和最规范的方法。

答案2

不可能。我建议获取一个串行到以太网接口,然后使用它。虚拟化和串行端口实际上并不兼容。

答案3

我尝试过让 RS-232 直通 XenServer。但没有成功。最后最简单的方法是购买IP COM 设备。它使 VM 独立于主机服务器,并且您可以使用 VM 迁移。我对该设备的稳定性感到惊讶。没有问题。

相关内容