查看原文
其他

图文详解!带你认识 ancert:硬件兼容性标准实现工具!| 龙蜥技术

硬件兼容性SIG OpenAnolis龙蜥 2023-11-30
编者按:大家都知道 OS 其实是硬件设备资源利用的抽象,所以 OS 和各个硬件设备之间是否兼容,对 OS 的稳定性是非常关键。今天龙蜥社区硬件兼容性 SIG  Maintainer 吴朝峰大家介绍龙蜥社区硬件兼容性认证的步骤和流程,以及硬件兼容性认证工具 ancert 的使用方法和步骤等。本文整理自龙蜥大讲堂 91 期,以下为本次分享内容: 

01
硬件兼容性 SIG 介绍

硬件兼容性 SIG (Special Interest Group)致力于龙蜥硬件兼容性验证,包括龙蜥操作系统和不同服务器或者板卡外设之间兼容性的验证工作等,并推动龙蜥社区发行版在各种新硬件设备上的适配,围绕 Anolis OS 建立完善硬件生态。

大家都知道 OS 其实是硬件设备资源利用的抽象,所以 OS 和各个硬件设备之间是否兼容,对 OS 的稳定性是非常关键。目前,硬件兼容性验证应用场景主要包括:

  • 硬件种类众多,各种服务器类型和硬件版卡外设,这些硬件设备与 Anolis OS 各个发行版的兼容性如何?如何评估?

  • Anolis OS 潜在用户如何查询自己的硬件设备与 Anolis OS 的兼容性。
  • IHVs,硬件设备集成商等发布的新硬件设备如何确保与 Anolis OS 不同发行版的兼容性。
硬件兼容性 SIG 主要目标:
  • 发布 Anolis OS 硬件兼容性列表并持续更新。

  • 打造、发布和维护 Anolis OS 硬件兼容性测试套件 ancert。

  • 构建龙蜥社区硬件兼容性流程体系,包括验证标准,申请流程,硬件测试,结果验证,列表发布等流程。

因为硬件兼容性测试面对的是广大社区用户和硬件厂商,所以在 SIG 文档建设方面做了很多相关的工作:
  • 《ancert 2.0 硬件兼容性测试套件用户手册》
  • 《ancert 2.0 硬件兼容性测试套件快速开始手册》
  • 《ancert 2.0 硬件兼容性开发者用例集成文档》
  • 《硬件兼容性测试规范》
  • 《硬件兼容性标准 v1 》
  • 《硬件兼容性测试用户申请指导书》
02
硬件兼容性测试申请流程
Anolis OS 硬件兼容性测试申请步骤如下:
  • 注册登录龙蜥社区帐号。
  • 硬件兼容性网页提交测试申请。
  • 准备好待测试硬件环境,安装相应 Anolis OS 版本。
  • 下载并安装硬件兼容性测试套件 ancert。
  • 对待测硬件设备执行测试。
  • 上传日志结果到社区申请记录,等待社区审核。
  • 龙蜥社区硬件兼容性项目成员审核测试结果。
  • 审核通过后发布硬件信息到龙蜥社区硬件兼容性列表上。

在这里,申请人提交完结果日志文件后会有一个状态的变更,状态会变成等待审核。如果在审核过程中发现有问题或者漏测了,可以取消申请。若是审核不通过,用户看到的状态就是审核失败,审核失败可以重新上传日志,再进行审核。当然在审核失败后,我们会通过邮箱或者钉钉和申请人取得联系,做进一步沟通。

若提交的内容都没问题,审核通过之后,相关的硬件设备信息会立刻发布到龙蜥社区硬件兼容性列表上,您可以通过提交的入口查询到相应的信息条目。

03
硬件兼容性测试规范和标准

龙蜥社区硬件兼容性测试规范如下:

  • 按需选择相应 Anolis OS 主版本,推荐选择最新发行的小版本。

  • 相同型号整机,推荐使用最大配置进行兼容性测试,例如内存配置到最大规格。

  • 如果硬件兼容性测试安装的是第三方驱动,则在提交测试申请的时候,需要提供第三方驱动的相关信息。

  • 板卡外设的硬件兼容性测试,需要将板卡安装在已经通过硬件兼容性测试的机器上验证。

  • 网卡设备测试时,需要适配到设备最大速率进行测试。

  • 板卡外设的硬件兼容性测试,需要将板卡配置到主流配置。

  • 整机 BIOS 版本或者板卡固件版本升级之后,需要重新进行兼容性测试。

硬件兼容性标准 v1 是 2023 年上半年发布的,主要涵盖以下内容:

  • 标准规定了 Anolis OS 与计算机整机及各个硬件设备兼容性要求,兼容性程度,兼容性测试标准。
  • 标准针对不同的硬件设备给出了兼容性信息和功能点的基本要求。
  • 标准规范了硬件兼容性测试报告的基本信息和格式。
其他详细内容请参阅硬件兼容性 SIG(链接见文末)。目前 ancert 作为硬件兼容性标准的实现工具,正在逐步实现标准里的规定的内容。同时,龙蜥硬件兼容性 SIG 和龙蜥标准化 SIG 正在合作制定龙蜥社区硬件兼容性标准,将于近期发布,欢迎关注。
04
硬件兼容性列表
上图是整机硬件的兼容性列表。目前龙蜥社区的硬件兼容性列表,整机记录已经是覆盖了 X86、Arm、LoongArch 等龙蜥架构。机型以服务器为主,涵盖工作站、一体机、笔记本、台式机等。这些设备的信息来源主要以厂商为主,也会有一些社区爱好者提交硬件设备。

上图是板卡设备的硬件兼容性列表。目前板卡设备记录已经覆盖市面上的主流设备。

05
硬件兼容性测试套件 ancert

上图展示的是硬件兼容性测试套件 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,目前已经支持了四个厂商设备的测试。

ancert 有两个模式,分别是 SUT(Server Under Test)和 LTS(Local Test Server)。

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 整机测试支持单机模式(不推荐)。因为有不少的社区小伙伴反馈,他们只有一台机器,没有辅助测试机,希望用一台机器也可以执行整机测试。所以我们当时做了单机模式,但实际上是不推荐使用这种模式的。
其中 GPU 的测试用例,有些特殊,我们主要依赖社区共建的方式。因为 GPU 驱动和运算库基本都是第三方的。测试之前需要提测同学提前安装好对应的 GPU 驱动以及运算库。目前 ancert 里面已经支持了四个 GPU 厂商设备的测试,如果出现测试用例不支持的情况,可以直接联系我们,或者贡献对应设备的测试用例到社区,共建测试用例。
ancert 很早之前就已经在 Gitee 上开源了,如果感兴趣,大家点击此链接查看:
https://gitee.com/anolis/ancert
下面作者给大家做下硬件兼容性 SIG 以及硬件兼容性测试申请流程的演示。

硬件兼容性 SIG 可以通过龙蜥社区首页(链接见文末)选择“SIG-硬件兼容性”进入。上图展示的是 SIG 的主页,包括测试标准、测试规范,还有用户手册等文档。

硬件兼容性 SIG 可以通过龙蜥社区首页选择“SIG-硬件兼容性”进入。上图展示的是 SIG 的主页,包括标准、测试规范,还有一些相关的文档。
硬件兼容性列表可以通过“支持-兼容列表”找到。

(图/板卡的硬件兼容性列表)

(图/整机的硬件兼容性列表)
需要选择待测设备类型,填写设备名称,选择申请人类型。如果选择厂商的小伙伴,需要在注册账号签署 CLA 时填写一下所属企业的名称。下一步上传测试结果,然后提交申请。

本次演示到这里就结束了,完整视频回放可在龙蜥官网查看。后续若有其他问题,还请搜索钉钉群号:41484363 入群交流。

关于直播课件及视频回放获取方式:
【PPT 课件获取】:关注微信公众号(OpenAnolis),回复“龙蜥课件” 即可获取。有任何疑问请随时咨询龙蜥助手—小龙(微信:openanolis_assis)。
【视频回放】:视频回放可在龙蜥官网 https://openanolis.cn/video 查看。
相关链接:
硬件兼容性 SIG 主页:

https://openanolis.cn/sig/HCT

龙蜥社区官网主页:

https://openanolis.cn

—— 完 ——

加入龙蜥社群

加入微信群:添加社区助理-龙蜥社区小龙(微信:openanolis_assis),备注【龙蜥】与你同在;加入钉钉群:扫描下方钉钉群二维码。


关于龙蜥

龙蜥社区是立足云计算打造面向国际的 Linux  服务器操作系统开源根社区及创新平台。龙蜥操作系统(Anolis OS)是龙蜥社区推出的 Linux 发行版,拥有三大核心能力:提效降本、更加稳定、更加安全。目前,Anolis OS 23 已发布,全面支持智能计算,兼容主流 AI 框架,支持一键安装 nvidia GPU 驱动、CUDA 库等,完善适配 Intel、兆芯、鲲鹏、龙芯等芯片,并提供全栈国密支持。

加入我们,一起打造面向云时代的操作系统!

往期精彩推荐
1.人人都可以参与开源!龙蜥社区最不容错过的开发者活动来了
2.小龙力荐!人人都可以完成算法代码,简单易上手
3.龙蜥社区用户案例征集开始啦,欢迎投稿!
4.《可观测性成熟度模型白皮书》正式发布,龙蜥致力打造更好用户体验
5.高性能网络 SIG 月度动态:推动 virtio 支持动态中断调节及更灵活的分流机制

▼ 欢迎点击阅读原文,直达「硬件兼容性SIG」主页。

继续滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存