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

超详细openBmc Virtual Media 功能及实现流程(1)

后续会 持续更新相关debug 技巧

1. VirtualMedia 功能介绍:

  • BMC的 Virtual Media(虚拟介质) 功能是一项重要的远程管理特性,主要用于通过远程服务器模拟本地存储设备(如 CD/DVD)供主机访问;
  • 基于VirtualMedai 功能,管理员可以加载本机镜像,并将镜像挂载到远程服务器主机,从而实现远程镜像安装,而无需去机房接入实际的镜像介质。

2. VirtualMedai 实现框架:

2.1 VirtualMedia Module 依赖:

  • 浏览器:该功能需要浏览器加载本机镜像
  • bmc 服务:该功能需要bmc VirtualMedia 服务通过websocket 与浏览器沟通
  • nbd 网络块:该功能需要nbd 网络块设备能将远程的sock 数据通过内核块转入bio_vec
  • USB-Gadget:该功能需要usbGadget 将网络块nbd与USB设备的file 进行关联,以遍bio_vec 中的数据可以通过USB 到达主机

2.2 镜像数据传输流程:

  • 本地镜像上传浏览器,然后通过websocket 发送给bmc VirtualMeida 服务
  • bmc VirtualMedia 从websocket 读取数据并写入管道
  • nbd_proxy 进程从管道读取数据并写入sock_client
  • nbd 服务接收sock 数据并存储到bio_vec以便通过USB 协议传输给主机;

2.3 底层cmd 传输流程:

  • 底层USB 请求转化为块请求,然后通过nbd server sock 通知到nbd_client
  • nbd_proxy 从sokcet 读取数据并写入pipeout
  • bmc VirtualMedia 从pipeout 中读取请求数据并通过websock 发送给NBDServer.js
  • NBDServer.js 从load的文件中读取指定偏移&指定长度的数据

2.4 框架简化:

在这里插入图片描述

3. VirtualMedia 的具体实现:

3.1 Web code Flow:

在这里插入图片描述

3.2 nbd-proxy Flow:

在这里插入图片描述

3.3 nbd-client Flow:

在这里插入图片描述

3.4 nbd Module Flow:

参考我之前所写文章:
https://blog.csdn.net/gege_hxg/article/details/148118291?spm=1001.2014.3001.5501

3.5 VirtualMedia 整体传输Flow:

  • 详细请下载openbmc_VirtualMedia_allFlow.drawio 文件;
    在这里插入图片描述

4. 感悟:

  • 刚拿到openbmc code 不知道VirtualMedia 所依赖的Module 有哪些,对应哪些Source;
  • 需要查阅openbmc 开源技术文档确认VirtualMedia 的大致流程,VirtualMedia 开源技术文档参考如下:
    • https://github.com/openbmc/docs/blob/master/features.md
    • https://github.com/openbmc/docs/blob/master/designs/virtual-media.md
  • 从代码中依据数据传输线进行确认,找到所依赖的进程以及整个数据传输流程;

相关文章:

  • 使用Rancher在CentOS 环境上部署和管理多Kubernetes集群
  • nginx配置跨域请求,后台不用配置啦,完美
  • VMware虚拟机突然无法ssh连接
  • 消除爆红 [vue/no-unused-vars] ‘row‘ is defined but never used.eslint-plugin-vue
  • 【NGINX】-11 nginx 平滑升级
  • 如何使用patch-package给npm包打补丁
  • halcon 连接相机
  • 扫描电镜:打开微观世界的“超维相机“
  • 晶圆隐裂检测提高半导体行业效率
  • LNCS-2009《Adaptive Sampling for $k$-Means Clustering》
  • 探索Dify:开启大语言模型应用开发新时代
  • 2025电工杯数学建模A题思路数模AI提示词工程
  • 从细胞工厂到智能制造:Extracellular 用时序数据库 TDengine 打通数据生命线
  • LIEDNet: A Lightweight Network for Low-light Enhancement and Deblurring论文阅读
  • uni-app/vue2:微信小程序实现文件流的下载及预览
  • 【菜狗work前端】小程序加if判断时不及时刷新 vs Web
  • 微气象在线监测装置:精准感知环境变化的科技之眼
  • 微信小程序用<web-view 嵌入h5网页,改了h5网页后,可能是缓存的原因,小程序上看还是原来的,怎么处理
  • AI浪潮下,媒体内容运营的五重变奏
  • IP 地址反向解析(IP反查域名)的原理详解
  • 北方网天津疫情/网络推广优化是干啥的
  • 沈阳网站开发简维/黑龙江头条今日新闻
  • 网站推广营销策划方案/seo快速排名软件品牌
  • 组织建设方面存在的问题/漯河seo推广
  • 建设银行包头分行网站/一个完整的策划案范文
  • 南通网站排名团队/如何实现网站的快速排名