目的
了解持久化内存各种故障场景下的系统和应用行为
错误注入方法
https://docs.pmem.io/ipmctl-user-guide/debug/inject-error
测试
温度测试
# 模拟高温
$ ipmctl set -dimm Temperature=100
# 恢复
$ ipmctl set -dimm Clear=1 Temperature=1
坏块测试
# 模拟指定dimm地址0x10000200为坏块
$ ipmctl set -dimm [dimm_id] Poison=0x10000200
# 恢复
$ ipmctl set -dimm [dimm_id] Poison=0x10000200 Clear=1
寿命耗尽测试
# 模拟剩余寿命为5%
$ ipmctl set -dimm PercentageRemaining=5
# 恢复
$ ipmctl set -dimm PercentageRemaining=5 Clear=1
致命错误测试
# 模拟致命错误
$ ipmctl set -dimm FatalMediaError=1
# 恢复
$ ipmctl set -dimm FatalMediaError=1 Clear=1
ADR错误测试(Dirty shutdown)
# 模拟致命错误
$ ipmctl set -dimm DirtyShutdown=1
# 恢复
$ ipmctl set -dimm DirtyShutdown=1 Clear=1