跳转至

远程 KVM

远程 KVM 是指,可以通过网络远程地控制机器,包括键盘(Keyboard)、视频(Video)和鼠标(Mouse),三个单词的首字母连起来就是 KVM。此外,它还通常支持远程开关机、挂载虚拟磁盘等功能。它解决了远程机器运维的问题。在没有远程 KVM 的时候,为了对机器进行运维,通常需要:

  1. 维护人员线下接触到机器
  2. 把机器连接到键盘、鼠标和显示器
+----------+
| Machine  |
+----------+
  |  |  |
  |  |  \--USB--Keyboard
  |  |
  |  \------USB--Mouse
  |
  \---------HDMI-Monitor

如果机器很多,为了减少来回的插拔,可以用硬件的 KVM 切换器:它支持多路输入和一路输出,每一路的输入或输出,通常都包括视频(Video,例如 HDMI 或 VGA 接口)和 USB(用于 Keyboard 和 Mouse)。KVM 切换器通常有按钮,可以在多路输入中切换。

  HDMI Input 1
  | USB Input 1
  | | HDMI Input 2
  | | | USB Input 2
  | | | | HDMI Input 3
  | | | | | USB Input 3
  | | | | | |
  | | | | | |
+-------------+
| KVM Switch  |
+-------------+
  | | |
  | | USB Output (for Mouse)
  | USB Output (for Keyboard)
  HDMI Output

例如,有三台机器经常需要运维,为了避免来回的插拔,购买一个三输入的 KVM 切换器,把三台机器的 HDMI 和 USB 分别接到 KVM 切换器的三路输入,再把 KVM 切换器的输出连接到显示器上,再把 USB 键盘和鼠标插到 KVM 切换器的输出端。此时,通过 KVM 切换器的按钮,就可以切换到具体的某一台机器:如果切换到第一台机器,那就相当于把第一台机器的 HDMI 输出接到显示器上,同时把 USB 键盘和鼠标接到第一台机器上。那么如果要对第二台机器进行运维,只需要通过 KVM 切换器的按钮就可以完成,不需要插拔 HDMI 或者 USB 线。

+------------+   +------------+   +------------+
| Machine  1 |   | Machine 2  |   | Machine 3  |
+------------+   +------------+   +------------+
  |       |        |       |        |       |
  | HDMI  | USB    | HDMI  | USB    | HDMI  | USB
  |  #1   |  #1    |  #2   |  #2    |  #3   |  #3
+-----------------------------------------------+
| KVM Switch                           [Button] |
+-----------------------------------------------+
  | | |
  | | \--USB--Mouse
  | \----USB--Keyboard
  \------HDMI-Monitor

KVM 切换器虽然解决了插拔的问题,但维护人员还是需要到机器所在的地方,不能远程操作。而远程 KVM 解决了这个问题:

+------------+
| Machine 1  |
+------------+
  |       |
  | HDMI  | USB
  |  #1   |  #1
+------------+
| Remote KVM |
+------------+
  |
  | Network
  |
+------------+
| Operator   |
+------------+

运维人员通过网络访问远程 KVM,而远程 KVM 通过 HDMI 和 USB 连接到机器上。为了让运维人员可以远程操控机器,远程 KVM 通常会提供一个网页,在网页上可以观看机器的 HDMI 显示输出,运维人员通过网页,可以操作鼠标,键盘按键也会被传输到机器上。为了实现这个功能,远程 KVM 内置了一个采集芯片,可以把 HDMI 的输出转化为数字信号,通过视频编码,以视频流的方式传输到运维人员操作的浏览器里;同时远程 KVM 可以模拟 USB 设备:鼠标、键盘和 U 盘等,从而实现远程的鼠标键盘操控和虚拟镜像的挂载。

在很多服务器中,BMC(Board Management Controller)内置了远程 KVM 的功能,只不过它和机器的集成程度更深:它通常是通过 PCIe 的方式连接服务器的 CPU,通过 PCIe 虚拟出显卡,这个显卡的输出可以直接被 BMC 采集到,不再需要额外的采集芯片。如果没有 BMC,则可以购买一些远程 KVM 的扩展卡,来提供这个功能,例如:

评论