NVDIMM原理与应用之四:NVDIMM的数据恢复、使用和监控

简介:


NVDIMM原理与应用之四:NVDIMM的数据恢复、使用和监控

  1. NVDIMM的主要结构

nvdimm的内部集成了SDRM、NAND控制器和Flash,还包括兼容DDR规范的I2c接口,以某款常见的NVDIMM为例,主要构造如下图所示:

wKiom1hsTmmwavHZAAEu9HbL0-I290.png

2. NVDIMM datarecovery

NVDIMM掉电保存和恢复数据的功能,需要依赖于NVDIMM超级电容、CPU芯片、主板电路和BIOS的协同工作。系统突然掉电或者重启的时候,主板上专门的电路设计保证触发ADR,此时在nvdimm超级电容提供电力,保证NVDIMM SDRAM上的数据能够即使写到nvdimm的NAND Flash上去。不同的主板可能会实现不同的触发ADR的硬件电路。比如笔者手头上的某款服务器,下面的操作会触发ADR:


CPU Reset
BMC initiated power cycle (confirm)
AC power lost (confirm)
0xCF9 reboot (confirm)
CPU thermal trip assertion
CAT/IERR assertion

ipmitool chassis power cycle (confirm)


这里特别需要引起重视的是,如果上面的操作和下面不能触发ADR的操作混淆或者相邻执行,就不会触发ADR,进而可能导致数据丢失:

ipmitool chassis power reset (confirm)

BMC initiated reset (confirm)


而在系统再次启动的过程中, 如果flash里有完整的内存映像,硬件会自动把它写到nvdimm SDRAM。



3. NVDIMM usage


不同的NVDIMM厂商会提供不同的SDK,开发者需要参考SDK里提供的文档、示例代码和乃至驱动源代码,根据实际要应用的场景,选择合适的驱动类型、Cache模式和API和来实现自己的功能。以笔者手头上的NVDIMM为例,需要按照下面的步骤设置和使用nvdimm:

Once Restore is complete and the system boots up to OS; here are the things to do:


  • Check valid image Restored status


  • Check all the conditions as mentioned in following table


  • ARM


  • ClearSDV


Ready for SAVE


4. NVDIMM RAS monitor

实际使用NVDIMM的过程中,如果NVDIMM持续处于高温的状态,会急剧缩短它的使用寿命;此外,nvdimm上的Flash也有一定的擦写次数的限制。而且,如果nvdimm的超级电容里电量不够一次SAVE操作,也会发生数据丢失的情况。因此,为了保证nvdimm的可靠性、可用性,及时预报掉电或者重启后不能恢复数据的情况,需要监控一些nvdimm RAS相关的状态,包括电容温度、电量、flash老化率等等。下面是针对笔者的某款NVDIMM的监控列表,仅供参考:

Type

Must check for saving data

and/or restoring data?

Valid Rang

Invalid Rang

Event Severity

Poll interval

DIMM connected

Must check

Connected

Not

Connected

High

Once

SuperCap connected

Must check

Connected

Not

Connected

High

Once

Charge Level

Must check for saving data

ARX_CHARGE

Others

High

12h~24h

Flash Life Level

Must check for saving data

>=10

<10

High

12h~24h

Capacitor Healthy

Better to check

healthy

EOL

?

12h~24h

Temperature

Better to check

0~65C

>65

Normal

12h~24h

Armed Status

Must check for saving data

Armed

Not Armed

High

once

Valid Image Restored Status

Must check after recovering data

Valid

Valid

High

Once per

recover

Valid Image available Status

Not need check

-

-

-

Never




5. NVDIMM内存使用方式


  • 支持nvdimm的bios会在系统内存初始化的时候探测到nvdimm并分配特殊的类型符;


  • nvdimm驱动实现nvdimm逻辑设备open/close/ioctl/mmap/等操作,其中mmap操作实现nvdimm内核空间到用户空间的映射


  • nvdimm SDK提供API向调用者提供nvdimm映射到用户态空间后的起始地址和长度;



















本文转自存储之厨51CTO博客,原文链接:http://blog.51cto.com/xiamachao/1888738  ,如需转载请自行联系原作者






相关文章
|
4月前
|
存储 缓存 算法
【自己动手画CPU】存储系统设计
博文“【自己动手画CPU】存储系统设计”探讨了在自制 CPU 中存储系统的设计。存储系统是计算机中至关重要的组成部分,负责存储和检索数据。文章介绍了在 DIY CPU 中实现存储系统的关键考虑因素,包括存储器的类型、存储器与 CPU 的连接方式以及数据存取的速度和效率。通过深入探讨存储系统的设计原理和实现方式,读者可以更好地理解计算机内部结构,并且为自己动手设计和构建 CPU 提供了有益的指导和启发。
146 0
【自己动手画CPU】存储系统设计
5G 物理资源 |带你读《5G空口特性与关键技术》之八
基站信道带宽是指基站侧上下行所支持的单个 NR 射频载波。同一频段下,支持不同的 UE 信道带宽。在基站信道带宽范围内,UE 信道带宽可以灵活配置。UE 的 BWP 的信号等于或者小于 RF 载波的载波资源块数时,基站就能够在任何载波资源块上收发 UE 的 1 个或者多个 BWP 的信号。
5G 物理资源  |带你读《5G空口特性与关键技术》之八
|
10月前
|
缓存 网络协议 Unix
程序员超实用的文件系统性能评测工具盘点
程序员超实用的文件系统性能评测工具盘点
|
4月前
|
存储 缓存 Linux
内存系列学习(六):ARM处理器存储访问一致性问题
内存系列学习(六):ARM处理器存储访问一致性问题
270 0
|
10月前
|
存储 固态存储 Linux
开启全新存储时代:SPDK文件系统项目实战指南
开启全新存储时代:SPDK文件系统项目实战指南
|
存储 固态存储 测试技术
服务器硬件RAID性能横评(1)(下)
服务器硬件RAID性能横评(1)
服务器硬件RAID性能横评(1)(下)
|
存储 固态存储 测试技术
服务器硬件RAID性能横评(3)
服务器硬件RAID性能横评(3)
服务器硬件RAID性能横评(3)
|
存储 缓存 固态存储
服务器硬件RAID性能横评(1)(上)
服务器硬件RAID性能横评(1)
服务器硬件RAID性能横评(1)(上)
|
存储 负载均衡 固态存储
服务器硬件RAID性能横评(4)
服务器硬件RAID性能横评(4)
服务器硬件RAID性能横评(4)
|
存储 固态存储 测试技术
服务器硬件RAID性能横评(2)
服务器硬件RAID性能横评(2)
服务器硬件RAID性能横评(2)