问题描述
- 如何触发cpu出现IERR错误,测试ipmitool sel list可以看到IERR日志;
- 如何触发内存出现ecc错误,测试通过ipmitool sel list查看到日志;
- 是否有工具来测试bmc的看门狗功能;
- 如何触发bmc出现故障宕机,用于测试bmc能够自动恢复;
- 如何测试看门狗导致bmc 内存重启时,不会影响系统正常运行
答案内容由AI生成,仅供参考:
| 测试项 | 实现方式 | 关键工具/命令 |
|---|---|---|
| 触发CPU IERR错误 | 使用“CPU出错录像测试方法”,由iBMC管理 | iBMC平台 |
| 触发内存ECC错误 | 使用 error_inject 注入CE错误 |
error_inject, ipmitool sel list |
| 查看ECC日志 | 检查SEL日志 | ipmitool sel list |
| 测试BMC看门狗 | 使用ipmitool控制看门狗 | ipmitool mc watchdog {get/off/reset} |
| 触发BMC宕机/重启 | 发送冷重置命令或耗尽内存(iBMC V2) | ipmitool raw 0x06 0x02 |
| 验证BMC重启不影响主机 | 在BMC重启期间监控主机业务 | 主机应用日志、网络连接状态 |
以上方法均基于文档中提供的实体、命令和流程构建,确保可操作性和技术一致性。
根据提供的上下文信息,以下是对您提出的测试需求的详细解答:
ipmitool sel list查看日志目前提供的上下文没有直接描述如何手动触发CPU的IERR(Internal Error)错误。IERR通常是由于严重的硬件或固件问题导致的内部处理器错误。
不过,文档中提及了一种相关的测试方法:
建议在iBMC环境中查找与CPU错误模拟相关的测试用例或诊断功能来实现此目标。
ipmitool sel list查看日志可以按照以下方式触发和检测内存ECC(Error Correcting Code)错误:
error_inject 来触发错误注入操作。CorrectableECC。ipmitool sel list 可以检索系统事件日志(SEL),其中应包含与ECC相关的传感器事件。-vvv 参数进行调试,或启用IPMI消息追踪分析通信故障。此外,BMC可通过接口 bmc.dev.Memory 获取内存相关信息,支持ECC监控和故障预测功能。
是的,可以使用 ipmitool 工具测试BMC看门狗功能。
关闭BMC自身的看门狗:
ipmitool -H <BMC_IP> -U <user> -P <pass> -I lanplus mc watchdog off
注意:此命令关闭的是BMC自身的看门狗逻辑,而非操作系统侧的看门狗。
检查当前看门狗状态:
ipmitool mc watchdog get
输出应显示:
Timer Running: yes
Timeout Action: Hard Reset
重置看门狗计时器(模拟“喂狗”):
可使用原始命令:
ipmitool raw 0x06 0x22
watchdog 服务 + ipmi_watchdog 内核模块。crontab 定期执行 ipmitool mc watchdog reset 进行喂狗。验证方式:观察系统事件日志是否出现“watchdog timeout”报警。
上下文未明确提供“主动触发BMC宕机”的标准方法,但可通过以下方式模拟相关场景:
执行冷重启命令:
ipmitool raw 0x06 0x02
该命令用于触发BMC冷复位,可模拟重启行为。
通过iBMC Web界面或命令行手动重启BMC。
验证BMC重启不影响主机系统运行(即主机仍可正常工作,不受BMC重启影响)。
ipmitool raw 0x06 0x02 主动重启BMC。| 测试项 | 实现方式 | 关键工具/命令 |
|---|---|---|
| 触发CPU IERR错误 | 使用“CPU出错录像测试方法”,由iBMC管理 | iBMC平台 |
| 触发内存ECC错误 | 使用 error_inject 注入CE错误 |
error_inject, ipmitool sel list |
| 查看ECC日志 | 检查SEL日志 | ipmitool sel list |
| 测试BMC看门狗 | 使用ipmitool控制看门狗 | ipmitool mc watchdog {get/off/reset} |
| 触发BMC宕机/重启 | 发送冷重置命令或耗尽内存(iBMC V2) | ipmitool raw 0x06 0x02 |
| 验证BMC重启不影响主机 | 在BMC重启期间监控主机业务 | 主机应用日志、网络连接状态 |
以上方法均基于文档中提供的实体、命令和流程构建,确保可操作性和技术一致性。
cpu出现IERR错误,通过einj工具和devmem2工具(开源,需要编译)进行故障注入
./devmem2 0x000401075430 32
./devmem2 0x000401075a40 32
./devmem2 0x000401070434 32 0x1
./devmem2 0x000401070a40 32 0x1
./devmem2 0x000401075430 32
./devmem2 0x000401075a40 32
taskset -c 50 ./devmem2 0x000403000000 32 &
触发内存ECC错误(UCE),通过einj工具和devmem2工具(开源,需要编译)进行故障注入
modprobe einj
echo 0x10 > /sys/kernel/debug/apei/einj/error_type
echo 0x80100000000> /sys/kernel/debug/apei/einj/param1
echo 0xffffffffffffffff > /sys/kernel/debug/apei/einj/param2
echo 1 > /sys/kernel/debug/apei/einj/notrigger
echo 1 > /sys/kernel/debug/apei/einj/error_inject
./devmem2 0x80100000000 32 0x123456789
./devmem2 0x80100000000 32
其中:0x80100000000 为内存地址:cat /proc/iomem |grep RAM获取内存地址(如:0x80100000000)
BMC看门狗功能的测试主要通过IPMI命令实现,核心工具为ipmitool,测试命令可通过IPMI接口文档查看:
设置BMC看门狗计时器:Set Watchdog Timer
复位BMC看门狗计时器:Reset Watchdog Timer
获取看门狗定时器:Get Watchdog Timer
设置看门狗超时时间限制:Set Watchdog Timeout Limit
获取看门狗超时时间限制:Get Watchdog Timeout Limit
停止硬件看门狗:Stop Hardware Watchdog
设置看门狗是否开启:Set Watch Dog Status
kill掉BMC中的核心服务构造故障场景,测试bmc自动恢复
bmc侧看门狗由framework进行喂狗,使用systemctl stop framework命令停止framework服务后停止喂狗,查看主机系统是否正常运行