服务器通用背板管理(UBM)实现
本文分享自天翼云开发者社区《服务器通用背板管理(UBM)实现》,作者: 乘风
一 UBM概述
通过SGPIO 进行 SAS 和 SATA 背板管理的 SCSI 机箱服务 (SES) 标准于 2003 年首次推出。该规范提供主机控制 LED,并允许主机检测槽位和已安装驱动器的存在,以及槽位编号方案。该规范提供了驱动器活动和故障指示,同时控制器可以通过协议自动识别设备类型、分支和速度。 SGPIO 自 2006 年以来一直保持不变。此后,许多创新增加了背板管理的复杂性,超出了 SES 和 SGPIO 的能力。
现代存储产品包括多通道驱动器和第三种驱动器协议,即 NVMe。为了确保相同级别的存储功能,需要更智能的背板。这种需求产生了通用背板管理 (UBM) 标准。
Universal Backplane Management (UBM)为主机提供了一个通用背板管理框架,以确定 SAS/SATA/PCIe 背板功能、Drive Facing Connector (DFC) 状态和控制信息,并读取背板的面向驱动器的连接器(DFC)到面向主机的连接器Host Facing Connector (HFC) 的端口路径。
采用 UBM 标准可实现背板管理的两个关键方面:
在服务器内构建一套完全可互换的背板,无论背板与主机的接口或背板支持的介质如何变化。在各种存储架构中使用 UBM 是通用的,它可以避免手动配置的复杂性和错误配置的成本。
能够创建支持驱动器槽位内完全可互换的存储介质类型的背板,包括在系统运行时在 NVMe 和 SAS/SATA 之间进行切换。
二 UBM组成
UBM 可用于在单个驱动器机架中创建支持所有三种协议的 SAS/SATA 背板、NVMe 背板或组合背板。 同样,UBM 规范可用于带有 SAS/SATA 扩展器和 PCIe 开关的背板。UBM 使支持 UBM 的主机(例如 CPU、RAID 或 HBA 卡或其他存储控制器)能够准确了解背板的功能,以及感知驱动器类型和存在。
UBM 系统的组件由 FRU 和 UBM 控制器组成,它们通过 2 线接口连接到主机。

2.1 2线接口
UBM使用边带信号定义SAS,其他的标准定义使用2线模式。服务器主板的BMC提供到背板的2Wire主接口,可以实现对于背板的统一管理和远程控制,固件更新等功能。2Wire主接口定义 了UBM 背板管理功能和主机到背板的端口通路信息。该2Wire主接口会与背板上的UBM 控制器2Wire从接口和UBM FRU 2Wire接口互联。UBM 控制器2Wire从接口,提供背板点灯功能和 DFC 状态和控制描述符。连接到同一个 2Wire从接口的 UBM FRU 为一个NVRAM,实现了一个格式化的IPMI FRU 。同时,为了支持PCIE设备,例如NVME SSD硬盘,该2wire接口还会连接到MUX bridge,用于2wire接口扩展,以实现同一2wire接口管理多个PCIe SSD设备。
2.2 UBM FRU
提供将背板识别为支持 UBM 的子系统的方法,并通过 2 线接口连接到主机。UBM FRU 是具有 IPMI FRU 格式内容的 256 字节只读 NVRAM,负责上报静态背板信息,使用单字节 2Wire 寻址。
定义主机创建访问映射的端口路径信息描述符,该访问映射由面向驱动器的连接器 (DFC)、端口链路宽度、面向主机的连接器 (HFC) 和 HFC 起始通道组成。
指定连接到 HFC 的 UBM 控制器的 2 线地址,允许存储控制器访问。
2.3 UBM控制器
负责管理面向驱动器的连接器 (DFC),通过 2 线接受预先确定的命令序列,可分为以下几类:
控制器状态和身份:报告命令和控制器状态。
背板功能:反映 UBM 控制器实现支持的功能。
面向驱动器的连接器状态:允许 UBM 控制器报告每个面向驱动器的连接器中“安装了什么”的关键功能。
定义 PCIe 参考时钟预期、PCIe 复位预期、PwrDIS 信号支持和双端口支持。
背板 UBM 控制器固件更新
三 UBM操作
3.1 驱动器检测
驱动器类型识别是通过从驱动器中采样 PRSNT#、IFDET# 和 IFDET2# 引脚来执行的。 这些引脚的值通过 DFC 状态和控制描述符命令报告给主机。 驱动器引脚状态与背板映射数据结合使用,允许将适当的配置应用于连接到该驱动器的存储控制器 PHY。
3.2 端口分叉
支持从面向主机的连接器到面向驱动器的连接器的 x4 或 x2 连接的背板可分别重新用作 x2 或 x1 背板。 这是使用端口分叉字段完成的。 当从主机连接到背板的电缆不再直接映射,而是连接每个驱动器只有一条链路时,背板将以 DFC 的宽度分为两部分运行。 通过使用端口分叉字段,可以在两种配置中使用单个背板,从而减少所需的背板 SKU 数量。
3.3 LED 和电源控制
LED 和电源控制是使用 SES 阵列设备元素字段执行的,类似于 SAS 扩展器。 主机可以通过 UBM 控制器的 2 线接口请求以下操作:
禁用电源
灯识别 LED
显示“重建”LED 模式
显示“失败的阵列”LED
如果LED 闪烁模式超出了 UBM 规范的范围,可以遵循 IBPI 规范 SFF-8489,对应于主机与 UBM 控制器接口发出的信号。
3.4 复位、REFCLK 控制
FRU 通过定义以下内容来定义背板和主机之间的状态和控制信号接口:
PCIe 参考时钟预期
PCIe 重置预期
PwrDIS 信号支持
双端口支持(如果适用)
3.5 通过 BP_TYPE 支持 SGPIO
BP_TYPE 信号指示背板是否支持 SGPIO 或 2 线接口。 使用信号的状态,主机可以确定它是应该使用 SGPIO 还是继续进行 UBM 发现。
3.6 维护
UBM 规范允许通过 UBM 控制器固件更新过程更新控制器代码。
四 UBM实现示例
UBM可以实现HFC通过x1、x2、x4或其它lane带宽连接多个DFC,还可以支持多个面向主机的连接器。但是,对于同一背板,UBM 控制器实现应在同一背板内提供唯一的面向主机的连接器标识字段,指示相同的背板编号字段。 多个面向主机的连接器不应将其 2Wire 接口与其他面向主机的连接器 2Wire 接口互连。
下图的 UBM 系统部署视图显示了主机(例如,适配器、PCIe 交换机、SAS 扩展器)和背板之间的连接关系。 服务器机箱内可以只有一个背板,也可能存在多个背板。 支持直接连接主机或存储控制器的 U.2 NVMe 和 SAS/SATA。每个面向主机的连接器支持两个 x4/x2/x1 U.2 NVMe 驱动器或 4 个 x1 SAS/SATA 驱动器。UBM 控制器位于背板上,用于管理来自驱动器的控制和状态信号。高速电缆和边带 I/O 信号用于与背板通信。UBM FRU 应在 0xAE 的固定 8 位地址上进行 2Wire 寻址。 UBM FRU 提供主机与底板上的 UBM 控制器通信所需的 UBM 控制器 2Wire 地址。

服务器通用背板管理(UBM)实现的更多相关文章
- 解析大型.NET ERP系统 通用附件管理功能
大型系统具备一个通用的附件管理功能,对于单据中无法清晰表达的字段,用一个附件图片或附件文档表示是最好的方法了.比如物料清单附加一张CAD图纸,销售订单评审功能中附加客户的各种表格,通用附件功能对系统起 ...
- 【原创】C#通用权限管理-程序安全检查,这些你一定要考虑到位
接触通用权限已经一年,现在使用已经很熟练,分享通用权限管理下面的一些好的开发思想. 安全漏洞对于一个小项目来说,可能不是特别的重视,对于一个大项目来说,这是特别重要需要注意的,特别是在项目开发中的就要 ...
- C#通用权限管理-程序安全检查,这些你一定要考虑到位
接触通用权限已经一年,现在使用已经很熟练,分享通用权限管理下面的一些好的开发思想. 安全漏洞对于一个小项目来说,可能不是特别的重视,对于一个大项目来说,这是特别重要需要注意的,特别是在项目开发中的就要 ...
- Winform开发框架之通用附件管理模块 --SNF快速开发平台3.3-Spring.Net.Framework
最近项目太多都没有时间写文章了,实际项目需求一,CS端和windows平板都需要附件上传管理功能.以前做的都是BS的附件管理和上传功能.本来计划在Winform上嵌套一个浏览器直接用bs的附件上传功能 ...
- 使用 ipmitool 实现 Linux 系统下对服务器的 ipmi 管理
http://www.ibm.com/developerworks/cn/linux/l-ipmi/ 1.简介 IPMI(Intelligent Platform Management Interfa ...
- winform快速开发平台 -> 通用权限管理之动态菜单
这几个月一直忙APP的项目,没来得及更新项目,想想该抽出时间整理一下开发思路,跟大家分享,同时也希望得到宝贵的建议. 先说一下我们的权限管理的的设计思路,首先一个企业信息化管理系统一定会用到权限管理, ...
- 谈谈我的windows服务器运维管理
我们开发的页游General War(http://gw.gamebox.com)上线运营也有半年多了,服务器的开发到运维基本都由我一手包办,在服务器上线之后我们又招了一个程序员接手后续功能的开发,而 ...
- 基于吉日嘎拉的通用权限管理Webform版老界面bug修复
虽然弄了新界面<基于吉日嘎底层架构的通用权限管理Web端UI更新:参考DTcms后台界面>,但老界面的一点菜单显示的问题还是让我这种强迫症揪心,终于今晚可以美美的睡觉了. 老代码用了Ses ...
- 基于吉日嘎底层架构的通用权限管理Web端UI更新:参考DTcms后台界面
经一周的研究学习,看了国内的H+.HUI等,国外的PaperDashboardPro.Make.Metronic BootStrap等,最终选定用一个轻量的,适合中国人的,来自DTcms的后台管理UI ...
- 使用本地服务器组来管理局域网或公网上的SQLSERVER
使用本地服务器组来管理局域网或公网上的SQLSERVER 测试的两台机器 Windows7 64位 SQLSERVER2005 SP5 Windows7 64位 SQLSERVER2012 S ...
随机推荐
- Linux 文件删除空间没有释放问题
最近阿里云频频告警.磁盘使用率飙升90%以上.遂查看磁盘使用情况 df -h 发现使用率却是很高 之后,通过du -h --max-depth=1 / 查看哪个目录下占用的资源较多并进行删除 后来发现 ...
- Codeforces Round 887 (Div. 2)
C. Ntarsis' Set (\(1 \leq n,k \leq 2 \cdot 10^5\)) 题解:思维 + 二分 我们不妨反向考虑 由于答案最后一次一定在第一个位置 所以答案上一轮一定在 ...
- Javascript遍历目录时使用for..in循环无法获取Files对象和SubFolders对象问题的解决方法
1 Javascript遍历目录时使用for..in循环无法获取Files对象和SubFolders对象 1.1 问题场景 在JavaScript中遍历目录,使用for.. in循环时,无法获取到 ...
- uniapp h5 和 小程序互相传值
小程序端 <template> <div> <web-view :webview-styles="webviewStyles" :src=" ...
- linux web终端wetty食用方法
学校有些机房电脑性能贼垃但又不得不去那些机房上课 我也不想带电脑,于是弄台廉价的服务器 本来想拿个公网ip配frp连我电脑完事 想到vim是在终端中运行的编辑器 于是想弄个web终端然后就找到了wet ...
- 权限控制(acl,rbac)
目录 一.权限控制(acl,rbac) 一.权限控制(acl,rbac) 将来我们编写的项目主要分成两类:公司内部项目和互联网项目 公司内部项目 使用RBAC-基于角色的访问控制 什么是RBAC? R ...
- 用Python让两组数据纵向排序
一.引言 在数据处理和分析中,排序是一项非常基础且重要的操作.排序可以帮助我们更好地理解数据,发现数据中的模式和规律.在Python中,我们可以使用多种方法对数据进行排序.本文将详细介绍如何使用Pyt ...
- IDE提交Git出现husky>pre-commit错误
若使用IDE提交Git出现以下错误: 则是ES6在提交校验过程中出现了问题,强制提交方式为: 命令行: git commit --no-verify IDEA: 在提交时取消勾选Run Git hoo ...
- Qt/C++音视频开发58-逐帧播放/上一帧下一帧/切换播放进度/实时解码
一.前言 逐帧播放是近期增加的功能,之前也一直思考过这个功能该如何实现,对于mdk/qtav等内核组件,可以直接用该组件提供的接口实现即可,而对于ffmpeg,需要自己处理,如果有缓存的数据的话,可以 ...
- Qt编写可视化大屏电子看板系统27-模块5负荷分布
一.前言 负荷分布模块包括工序计划负荷.当日负荷.负荷百分比三个子模块,工序计划负荷用表格的形式展示不同工序在不同日期的负荷工作时长,比如组装工序在 2022-02-10 运行了88小时,一般表格显示 ...