图文详解!带你认识 ancert:硬件兼容性标准实现工具!| 龙蜥技术
硬件兼容性 SIG (Special Interest Group)致力于龙蜥硬件兼容性验证,包括龙蜥操作系统和不同服务器或者板卡外设之间兼容性的验证工作等,并推动龙蜥社区发行版在各种新硬件设备上的适配,围绕 Anolis OS 建立完善硬件生态。
大家都知道 OS 其实是硬件设备资源利用的抽象,所以 OS 和各个硬件设备之间是否兼容,对 OS 的稳定性是非常关键。目前,硬件兼容性验证应用场景主要包括:
硬件种类众多,各种服务器类型和硬件版卡外设,这些硬件设备与 Anolis OS 各个发行版的兼容性如何?如何评估?
Anolis OS 潜在用户如何查询自己的硬件设备与 Anolis OS 的兼容性。 IHVs,硬件设备集成商等发布的新硬件设备如何确保与 Anolis OS 不同发行版的兼容性。
发布 Anolis OS 硬件兼容性列表并持续更新。
打造、发布和维护 Anolis OS 硬件兼容性测试套件 ancert。
构建龙蜥社区硬件兼容性流程体系,包括验证标准,申请流程,硬件测试,结果验证,列表发布等流程。
《ancert 2.0 硬件兼容性测试套件用户手册》 《ancert 2.0 硬件兼容性测试套件快速开始手册》 《ancert 2.0 硬件兼容性开发者用例集成文档》 《硬件兼容性测试规范》 《硬件兼容性标准 v1 》 《硬件兼容性测试用户申请指导书》
注册登录龙蜥社区帐号。 硬件兼容性网页提交测试申请。 准备好待测试硬件环境,安装相应 Anolis OS 版本。 下载并安装硬件兼容性测试套件 ancert。 对待测硬件设备执行测试。 上传日志结果到社区申请记录,等待社区审核。 龙蜥社区硬件兼容性项目成员审核测试结果。 审核通过后发布硬件信息到龙蜥社区硬件兼容性列表上。
在这里,申请人提交完结果日志文件后会有一个状态的变更,状态会变成等待审核。如果在审核过程中发现有问题或者漏测了,可以取消申请。若是审核不通过,用户看到的状态就是审核失败,审核失败可以重新上传日志,再进行审核。当然在审核失败后,我们会通过邮箱或者钉钉和申请人取得联系,做进一步沟通。
若提交的内容都没问题,审核通过之后,相关的硬件设备信息会立刻发布到龙蜥社区硬件兼容性列表上,您可以通过提交的入口查询到相应的信息条目。
龙蜥社区硬件兼容性测试规范如下:
按需选择相应 Anolis OS 主版本,推荐选择最新发行的小版本。
相同型号整机,推荐使用最大配置进行兼容性测试,例如内存配置到最大规格。
如果硬件兼容性测试安装的是第三方驱动,则在提交测试申请的时候,需要提供第三方驱动的相关信息。
板卡外设的硬件兼容性测试,需要将板卡安装在已经通过硬件兼容性测试的机器上验证。
网卡设备测试时,需要适配到设备最大速率进行测试。
板卡外设的硬件兼容性测试,需要将板卡配置到主流配置。
整机 BIOS 版本或者板卡固件版本升级之后,需要重新进行兼容性测试。
硬件兼容性标准 v1 是 2023 年上半年发布的,主要涵盖以下内容:
标准规定了 Anolis OS 与计算机整机及各个硬件设备兼容性要求,兼容性程度,兼容性测试标准。 标准针对不同的硬件设备给出了兼容性信息和功能点的基本要求。 标准规范了硬件兼容性测试报告的基本信息和格式。
上图是板卡设备的硬件兼容性列表。目前板卡设备记录已经覆盖市面上的主流设备。
上图展示的是硬件兼容性测试套件 ancert 架构,目前已经支持了命令行的模式。ancert 的硬件探测模块,会探测整个系统上所有的硬件设备,构建设备树,并对这些设备进行分类。同时,还会把相应的测试用例和设备类别做 mapping。
ancert 包含一个简单的测试调度器,包含 Test Group、Worker、Test Case。对于大家来说,可能更多了解到的是 Test Group 和 Test Case,Worker 是后面具体的执行进程。一个 Test Group 里包含多个 Test Case,同一个 Test Group 不同的 Test Case 之间是并发执行的。
ancert 测试框架是用 Python 实现,目前 ancert 已经支持了 certify,function 和stress 等不同级别的测试,正在朝着综合硬件测试工具的方向发展:
支持 Python、Shell、C 等的测试用例。 硬件设备的探测、识别、分类。 支持并发测试。 测试进度显示。 rpm 包形式发布。 硬件信息显示。 支持不同级别的测试用例。 ……
(图/硬件兼容性 ancert 测试方法)
硬件设备兼容性测试工具包括 scp、fio、iperf 等等。另外,针对 GPU,目前已经支持了四个厂商设备的测试。
SUT 是指被测机,即 ancert 会运行在这台机器上,然后对这台机器上的某些硬件进行测试。整机测试和网络测试还需要一台辅助测试机 LTS,如果不包含网络测试,在一台机器上就可以搞定了。中间可以通过路由、交换机进行一对多的连接方式。CPU、Memory、Storage、NVMe、FC、GPU 等需要进行单机模式,System、Network 需要双机模式。
(图/硬件兼容性测试工具演示)
上图中,ancert --list_hardware All 命令可以打印 SUT 上所有 ancert 已经支持的硬件设备。比如 Memory、显卡、GPU、存储、NVMe、网卡等。
硬件设备前面的[-]代表不可选,默认要测。[1]代表可选的设备序号,可以通过--index [index] 选项选择对应的设备进行测试。[*]代表某些条件不满足,比如上图中, Intel 82599ES 网卡因为没有插网线,所以不能测试。
上图中,Intel 存储卡下面只挂了一块 Intel 的 SSD,并且是系统盘,默认是不能做存储相关测试的。单独做存储卡测试验证的时候,我们是要求必须有一块空闲的硬盘,不过,在整机测试的情况下且只有一块可测试的存储卡的情况下,我们不会要求有一块额外的空闲硬盘。
硬件兼容性测试常见问题如下:
Network 板卡测试必须连接网线,并且需要 LTS 辅助测试机。
Storage 板卡测试必须安装一块 raw 盘。
System 整机测试支持单机模式(不推荐)。因为有不少的社区小伙伴反馈,他们只有一台机器,没有辅助测试机,希望用一台机器也可以执行整机测试。所以我们当时做了单机模式,但实际上是不推荐使用这种模式的。
硬件兼容性 SIG 可以通过龙蜥社区首页(链接见文末)选择“SIG-硬件兼容性”进入。上图展示的是 SIG 的主页,包括测试标准、测试规范,还有用户手册等文档。
本次演示到这里就结束了,完整视频回放可在龙蜥官网查看。后续若有其他问题,还请搜索钉钉群号:41484363 入群交流。
https://openanolis.cn/sig/HCT
https://openanolis.cn
—— 完 ——
加入微信群:添加社区助理-龙蜥社区小龙(微信:openanolis_assis),备注【龙蜥】与你同在;加入钉钉群:扫描下方钉钉群二维码。
关于龙蜥
龙蜥社区是立足云计算打造面向国际的 Linux 服务器操作系统开源根社区及创新平台。龙蜥操作系统(Anolis OS)是龙蜥社区推出的 Linux 发行版,拥有三大核心能力:提效降本、更加稳定、更加安全。目前,Anolis OS 23 已发布,全面支持智能计算,兼容主流 AI 框架,支持一键安装 nvidia GPU 驱动、CUDA 库等,完善适配 Intel、兆芯、鲲鹏、龙芯等芯片,并提供全栈国密支持。加入我们,一起打造面向云时代的操作系统!
▼ 欢迎点击阅读原文,直达「硬件兼容性SIG」主页。