玩转OurBMC第十八期:iKVM特性浅讲
【栏目介绍:“玩转OurBMC”是OurBMC社区开创的知识分享类栏目,主要聚焦于社区和BMC全栈技术相关基础知识的分享,全方位涵盖了从理论原理到实践操作的知识传递。OurBMC社区将通过“玩转OurBMC”栏目,帮助开发者们深入了解到社区文化、理念及特色,增进开发者对BMC全栈技术的理解。
欢迎各位关注“玩转OurBMC”栏目,共同探索OurBMC社区的精彩世界。同时,我们诚挚地邀请各位开发者向“玩转OurBMC”栏目投稿,共同学习进步,将栏目打造成为汇聚智慧、激发创意的知识园地。】
iKVM(Integrated Keyboard, Video and Mouse)作为 BMC 的核心功能之一,通过集成硬件和软件,实现对服务器全程全时的远程控制。即在服务器的上电后的任意阶段,如BIOS启动、内核加载、操作系统运行或崩溃等时刻,都能通过 BMC 的iKVM功能,被远端的管理员监控管理。 因此,相比于其他的远程控制技术,iKVM 作为服务器的带外远程技术,具有 表1 所示不依赖服务器的 BIOS 固件、操作系统、应用程序,能在硬件层面实现全程全时的远程管理目标。
表1 远程控制技术的特点对比
iKVM 功能介绍
iKVM 作为现代 IT 基础设施中不可或缺的远程管理工具,它不仅具备远程视图、远程操控、虚拟媒体这三项基础功能,能够满足管理员对服务器的基本远程管理需求;还支持屏幕录制与回放、自动截屏等扩展功能,为管理员在定位服务器运行异常时,提供了补充故障发生瞬间视频或图像资料的有力手段,极大提升了故障排查的效率和准确性。
iKVM 的基础功能在实际应用场景中极为常见,如 图1 所示的机房环境。在该场景中,即使服务器未连接本地显示器,管理员依然能够通过 iKVM 实现远程显示与操作。接下来,将详细介绍 iKVM 的各项基础功能。
图1 iKVM使用场景
- 远程视图功能通过在远程终端的网页或客户端中,实时展示服务器的屏幕内容,呈现效果与本地操作服务器查看显示器一致。借助该功能,管理员能够即时获取服务器的运行状态、系统界面等关键信息,为远程监控和管理提供了直观且高效的途径。
- 远程控制功能将远程终端的鼠标点击、键盘输入等操作转换为模拟的 USB 键鼠信号,实现对服务器的实际控制。例如管理员在远程视图下,点击图标、输入文字、选择菜单等操作,会同步传输到本地服务器,并得到本地服务器的响应。
- 虚拟媒体功能将本地存储设备(如 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端、远程终端三部分:
- Host端把显示数据流,通过 PCIE Bus 输出到 DC(Display Controller)引擎。以及 USD Host 控制器接收来自 BMC SoC 端 USB Bus 的键鼠输入信号。
- 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 模块。
- 远程终端,可通过 VNC Client 端、网页浏览器,建立与 BMC SoC 端的网络会话。其中网页视图,需要通过 websocket 与 BMC SoC 端后台进程 bmcweb 建立会话。
图2 飞腾腾珑E2000S的 iKVM 系统框图
运行在 图2 中 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 端之间的互联结构,可用 图3 以飞腾腾珑 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 基础设施向智能化、自动化方向演进。
欢迎大家关注OurBMC社区,了解更多BMC技术干货。
OurBMC社区官方网站:

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Elasticsearch:加快 HNSW 图的合并速度
作者:来自 ElasticThomas Veasey及Mayya Sharipova 过去,我们曾讨论过搜索多个 HNSW 图时所面临的一些挑战,以及我们是如何缓解这些问题的。当时,我们也提到了一些计划中的改进措施。本文正是这项工作的成果汇总。 你可能会问,为什么要使用多个图?这是 Lucene 中架构选择的一个副作用:不可变段(immutable segments)。正如大多数架构决策一样,它既有优点也有缺点。例如,我们最近正式发布了无服务器版本的 Elasticsearch。在这个背景下,我们从不可变段中获得了非常显著的优势,包括高效的索引复制、索引计算与查询计算的解耦,以及它们各自的自动扩展能力。对于向量量化,段合并让我们有机会更新参数,以更好地适应数据特性。在这个方向上,我们认为通过测量数据特性并重新评估索引选择,还可以带来其他优势。 本文将探讨我们为显著减少构建多个 HNSW 图的开销,特别是为了降低图合并成本所做的工作。 背景 为了保持可管理的段(segment)数量,Lucene 会定期检查是否需要合并段。这基本上是检查当前段数量是否超过了一个由基础段大小和合并策略决定的...
- 下一篇
EasyGoAdmin 敏捷开发框架 Gin+Layui 版本 v3.0.0 发布
v3.0.0 更新内容: 1、优化核心类库和模块; 2、修复近期用户反馈的问题; 一款 Go 语言基于 Gin、Xorm、Layui、MySQL 等框架精心打造的一款模块化、高性能、企业级的敏捷开发框架,本着简化开发、提升开发效率的初衷触发,框架自研了一套个性化的组件,实现了可插拔的组件式开发方式:单图上传、多图上传、下拉选择、开关按钮、单选按钮、多选按钮、图片裁剪等等一系列个性化、轻量级的组件,是一款真正意义上实现组件化开发的敏捷开发框架。 软件信息 软件名称:EasyGoAdmin 敏捷开发框架 Gin+Layui 版本 官网网址:https://www.easygoadmin.vip 文档网址:http://docs.gin.layui.easygoadmin.vip 演示地址:http://manage.gin.layui.easygoadmin.vip 版本说明 版本名称 版本说明 版本地址 GoFrame+Layui 混编版 采用 GoFrame、Layui 等框架研发 https://gitee.com/easygoadmin/EasyGoAdmin_GoFrame_La...
相关文章
文章评论
共有0条评论来说两句吧...