购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.6 持久内存的管理

2.6.1 带内管理和带外管理

管理软件由外部管理实体组成,可以间接访问持久内存。这些组件通常会包含在IBM Systems Director、HP BTO Software、VMware vCenter中。英特尔提供的接入现有管理基础架构的组件,可以涵盖整体服务器或企业级管理。管理软件可以通过带内路径或带外路径管理持久内存。一般来说,OEM交付的管理软件使用的是带外管理路径,而OSV或ISV交付的管理软件使用的是带内管理路径。

持久内存的管理可以是带内的,其中所有可管理性功能通过UEFI或操作系统接口在主机上运行;持久内存的管理也可以是带外的,其中一些属性可以通过基板管理控制器(Baseboard Management Controller,BMC)进行管理。可以带外管理的功能包括安全性、运行状态、持久内存控制器固件版本升级等。持久内存管理架构如图2-11所示。

图2-11 持久内存管理架构

1.带内管理

在持久内存的系统中,BIOS负责配置持久内存子系统并建立地址映射。预引导BIOS通过ACPI机制提供PCAT和持久内存固件接口表,其中持久内存的管理依赖于PCAT。管理库与持久内存驱动通信,后者又使用ACPI/DSM方法将邮箱指令(Mailbox,MB)发送到各个持久内存,ACPI/DSM方法在系统BIOS提供的ACPI ASL代码中实现。

持久内存UEFI管理软件是指用于在预引导环境中管理持久内存的UEFI驱动和应用程序。预引导环境(在操作系统加载之前)优于其他管理环境,另外当操作系统不可用或不支持时,仍然可以通过持久内存UEFI管理软件管理持久内存。UEFI驱动具有直接访问硬件寄存器的权限,因此可以提供底层的管理控制,如直接访问持久内存固件邮箱指令或执行硬件指令。此外,在加载操作系统前,UEFI驱动可能还有更适合的操作,如解锁持久内存。最后,UEFI驱动可以将持久内存命名空间提供给引导加载程序,以允许直接从持久内存上启动操作系统。持久内存UEFI管理软件(见图2-12)包含如下关键组件。

● UEFI驱动用于在预引导环境中提供管理接口并向引导加载程序提供命名空间;

● HII包含UEFI驱动中打包的表单和字符串,用于在BIOS设置菜单中配置和管理持久内存;

● 命令行接口应用,用于在UEFI Shell中提供持久内存的基本管理。

图2-12 UEFI管理软件

(1)UEFI HII.

英特尔将为常用的操作系统或VMM生成带内操作管理栈,依赖此集合之外的操作系统或VMM的最终用户可以使用人机交互接口(HII)管理持久内存,UEFI允许将操作系统加载程序和平台固件的引导菜单合并到单个平台固件菜单中。UEFI HII可以提供交互式配置和排除故障的功能,UEFI HII驱动负责生成UEFI HII表单并将其注册到UEFI HII管理器。其中,一些表单是静态的(如包含库存信息的表单),其他表单(如命名空间表单)需要回调。HII浏览器是标准的UEFI组件,负责在控制台上显示这些持久内存表单。BMC通常支持键盘视频鼠标重定向(KVMr)和LAN上串行控制台重定向等功能,它们允许从远程管理服务器调用UEFI HII。UEFI下持久内存的HII驱动使用与基本驱动相同的体系结构构建,但二者有一些区别,CR HII驱动绑定到由基本驱动安装的EFI_NVMDIMM_CONFIG_PROTOCOL上,运行状况协议调用将传递给基本驱动,并且不会创建任何子句柄。

(2)UEFI CLI.

当操作系统不可用时,可以利用UEFI CLI来执行持久内存的管理功能。UEFI CLI是UEFI Shell的应用程序,遵循UEFI Shell中使用SM-CLP语法的命令,使用持久内存UEFI驱动支持协议(主要是自定义协议)作用在持久内存上。UEFI CLI独立于BIOS单独打包,必须从UEFI Shell手动加载。

持久内存操作系统管理软件引入了一系列全新的功能属性,随着时间的推移,持久内存和NVDIMM将变得无处不在,接口和操作系统将不断发展以适应这些新的功能属性。在此期间,厂商为持久内存提供特定的软件工具用于管理特定操作系统下的持久内存。操作系统为带内管理功能提供了铺垫,但是为了管理数据中心的数千台服务器,服务器管理通常在带外完成。因此,用于持久内存的带内管理软件专注于一些不能独立编写工具的客户,或者以厂商提供的接口为基础,为目标系统提供集中调试和分类环境。持久内存操作系统管理软件包含的关键组件如图2-13所示。

图2-13 持久内存操作系统管理软件包含的关键组件

应用程序编程接口库(API)为持久内存提供编程管理接口,对于开发人员来说十分方便。API是底层驱动和操作系统上的抽象层,抽象的目的是简化界面、跨操作系统或驱动统一API,并在使用该库的应用程序中减少编程错误。API可以抽象应用程序和操作系统的内部实现细节,同时保留大量适配层接口,实现代码操作的系统不可知。适配层接口抽象了底层通信,底层的库和驱动可以随着时间的改变而改变,而不影响上层应用程序。

操作系统CLI在操作系统环境中为最终用户或管理员提供Shell访问,以便开发脚本和自动管理持久内存。操作系统CLI公开持久内存所有可管理功能,并遵循与UEFI CLI相同的语法。

监控程序(Monitor)是一个系统服务(Windows)或守护程序(Linux、ESXi),可以作为操作系统的后台,选择性启动,以实现如下两个目的。

● 健康监视器:检测持久内存以捕获健康变化和事件;

● 性能监视器:随着时间记录持久内存的性能。

2.带外管理

带外管理一般通过BMC实现。对于通过BMC实现的带外管理,OEM厂商一般期望相对于传统内存,持久内存可以拥有更高级别的带外管理权限,以便更灵活地进行配置和监测。BMC可以通过OEM厂商选择的接口反向连接持久内存的可管理功能。

BMC可与持久内存进行通信,其方式是通过SPD总线的直接物理路径与PECI接口连接。图2-14所示的带外管理流程图说明了这个概念。

图2-14 带外管理流程图

2.6.2 温度管理

温度管理可在运行参数范围内管理持久内存温度,并为风扇转速控制算法提供主动反馈。对于内存子系统来说,其在工作温度范围内正常工作非常重要,该温度管理是通过监控和节流操作的组合实现的,如图2-15所示。在发生灾难性组件故障(散热器、风扇故障除外)的情况下,内存子系统必须向平台发出信号以关闭内存子系统的电源。

图2-15 温度管理流程图

持久内存的温度管理用于确保其在规定的温度范围内运行,其通过监控温度信息和管理内存带宽的方式,将温度保持在定义的温度范围内。该温度信息会主动传递给风扇转速控制算法,以确保冷却能力随持久内存功耗的变化而调整。由于这种方法需要直接测量持久内存的温度,所以被称为闭环热节流架构(CLTT)。持久内存支持温度传感器,DRAM的方法是将持久内存上的温度传感器作为SPD提供给I 2 C;持久内存的方法是将多个温度传感器组合成一个有效的传感器,并将其作为SPD提供给I 2 C。在任何情况下,温度控制单元(PCU)都会定期轮询温度传感器数据,PCU通过PECI接口将此信息提供给BMC或ME,并将温度信息发送给内存控制器节流单元。内存控制器可以实现基于滞后的阈值逻辑(该逻辑可以在不同带宽级别之间进行选择),具有在温度超过阈值时发出事件信号的功能。

持久内存包含多个温度传感器,当通过风扇转速控制算法无法降低温度且持久内存的介质温度或控制器温度超过节流阈值时,就会触发持久内存热节流。此时,持久内存功能会逐渐降低,持久内存的带宽也会相应降低。当热节流仍然无法满足降低持久内存温度的要求时,随着组件温度的上升,将触发持久内存过热关机。 a3+BQGgF+xR24o7dNik5f8aI9k/EM7iGxEOre5CMKifaSfv961gQ8MFu6DvuBuyh

点击中间区域
呼出菜单
上一章
目录
下一章
×