SSD测试-兼容性测试-联想导入

1、介绍

导入测试:验证SSD产品能否在客户的特定硬件平台上,长期、稳定、可靠地运行,包括功能/性能类测试(性能指标)、可靠性/兼容性测试。

BBFV:联想针对 SSD 设定的"准入门测试"(Benchmark/Base-level Feature Validation)

New Platform, New Drive NN、新平台 + 新硬盘、验证"全新组合"的基准性能和兼容性是否达标
New Platform, Existing Drive NE、新平台 + 现有硬盘、验证旧硬盘在新平台上的向前兼容性(硬件升级场景)
Existing Platform, New Drive EN、现有平台 + 新硬盘、验证新硬盘在现有平台上的向后兼容性(扩容/换盘场景)
Existing Platform, FW rolling EF、现有平台 + 固件滚动更新、验证固件升级过程及升级后的功能是否正常

2、Linux测试用例

结构测试

 

1,检查NVME SSD磁盘外观和标签,如结构严密,无明显缝隙,标签字体清晰,内容无误等等;
2,装配NVME SSD到磁盘托架并拧紧4颗固定螺丝;
3,把装配好的所有磁盘插入机箱的连接背板

 

1,磁盘外观没有明显瑕疵,标签字体清晰,内容无误;
2,磁盘固定螺钉力度长度适中,能够轻松拧入并紧固,螺帽不会凸出
3,磁盘托架能够轻松插入机箱背板并扣紧无干涉

OS安装测试

 

1、开机进入bios setup界面,

将Boot Setting中的Boot mode select选项修改为UEFI模式,保存重启。
2、安装windows系统
3、登录BMC界面,查看日志&报告-“事件日志”,检查是否有与硬盘相关报错信息。
4、登录Windows系统,右键“我的电脑”-“管理“,

点击左侧“事件查看器”-“Windows日志”-“系统”,筛选关键、警告、错误事件,

查看是否有硬盘相关报错信息。

5、安装linux系统
6、检查BMC日志及系统日志messages,dmesg;
7、将Boot mode select选项修改为LegacV模式,重复步骤2~6

Get-PhysicalDisk | Select-Object FriendlyName, SerialNumber, 
FirmwareVersion, Size, MediaType, BusType
cat /etc/os-release

[ -d /sys/firmware/efi ] && echo "UEFI" || echo "BIOS"

/sys/firmware/efi目录:存在表示是UEFI启动

预期结果

 

1、bios可正常设置成功
2、windows可成功安装,

安装过程中无蓝屏、宕机、无安装包无法加载提示。

3、bmc系统日志中BMC日志无warning、critical等异常log.
4、window下系统日志中无硬盘警告、错误日志。
5、linux系统可正常安装,安装过程中无宕机、无安装包无法加载提示
6、bmc系统日志中BMC日志无warning、critical等异常log;

系统日志无NVME、link down等硬盘异常信息
7、SUT可成功设置为legacV模式,预期结果同2~6.

Linux下Warm Reboot常温压力测试

Linux下DC cVcle常温压力测试

Linux下AC cVcle常温压力测试

#改变脚本,使AutoReboot能使用Geek PDU实现掉电

1、重写ACommand
2、新建pdu_control.py

AutoReboot/
├── AutoReboot_v1.6.6.sh          # 主脚本(需改一行)
└── ToolBox/
    ├── ACommand                  # 新建的替代脚本(Python)
    ├── ACommand.bak              # 原工具备份(保险)
    └── pdu_control.py            # 你的 MQTT 控制模块(你贴的代码)
 使用:
./AutoReboot_v1.6.6.sh -A 1 -i 0.0.0.0 -f null -F null
--i、f、F随意填
1、测试历史目录会影响测试,比如cycle数这些,建议删除后测试
2、rm -rf Lenovo_*


ACommand:被 AutoReboot 调用的入口脚本,固定 PDU_ID,调用 pdu_control.py
pdu_control.py:MQTT 控制模块,提供断电/上电/延迟请求接口


pdu_monitor.py:延迟上电监控服务,监听 MQTT 请求,5秒后自动上电
 
chmod +x AutoReboot*
cd ToolBox
chmod +x ./*

#reboot
./AutoReboot_v1.3.9.x -W 200

#dc reboot
./AutoReboot_v1.3.9.x -D 200 #依赖远程10.245.65.205部署的DCmonitor.sh
#Dcmonitor.sh会持续监控你的 BMCIP,发现机器关机后自动发开机指令
./AutoReboot_v1.6.6.sh -d 1 #本机bmc控制,不依赖远程机器



#ac reboot
./AutoReboot_v1.3.9.x -A 200 #依赖外部硬件设备

  

1、测试结束如果FAIL:查看error.log,确认问题,根据提示查看disks.log 和 os_messages.log

2、确认是否为盘的问题:非盘的问题不用管

3、比如:RAID卡链路降级导致的持续报错

 

#停止测试
pkill -TERM -f AutoReboot

#进入测试目录,将目标cycle数设置为0,
sed -i 's/LimitRunCycles=200/LimitRunCycles=0/' config.ini

BBFV掉电测试

 

1.Prepare at least two target disk: OS disk and data disk;
2.pre-condition the data disk:
    2.1 4k seq write x1 user CAP;
    2.2 4k random write 20 min;
3.perform Reboot 100 cycles;
4.validate the data;

测试机:拷贝powercycle-master项目,尝试运行python3 powercycle.py -h

  • lib\config\PowerCtrl.cfg:配置服务端IP和端口

服务端:在内网机器上部署并启动 PowerCtrl 服务(确保端口开放、server端)

测试过程:powercycle.py向server服务发送测试信息,server服务控制测试机执行测试。

--测试信息:测试盘、掉电类型、循环次数等

#reboot
1. python3 powercycle.py -a 0 -l 100 -I 0 -d <data_disk> -w 1-0-0 -c
2. python3 powercycle.py -a 0 -l 100 -I 0 -d <data_disk> -w 1-0-0

#DC cycle
1. python3 powercycle.py -a 0 -l 100 -I 0 -d <data_disk> -w 0-1-0 -c
2. python3 powercycle.py -a 0 -l 100 -I 0 -d <data_disk> -w 0-1-0

#AC cycle
1. python3 powercycle.py -a 0 -l 100 -I 0 -d <data_disk> -w 0-0-1 -c
2. python3 powercycle.py -a 0 -l 100 -I 0 -d <data_disk> -w 0-0-1

BMC下NVME相关信息的检查

Redfish下NVME相关信息的检查

 

1、使用浏览器访问SUT的BMC web管理页面。
2.在“系统清单”--“存储设备”下查看NVME的硬件信息。在“传感器”内查看NVME的在位状态以及温度。
3、针对每一NVME槽位,逐一拔插NVME,确保所有NVME检查到位。
4.进入传感器界面查看硬盘温度或硬盘区域最大温度及硬盘状态;
或执行ipmitool带内/带外指令:
ipmitool sdr elist;
ipmitool -H bmc_ip -U user_name -P user_password -I lanplus sdr elist;
5.redfish-get命令查看硬盘信息:
5.1参考“联想BMC Redfish接口规范”:
控制端安装并启动postman工具,点击settings->Enable SSL certificate verification,设置为off;点击Authorization->TVPE,设置为Basic Auth,右侧Username&Password: 输入SUT的BMC用户名及密码;
5.2选择Get命令, 输入https://<bmcip>/redfish/v1/SVstems/<sVstem_id>/Drives/后,点击send。返回硬盘list-选中并点击send,逐一检查硬盘信息
或选择Get命令, 输入https://<bmcip>/redfish/v1/SVstems/<sVstem_id>/Drives/<drive_id>后,点击send。

 

1、可正常访问bmc web
2、每一NVME相关状态与BMC web显示的slot 一一对应,且所有NVME 在位状态及温度sensor显示正常。
3、所有NVME在位状态显示正确
4.硬盘温度(或区域最大温度)及硬盘状态正常显示;
5.读取硬盘信息与spec及实际一致;硬盘序列号与系统spec一致;

yum -y install jq
curl -k -u USERID:starblaze@135 https://172.19.66.22/redfish/v1/Chassis/1/Drives |jq .
curl -k -u USERID:starblaze@135 https://172.19.66.22/redfish/v1/Chassis/1/Drives/NVME0 |jq .

Linux下分区、文件系统

fdisk /dev/nvme0n1
mkfs -t ext4 /dev/nvme0n1p1
mkdir -p /home/data
blkid|grep nvme0n1p1
echo "UUID=d45d8952-8d16-4187-b70d-43687d238bec /home/data ext4 defaults 0 0">>/etc/fstab
systemctl daemon-reload
mount -a
mount /dev/nvme0n1p1 /home/data
unmount /home/data
 

MPX  24h、Linux下磁盘压力fio

fio -direct=1 -bs=64k -rw=randrw -size=100G -runtime=43200 -time_based

-group_reporting -name=64k_random_write_test -filename={disk}

 

MPx是联想自行开发、类似于Burn In Test的测试工具,

可用来进行本地或远程测试,测试对象可以是CPU、Memory、Cache、Disk等

---对Disk测试,对象必须是文件系统(分区挂载)

./RunGUI:图形化测试界面,./RunFramework:测试框架

 

查看IO:iotop -o

1、运行RunFramework、RunGUI

2、RunGUI:Tools-->Add Framework Connection--》Local

3、RunGUI:Tools-->Auto Script Generator

image

image

 

Linux-机房操作用例

NVME Active LED检查

1、在系统下对一块NVMe执行读操作,

读操作具体指令如下:dd if=/dev/nvmexn1 of=/dev/null (x=0,1,2… 代表NVMe盘符)
2、执行读操作前后,观察该NVMe盘对应的LED Active灯闪亮情况
3、killall dd结束读操作, 观察该NVMe盘对应的LED Active灯闪亮情况
4、用1~3步骤同样的方法测试其他NVMe盘.

 

1、可以顺利执行命令
2、执行读操作前该NVMe Active灯不闪烁。

(如果该盘为OS盘, 可能偶尔出现闪烁情况,视为正常);执行读操作后该NVME active灯持续闪烁. 其他盘无持续闪烁情况
3、该NVMe Active灯停止闪烁.
4、符合1~3步骤的预期结果,且闪灯情况与产品定义NVMe物理顺序一一对应

 
dd if=/dev/nvme1n1 of=/dev/null

  

 Linux下硬盘热插拔测试

 

1,装入NVME磁盘,启动进入linux系统;
2,执行lsblk命令查看全部NVME磁盘是否识别,确认磁盘没有被挂载或使用;
3,拔出n个或全部NVME磁盘,执行'lsblk'命令查看,相应位置和数量的磁盘是否已经从系统中消失;
4,插入拔出的磁盘,执行'lsblk'命令查看,相应位置和数量的磁盘信息是否再次识别并显示;
5,重复'步骤3-4' 10次以上,查看磁盘信息显示是否正常,日志是否存在磁盘相关报错

 

 

1,磁盘热插拔动作时,系统可以准确地识别磁盘状态并更新磁盘信息;
2,磁盘热插拔过程中,系统没有发生错误提示或异常;
3,测试动作结束后,系统日志中没有磁盘相关的错误记录;

 

Windows-测试用例

 

掉电相关

关闭自动修复:避免开机进入蓝屏

bcdedit /set {default} bootstatuspolicy ignoreallfailures
bcdedit /set {default} recoveryenabled No
bcdedit /set {bootmgr} timeout 0

识别

smartctl --scan

smartctl -a /dev/sda

/dev/sda 磁盘 0

image

/dev/sdb 磁盘 1  
/dev/sdc 磁盘 2  
/dev/sdd 磁盘 3  
/dev/sde 磁盘 4  
/dev/sdf 磁盘 5  
posted @ 2026-08-04 13:58  FengweiTech  阅读(10)  评论(0)    收藏  举报