硬件兼容性测试工具
概述
oec-hardware工具是HCE提供的一款硬件兼容性测试工具,oec-hardware提供服务器整机、板卡与HCE的兼容性验证测试,验证仅限于基本功能验证,不包括性能测试等其它测试。
兼容性结论继承说明
- 整机兼容性结论继承策略
如果验证适配的服务器共主板、CPU代次相同,可以继承兼容性结论。
- 板卡兼容性结论继承策略
板卡型号一般通过四元组来进行确认,四元组信息:
- vendorID:芯片厂商ID
- deviceID: 芯片型号ID
- svID:板卡厂商ID
- ssID: 板卡型号ID
板卡兼容性结论继承有以下几点:
运行环境
- 整机测试环境要求
表1 整机测试环境要求 项目
要求
整机数量
需要两台整机,业务网口互通
硬件
至少有一张RAID卡和一张网卡(包括集成主板硬件)
内存
建议满配
- 板卡测试环境要求
表2 板卡测试环境要求 项目
要求
服务器型号
Taishan200(Model 2280)、2288H V5或同等类型的服务器,对于x86_64服务器,icelake/cooperlake/cascade可任选一种,优选icelake。
RAID卡
需要组raid,至少组raid0。
NIC/IB卡
服务端和测试端需要分别插入一张同类型板卡,配置同网段IP,保证直连互通。
FC卡
需要连接磁阵,至少组两个lun。
如果要测试外部驱动,请提前安装驱动,配置测试环境。
GPU、keycard等测试项需要提前安装外部驱动,保证环境部署完成,然后使用本工具进行测试。
- 运行环境组网
图1 运行环境组网
工具安装
本工具支持在HCE 2.0或更高版本上运行,详细支持操作系统版本信息请查看/usr/share/oech/kernelrelease.json文件。
- 获取安装包
- 在线安装
配置HCE官方repo中对应版本的repo源,使用dnf获取软件包进行安装。
- 离线安装
- 本地挂载HCE镜像,配置repo源,用于依赖获取。
- 从HCE官方repo的updates目录获取最新软件包进行安装。
- 安装过程
- 客户端
- 使用dnf安装客户端oec-hardware。
dnf install oec-hardware
- 输入oech命令,可正常运行,则表示安装成功。
- 使用dnf安装客户端oec-hardware。
- 服务端
- 使用dnf安装服务端oec-hardware-server。
dnf install oec-hardware-server
- 启动服务。本服务通过搭配nginx服务提供web服务,默认使用80端口,可以通过nginx服务配置文件修改对外端口,启动前请保证这些端口未被占用。
systemctl start oech-server.service systemctl start nginx.service
设置开机自启动。systemctl enable oech-server.service systemctl enable nginx.service
- 关闭防火墙和SElinux。
systemctl stop firewalld iptables -F setenforce 0
- 客户端
测试项
- 测试项介绍
- 执行kdump和watchdog测试项时会自动重启,建议与其他测试项分开测试,单独测试这两项。
- keycard测试项依赖开源的openssl指定版本,请在环境可以访问公网的情况下执行,或者提前将以下内容下载到/opt目录下:
- gpu测试项依赖一些开源工具,请在环境可以访问公网的情况下执行,或者提前将以下内容下载到/opt目录下:
https://github.com/NVIDIA/cuda-samples/archive/refs/heads/master.zip
- 涉及到两个节点交互的测试项时需要注意关闭两个节点上的防火墙,以免测试数据被过滤掉,如ethernet、dpdk等测试项:
systemctl stop firewalld
- usb测试项当前只涉及对usb设备是否能正常识别的测试,需要在测试过程中根据提示在不同阶段手动插入或拔除usb设备。
- /usr/share/oech/lib/config/test_config.yaml 是硬件测试项配置文件模板,fc、raid、disk、ethernet、infiniband硬件测试前需先根据实际环境进行配置,指定待测的硬件,其它硬件测试不需要配置。
- 测试项策略
表3 测试项策略 测试项
整机必测项
板卡测试项
system
√
√
acpi
√
-
clock
√
-
cpufreq
√
-
cdrom
-
-
disk
√
-
dpdk
-
-
ethernet
√
√
fc
-
√
gpu
-
√
ipmi
√
-
infiniband
-
√
kabi
√
√
kdump
√
-
keycard
-
√
memory
√
-
nvme
-
√
perf
√
-
raid
√
√
usb
-
-
watchdog
√
-
使用指导
前提条件
- /usr/share/oech/kernelrelease.json文件中列出了当前支持的所有系统版本,使用uname -a命令确认当前系统内核版本是否属于框架支持的版本。
- 框架默认会扫描所有网卡,对网卡进行测试前,请自行筛选被测网卡;要求测试端口连通,状态为up。建议不要使用业务网口进行网卡测试。
- /usr/share/oech/lib/config/test_config.yaml是硬件测试项配置文件模板,fc、raid、disk、ethernet、infiniband硬件测试前需先根据实际环境进行配置,其它硬件测试不需要配置。对于网卡测试,如果是工具自动添加的IP地址,测试完成后,为了安全,服务端的IP需手动删除。
使用步骤
- 在客户端启动测试框架。客户端启动oech。
# oech
- 填写ID、URL、Server配置项。
ID是测试的序号,可自己定义(注意:ID中不能带特殊字符);URL建议填写产品链接;Server 必须填写为客户端可以直接访问的服务器域名或 ip,用于展示测试报告和网络测试的服务端。服务端nginx默认端口号是80,如果服务端安装完成后没有修改该端口,Compatibility Test Server 的值只需要输入服务端的业务IP地址;否则需要带上端口号,比如:172.167.145.2:90。
The HCE Hardware Compatibility Test Suite Please provide your Compatibility Test ID: Please provide your Product URL: Please provide the Compatibility Test Server (Hostname or Ipaddr):
- 进入测试套选择界面。在用例选择界面,框架将自动扫描硬件并选取当前环境可供测试的测试套,输入edit可以进入测试套选择界面。
These tests are recommended to complete the compatibility test: No. Run-Now? status Class Device driverName driverVersion chipModel boardModel 1 yes NotRun acpi 2 yes NotRun clock 3 yes NotRun cpufreq 4 yes NotRun disk 5 yes NotRun ethernet enp3s0 hinic 2.3.2.17 Hi1822 SP580 6 yes NotRun ethernet enp4s0 hinic 2.3.2.17 Hi1822 SP580 7 yes NotRun ethernet enp125s0f0 hns3 HNS GE/10GE/25GE TM210/TM280 8 yes NotRun ethernet enp125s0f1 hns3 HNS GE/10GE/25GE TM210/TM280 9 yes NotRun raid 0000:04:00.0 megaraid_sas 07.714.04.00-rc1 SAS3408 SR150-M 10 yes NotRun gpu 0000:03:00.0 amdgpu Navi Radeon PRO W6800 11 yes NotRun ipmi 12 yes NotRun kabi 13 yes NotRun kdump 14 yes NotRun memory 15 yes NotRun perf 16 yes NotRun system 17 yes NotRun usb 18 yes NotRun watchdog Ready to begin testing? (run|edit|quit)
- 选择测试套。all|none分别用于 全选|全取消(必测项system不可取消);数字编号可选择测试套,每次只能选择一个数字,按回车符之后no变为yes,表示已选择该测试套。
Select tests to run: No. Run-Now? status Class Device driverName driverVersion chipModel boardModel 1 no NotRun acpi 2 no NotRun clock 3 no NotRun cpufreq 4 no NotRun disk 5 yes NotRun ethernet enp3s0 hinic 2.3.2.17 Hi1822 SP580 6 no NotRun ethernet enp4s0 hinic 2.3.2.17 Hi1822 SP580 7 no NotRun ethernet enp125s0f0 hns3 HNS GE/10GE/25GE TM210/TM280 8 no NotRun ethernet enp125s0f1 hns3 HNS GE/10GE/25GE TM210/TM280 9 yes NotRun raid 0000:04:00.0 megaraid_sas 07.714.04.00-rc1 SAS3408 SR150-M 10 yes NotRun gpu 0000:03:00.0 amdgpu Navi Radeon PRO W6800 11 yes NotRun ipmi 12 yes NotRun kabi 13 yes NotRun kdump 14 yes NotRun memory 15 yes NotRun perf 16 yes NotRun system 17 yes NotRun usb 18 yes NotRun watchdog Selection (<number>|all|none|quit|run):
- 开始测试。选择完成后输入run开始测试。
- 上传测试结果。测试完成后可以上传测试结果到服务器,便于结果展示和日志分析。如果上传失败,请检查网络配置,然后重新上传测试结果。
... ------------- Summary ------------- ethernet-enp3s0 PASS system PASS Log saved to /usr/share/oech/logs/oech-20240928210118-TnvUJxFb50.tar succ. Do you want to submit last result? (y|n) y Uploading... Successfully uploaded result to server X.X.X.X.
获取结果
- 测试日志查看
测试完成后,测试日志会保存在/usr/share/oech/logs/目录下,将测试日志导出并解压即可查看测试日志。
- 浏览器查看测试报告
浏览器查看测试报告,前提需要配置server端接收测试结果。
- 浏览器打开服务端IP地址,单击导航栏Results界面,找到对应的测试id进入。
图2 浏览器查看测试报告
- 进入单个任务页可以看到具体的测试结果展示,包括环境信息和执行结果等。
- Summary查看所有测试结果。
- Devices查看所有硬件设备信息。
- Runtime查看测试运行时间和总任务执行日志。
- Attachment下载测试日志附件。
- 浏览器打开服务端IP地址,单击导航栏Results界面,找到对应的测试id进入。