当前位置: 首页 > news >正文

玩转OurBMC第十八期:iKVM特性浅讲

栏目介绍:“玩转OurBMC”是OurBMC社区开创的知识分享类栏目,主要聚焦于社区和BMC全栈技术相关基础知识的分享,全方位涵盖了从理论原理到实践操作的知识传递。OurBMC社区将通过“玩转OurBMC”栏目,帮助开发者们深入了解到社区文化、理念及特色,增进开发者对BMC全栈技术的理解。

欢迎各位关注“玩转OurBMC”栏目,共同探索OurBMC社区的精彩世界。同时,我们诚挚地邀请各位开发者向“玩转OurBMC”栏目投稿,共同学习进步,将栏目打造成为汇聚智慧、激发创意的知识园地。

iKVM(Integrated Keyboard, Video and Mouse)作为 BMC 的核心功能之一,通过集成硬件和软件,实现对服务器全程全时的远程控制。即在服务器的上电后的任意阶段,如BIOS启动、内核加载、操作系统运行或崩溃等时刻,都能通过 BMC 的iKVM功能,被远端的管理员监控管理。因此,相比于其他的远程控制技术,iKVM 作为服务器的带外远程技术,具有 表1 所示不依赖服务器的 BIOS 固件、操作系统、应用程序,能在硬件层面实现全程全时的远程管理目标。

远程控制技术的特点对比

iKVM 功能介绍

iKVM 作为现代 IT 基础设施中不可或缺的远程管理工具,它不仅具备远程视图、远程操控、虚拟媒体这三项基础功能,能够满足管理员对服务器的基本远程管理需求;还支持屏幕录制与回放、自动截屏等扩展功能,为管理员在定位服务器运行异常时,提供了补充故障发生瞬间视频或图像资料的有力手段,极大提升了故障排查的效率和准确性。

iKVM 的基础功能在实际应用场景中极为常见,如 图1 所示的机房环境。在该场景中,即使服务器未连接本地显示器,管理员依然能够通过 iKVM 实现远程显示与操作。接下来,将详细介绍 iKVM 的各项基础功能。

图1 iKVM使用场景

  1. 远程视图功能通过在远程终端的网页或客户端中,实时展示服务器的屏幕内容,呈现效果与本地操作服务器查看显示器一致。借助该功能,管理员能够即时获取服务器的运行状态、系统界面等关键信息,为远程监控和管理提供了直观且高效的途径。

  2. 远程控制功能将远程终端的鼠标点击、键盘输入等操作转换为模拟的 USB 键鼠信号,实现对服务器的实际控制。例如管理员在远程视图下,点击图标、输入文字、选择菜单等操作,会同步传输到本地服务器,并得到本地服务器的响应。

  3. 虚拟媒体功能将本地存储设备(如 U盘、ISO 镜像)映射为服务器的虚拟光驱或硬盘,实现远程系统部署。简便了远程维护和管理的工序。

实现原理

obmc-ikvm 软件包,是 OpenBMC 社区里部署 iKVM 特性的应用程序,它依赖 JPEG 编码器、模拟键鼠输入信号的 USB Gadget 设备。obmc-ikvm 调用 Linux 驱动提供的统一的命令字和接口,如 JPEG 编码器采用 Linux 系统里 V4L2 框架制定的命令字;键鼠输入使用 UDC(USB Device Controller)设备模拟成 USB Gadget HID(Human Interface Device)的标准接口。因此,适配 obmc-ikvm 应用程序,需要 BMC 芯片厂商分别遵循 V4L2、USB Gadget HID 的要求,开发 JPEG 编码器的驱动和 USB Gadget HID 驱动,才能屏蔽芯片差异。

obmc-ikvm 兼容遵循上述要求的 BMC 芯片,本章节以飞腾公司的飞腾腾珑 E2000S 芯片做示例,详细剖析 iKVM 特性的软硬件协同设计方案。如 图2 所示,iKVM 系统自左至右依次划分为 Host端、BMC SoC端、远程终端三部分:

  1. Host端把显示数据流,通过 PCIE Bus 输出到 DC(Display Controller)引擎。以及 USD Host 控制器接收来自 BMC SoC 端 USB Bus 的键鼠输入信号。

  2. BMC Soc 端的 DC 输出两路视频数据流,“ Output 1 ”输出到 BMC 卡的 VGA 显示器(如 图1 的说明,该显示器为可选组件),“ Output 2 ”输出到 JPEG Encoder 模块的 video0 设备节点。video0 设备驱动通过 V4L2 接口接收原始视频流,并调用硬件加速单元(或软件编码器)将其压缩为 JPEG 格式的静态图片,缓存至共享内存区域,供 obmc-ikvm 模块按需读取。若部署运行在 BMC 的 VNC Server 里,接收到来自远程控制的请求。在网络带宽不拥塞的场景下,ombc-ikvm 会按照设定的帧率,将 JPEG 格式的图片,发送给 VNC Server 模块。

  3. 远程终端,可通过 VNC Client 端、网页浏览器,建立与 BMC SoC 端的网络会话。其中网页视图,需要通过 websocket 与 BMC SoC 端后台进程 bmcweb 建立会话。

    2 飞腾腾珑E2000S的 iKVM 系统框图

    运行在 中 BMC SoC 端里的 obmc-ikvm,通过标准的 V4L2 命令,操作 video0 设备,可以设置 JPEG  编码器的 YUV 模式、帧率,开启或关闭 stream。此外,obmc-ikvm 接收到来自 VNC Server 模拟键鼠输入事件,会解析成字符输入(Key Event)或坐标输入(Pointer Event),分别发送到USB Gadget HID设备的 hidg0、hidg1。hidg0、hidg1 这两个USB Gadget HID 设备,与 Host 端之间的互联结构,可用 以飞腾腾珑 E2000S 里 UDC 模拟的USB Gadget HID 示例说明。USB Gadget HID 设备通过绑定 Gadget g_hid 函数,注册到 UDC 驱动框架里。模拟成USB键鼠设备挂接到 Host 端的USB总线上,被 Host 端的 USB Host 控制器驱动感知并识别,进而把键鼠信号,输入到 USB Host 控制端,实现操作 Host 的目的

3 飞腾腾珑 E2000S USB Gadget 通信

远端视图

obmc-ikvm 支持 vnc 客户端和网页两种视图模式。目前 OurBMC 在 VNC 客户端只支持 iKVM 的三项基础功能,而在网页端实现了 iKVM的 部分扩展功能,增强运维效率与可追溯性。如 图4 所示,在右侧边栏,增加了四个控件,其中上面的两个控件,用于截屏、录制服务器的显示界面。运维人员可通过回看截屏、回放录制的视频,定位分析故障,审计操作是否异常。

4 OurBMC 的 KVM 网页界面

iKVM 通过“ 实时监控-远程操作-故障复现 ”的运维闭环,构建了服务器管理的全新范式。其屏幕录制与自动截屏功能,为故障排查提供了“ 可视化证据链 ”,不仅提升了运维效率与准确性,更推动了 IT 基础设施向智能化、自动化方向演进。

相关文章:

  • Pycharm(十七)生成器
  • 案例分享(九):Hadoop分布式集群部署(三节点)
  • 基于STM32、HAL库的HX710A模数转换器ADC驱动程序设计
  • 系统架构师---基于规则的系统架构
  • 海关 瑞数 后缀分析 rs
  • java16
  • AI赋能守护行车安全新防线,基于YOLOv5全系列【n/s/m/l/x】参数模型开发构建驾驶车辆场景下驾驶员疲劳分心驾驶行为智能检测预警系统
  • 泰迪杯实战案例超深度解析:运输车辆安全驾驶行为分析与安全评价系统设计
  • 关于IDEA的循环依赖问题
  • AI 发展历史与关键里程碑_附AI 模型清单及典型应用场景以及物流自动化适合的模型选择
  • 探针台在光电行业的应用
  • On the Biology of a Large Language Model——Claude团队的模型理解文章【论文阅读笔记】其二——数学计算部分
  • STM32 CAN通信 HAL库实战教程:从零到测试成功
  • JavaScript 解构赋值(下):对象解构与高级应用
  • 爬虫技术入门:基本原理、数据抓取与动态页面处理
  • “赛教融合”模式下的网络安全专业Python实训教学解决方案
  • 对比测评:用 AI 工具开发 Spring Cloud 分布式系统,谁更卷?
  • C++笔记-模板进阶和继承(上)
  • 开源音乐播放器和音源分享(洛雪)
  • 【Java】谈谈ClassLoader
  • 香港警务处高级助理处长叶云龙升任警务处副处长(行动)
  • 专访|伊朗学者:美伊核谈不只是改革派立场,但伊朗不信任美国
  • 年客流超2500万,九岁的上海国际旅游度假区有哪些文旅商体实践?
  • 东北财大“一把手”调整:方红星任校党委书记,汪旭晖任校长
  • 2025年超长期特别国债24日首次发行
  • 阿联酋首个AI博士项目设立,助力人才培养与科技转型