我有几台服务器,我想将它们复制为虚拟服务器中的客户实例。其中运行的一个应用程序使用 COM 端口在两台服务器之间进行通信,具体是通过 null-modem/laplink/etc 电缆。
我曾考虑过将客户实例的 COM 端口绑定到主机服务器的 COM 端口(1 和 2),然后使用零调制解调器电缆将端口连接在一起。有没有办法可以完全通过虚拟服务器的控制面板进行此连接,而无需物理访问我的服务器(那里很冷而且很吵 :))?
答案1
您可以使用COM 端口重定向器软件在两台服务器上创建虚拟 COM 端口并通过 TCP 端口连接它们。链接的维基百科页面还提供了商业和开源解决方案的链接。
答案2
我有一个解决方案虚拟机. 它使用命名管道在两个 VM 之间进行串行通信。(请注意,调制解调器信号将不会传输,因此硬件握手将失败)。
在 VMWare 下你可以执行以下操作:
在“客户端”添加:
serial0.present = "TRUE"
serial0.fileType = "pipe"
serial0.pipe.endPoint = "client"
serial0.yieldOnMsrRead = "TRUE"
serial0.startConnected = "TRUE"
serial0.fileName = "/Virtual Machines/VMware/Serial/devbox_com1"
服务器端如下:
serial0.present = "TRUE"
serial0.fileType = "pipe"
serial0.yieldOnMsrRead = "TRUE"
serial0.startConnected = "TRUE"
serial0.fileName = "/Virtual Machines/VMware/Serial/devbox_com1"
当然,这个解决方案并不完全适用于服务器 2005,但我认为它应该可以工作(但我还没有测试过)。
在下面虚拟服务器 2005对两个虚拟机执行以下步骤:
- 在“虚拟机”下,指向“配置”,然后单击要修改的虚拟机。
- 单击 COM 端口链接。
- 在要配置的串行端口下,单击“物理计算机串行端口”,然后单击以清除“等待调制解调器命令打开端口”复选框。单击“命名管道”,然后在“命名管道”框中键入要分配给命名管道的 \.\pipe\name。例如,键入 \.\pipe\com2 并单击“确定”。
我必须警告您,我从未尝试在 Virtual Server 2005 下设置两个命名管道,因此我无法保证。
答案3
使用远程终端服务器(例如 Moxa (http://www.moxa.com/product/NPort_6450.htm) 是一种常见的方法。
所有串口设备都连接到 Moxa 终端服务器,然后在 VMWare Guest OS 上安装 Windows 虚拟 COM 端口驱动程序。虚拟 COM 端口驱动程序配置了终端服务器的 IP 地址。
这种方法的优点是您的虚拟服务器完全独立于硬件,您可以将图像移动到任何物理服务器,并且只要与您的终端服务器有 IP 连接,就不会发生任何故障。