ESXi 虚拟机使用物理串口详细指南
在虚拟化环境中,有时虚拟机 (VM) 需要直接访问物理服务器上的串行端口 (COM 端口),这常见于工业控制、网络设备管理(如通过 Console 口配置交换机/路由器)、连接串口打印机或与需要串口通信的专用硬件交互等场景,VMware ESXi 本身不直接提供虚拟串口映射到物理串口的简单选项,但可以通过 PCI 设备直通 (Passthrough) 技术实现,以下是详细的操作步骤和注意事项:
核心原理:PCI 设备直通
ESXi 的物理串口通常由主板芯片组或附加 PCI/PCIe 卡提供,通过将整个串口控制器(通常是一个 PCI 设备)直通给特定的虚拟机,该虚拟机就能独占访问连接在该控制器上的物理串口。
操作步骤:
-
识别物理串口控制器:
- 登录 ESXi 主机管理界面 (vSphere Client 或 ESXi Host Client)。
- 导航到 主机 -> 管理 -> 硬件 -> PCI 设备。
- 在 PCI 设备列表中,查找包含
Serial
或COM
关键字的设备,常见的供应商有 Intel, ASMedia, Renesas 等,描述可能类似ASM1042A USB 3.0 Host Controller
(如果串口是 USB 转接的) 或Intel Corporation Sunrise Point-H Serial IO UART Controller
。 - 关键: 记下目标串口控制器设备的 设备 ID (如
0000:00:14.0
),这是后续操作的关键标识符。 - 验证兼容性: 检查该设备是否支持直通 (Passthrough),在 PCI 设备列表中,该设备应显示为 可直通 状态,如果不支持,可能需要检查 BIOS/UEFI 设置中是否启用了 VT-d (Intel) 或 AMD-Vi (AMD) 功能,并确保该设备未被主机系统占用。
-
启用 PCI 设备直通:
- 在 ESXi 主机的 PCI 设备 列表中找到目标串口控制器。
- 选中该设备对应的复选框。
- 点击 切换直通 按钮 (或类似操作),设备状态应变为 活动。
- 重要: 必须重启 ESXi 主机 才能使直通配置生效,ESXi 会提示你进行此操作,重启后,该 PCI 设备将不再被 ESXi 主机本身使用,而是准备好被直通给虚拟机。
-
将直通设备添加到虚拟机:
- 关闭目标虚拟机 (VM)。
- 编辑目标虚拟机的设置。
- 在 虚拟机硬件 选项卡中,点击 添加其他设备。
- 选择 PCI 设备。
- 在下拉列表中,选择之前启用直通的串口控制器设备 (根据设备 ID 识别)。
- 点击 保存。
-
在虚拟机操作系统中识别串口:
- 启动虚拟机。
- 登录虚拟机操作系统 (Windows, Linux 等)。
- Windows:
- 打开
设备管理器
。 - 展开
端口 (COM & LPT)
,你应该能看到新的串口设备,通常显示为Communications Port (COMx)
,x
是分配的 COM 口号。 - 可能需要安装特定的驱动程序(通常系统会自动识别并加载标准串口驱动)。
- 打开
- Linux:
- 打开终端。
- 使用命令
dmesg | grep tty
或ls /dev/ttyS*
/ls /dev/ttyUSB*
(如果是 USB 串口控制器) 查看新出现的串口设备节点 (如/dev/ttyS0
,/dev/ttyS1
,/dev/ttyUSB0
等)。 - 可能需要配置权限 (
sudo chmod 666 /dev/ttySx
) 或用户组 (sudo usermod -aG dialout $USER
) 以便普通用户访问。
-
在虚拟机中使用串口:
虚拟机中的串口应用程序(如 PuTTY, minicom, HyperTerminal 替代品、自定义工业软件等)就可以像访问物理机上的本地串口一样,访问和使用这个直通的物理串口了,在应用程序中选择对应的 COM 端口 (Windows) 或设备文件 (Linux) 并配置正确的波特率、数据位、停止位、奇偶校验和流控设置即可。
关键注意事项与风险:
- 独占访问: 直通是独占性的,一旦将串口控制器直通给某个虚拟机,ESXi 主机本身和其他虚拟机都无法再访问该串口,只有被直通的虚拟机可以使用它。
- 硬件兼容性: 并非所有串口控制器都完美支持 PCI 直通,在关键生产环境部署前,务必进行充分测试,USB 转串口适配器如果作为 PCI(e) USB 控制器下的设备,需要直通整个 USB 控制器,可能带来其他 USB 设备管理问题。
- ESXi 主机重启: 启用或更改 PCI 直通配置 必须重启 ESXi 主机 才能生效,这会造成服务中断。
- 虚拟机兼容性: 确保虚拟机操作系统支持该串口控制器硬件并能加载正确的驱动程序。
- vMotion 限制: 启用了 PCI 直通设备的虚拟机无法进行 vMotion (实时迁移),因为直通设备与特定物理主机的硬件紧密绑定,如果主机需要维护,必须先关闭该虚拟机。
- 安全性: 虚拟机获得对物理硬件的底层访问权限,确保虚拟机本身是安全可信的。
- 配置复杂性: 相比虚拟串口重定向到网络,物理直通配置步骤更多,涉及主机重启。
- 物理连接: 确保目标物理串口线缆已正确连接到服务器后挡板的串口插座上。
替代方案评估:
- ESXi 7.0+ 串口端口 (TCP/UDP): ESXi 7.0 引入了将虚拟机串口重定向到 TCP 或 UDP 网络连接的功能,这不需要直通硬件,也不影响 vMotion,在虚拟机设置中添加“串行端口”,选择“通过网络连接”,然后配置主机名/IP 和端口,虚拟机内部使用虚拟串口,数据通过网络传输。这是更灵活、更推荐的方式,除非必须物理直通。
- 物理串口服务器: 将物理串口设备连接到专用的串口服务器硬件(如 Moxa, Digi 等产品),该服务器通过网络(通常是 TCP/IP)提供串口访问,虚拟机只需通过网络协议连接即可,这提供了更好的可管理性和灵活性,避免了 ESXi 主机直通的限制。
- USB 重定向 (非直通): 如果串口是 USB 转接的,且 ESXi 主机支持 USB 控制器重定向(非直通),可通过 vSphere Client 将特定的 USB 串口适配器直接连接到运行中的虚拟机,这比 PCI 直通简单,但依赖 USB 重定向功能且可能不如直通稳定。
通过 PCI 设备直通将物理串口控制器分配给 ESXi 虚拟机是可行的,适用于需要虚拟机直接、独占访问底层串口硬件的特定场景,该过程需要重启主机,导致虚拟机无法 vMotion,并增加了管理复杂性,在实施前务必评估兼容性、测试稳定性并了解其限制。强烈建议优先考虑 ESXi 7.0+ 的串口网络重定向功能或使用物理串口服务器作为替代方案,它们通常提供更好的灵活性和可管理性。
引用说明:
- 本文核心操作流程基于 VMware ESXi 的标准 PCI 设备直通功能,参考 VMware 官方文档关于“Passthrough PCI Devices to a Virtual Machine”的通用指南。
- 关于串口通信参数(波特率、数据位等)的标准参考了电子工业协会 (EIA) RS-232 标准。
- ESXi 7.0+ 串口网络功能信息来源于 VMware vSphere 7.0 产品文档中关于“Serial Port”设备配置的说明。
- 替代方案中提及的串口服务器为行业常见解决方案(如 Moxa, Digi 等品牌产品)。
注意:具体操作界面细节可能因 ESXi 和 vSphere Client 版本略有差异,实施前请查阅对应版本的官方文档并进行测试环境验证,物理硬件操作涉及风险,请谨慎进行。
原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/32653.html