修订记录
日期 | 修订版本 | 修改描述 | 作者 |
---|---|---|---|
2023-06-21 | 0.0.1 | Demo | KevinMX; 桜風の狐 |
2023-06-24 | 0.0.2 | 格式更改和文档汇总 | 桜風の狐 |
2023-06-25 | 0.0.3 | 完善文档内容 | 桜風の狐 |
2023-07-14 | 0.0.4 | 同步新内容 | KevinMX |
表格图例
*: 可参考上游官方文档补全。
**: 与 sig-QA 的质量评估标准同步。
●:表示特性不稳定,风险高。
▲:表示特性基本可用,遗留少量问题。
█:表示特性质量良好。
×:特性不可用/不支持 RISC-V。
N/A:不适用评估标准。
- 摘要
- 工作内容
- 建立测试环境
- 进行软件遴选
- 产出人工测试用例
- 运行测试
- 硬件适配与系统镜像
- 需求清单
- D1 开发板
- LicheeRV
- Unmatched
- Visionfive 1
- Visionfive 2
- 桌面
- 需求清单
- UKUI
- DDE
- xfce
- GNOME
- Kiran
- Cinnamon
- 新增备份还原功能支持
- 桌面应用
- 需求清单
- Firefox
- Chromium
- Thunderbird
- LibreOffice
- VLC
- GIMP
- 容器
- 需求清单
- Docker
- iSulad
- 安全容器
- 容器镜像构建
- 系统容器
- HA/高可用
- OpenStack Train & Wallaby
- eggo
- NestOS
- 虚拟化 Virt
- k8s 相关
- 需求清单
- kubernetes
- kubeOS
- KubeSphere
- k3s
- 内存管理
- 需求清单
- etmem
- 内核
- 需求清单
- kernel
- kconfigDetector
- Web 服务
- 需求清单
- OpenResty
- 数据库
- 需求清单
- Mysql
- 编译器
- 需求清单
- jdk
- 毕昇 JDK
- 其他
- 需求清单
- A-Tune
- secPaver
- secGear
- openGauss
- 用户态协议栈 gazelle
- 容器场景在离线混合部署 rubik
- A-ops
- IO 智能多流
- pkgship
- mindspore
- pod 带宽管理 oncn-bwm
- ROS/ROS2
- 高性能服务网格数据面 Kmesh
- 虚拟机热迁移
- 虚拟化热补丁 libcareplus
- 定制裁剪工具 (imageTailor和oemaker)
- 国密算法
- libstorage 针对 NVME 的 IO 栈
openEuler 是一款开源操作系统。当前 openEuler 内核源于 Linux ,支持多种处理器架构,是由全球开源贡献者构建的高效、稳定、安全的开源操作系统。 openEuler RISC-V 广泛支持国内外 RISC-V 架构处理器,适配全志 D1 、 Sipeed LicheeRV 、 HiFive Unmatched 、 StarFive VisionFive 等多款开发板。
本文主要描述 openEuler RISC-V 23.03 版本特性测试策略,展现现阶段测试成果,并为开展进一步测试工作提供一份相对完整的文档。特性测试按照 DFX 测试范围,利用测试用例库中的人工测试方法,基于遴选成功打包的软件,搭建测试环境并测试安装、卸载以及基本功能实现,得到测试结果,产出测试报告。
关键词:特性测试,人工测试,RISC-V
本章主要完成了软件遴选并产出测试用例,使用测试用例在测试环境下执行人工特性测试。尽管本章给出了一些具体的测试环境参数,但是后文中给出的测试结果并不一定是在这样的测试环境下得出的。
周嘉诚提供可用于运行在测试用开发板和 Qemu 环境下测试的镜像 release ,软件源使用镜像默认的软件源, Qemu 版本选用 8.0.0+ 。
从 openEuler 23.03 版本测试策略 选取上游社区的重点测试组件中(新增、继承)遴选 RISC-V 版本已支持和可支持的组件。
测试 openEuler RISC-V 最新源是否有相关包,并验证安装、卸载和基本功能可用,并制作安装文档和使用文档。如 openEuler RISC-V 最新源没有相关包,直接使用上游或下游(UKUI)源码打包。若打包成功,产出构建文档和资源。若打包失败,产出缺陷 Issue,包括失败日志和缺包清单提交到 openEuler/RISC-V Issue。
遴选得到的测试范围见 DFX 测试 。
基于遴选成功打包的软件,测试安装、卸载和基本功能,产出为测试用例,应按照 用例要求,提交到 测试用例库 新提交大概这里 这里 。
发现的缺陷,提交缺陷到 openEuler/RISC-V Issue ,应包括环境、步骤,预期效果、实际效果、截图,失败日志等。
对形成测试用例的软件,编写自动化测试脚本,界面类使用 openQA ,非界面类使用 Mugen 。
硬件适配与系统镜像部分测试使用开发板配套的测试镜像启动开发板后在开发板执行测试用例;其他测试在 Qemu 运行 Qemu 镜像,在 Qemu 虚拟机中运行测试用例,测试环境使用 Qemu 8.0.0+ 时部分测试用例需要指定 sv39 页表。
本章主要完成了 openEuler RISC-V 系统镜像对各型号硬件支持程度的测试。测试使用对应硬件适配的 openEuler 镜像,按照各型号开发板附带的说明人工烧写并启动镜像,手动按照测试要求运行测试并记录结果,测试结果整理在仓库 /Hardware_Test 目录下。
硬件相关主要进行测试
- 系统的刷写和启动
- Wifi 使用
图形界面主要进行测试
- Xfce
- Gnome
- Kiran
- UKUI
桌面软件主要进行测试
- Firefox 桌面启动
- Firefox 终端启动
- 从桌面启动 LibreOffice
- 从终端启动 LibreOffice
- 从桌面启动 Thunderbird
- 从终端启动 Thunderbird
- 从桌面启动 Chromium
- 从终端启动 Chromium
- 从桌面启动 GIMP
- 从终端启动 GIMP
- 从桌面启动 Sysprof
- 从终端启动 Sysprof
名称 | 系统安装文档 | 已测试 | 测试用例 | issues | SIG 组 | 负责人 |
---|---|---|---|---|---|---|
D1 开发板 | Y | Y | Y | sig-RISC-V | ||
LicheeRV | Y | Y | Y | sig-RISC-V | ||
Unmatched | Y | Y | Y | sig-RISC-V | ||
Visionfive 1 | Y | Y | Y | sig-RISC-V | ||
Visionfive 2 | Y | Y | Y | sig-RISC-V | ||
QEMU | Y | Y | Y | sig-RISC-V |
测试用例总数 | 通过数 | 失败数 |
---|---|---|
14 | 7 | 7 |
测试用例 | 预期结果 | 实际结果 |
---|---|---|
系统的刷写和启动 | 系统启动成功 | 系统启动成功 |
从桌面启动 Thunderbird | 正常启动 Thunderbird | 正常启动 Thunderbird |
从桌面启动 GIMP | 正常启动 GIMP | 正常启动 GIMP |
从桌面启动 Sysprof | 正常启动 Sysprof | 正常启动 Sysprof |
从终端启动 GIMP | 正常启动 GIMP | 正常启动 GIMP |
从终端启动 Sysprof | 正常启动 Sysprof | 正常启动 Sysprof |
从终端启动 Thunderbird | 正常启动 Thunderbird | 正常启动 Thunderbird |
测试用例 | 预期结果 | 实际结果 |
---|---|---|
Wifi 使用 | 可以找到无线网卡 | 无法找到无线网卡 |
Firefox 桌面启动 | 正常启动 Firefox 浏览器 | 正常启动 Firefox 浏览器 |
Firefox 终端启动 | 正常启动 Firefox 浏览器 | 无法正常启动,终端报错 Illegal instruction |
在 Firefox 观看 Bilibili 视频 | 能正常播放 Bilibili 视频 | 网页报错,无法打开网页,进而无法进行视频播放 |
Ping 需要管理员权限 | Ping 指令正常运行 | Terminal 提示需要管理员权限 |
从终端启动 Chromium | Chromium 启动成功 | Chromium 启动失败 |
从终端启动 LibreOffice | LibreOffice 启动成功,显示 LibreOffice 欢迎页面 | LibreOffice 启动失败,显示加载页面后闪退 |
使用 openEuler 23.03 RISC-V V1 版本镜像,测试其在 LicheeRV 开发板上的安装和基本功能运行是否正常。
硬件型号 | 硬件配置信息 |
---|---|
LicheeRV | CPU:全志 D1 CPU 内存:980MiB 内存卡容量:32GB |
测试用例总数 | 通过数 | 失败数 |
---|---|---|
10 | 6 | 4 |
测试用例 | 预期结果 | 实际结果 |
---|---|---|
系统的刷写和启动 | 系统启动成功 | 系统启动成功 |
Wifi 使用 | 正常进行 Wifi 的连接与断开 | 正常进行 Wifi 的连接与断开 |
从桌面启动 GIMP | 正常启动 GIMP | 正常启动 GIMP |
从桌面启动 Sysprof | 正常启动 Sysprof | 正常启动 Sysprof |
从终端启动 GIMP | 正常启动 GIMP | 正常启动 GIMP |
从终端启动 Sysprof | 正常启动 Sysprof | 正常启动 Sysprof |
测试用例 | 预期结果 | 实际结果 |
---|---|---|
Ping 权限设置不正确 | ping 指令正常运行 | ping 报错: ping: socket: Operation not permitted |
启动 Chromium | Chromium 启动成功 | Chromium 启动失败。无法显示界面,但鼠标放到相应位置时,光标有相应变化。报错 log |
启动 Firefox | 正常启动 Firefox 浏览器 | 无法启动,报错 Illegal instruction |
启动 LibreOffice | LibreOffice 启动成功,显示 LibreOffice 欢迎页面 | LibreOffice 启动失败,显示加载页面后闪退 |
测试用例总数 | 通过数 | 失败数 |
---|---|---|
18 | 14 | 4 |
测试用例 | 预期结果 | 实际结果 |
---|---|---|
系统的刷写和启动 | 系统启动成功 | 系统启动成功 |
Wifi 使用 | 正常进行 Wifi 的连接与断开 | 正常进行 Wifi 的连接与断开 |
Firefox 桌面启动 | 正常启动 Firefox 浏览器 | 正常启动 Firefox 浏览器 |
Firefox 终端启动 | 正常启动 Firefox 浏览器 | 正常启动 Firefox 浏览器 |
从桌面启动 LibreOffice | LibreOffice 启动成功,显示 LibreOffice 欢迎页面 | LibreOffice 启动成功,显示 LibreOffice 欢迎页面 |
从桌面启动 Thunderbird | 正常启动 Thunderbird | 正常启动 Thunderbird |
从桌面启动 Chromium | Chromium 启动成功 | Chromium 启动成功 |
从桌面启动 GIMP | 正常启动 GIMP | 正常启动 GIMP |
从桌面启动 Sysprof | 正常启动 Sysprof | 正常启动 Sysprof |
从终端启动 GIMP | 正常启动 GIMP | 正常启动 GIMP |
从终端启动 Sysprof | 正常启动 Sysprof | 正常启动 Sysprof |
从终端启动 Chromium | Chromium 启动成功 | Chromium 启动成功 |
从终端启动 LibreOffice | LibreOffice 启动成功,显示 LibreOffice 欢迎页面 | LibreOffice 启动成功,显示 LibreOffice 欢迎页面 |
从终端启动 Thunderbird | 正常启动 Thunderbird | 正常启动 Thunderbird |
测试用例 | 预期结果 | 实际结果 |
---|---|---|
ping 权限设置不正确 | ping 指令正常运行 | ping 报错 ping: socket: Operation not permitted |
firefox 启动卡死 | firefox 启动成功 | 系统在 firefox 打开之前卡死,或者 firefox 窗口显示后卡死。 卡死指图形界面、串口和已经连入的 ssh 均无任何响应 |
gdm 启动报错 | gdm 正常打开,显示出登录界面 | gdm 报错截图 |
gnome 启动报错 | GNOME 正常打开,显示出桌面 | GNOME 报错截图 |
测试用例总数 | 通过数 | 失败数 |
---|---|---|
16 | 15 | 1 |
测试用例 | 预期结果 | 实际结果 |
---|---|---|
系统的刷写和启动 | 系统启动成功 | 系统启动成功 |
Wifi 使用 | 正常进行 Wifi 的连接与断开 | 正常进行 Wifi 的连接与断开 |
Firefox 桌面启动 | 正常启动 Firefox 浏览器 | 正常启动 Firefox 浏览器 |
Firefox 终端启动 | 正常启动 Firefox 浏览器 | 正常启动 Firefox 浏览器 |
Kiran 桌面的安装和启动 | 成功进入桌面 | 成功进入桌面 |
从桌面启动 LibreOffice | LibreOffice 启动成功,显示 LibreOffice 欢迎页面 | LibreOffice 启动成功,显示 LibreOffice 欢迎页面 |
从桌面启动 Thunderbird | 正常启动 Thunderbird | 正常启动 Thunderbird |
从桌面启动 Chromium | Chromium 启动成功 | Chromium 启动成功 |
从桌面启动 GIMP | 正常启动 GIMP | 正常启动 GIMP |
从桌面启动 Sysprof | 正常启动 Sysprof | 正常启动 Sysprof |
从终端启动 GIMP | 正常启动 GIMP | 正常启动 GIMP |
从终端启动 Sysprof | 正常启动 Sysprof | 正常启动 Sysprof |
从终端启动 Chromium | Chromium 启动成功 | Chromium 启动成功 |
从终端启动 LibreOffice | LibreOffice 启动成功,显示 LibreOffice 欢迎页面 | LibreOffice 启动成功,显示 LibreOffice 欢迎页面 |
从终端启动 Thunderbird | 正常启动 Thunderbird | 正常启动 Thunderbird |
测试用例 | 预期结果 | 实际结果 |
---|---|---|
安装启动 ukui 桌面 | 开机进入 ukui 桌面 | 进入桌面后,鼠标只能移动,点击应用没反应,在如下两个图之间切换 |
测试用例总数 | 通过数 | 失败数 |
---|---|---|
14 | 12 | 2 |
测试用例 | 预期结果 | 实际结果 |
---|---|---|
Thunderbird 安装失败 | 成功安装并启动 Thunderbird |
Thunderbird 软件包不存在,安装失败 |
ping 执行失败 | ping 指令正常运行 |
需要管理员权限才能执行,或者需要重新安装 iputils 包 |
测试用例 | 预期结果 | 实际结果 |
---|---|---|
系统的刷写和启动 | 系统启动成功 | 系统启动成功 |
从桌面启动 Sysprof | 正常启动 Sysprof | 正常启动 Sysprof |
从终端启动 Sysprof | 正常启动 Sysprof | 正常启动 Sysprof |
从桌面启动 GIMP | 正常启动 GIMP | 正常启动 GIMP |
从终端启动 GIMP | 正常启动 GIMP | 正常启动 GIMP |
从桌面启动 Chromium | Chromium 启动成功 | Chromium 启动成功 |
从终端启动 Chromium | Chromium 启动成功 | Chromium 启动成功 |
从桌面启动 LibreOffice | LibreOffice 启动成功,显示 LibreOffice 欢迎页面 | LibreOffice 启动成功,显示 LibreOffice 欢迎页面 |
从终端启动 LibreOffice | LibreOffice 启动成功,显示 LibreOffice 欢迎页面 | LibreOffice 启动成功,显示 LibreOffice 欢迎页面 |
Firefox 桌面启动 | 正常启动 Firefox 浏览器 | 正常启动 Firefox 浏览器 |
Firefox 终端启动 | 正常启动 Firefox 浏览器 | 正常启动 Firefox 浏览器 |
在 Firefox 观看 Bilibili 视频 | 能正常播放 Bilibili 视频 | 能正常播放 Bilibili 视频 |
名称 | 说明 | 安装文档 | 使用文档 | 已测试 | 测试用例 | 当前有包/可安装 | issues | 特性质量评估** | SIG 组 | 负责人 |
---|---|---|---|---|---|---|---|---|---|---|
UKUI | 较为卡顿,需要 GPU 的部分窗口特效可能无法启动(TODO),QEMU 下需要指定 sv39 页表 | Y | Y | Y | Y | Y | I6TGR9 I6O31D I6Q24G |
▲ | sig-UKUI | |
DDE | 需要手动选择 DDE Session 启动,QEMU 下需要指定 sv39 页表 | Y | Y | Y | Y | Y | I6VGN4 | ▲ | sig-DDE | |
xfce | 镜像自带,QEMU 下需要指定 sv39 页表 | Y | Y | P | P | Y | ▲ | xfce | ||
GNOME | QEMU 下需要指定 sv39 页表 | Y | * | P | P | Y | I6QETO I6QETK I6QETA I6QET6 I6O3AY | ▲ | GNOME | |
Kiran | QEMU 下需要指定 sv39 页表 | Y | Y | Y | Y | Y | I6OZ5N I6OYL4 I6WHYU | ▲ | sig-KIRAN-DESKTOP | |
Cinnamon | 绝大部分应用从桌面无法直接启动,QEMU 下需要指定 sv39 页表 | Y | * | Y | Y | Y | I6QV1V I6QUT1 I6QV8A |
● | sig-cinnamon |
UKUI 是由麒麟团队开发的一款轻量级的Linux 桌面环境,默认搭载于优麒麟社 区各版本操作系统中,同时支持Ubuntu、Debian、Arch、openEuler 等主流 Linux 发行版。
软件包名称 | 软件包版本 |
---|---|
ukui-menu | 3.1.1 |
peony | 3.10.0 |
操作系统版本 | Qemu 版本 | vcpu | memory | 镜像 |
---|---|---|---|---|
openEuler 23.02 riscv64 | 8.0.0+ | 16 | 32G | openEuler-23.02-V1-base-qemu-testing.qcow2.zst |
sudo dnf install ukui
sudo systemctl set-default graphical.target
sudo systemctl start --now graphical.target
使用人工测试的方式,测试 UKUI 登陆界面、菜单、任务栏、文件管理器、桌面功能、设置、系统监视器等功能能否正常工作。
测试共计 60 个测试用例。
测试用例总数 | 通过数 | 失败数 |
---|---|---|
60 | 60 | 0 |
Package | Arch | Version | Repo | Total_Size |
---|---|---|---|---|
DDE | riscv64 | 2020.11.03-4 | mainline | 503 M |
硬件型号 | 版本 | vcpu | memory | 磁盘 | 备注 |
---|---|---|---|---|---|
RISC-V 64 | QEMU 7.2.0 | 8 | 8G | 7.5G-15G |
dnf install dde
使用 openEuler 22.03 RISC-V V2 版本镜像,测试 DDE 的安装和基本功能运行是否正常。
使用人工测试的方式,共计 94 个测试用例。
测试用例总数 | 通过数 | 失败数 |
---|---|---|
94 | 85 | 9 |
Package | Arch | Version | Repo | Total_Size |
---|---|---|---|---|
XFCE | riscv64 | 4.16.0 | mainline | 184 k |
硬件型号 | Qemu 版本 | vcpu | memory | 磁盘 | 备注 |
---|---|---|---|---|---|
RISC-V 64 | QEMU 7.2.0 | 8 | 8G | 7.5G-15G |
使用 openEuler 22.03 RISC-V V2 版本镜像,测试 XFCE 的安装和基本功能运行是否正常。
使用人工测试的方式,共计 78 个测试用例。
测试用例总数 | 通过数 | 失败数 |
---|---|---|
78 | 73 | 5 |
GNOME 是运行在类 Unix 操作系统中最常用桌面环境。是一个功能完善、操作简单,界面友好,集使用和开发为一身的桌面环境,是 GNU 计划的正式桌面。
从用户的角度看,GNOME 是一个集成桌面环境和应用程序的套件。从开发者的角度看,它是一个应用程序开发框架(由数目众多的实用函数库组成)。即使用户不运行 GNOME 桌面环境,用 GNOME 编写的应用程序也可以正常运行。
GNOME 既包含文件管理器,应用商店,文本编辑器等基础软件,也包含系统采样分析,系统日志,软件工程 IDE,web 浏览器,简洁虚拟机监视器,开发者文档浏览器等高级应用和工具。
软件包名称 | 软件包版本 |
---|---|
gnome-control-center | 43.2 |
操作系统版本 | Qemu 版本 | vcpu | memory | 镜像 |
---|---|---|---|---|
openEuler-23.02 v1 | QEMU: 7.2.0 | 8 | 16GB | openEuler-23.02-V1-base-qemu-testing.qcow2.zst,可在中科院软件所镜像站 |
-
安装 QEMU
从系统软件仓库或自行编译安装支持视频输出的 QEMU
-
准备系统镜像
需要用到以下文件
openEuler-23.02-V1-base-qemu-testing.qcow2.zst
不带桌面环境的基础系统镜像。fw_payload_oe_uboot_2304.bin
启动用内核start_vm.sh
和start_vm_xfce.sh
启动脚本
将上述准备文件存放到统一目录,并进入该目录。执行以下命令
# 解压得到镜像磁盘文件
zstd -d openEuler-23.02-V1-base-qemu-testing.qcow2.zst
# 为启动脚本添加可执行权限
chmod +x start_vm.sh
# 执行启动脚本,启动虚拟机
./start_vm.sh
虚拟机启动时检查终端输出,注意是否有错误信息,待系统启动后可以使用以下命令从 ssh 登录虚拟机,具体端口号可参考启动脚本内容或启动时终端输出。
ssh [email protected] -p12055
默认
root
用户密码为openEuler12#$
使用 root 用户登入虚拟机后执行以下命令安装 GNOME
# 更新软件源
dnf update
# 安装字体
dnf install dejavu-fonts liberation-fonts gnu-*-fonts google-*-fonts
# 安装 xorg
dnf install xorg-x11-apps xorg-x11-drivers xorg-x11-drv-ati \
xorg-x11-drv-dummy xorg-x11-drv-evdev xorg-x11-drv-fbdev \
xorg-x11-drv-libinput xorg-x11-drv-nouveau xorg-x11-drv-qxl \
xorg-x11-drv-synaptics-legacy xorg-x11-drv-v4l xorg-x11-server-Xephyr \
xorg-x11-drv-wacom xorg-x11-fonts xorg-x11-fonts-others \
xorg-x11-font-utils xorg-x11-server xorg-x11-server-utils \
xorg-x11-server-Xspice xorg-x11-util-macros xorg-x11-utils xorg-x11-xauth \
xorg-x11-xbitmaps xorg-x11-xinit xorg-x11-xkb-utils
# 安装 GNOME 和其组件
dnf install adwaita-icon-theme atk atkmm at-spi2-atk at-spi2-core baobab \
abattis-cantarell-fonts cheese clutter clutter-gst3 clutter-gtk cogl dconf \
dconf-editor devhelp eog epiphany evince evolution-data-server file-roller folks \
gcab gcr gdk-pixbuf2 gdm gedit geocode-glib gfbgraph gjs glib2 glibmm24 \
glib-networking gmime30 gnome-autoar gnome-backgrounds gnome-bluetooth \
gnome-builder gnome-calculator gnome-calendar gnome-characters \
gnome-clocks gnome-color-manager gnome-control-center \
gnome-desktop3 gnome-disk-utility gnome-font-viewer gnome-getting-started-docs \
gnome-initial-setup gnome-keyring gnome-logs gnome-menus gnome-music \
gnome-online-accounts gnome-online-miners gnome-photos gnome-remote-desktop \
gnome-screenshot gnome-session gnome-settings-daemon gnome-shell \
gnome-shell-extensions gnome-software gnome-system-monitor gnome-terminal \
gnome-tour gnome-user-docs gnome-user-share gnome-video-effects \
gnome-weather gobject-introspection gom grilo grilo-plugins \
gsettings-desktop-schemas gsound gspell gssdp gtk3 gtk4 gtk-doc gtkmm30 \
gtksourceview4 gtk-vnc2 gupnp gupnp-av gupnp-dlna gvfs json-glib libchamplain \
libdazzle libgdata libgee libgnomekbd libgsf libgtop2 libgweather libgxps libhandy \
libmediaart libnma libnotify libpeas librsvg2 libsecret libsigc++20 libsoup \
mm-common mutter nautilus orca pango pangomm libphodav python3-pyatspi \
python3-gobject rest rygel simple-scan sushi sysprof totem totem-pl-parser \
tracker3 tracker3-miners vala vte291 yelp yelp-tools \
yelp-xsl zenity
设置启动时配置
# 设置 gdm 自启动
systemclt enable gdm
# 设置系统默认以图形界面登录
systemctl set-default graphical.target
在关机之前配置可登入 GNOME 的非 root 用户
# 添加名为 sihuan 的用户,-m 参数为同时创建该用户家目录(/home/sihuan),-G wheel 为将该用户加入 wheel 组
useradd -m -G wheel sihuan
# 根据交互提示设置新用户密码
passwd sihuan
针对 QEMU 平台可能出现的无法启动/内核错误,请向启动脚本的 cmd
中添加如下内容。注意,需要 QEMU >= 8.0.0。
-cpu rv64,sv39=on \
使用 start_vm_xfce.sh
脚本启动虚拟机,稍作等待就可以看到 gdm 登入界面。
chmod +x start_vm_xfce.sh
./start_vm_xfce.sh
使用之前创建的非 root 用户就可以登入了~
使用人工测试的方式,共计 38 个测试用例。
测试用例总数 | 通过数 | 失败数 |
---|---|---|
38 | 38 | 0 |
kiran桌面是湖南麒麟信安团队以用户和市场需求为导向,研发的一个安全、稳定、高效、易用的桌面环境。kiran可以支持x86和aarch64架构。
正向设计桌面环境,自研包括登录锁屏界面、开始菜单、应用切换、任务栏工作区预览、系统托盘和控制中心等组件,在保证界面风格友好性的情况下更加节省资源;自研深浅色主题,界面功能清晰,呈现模块化的设计风格,通过层次化的方式优化功能布局,交互体验更加友好。
软件包名称 | 软件包版本 |
---|---|
kiran-desktop | 2.2 |
sudo dnf update
sudo dnf install kiran-desktop
systemctl set-default graphical.target
reboot
使用人工测试的方式,共计 58 个测试用例。
测试用例总数 | 通过数 | 失败数 |
---|---|---|
58 | 58 | 0 |
Cinnamon 是运行在类 Unix 操作系统中最常用的桌面环境,也是一个功能完善、操作简单、界面友好、集使用和开发为一身的桌面环境,还是 GNU 计划的正式桌面。最初是 GNOME Shell 的一个派生版本,由 Linux Mint 开发,提供了相似于 Gnome 2,易于使用的传统用户界面,从 Cinnamon 2.0 开始,成为独立的桌面环境。
官方网站:https://projects.linuxmint.com/cinnamon/
操作系统版本 | Qemu 版本 | vcpu | memory | 镜像 |
---|---|---|---|---|
openEuler 23.03 riscv64 | 8 | 8G | https://mirror.iscas.ac.cn/openeuler-sig-riscv/openEuler-RISC-V/testing/20230322/v0.1/QEMU/openEuler-23.02-V1-base-qemu-testing.qcow2.zst |
- 配置源并更新系统 下载 openEuler ISO镜像并安装系统,更新软件源
sudo dnf update
- 安装字库
sudo dnf install dejavu-fonts liberation-fonts gnu-*-fonts google-*-fonts
- 安装必要的 xorg 相关包。
sudo dnf install xorg-x11-apps xorg-x11-drivers xorg-x11-drv-ati \
xorg-x11-drv-dummy xorg-x11-drv-evdev xorg-x11-drv-fbdev xorg-x11-drv-intel \
xorg-x11-drv-libinput xorg-x11-drv-nouveau xorg-x11-drv-qxl \
xorg-x11-drv-synaptics-legacy xorg-x11-drv-v4l xorg-x11-drv-vesa \
xorg-x11-drv-vmware xorg-x11-drv-wacom xorg-x11-fonts xorg-x11-fonts-others \
xorg-x11-font-utils xorg-x11-server xorg-x11-server-utils xorg-x11-server-Xephyr \
xorg-x11-server-Xspice xorg-x11-util-macros xorg-x11-utils xorg-x11-xauth \
xorg-x11-xbitmaps xorg-x11-xinit xorg-x11-xkb-utils
这里需要注意的是,在 openEuler 官方安装文档中,有 xorg-x11-drv-intel xorg-x11-drv-vesa xorg-x11-drv-vmware 这三个包,不过我们这里不需要。
- 安装 Cinnamon 及组件
sudo dnf install cinnamon cinnamon-control-center cinnamon-desktop \
cinnamon-menus cinnamon-screensaver cinnamon-session \
cinnamon-settings-daemon cinnamon-themes cjs \
nemo nemo-extensions muffin cinnamon-translations inxi \
perl-XML-Dumper xapps mint-x-icons mint-y-icons mintlocale \
python3-plum-py caribou mozjs78 python3-pam \
python3-tinycss2 python3-xapp tint2 gnome-terminal \
lightdm lightdm-gtk
- 开机自动启动登录管理器
sudo systemctl enable lightdm
- 设置系统默认以图形界面登录
sudo systemctl set-default graphical.target
- 针对 QEMU 平台可能出现的无法启动/内核错误,请向启动脚本的
cmd
中添加如下内容。注意,需要 QEMU >= 8.0.0。
-cpu rv64,sv39=on \
https://projects.linuxmint.com/cinnamon/
https://docs.openeuler.org/zh/docs/22.09/docs/desktop/Install_Cinnamon.html
使用人工测试的方式,共计 35 个测试样例。
测试用例总数 | 通过数 | 失败数 |
---|---|---|
35 | 31 | 4 |
暂无
名称 | 说明 | 安装文档 | 使用文档 | 已测试 | 测试用例 | 当前有包/可安装 | issues | 特性质量评估** | SIG 组 | 负责人 |
---|---|---|---|---|---|---|---|---|---|---|
Firefox | Y | ▲ | ||||||||
Chromium | Y | ▲ | ||||||||
Thunderbird | ● | |||||||||
LibreOffice | Y | ▲ | ||||||||
VLC | ● | |||||||||
GIMP | Y | ▲ |
Firefox 是一个免费和开源的浏览器,全世界10%的人使用Firefox作为他们的主要浏览器。Mozilla是Firefox 浏览器的开发商,主要提供专注于开放网络的产品。Firefox是谷歌Chrome浏览器的替代品。
- Firefox 108.0.1-2.oe2203
- openEuler 22.03 RISC-V V2
使用人工测试的方式,测试了火狐安装、网页浏览、网页查找、网页通知、多媒体播放、文件下载、书签设置、历史记录等共计 75 个测试用例。
测试用例总数 | 通过数 | 失败数 |
---|---|---|
75 | 71 | 4 |
Package | Arch | Version | Repo | Total_Size |
---|---|---|---|---|
chromium | riscv64 | 103.0.5060.114 | mainline | 529 M |
硬件型号 | Qemu 版本 | vcpu | memory | 磁盘 |
---|---|---|---|---|
RISC-V 64 | QEMU 7.2.0 | 8 | 8G | 7.5G-15G |
使用 openEuler 22.03 RISC-V V2 版本镜像,测试 Chromium 的安装和基本功能运行是否正常。
使用人工测试的方法,共计 166 个测试样例。
测试用例总数 | 通过数 | 失败数 |
---|---|---|
166 | 142 | 24 |
Package | Arch | Version | Repo | Total_Size |
---|---|---|---|---|
Thunderbird | riscv64 | 97.0 | mainline | 247 M |
硬件型号 | Qemu 版本 | vcpu | memory | 磁盘 |
---|---|---|---|---|
RISC-V 64 | QEMU 7.2.0 | 8 | 8G | 7.5G-15G |
使用 openEuler 22.03 RISC-V V2 版本镜像,测试 Thunderbird 的安装和基本功能运行是否正常。
使用人工测试的方法,共计 22 个测试样例。
openEuler 23.03 RISC-V 中构建为失败状态,软件源中缺少此软件包。
LibreOffice(发音:/ˌliː.brəˈɒ.fɪs/)是由文档基金会开发的自由及开放源代码的办公室套件。LibreOffice套件包含文字处理器、电子表格、演示文稿程序、矢量图形编辑器和图表工具、数据库管理程序及创建和编辑数学公式的应用程序。
- 软件版本: libreOffice 7.3.5.2 30(build:2)
- 操作系统版本: openEuler 22.03 LTS riscv64
使用 openEuler 22.03 RISC-V V2 版本镜像,测试 Base 、 Calc 、 Draw 、 Impress 、 Math 、 Writer 的安装和基本功能运行是否正常。
使用人工测试的方法,共计 260 个测试样例。
项目 | 测试用例总数 | 通过数 | 失败数 |
---|---|---|---|
LiberOffice | 5 | 5 | 0 |
Base | 34 | 34 | 0 |
Calc | 59 | 54 | 5 |
Draw | 56 | 55 | 1 |
Impress | 38 | 32 | 6 |
Math | 13 | 12 | 1 |
Writer | 55 | 48 | 7 |
简单、快速、强大的媒体播放器。
VLC Media Player 是一款可播放大多数格式,而无需安装编解码器包的媒体播放器。
- 软件版本: vlc riscv64 3.0.17.4-1.oe2203
- 操作系统版本: openEuler 22.09 LTS riscv64
软件源中缺少此软件包
使用 openEuler 22.03 RISC-V V2 版本镜像,测试 Chromium 的安装和基本功能运行是否正常。
Package | Arch | Version | Repo | Total_Size |
---|---|---|---|---|
GIMP | riscv64 | 2.99.6 | mainline | 90 M |
硬件型号 | Qemu 版本 | vcpu | memory | 磁盘 |
---|---|---|---|---|
RISC-V 64 | QEMU 7.2.0 | 8 | 8G | 7.5G-15G |
使用手动测试的方式,测试 Gimp 安装卸载以及其基础功能,共计 32 个测试用例。
测试用例总数 | 通过数 | 失败数 |
---|---|---|
32 | 28 | 5 |
名称 | 说明 | 安装文档 | 使用文档 | 已测试 | 测试用例 | 当前有包/可安装 | issues | 特性质量评估** | SIG 组 | 负责人 |
---|---|---|---|---|---|---|---|---|---|---|
容器(isula/docker/安全容器/系统容器/镜像) | 见 I6QQLB 有 iSulad sig 官方的黑盒测试工具;iSulad新增native network 特性 | Y | Y | Y | Y | P | I6R1UT I6R9OQ I6RDWA I6RSAC I6R5DH | ▲ | iSulad | |
HA/高可用 | 仅安装成功 | Y | Y | N | Y | Y | sig-Ha | |||
OpenStack Train & Wallaby | sig-openstack | |||||||||
eggo | 软件包存在,可安装,未测试 | * | * | N | N | Y | sig-CloudNative | |||
NestOS | 不支持 RISC-V | sig-CloudNative | ||||||||
虚拟化 Virt | 优先级低,目前市面上尚无支持虚拟化的 RISC-V 硬件;openEuler 目前暂未实现,有虚拟化测试框架 avicado-vt,当前状态:avocado-vt test on openEuler-riscv | Y | * | N | N | Y | sig-Virt |
Docker 是一个开源的 Linux 容器引擎项目, 用以实现应用的快速打包、部署和交付。Docker 的英文本意是码头工人,码头工人的工作就是将商品打包到 container (集装箱)并且搬运 container、装载 container。 对应到 Linux 中,Docker 就是将 APP 打包到 container,通过 container 实现 APP 在各种平台上的部署、运行。Docker 通过 Linux Container 技术将 APP 变成一个标准化的、可移植的、自管理的组件,从而实现应用的“一次构建,到处运行”。Docker 技术特点就是:应用快速发布、部署简单、管理方便,应用密度更高。
- 软件版本:docker-engine-2:18.09.0-320.oe2303.riscv64
- 硬件信息:赛昉科技 昉·星光 2 / StarFive VisionFive 2 4GB
- 操作系统版本:openEuler 23.03 riscv64, Linux 5.15.0-3.oe2303.riscv64
使用人工测试的方式,测试 Docker 的安装卸载和基本功能,共计 31 个测试用例。
测试用例总数 | 通过数 | 失败数 |
---|---|---|
31 | 31 | 0 |
iSulad是一个由C/C++编写实现的轻量级容器引擎,具有轻、灵、巧、快的特点,不受硬件规格和架构限制,底噪开销更小,可应用的领域更为广泛。
- 软件版本:iSulad-2.1.1-7.oe2303.riscv64
环境 1:
- 硬件信息:QEMU 7.2.0,8*vCPU,8GB RAM
- 操作系统版本:openEuler 23.03 riscv64, Linux 6.1.8-3.oe2303.riscv64
环境 2:
- 硬件信息:赛昉科技 昉·星光 2 / StarFive VisionFive 2 4GB
- 操作系统版本:openEuler 23.03 riscv64, Linux 5.15.0-7.oe2303.riscv64
除非另有说明,测试默认在 StarFive VisionFive 2 平台进行。
使用人工测试的方式,测试 iSulad 的安装卸载和基本功能,共计 25 个测试用例。
测试用例总数 | 通过数 | 失败数 |
---|---|---|
25 | 25 | 0 |
安全容器依赖于 docker-engine
、qemu
以及 kata-containers
,需要进行安装。
- 运行:
sudo dnf install -y docker-engine
- 运行:
sudo dnf install -y qemu
- 运行:
sudo dnf install -y kata-containers
。
使用人工测试的方式,测试安全容器功能是否能够正常安装和卸载。
docker-engine
和 qemu
安装成功,kata-containers
软件包缺失,安装失败。
isula-build
是 iSula 容器团队推出的容器镜像构建工具,支持通过Dockerfile
文件快速构建容器镜像。
isula-build
采用服务端/客户端模式,其中,isula-build
为客户端,提供了一组命令行工具,用于镜像构建及管理等;isula-builder
为服务端,用于处理客户端管理请求,作为守护进程常驻后台。
- 软件版本:isula-build-0.9.6-19.oe2303.riscv64
环境 1:
- 硬件信息:QEMU 7.2.0,8*vCPU,8GB RAM
- 操作系统版本:openEuler 23.03 riscv64, Linux 6.1.8-3.oe2303.riscv64
环境 2:
- 硬件信息:赛昉科技 昉·星光 2 / StarFive VisionFive 2 4GB
- 操作系统版本:openEuler 23.03 riscv64, Linux 5.15.0-7.oe2303.riscv64
除非另有说明,测试默认在 StarFive VisionFive 2 平台进行。
测试采用人工测试的方式进行,测试了容器镜像的安装卸载和基本功能,共计 13 个测试用例。
测试用例总数 | 通过数 | 失败数 |
---|---|---|
13 | 13 | 0 |
- 安装 iSulad 容器引擎:
sudo dnf install -y iSulad
- 安装系统容器依赖包:
sudo dnf install -y syscontainer-tools authz lxcfs-tools lxcfs
- 检查 iSulad 是否启动:
sudo systemctl status isulad
- 启动
lxcfs
和authz
服务:sudo systemctl start lxcfs authz
- 检查
lxcfs
服务是否启动成功:sudo systemctl status lxcfs
- 检查
authz
服务是否启动成功:sudo systemctl status authz
安装系统容器所依赖的软件包。
iSulad 容器引擎及依赖包安装成功,并且成功启动 lxcfs
和 authz
服务。
dnf install openresty
需要至少两台安装了openEuler 23.03 的物理机/虚拟机(现以两台为例) 两台主机均需要进行以下操作,现以其中一台为例,下文中使用的IP仅供参考。
# hostnamectl set-hostname ha1
172.16.16.16 ha1
172.16.16.17 ha2
# dnf install -y corosync pacemaker pcs fence-agents fence-virt corosync-qdevice sbd drbd drbd-utils
# passwd hacluster
totem {
version: 2
cluster_name: hacluster
crypto_cipher: none
crypto_hash: none
}
logging {
fileline: off
to_stderr: yes
to_logfile: yes
logfile: /var/log/cluster/corosync.log
to_syslog: yes
debug: on
logger_subsys {
subsys: QUORUM
debug: on
}
}
quorum {
provider: corosync_votequorum
expected_votes: 2
two_node: 1
}
nodelist {
node {
name: ha1
nodeid: 1
ring0_addr: 172.16.16.16
}
node {
name: ha2
nodeid: 2
ring0_addr: 172.16.16.17
}
}
# 启动 pcs 服务
systemctl start pcsd
# 启动 pacemaker 服务
systemctl start pacemaker
# 启动 corosync 服务
systemctl start corosync
任选一个节点上执行即可
# pcs host auth ha1 ha2
上述服务启动后,可以在 http://localhost:2224
看到前端管理页面。
https://docs.openeuler.org/zh/docs/23.03/docs/thirdparty_migration/installha.html
暂无测试结果
名称 | 说明 | 安装文档 | 使用文档 | 已测试 | 测试用例 | 当前有包/可安装 | issues | 特性质量评估** | SIG 组 | 负责人 |
---|---|---|---|---|---|---|---|---|---|---|
kubernetes | Y | * | Y | Y | Y | sig-CloudNative | ||||
kubeOS | * | * | N | N | Y | sig-CloudNative | ||||
KubeSphere | 安装文档 | sig-CloudNative | ||||||||
k3s | 23.03 需要回归测试 | Y | * | N | N | Y | I6RRJT | sig-K8sDistro |
Kubernetes(也称 k8s 或 “kube”)是一个开源的容器编排平台,可以自动完成在部署、管理和扩展容器化应用过程中涉及的许多手动操作。
Kubernetes 最初由 Google 的工程师开发和设计。Google 是最早研发 Linux 容器技术的企业之一,曾公开分享 Google 如何将一切都运行于容器之中。(这是在 Google 云服务背后的技术。)
Google 每周产生超过 20 亿个容器部署,全都由内部平台 Borg 支撑。Borg 是 Kubernetes 的前身,多年来开发 Borg 的经验教训成了影响 Kubernetes 中许多技术的主要因素。
- 软件版本:
Name : kubernetes
Version : 1.20.2
Release : 8.oe2303
Architecture : riscv64
Size : 0.0
Source : kubernetes-1.20.2-8.oe2303.src.rpm
Repository : @System
From repo : epol
Summary : Container cluster management
URL : https://k8s.io/kubernetes
License : ASL 2.0
Description : Container cluster management.
- 硬件信息:赛昉科技 昉·星光 2 / StarFive VisionFive 2 4GB
- 操作系统版本:openEuler 23.03 riscv64, Linux 5.15.0-7.oe2303.riscv64
sudo dnf install -y kubernetes*
使用人工测试的方式测试其是否能够正常安装和卸载。
使用 mugen 进行功能上的测试。
kubernetes
及其依赖安装成功。
mugen 拥有其测试用例,但是两个用例有问题。
上游使用 E2E 测试,即 kubetest,该工具已被 Kubernetes 上游 Deprecated,目前在 Go 1.19 下无法执行。
向mugen上游提出的:
提问相关的:
KubeOS 是针对业务以容器的形式运行的场景,专门设计的一种轻量级操作系统。KubeOS 通过 kubernetes CRD + operator 扩展机制将将 OS 作为组件接入 kubernetes,使 OS 和业务处于同等地位,用户通过 kubernetes 集群统一管理节点上的容器和节点 OS,实现一套系统管理容器和 OS。
- 软件版本:KubeOS-1.0.2-9.oe2303.riscv64
- 硬件信息:赛昉科技 昉·星光 2 / StarFive VisionFive 2 4GB
- 操作系统版本:openEuler 23.03 riscv64, Linux 5.15.0-7.oe2303.riscv64
sudo dnf install -y KubeOS*
openEuler Docs 22.09 - 容器 OS 升级用户指南
使用人工测试的方式,安装 KubeOS 及其依赖包
KubeOS
及其依赖安装成功。
KubeSphere 是在 Kubernetes 之上构建的面向云原生应用的分布式操作系统,完全开源,支持多云与多集群管理,提供全栈的 IT 自动化运维能力,简化企业的 DevOps 工作流。它的架构可以非常方便地使第三方应用与云原生生态组件进行即插即用(plug-and-play)的集成。
1.安装KubeKey
yum install kubekey
2.部署 KubeSphere 集群
kk create cluster --with-kubesphere v3.1.1
3.验证 KubeSphere 集群是否安装成功
kubectl logs -n kubesphere-system $(kubectl get pod -n kubesphere-system -l app=ks-install -o jsonpath='{.items[0].metadata.name}') -f
[openEuler Docs 23.03 - KubeSphere 部署指南]https://docs.openeuler.org/zh/docs/23.03/docs/desktop/kubesphere.html
目前KubeKey包存在错误,无法部署 KubeSphere 集群
暂无
暂无
测试 NestOS 能否在 openEuler 23.03 V1 Risc-V 上正常运行。
根据 openEuler 官方文档的描述:目前 NestOS 已支持 x86_64 和 aarch64 架构。尚未支持 Risc-V。
在计算机技术中,虚拟化是一种资源管理技术,它将计算机的各种实体资源(处理器、内存、磁盘、网络适配器等)予以抽象、转换后呈现,并可分割、组合为一个或多个计算机配置环境。这种资源管理技术打破了实体结构不可分割的障碍,使这些资源在虚拟化后不受现有资源的架设方式、地域或物理配置限制,从而让用户可以更好地应用计算机硬件资源,提高资源利用率。
虚拟化使得一台物理服务器上可以运行多台虚拟机,虚拟机共享物理机的处理器、内存、I/O设备等资源,但逻辑上虚拟机之间是互相隔离的。在虚拟化技术中,通常将这个物理服务器称为宿主机,宿主机上运行的虚拟机也叫客户机,虚拟机内部运行的操作系统称为客户机操作系统。在宿主机和虚拟机之间存在一层叫虚拟化层的软件,用于实现虚拟硬件的模拟,通常这个虚拟化层被称为虚拟机监视器,如下图所示:
openEuler软件包中提供的虚拟化相关组件:
- KVM:提供核心的虚拟化基础设施,使Linux系统成为一个hypervisor,支持多个虚拟机同时在该主机上运行。
- QEMU:模拟处理器并提供一组设备模型,配合KVM实现基于硬件的虚拟化模拟加速。
- Libvirt:为管理虚拟机提供工具集,主要包含统一、稳定、开放的应用程序接口(API)、守护进程 (Libvirtd)和一个默认命令行管理工具(virsh)。
- Open vSwitch:为虚拟机提供虚拟网络的工具集,支持编程扩展,以及标准的管理接口和协议(如NetFlow, sFlow,IPFIX, RSPAN, CLI, LACP, 802.1ag)。
- yum.repo里要有这项(https://mirror.iscas.ac.cn/openeuler-sig-riscv/openEuler-RISC-V/preview/openEuler-23.03-V1-riscv64/repo/extra/ceph-user/)
- 安装操作需要root用户权限。
-
安装QEMU组件。
yum install -y qemu
-
安装libvirt组件。
yum install -y libvirt
-
启动libvirtd服务。
systemctl start libvirtd
**说明:**KVM模块已经集成在openEuler内核中,因此不需要单独安装。
-
查看内核是否支持 KVM 虚拟化,即查看 /dev/kvm 和 /sys/module/kvm 文件是否存在,命令和回显如下:
[root@openeuler-riscv64 ~]# ls /dev/kvm /dev/kvm [root@openeuler-riscv64 ~]# ls /sys/module/kvm parameters uevent
若上述文件存在,说明内核支持 KVM 虚拟化。若上述文件不存在,则说明系统内核编译时未开启 KVM 虚拟化,需要更换支持 KVM 虚拟化的 Linux 内核。
-
确认 QEMU 是否安装成功。若安装成功则可以看到 QEMU 软件包信息,命令和回显如下:
[root@openeuler-riscv64 ~]# rpm -qi qemu Name : qemu Epoch : 10 Version : 6.2.0 Release : 68.oe2303 Architecture: riscv64 Install Date: Sun 02 Apr 2023 09:22:48 PM CST Group : Unspecified Size : 20923916 License : GPLv2 and BSD and MIT and CC-BY-SA-4.0 Signature : RSA/SHA1, Thu 30 Mar 2023 01:01:10 AM CST, Key ID e8824b862466a8cc Source RPM : qemu-6.2.0-68.oe2303.src.rpm Build Date : Wed 29 Mar 2023 08:47:19 PM CST Build Host : oerv-obs-worker-01 Packager : http://openeuler.org Vendor : http://openeuler.org URL : http://www.qemu.org Summary : QEMU is a generic and open source machine emulator and virtualizer Description : QEMU is a FAST! processor emulator using dynamic translation to achieve good emulation speed. QEMU has two operating modes: Full system emulation. In this mode, QEMU emulates a full system (for example a PC), including one or several processors and various peripherals. It can be used to launch different Operating Systems without rebooting the PC or to debug system code. User mode emulation. In this mode, QEMU can launch processes compiled for one CPU on another CPU. It can be used to launch the Wine Windows API emulator (https://www.winehq.org) or to ease cross-compilation and cross-debugging. You can refer to https://www.qemu.org for more infortmation.
-
确认libvirt是否安装成功。若安装成功则可以看到libvirt软件包信息,命令和回显如下:
[root@openeuler-riscv64 ~]# rpm -qi libvirt Name : libvirt Version : 6.2.0 Release : 52.oe2303 Architecture: riscv64 Install Date: Sun 02 Apr 2023 09:25:38 PM CST Group : Unspecified Size : 0 License : LGPLv2+ Signature : RSA/SHA1, Mon 20 Mar 2023 09:08:24 AM CST, Key ID e8824b862466a8cc Source RPM : libvirt-6.2.0-52.oe2303.src.rpm Build Date : Mon 20 Mar 2023 06:05:13 AM CST Build Host : oerv-obs-worker-06 Packager : http://openeuler.org Vendor : http://openeuler.org URL : https://libvirt.org/ Summary : Library providing a simple virtualization API Description : Libvirt is a C toolkit to interact with the virtualization capabilities of recent versions of Linux (and other OSes). The main package includes the libvirtd server exporting the virtualization support.
-
查看libvirt服务是否启动成功。若服务处于“Active”状态,说明服务启动成功,可以正常使用libvirt提供的virsh命令行工具,命令和回显如下:
[root@openeuler-riscv64 ~]# systemctl status libvirtd ● libvirtd.service - Virtualization daemon Loaded: loaded (/usr/lib/systemd/system/libvirtd.service; enabled; vendor > Active: active (running) since Mon 2023-04-03 14:20:10 CST; 1s ago TriggeredBy: ● libvirtd.socket ● libvirtd-ro.socket ● libvirtd-admin.socket Docs: man:libvirtd(8) https://libvirt.org Main PID: 732 (libvirtd) Tasks: 17 (limit: 32768) Memory: 16.0M CGroup: /system.slice/libvirtd.service └─ 732 /usr/sbin/libvirtd --timeout 120
使用人工测试的方式,验证虚拟化 Virt 功能能否正常安装和运行。
虚拟化 Virt 功能正常安装和运行。
K3s 是一个轻量级的 Kubernetes 发行版,它针对边缘计算、物联网等场景进行了高度优化。K3s 有以下增强功能:
- 打包为单个二进制文件。
- 使用基于 sqlite3 的轻量级存储后端作为默认存储机制。同时支持使用 etcd3、MySQL 和 PostgreSQL 作为存储机制。
- 封装在简单的启动程序中,通过该启动程序处理复杂的 TLS 和选项。
- 默认情况下是安全的,对轻量级环境有合理的默认值。
- 添加了简单但功能强大的batteries-included功能,例如:本地存储提供程序,服务负载均衡器,Helm controller 和 Traefik Ingress controller。
- 所有 Kubernetes control-plane 组件的操作都封装在单个二进制文件和进程中,使 K3s 具有自动化和管理包括证书分发在内的复杂集群操作的能力。
- 最大程度减轻了外部依赖性,K3s 仅需要 kernel 和 cgroup 挂载。
K3s 适用于以下场景:
- 边缘计算-Edge
- 物联网-IoT
- CI
- Development
- ARM
- 嵌入 K8s
由于运行 K3s 所需的资源相对较少,所以 K3s 也适用于开发和测试场景。在这些场景中,如果开发或测试人员需要对某些功能进行验证,或对某些问题进行重现,那么使用 K3s 不仅能够缩短启动集群的时间,还能够减少集群需要消耗的资源。
Name : k3s
Version : 1.24.2+rc1+k3s2
Release : 3.oe2303
Architecture : riscv64
Size : 68 M
Source : k3s-1.24.2+rc1+k3s2-3.oe2303.src.rpm
Repository : @System
From repo : epol
Summary : Installer for k3s optimised for openSUSE MicroOS
URL : https://k3s.io
License : Apache-2.0
Description : Based on the official upstream k3s install.sh, this k3s-install
: package provides a curated, MicroOS-optimised, securely delivered
: alternative to running a script directly from the internet.
:
: k3s is a container orchestration system for automating application
: deployment, scaling, and management. It is a Kubernetes-compliant
: distribution that differs from the original Kubernetes (colloquially
: "k8s") in that:
:
: * Legacy, alpha, or non-default features are removed.
: * Most in-tree plugins (cloud providers and storage plugins) were
: removed, since they can be replaced with out-of-tree addons.
: * sqlite3 is the default storage mechanism.
: etcd3 is still available, but not the default.
: * There is a new launcher that handles a lot of the complexity of
: TLS and options.
sudo dnf install k3s
使用人工测试的方式,验证 k3s 功能是否能正常安装。
还未调研出官方是否有测试框架, mugen 没有其测试用例
openEuler Docs - 22.09 K3s 部署指南
安装出现问题。
名称 | 说明 | 安装文档 | 使用文档 | 已测试 | 测试用例 | 当前有包/可安装 | issues | 特性质量评估** | SIG 组 | 负责人 |
---|---|---|---|---|---|---|---|---|---|---|
etmem | 启动失败 | * | * | N | N | Y | I6V7C0 | × | Storage |
启动失败
名称 | 说明 | 安装文档 | 使用文档 | 已测试 | 测试用例 | 当前有包/可安装 | issues | 特性质量评估** | SIG 组 | 负责人 |
---|---|---|---|---|---|---|---|---|---|---|
kernel | 使用开源测试套LTP/mmtest LTP已纳入基础测试且已完成 |
Y | Y | Y | Y | N/A | ▲ | sig-kernel/sig-QA | ||
kconfigDetector | OBS 已有且构建成功,暂未进源 | Y | Y | Y | Y | Y | I6V7CP | █ |
openEuler 23.03 将 Linux 内核的版本更新到了 6.1。
- 内核版本:6.1.19-2.oe2303.riscv64
- OS 版本:openEuler 23.03 RISC-V V1
- 内核版本:6.1.19-2.oe2303.riscv64
- 虚拟机版本:QEMU 8.0.0-1
- 宿主机:Arch Linux on Windows 11 x86_64
使用 Linux Test Project(简称 LTP)对内核进行测试。本次测试使用的 LTP 版本为 20230127。
在 /boot/config-6.1.19-2.oe2303.riscv64
中添加以下内核配置:
###########################
# from/for LTP-20230127 #
###########################
# Stream Control Transmission Protocol
CONFIG_IP_SCTP=m
# file systems
CONFIG_XFS_FS=m
CONFIG_XFS_QUOTA=y
# ntfs config come from OLK 5.10 which backported NTFS3 from 5.15
CONFIG_NTFS_FS=m
CONFIG_NTFS3_FS=m
CONFIG_NTFS3_LZX_XPRESS=y
CONFIG_NTFS3_FS_POSIX_ACL=y
CONFIG_ISO9660_FS=m
CONFIG_JOLIET=y
CONFIG_UDF_FS=m
CONFIG_SQUASHFS=m
CONFIG_SQUASHFS_FILE_CACHE=y
CONFIG_SQUASHFS_DECOMP_SINGLE=y
CONFIG_SQUASHFS_XATTR=y
CONFIG_MINIX_FS=m
# quota
CONFIG_QUOTA=y
CONFIG_QFMT_V2=m
# LSM module
CONFIG_SECURITY_SELINUX_BOOTPARAM=y
CONFIG_LSM="lockdown,yama,loadpin,safesetid,integrity,apparmor,selinux,smack,tomoyo,bpf"
CONFIG_IMA=y
# accounting
CONFIG_BSD_PROCESS_ACCT=y
# 'encrypted' key
CONFIG_BIG_KEYS=y
CONFIG_ENCRYPTED_KEYS=m
CONFIG_FS_ENCRYPTION=y
CONFIG_FS_ENCRYPTION_ALGS=m
# RAM block device
CONFIG_BLK_DEV_RAM=m
# TUN/TAP
CONFIG_TUN=m
CONFIG_MACVTAP=m
CONFIG_IPVTAP=m
# Kernel Samepage Merging
CONFIG_KSM=y
# Enable userfaultfd() system call
CONFIG_USERFAULTFD=y
# per-task storage I/O accounting
CONFIG_TASKSTATS=y
CONFIG_TASK_XACCT=y
CONFIG_TASK_DELAY_ACCT=y
CONFIG_TASK_IO_ACCOUNTING=y
# Reliable Datagram Sockets Protocol
CONFIG_RDS=m
CONFIG_RDS_TCP=m
# netfilter 'state' match
CONFIG_NETFILTER_XT_MATCH_STATE=m
# perf event
CONFIG_PERF_EVENTS=y
# FS integrity check
CONFIG_FS_VERITY=y
# miscellaneous binary
CONFIG_BINFMT_MISC=m
# optimize scheduler for common desktop
CONFIG_SCHED_AUTOGROUP=y
# CGroup controllers
CONFIG_CGROUP_DEBUG=y
CONFIG_BLK_CGROUP=y
CONFIG_BLK_DEV_THROTTLING=y
CONFIG_CGROUP_PERF=y
# Process Event Connector
CONFIG_CONNECTOR=y
# Virtual Local CAN Interface
CONFIG_CAN=m
CONFIG_CAN_VCAN=m
# user level input driver
CONFIG_INPUT_MISC=y
CONFIG_INPUT_UINPUT=m
# SM3 SM4, OLK5.10 backported new config
CONFIG_CRYPTO_SM3_GENERIC=m
CONFIG_CRYPTO_SM4_GENERIC=m
# sound sequencer
CONFIG_SND_SEQUENCER=m
# Virtual Socket protocol
CONFIG_VSOCKETS=m
# torture test
CONFIG_RCU_TORTURE_TEST=m
CONFIG_LOCK_TORTURE_TEST=m
# zram
CONFIG_ZSMALLOC=m
CONFIG_ZRAM=m
# watch queue
CONFIG_WATCH_QUEUE=y
CONFIG_KEY_NOTIFICATIONS=y
# PCIe Advanced Error Reporting register
CONFIG_PCIEAER=y
# for iproute-5.15.0
CONFIG_NET_IPGRE_DEMUX=m # gre.ko
CONFIG_IPV6_GRE=m # ip6_gre.ko
CONFIG_IPV6_TUNNEL=m # ip6_tunnel.ko
CONFIG_NET_IPGRE=m # ip_gre.ko
CONFIG_NET_IPIP=m # ip_tunnel.ko
CONFIG_NET_CLS_ACT=y
CONFIG_NET_CLS_U32=m # cls_u32.ko
CONFIG_NET_SCH_INGRESS=m # qdisc
CONFIG_NET_SCH_DSMARK=m # sch_dsmark.ko
CONFIG_NET_ACT_PEDIT=m # act_pedit.ko
# for libnetfilter_conntrack-1.0.9
CONFIG_NF_CONNTRACK_EVENTS=y
CONFIG_NETFILTER_XT_MATCH_CONNLABEL=m # "connlabel"
CONFIG_NF_CONNTRACK_LABELS=y
# for conntrack-tools-1.4.7
CONFIG_NF_CONNTRACK_MARK=y
CONFIG_NF_CONNTRACK_ZONES=y
CONFIG_NF_CONNTRACK_TIMEOUT=y
CONFIG_NF_CT_NETLINK_TIMEOUT=m
CONFIG_NF_CONNTRACK_PPTP=m
- 安装编译工具
# dnf install gcc git make pkgconf autoconf automake bison flex m4 kernel-tools kernel-headers kernel-devel glibc-headers
- 安装测试所需的工具
# dnf install openssl-devel libacl-devel libaio-devel libcap-devel ethtool expect-devel xfsprogs-devel btrfs-progs quota nfs-util libmnl-devel libtirpc-devel
- 设置交换空间,这里设置了 8 GiB。
# dd if=/dev/zero of=/swapfile bs=1M count=8192 status=progress
# chmod 0600 /swapfile
# mkswap /swapfile
# swapon /swapfile
- 去除内存限制:删去
/boot/extlinux/extlinux.conf
中的mem=4096M
。
在宿主机:
$ qemu-img create -f qcow2 ext2g.qcow2 2G
$ qemu-img create -f qcow2 ext1g.qcow2 1G
同时,在 QEMU 命令行中增加以下参数:
-drive file=ext2g.qcow2,format=qcow2,id=hd1 \
-drive file=ext1g.qcow2,format=qcow2,id=hd2 \
-device virtio-blk-device,drive=hd1 \
-device virtio-blk-device,drive=hd2 \
在虚拟机,将其各分为一个区,格式化为 ext4:
# fdisk /dev/vdb
# mkfs.ext4 /dev/vdb1
# fdisk /dev/vdc
# mkfs.ext4 /dev/vdc1
# wget https://github.com/linux-test-project/ltp/releases/download/20230127/ltp-full-20230127.tar.xz
# tar -xvf ltp-full-20230127.tar.xz
# cd ltp-full-20230127
# make autotools
# ./configure --with-bash --with-expect --with-perl --with-python
# make
# make install
测试的临时文件目录默认是 /tmp
,但 openEuler 已将其安装为 tmpfs,这会导致很多测试意外失败。因此专门建立一个目录,并在运行脚本参数中指明。
# mkdir -p /ltp/tmp
为防止测试超时错误,增大超时限制的倍数。
# export LTP_TIMEOUT_MUL=10
运行:
# cd /opt/ltp
# ./runltp -p -o tests.output -d /ltp/tmp -b /dev/vdc1 -B ext4 -z /dev/vdb1 -Z ext4
- 测试用例总数:2379
- 跳过的:308
- 失败的:32
详细的测试结果见附件。
附有此次 LTP 测试产生的 output
目录和 results
目录。
results/LTP_RUN_ON-2023_04_30-08h_15m_39s.log
:测试结果统计。output/LTP_RUN_ON-tests.output.failed
失败测试的名字(tag)及具体命令。output/LTP_RUN_ON-tests.output.tconf
:(可能)需要调整配置的测试名(tag)及具体命令,包括且大部分为主动跳过的测试。output/tests.output.gz
:所有测试的日志,因原文件过大,故使用 Gzip 压缩。output/cpuctl_results_stress-*.txt
:从文件名上看,似乎为进行 CPU 相关测试时产生的输出,但是这几个文件都只有一行日期。
kconfigDetector
是为内核配置提供的一系列检测工具。包括:
- kconfigDepDetector 内核配置项错误值检测工具 依据内核源码中各配置项的Kconfig定义,检测出内核配置文件中不满足依赖、取值等约束条件的错误值,并提供父类和子类配置项查询功能。
- 软件版本:kconfigDetector-v1.0.0-1.oe2303.riscv64
- 硬件信息:QEMU 7.2.1 on Arch Linux (on WSL 2),8*vCPU + 8GB RAM
- 操作系统版本:openEuler 23.03 preview riscv64, Linux 6.1.19-2.oe2303.riscv64
由于目前 openEuler RISC-V 23.03 软件源中暂无此软件包,但 OBS 已经成功构建完成,可手动下载 rpm 包,通过 dnf 安装。
wget http://obs-backend.tarsier-infra.com:82/openEuler:/23.03:/Epol/23.03/noarch/kconfigDetector-v1.0.0-1.oe2303.noarch.rpm
sudo dnf install -y kconfigDetector-v1.0.0-1.oe2303.noarch.rpm
使用人工测试的方式,测试 kconfigDetector 安装卸载和基本功能,共 2 个测试用例。
测试用例总数 | 通过数 | 失败数 |
---|---|---|
2 | 2 | 0 |
名称 | 说明 | 安装文档 | 使用文档 | 已测试 | 测试用例 | 当前有包/可安装 | issues | 特性质量评估** | SIG 组 | 负责人 |
---|---|---|---|---|---|---|---|---|---|---|
OpenResty | Y | Y | N | Y | Y | sig-OpenResty |
openResty 是一个基于 NGINX 的可伸缩的 Web 平台,由中国人章亦春发起,提供了很多高质量的第三方模块。
OpenResty 是一个强大的 Web 应用服务器,Web 开发人员可以使用 Lua 脚本语言调动 Nginx 支持的各种 C 以及 Lua 模块,更主要的是在性能方面,OpenResty可以 快速构造出足以胜任 10K 以上并发连接响应的超高性能 Web 应用系统。
dnf install openresty
mkdir /home/www
cd /home/www/
mkdir logs/ conf/
在 conf 目录下面创建一个 nginx.conf,内容如下:
worker_processes 1;
error_log logs/error.log;
events {
worker_connections 1024;
}
http {
server {
listen 9000;
location / {
default_type text/html;
content_by_lua '
ngx.say("<p>Hello, World!</p>")
';
}
}
}
运行
cd /home/www
/usr/local/openresty/nginx/sbin/nginx -p `pwd`/ -c conf/nginx.conf
如果没有输出则为成功
使用 curl 测试使用
curl http://localhost:9000/
输出结果:
<p>Hello, World!</p>
https://www.runoob.com/w3cnote/openresty-intro.html
暂无测试结果
清单中不存在但是被测试过。
使用人工测试的方法,测试了 Mysql 数据库的基本功能,共计 49 个测试用例。
测试用例总数 | 通过数 | 失败数 |
---|---|---|
49 | 48 | 1 |
名称 | 说明 | 安装文档 | 使用文档 | 已测试 | 测试用例 | 当前有包/可安装 | issues | 特性质量评估** | SIG 组 | 负责人 |
---|---|---|---|---|---|---|---|---|---|---|
编译器 (gcc/jdk) | gcc 在基础测试中已完成,JDK 官方回归测试套件 jtreg 需要自行编译执行,上游和 oErv 源均不提供,目前已完成 OpenJDK 19; QEMU 下执行 JDK 11/17/19 需要指定 sv39 页表;GCC编译器插件框架支持LTO复杂优化,实现插件IR覆盖Gimple 80%的功能 (未测试) | P | * | P | P | P | █ | Compiler | ||
毕昇 JDK | 暂无 |
JDK(Java Development Kit)是 Java 开发者进行 Java 开发所必须的软件包,包含 JRE(Java Runtime Environment)和编译、调测工具。此外,OpenJDK 也提供了 jtreg 作为回归测试框架,方便开发者进行测试代码的编写与执行。
- 软件版本:java-latest-openjdk-19.0.2.7-1.rolling.oe2303
- 硬件信息:赛昉科技 昉·星光 2 / StarFive VisionFive 2 4GB
- 操作系统版本:openEuler 23.03 riscv64, Linux 5.15.0-7.oe2303.riscv64
- 安装 OpenJDK 19。
sudo dnf install java-latest-openjdk-devel
- 如系统上存在其他版本的 JDK,请先切换到 JDK 19。
sudo alternatives --config java
- 获取 OpenJDK 自带的测试套。
git clone --depth=1 https://github.com/openjdk/jdk19u
- 设置环境变量。
export JAVA_HOME=/lib/jvm/java-19-openjdk
export PATH=$JAVA_HOME/bin:$PATH
- 获取并构建 jtreg。
git clone --depth=1 https://github.com/openjdk/jtreg
cd jtreg
sh make/build.sh
- 执行测试套。
cd
export JT_HOME=$HOME/jtreg/build/images/jtreg
export PATH=$JT_HOME/bin:$PATH
jtreg -va -ignore:quiet -jit -conc:auto -timeout:5 -tl:3590 $HOME/jdk19u/test/jdk
使用 OpenJDK 官方回归测试框架 jtreg 对 OpenJDK 19 进行测试。
测试结束,但出现部分失败/错误。jtreg 输出的日志存放在 JTreport 中,详见 JTreport 。
Note: 笔者执行测试时使用的测试套路径不同,详细结果中的路径与上述步骤可能有所偏差。这不会影响测试结果。
Test results: passed: 9,167; failed: 1,677; error: 53
Report written to /home/openeuler/JTreport/html/report.html
Results written to /home/openeuler/JTwork
Error: Some tests failed or other problems occurred.
TODO:部分可以解决的报错如下。
- 测试用例执行超时。修改 timeout 时限后重试。
- 未设置 X11 DISPLAY 变量。headless 环境下无法执行部分 GUI 测试。jtreg 执行这部分测试时依赖 vncserver 和 x11vnc。
暂无
名称 | 说明 | 安装文档 | 使用文档 | 已测试 | 测试用例 | 当前有包/可安装 | issues | 特性质量评估** | SIG 组 | 负责人 |
---|---|---|---|---|---|---|---|---|---|---|
A-Tune | 无法启动 | Y | Y | N | Y | Y | I6R8CR | × | A-Tune | |
secPaver | oErv 不支持 SELinux,暂无法使用 | Y | * | Y | Y | Y | × | sig-security-facility | ||
secGear | 缺依赖 penlaisdk | * | * | N | N | N | × | sig-confidential-computing | ||
openGauss | 不支持 | * | * | N | N | N | × | DB | ||
用户态协议栈 gazelle | 缺包,不支持 | * | * | N | N | N | 0 | sig-high-performance-network | ||
容器场景在离线混合部署 rubik | 缺包,不支持 | * | * | N | N | N | 0 | sig-CloudNative | ||
A-ops | 部分依赖组件如 elasticsearch 不支持 RISC-V | Y | * | Y | N | Y | sig-ops | |||
IO 智能多流 astream | Y | * | N | N | Y | |||||
pkgship | 有 redis 但 ElasticSearch 目前不支持 rv64,依赖不全无法启动 | Y | * | Y | Y | P | I6RR6R I6RR83 | 0 | sig-EasyLife | |
ROS/ROS2 | ROS 2 暂不支持 | N | N | N | N | sig-ROS | ||||
虚拟机热迁移 | QEMU 文档;openEuler 文档 | Virt | ||||||||
虚拟化热补丁libcareplus | TODO: 官方测试工具;可能需要针对 RISC-V 平台本身的一些特性进行测试(e.g. ELF 重定位类型) | Y | Y | Y | Y | Y | █ | sig-Virt | ||
定制裁剪工具(imageTailor和oemaker) | 需要测试:目前不支持,后续如有发版生成镜像需要会做 | sig-OS-Builder | ||||||||
国密算法 | 需要测试,SM2/3/4 目前已加入内核 Kconfig | sig-security-facility? | ||||||||
libstorage 针对 NVME 的 IO 栈 | 目前仅测试 libstorage 非 NVME 部分 | * | * | N | N | ? |
A-Tune是一款基于AI的操作系统性能调优引擎。A-Tune利用AI技术,使操作系统“懂”业务,简化IT系统调优工作的同时,让应用程序发挥出色性能。
支持操作系统:openEuler 20.03 LTS 及以上版本
dnf install atune
dnf install atune-engine
注: 直接安装后尝试执行systemctl start atuned
会出现报错信息,原因是未配置认证证书,解决方法如下:
- 配置证书,使用https安全连接
- 生成服务端和客户端的证书文件,并
- 修改
/etc/atuned/atuned.cnf
中的60 ~ 62行、67 ~ 69行为证书文件的绝对路径,同时 - 修改
/etc/atuned/engine.cnf
中的23 ~ 25行为证书的绝对路径 - 相关证书生成方式可参考代码仓中
Makefile
文件的"restcerts"和"enginecerts"
- 取消证书认证,使用http非安全连接
- 在安全要求不高的场景下(如本地测试使用等),可以通过使用http连接规避该问题
- 修改
/etc/atuned/atuned.cnf
中的rest_tls(L59)和engine_tls(L66)为false - 修改
/etc/atuned/engine.cnf
中的engine_tls(L22)为false
注:如果通过'make install'安装了atuned服务,网卡和磁盘已经自动更新为当前机器中的默认设备。如果需要从其他设备收集数据,请按照以下步骤配置 atuned 服务。
通过以下命令可以查找当前需要采集或者执行网卡相关优化时需要指定的网卡,并修改/etc/atuned/atuned.cnf中的network配置选项为对应的指定网卡。
ip addr
通过以下命令可以查找当前需要采集或者执行磁盘相关优化时需要指定的磁盘,并修改/etc/atuned/atuned.cnf中的disk配置选项为对应的指定磁盘。
fdisk -l | grep dev
systemctl daemon-reload
systemctl start atuned
systemctl start atune-engine
注意:此处 systemctl start atuned
启动失败,相关 issue:https://gitee.com/openeuler/RISC-V/issues/I6R8CR
systemctl status atuned
systemctl status atune-engine
openEuler Docs 22.03 LTS SP1 - A-Tune 用户指南
暂无测试结果
secPaver是一个帮助管理员定义应用程序安全策略的工具。用户可以使用secPaver为应用程序生成不同安全机制下的策略文件。
目前secPaver支持的安全机制为SELinux,AppArmor即将支持,不同的安全机制生成模块以插件(plugin)形式加载。
sudo dnf install secpaver
测试文件位于 tests 目录
git clone https://gitee.com/openeuler/secpaver
cd secpaver/tests
sudo systemctl start pavd
bash test.sh
https://gitee.com/openeuler/secpaver
https://gitee.com/openeuler/secpaver/blob/master/doc/manual.md
https://gitee.com/openeuler/secpaver/blob/master/doc/cmd.md
当前 openEuler risc-v 不支持 selinux
且 pavd 无法使用 相关问题 。
secGear 是面向计算产业的机密计算安全应用开发套件,旨在方便开发者在不同的硬件设备上提供统一开发框架。目前 secGear 支持 Intel SGX 硬件,Trustzone itrustee,以及 RISC-V 蓬莱 TEE。
sudo dnf install secGear-devel
openEuler Docs 23.03 - 安装 secGear
目前 openEuler RISC-V 缺少相关软件包,无法安装。
不支持
缺包,不支持
缺包,不支持
A-Ops 是 openEuler 的一套智能运维框架。
- 软件版本:aops-tools-v1.1.1-2.oe2303.riscv64
注意:A-Ops 需要两台机器用于部署。
机器 A:
- 硬件信息:赛昉科技 昉·星光 2 / StarFive VisionFive 2 4GB
- 操作系统版本:openEuler 23.03 riscv64, Linux 5.15.0-7.oe2303.riscv64
机器 B:
- 硬件信息:HiFive Unmatched
- 操作系统版本:openEuler 23.03 riscv64, Linux 6.1.0-10.oe2303.riscv64
请以 root 用户登录,或执行切换至 root 用户然后再执行如下操作。
- 安装 A-Ops 及其依赖包:
dnf install -y aops-tools
- 部署 MySQL:
/opt/aops/scripts/aops-basedatabase mysql
- 修改 MySQL 配置文件:
查看本机 IP,并添加进 MySQL 的配置文件中。
ip a
修改 /etc/my.cnf
,在 [mysqld] 字段新增 bind-address
,值为上一步获取到的本机 IP。
[mysqld]
...
bind-address=xx.xx.xx.xx
...
修改完成后,重启 mysqld.service
:sudo systemctl restart mysqld.service
- 连接数据库,设置权限:
mysql
show databases;
use mysql;
select user,host from user; //出现user为root,host为localhost时,说明mysql只允许本机连接,外网和本地软件客户端则无法连接。
update user set host = '%' where user='root';
flush privileges; //刷新权限
exit
- 部署 ElasticSearch:
/opt/aops/scripts/aops-basedatabase elasticsearch
- 修改 ElasticSearch 配置文件:
vim /etc/elasticsearch/elasticsearch.yml
修改其中的 node.name
, network.host
, http.port
, cluster.initial_master_nodes
项:
node.name: node-1
network.host: xx.xx.xx.xx
http.port: 9200
cluster.initial_master_nodes: ["node-1"]
修改完成后重启 ElasticSearch 服务:
systemctl restart elasticsearch
- 安装 aops-manager:
dnf install -y aops-manager
修改配置文件 vim /etc/aops/manager.ini
:
[manager]
ip=192.168.1.1 // 此处及后续服务ip修改为机器A真实ip
port=11111
host_vault_dir=/opt/aops
host_vars=/opt/aops/host_vars
[uwsgi]
wsgi-file=manage.py
daemonize=/var/log/aops/uwsgi/manager.log
http-timeout=600
harakiri=600
[elasticsearch]
ip=192.168.1.1 // 此处及后续服务ip修改为机器A真实ip
port=9200
max_es_query_num=10000000
[mysql]
ip=192.168.1.1 // 此处及后续服务ip修改为机器A真实ip
port=3306
database_name=aops
engine_format=mysql+pymysql://@%s:%s/%s
pool_size=10000
pool_recycle=7200
[aops_check]
ip=192.168.1.1 // 此处及后续服务ip修改为机器A真实ip
port=11112
启动 aops-manager
服务:
systemctl start aops-manager
- 安装 aops-web:
dnf install -y aops-web
修改配置文件,由于将所有服务都部署在机器 A,故需将 web 访问的各服务地址配置成机器 A 的真实 IP。
vim /etc/nginx/aops-nginx.conf
部分服务配置:
# 保证前端路由变动时 nginx 仍以 index.html 作为入口
location / {
try_files $uri $uri/ /index.html;
if (!-e $request_filename){
rewrite ^(.*)$ /index.html last;
}
}
location /api/ {
proxy_pass http://192.168.1.1:11111/;
}
location /api/domain {
proxy_pass http://192.168.1.1:11114/;
rewrite ^/api/(.*) /$1 break;
}
location /api/host {
proxy_pass http://192.168.1.1:11114/;
rewrite ^/api/(.*) /$1 break;
}
开启 aops-web
服务:
systemctl start aops-web
- 部署 kafka
安装:
dnf install kafka
修改配置文件:
vim /opt/kafka/config/server.properties
将listener 改为本机ip:
listeners=PLAINTEXT://192.168.1.1:9092
启动kafka服务:
cd /opt/kafka/bin
nohup ./kafka-server-start.sh ../config/server.properties &
tail -f ./nohup.out # 查看nohup所有的输出出现A本机ip 以及 kafka启动成功INFO;
- 部署aops-check
安装aops-check:
dnf install aops-check
修改配置文件:
vim /etc/aops/check.ini
将配置文件中各服务的地址修改为真实地址,由于将所有服务都部署在机器A,故需把IP地址配为机器A的地址。
[check]
ip=192.168.1.1 // 此处及后续服务ip修改为机器A真实ip
port=11112
mode=configurable // 该模式为configurable模式,用于常规诊断模式下的调度器。
timing_check=on
[default_mode]
period=30
step=30
[elasticsearch]
ip=192.168.1.1 // 此处及后续服务ip修改为机器A真实ip
port=9200
[mysql]
ip=192.168.1.1 // 此处及后续服务ip修改为机器A真实ip
port=3306
database_name=aops
engine_format=mysql+pymysql://@%s:%s/%s
pool_size=10000
pool_recycle=7200
[prometheus]
ip=192.168.1.1 // 此处及后续服务ip修改为机器A真实ip
port=9090
query_range_step=15s
[agent]
default_instance_port=8888
[manager]
ip=192.168.1.1 // 此处及后续服务ip修改为机器A真实ip
port=11111
[consumer]
kafka_server_list=192.168.1.1:9092 // 此处及后续服务ip修改为机器A真实ip
enable_auto_commit=False
auto_offset_reset=earliest
timeout_ms=5
max_records=3
task_name=CHECK_TASK
task_group_id=CHECK_TASK_GROUP_ID
result_name=CHECK_RESULT
[producer]
kafka_server_list = 192.168.1.1:9092 // 此处及后续服务ip修改为机器A真实ip
api_version = 0.11.5
acks = 1
retries = 3
retry_backoff_ms = 100
task_name=CHECK_TASK
task_group_id=CHECK_TASK_GROUP_ID
启动aops-check服务(configurable模式):
systemctl start aops-check
- 部署客户端服务
客户端机器的服务需要部署aops-agent及gala-gopher,具体可参考aops-agent部署指南。
注意:主机注册时需要先在前端添加主机组操作,确保该主机所属的主机组存在。此处只对机器A做部署、纳管。
- 部署 prometheus
安装prometheus:
dnf install prometheus2
修改配置文件:
vim /etc/prometheus/prometheus.yml
将所有客户端的gala-gopher地址新增到prometheus的监控节点中。
scrape_configs:
- job_name: 'prometheus'
static_configs:
- targets: ['localhost:9090', '192.168.1.1:8888']
启动服务:
systemctl start prometheus
- 部署gala-ragdoll
A-Ops配置溯源功能依赖gala-ragdoll实现,通过Git实现配置文件的变动监测。
安装gala-ragdoll:
dnf install gala-ragdoll # A-Ops 配置溯源
修改配置文件:
vim /etc/ragdoll/gala-ragdoll.conf
将collect节点collect_address中IP地址修改为机器A的地址,collect_api与collect_port修改为实际接口地址。
[git]
git_dir = "/home/confTraceTest"
user_name = "user_name"
user_email = "user_email"
[collect]
collect_address = "http://192.168.1.1" //此处修改为机器A的真实IP
collect_api = "/manage/config/collect" //此处修改为配置文件采集的实际接口
collect_port = 11111 //此处修改为服务的实际端口
[sync]
sync_address = "http://0.0.0.0"
sync_api = "/demo/syncConf"
sync_port = 11114
[ragdoll]
port = 11114
启动gala-ragdoll服务:
systemctl start gala-ragdoll
- 安装
aops-check
:
dnf install aops-check
- 修改配置文件:
vim /etc/aops/check.ini
将配置文件中各服务的地址修改为真实地址,除check服务为机器B的地址外,其他服务都部署在机器A,故需把IP地址配置为机器A的地址即可。
[check]
ip=192.168.1.2 // 此处ip改为机器B真实ip
port=11112
mode=executor // executor,用于常规诊断模式下的执行器
timing_check=on
[default_mode]
period=30
step=30
[elasticsearch]
ip=192.168.1.1 // 此处及后续服务ip修改为机器A真实ip
port=9200
[mysql]
ip=192.168.1.1 // 此处及后续服务ip修改为机器A真实ip
port=3306
database_name=aops
engine_format=mysql+pymysql://@%s:%s/%s
pool_size=10000
pool_recycle=7200
[prometheus]
ip=192.168.1.1 // 此处及后续服务ip修改为机器A真实ip
port=9090
query_range_step=15s
[agent]
default_instance_port=8888
[manager]
ip=192.168.1.1 // 此处及后续服务ip修改为机器A真实ip
port=11111
[consumer]
kafka_server_list=192.168.1.1:9092 // 此处及后续服务ip修改为机器A真实ip
enable_auto_commit=False
auto_offset_reset=earliest
timeout_ms=5
max_records=3
task_name=CHECK_TASK
task_group_id=CHECK_TASK_GROUP_ID
result_name=CHECK_RESULT
[producer]
kafka_server_list = 192.168.1.1:9092 // 此处及后续服务ip修改为机器A真实ip
api_version = 0.11.5
acks = 1
retries = 3
retry_backoff_ms = 100
task_name=CHECK_TASK
task_group_id=CHECK_TASK_GROUP_ID
启动 aops-check
服务(executor
模式):
systemctl start aops-check
至此,部署完成。
openEuler Docs 22.09 - A-Ops 用户指南
使用人工测试的方法,按安装方法所示步骤部署 A-Ops ,验证是否成功。
缺少部分组件,未能成功部署。仅成功使用 A-ops 安装 MySQL,未安装其他组件。
软件包名称 | 失败原因 |
---|---|
elasticsearch | 不支持 RISC-V |
aops-manager | 软件包缺失 |
aops-web | 软件包缺失 |
zookeeper | 软件包缺失 |
kafka | 软件包缺失 |
aops-check | 软件包缺失 |
astream是一款支持用户自定义配置目标文件的流信息,以使能NVMe SSD磁盘的多流(multi-stream)特性,从而延长磁盘寿命的便捷工具。
dnf install astream
https://gitee.com/openeuler/astream
openEuler Docs 23.03 - atream 用户指南
暂无测试结果
pkgship是一款管理OS软件包依赖关系,提供依赖和被依赖关系完整图谱的查询工具,pkgship提供软件包依赖查询、生命周期管理、补丁查询等功能。
- 软件包依赖查询:方便社区人员在软件包引入、更新和删除的时候了解软件的影响范围。
- 补丁查询:方便社区人员了解openEuler软件包的补丁情况以及提取补丁内容,详细内容请参见patch-tracking。
Name : pkgship
Version : 3.0.0
Release : 1.oe2303
Architecture : noarch
Size : 800 k
Source : pkgship-3.0.0-1.oe2303.src.rpm
Repository : @System
From repo : mainline
Summary : Pkgship implements rpm package dependence ,maintainer, patch query and so on.
URL : https://gitee.com/openeuler/pkgship
License : Mulan 2.0
Description : Pkgship implements rpm package dependence ,maintainer, patch query and so no.
sudo dnf install pkgship
openEuler Docs 23.03 - pkgship
使用人工测试的方式,验证是否能够正常安装和启动。
mugen 有相关测试套进行功能测试。
可以安装成功,但是无法运行其一个脚本使其服务启动。
提问相关的:
仓库暂未支持这款软件
oncn-bwm 是一款适用于离线业务混合部署场景的 Pod 带宽管理工具,它会根据 QoS 分级对节点内的网络资源进行合理调度,保障在线业务服务体验的同时,大幅提升节点整体的网络带宽利用率。
oncn-bwm 工具支持如下功能:
- 使能/去除/查询 Pod 带宽管理
- 设置 Pod 网络优先级
- 设置离线业务带宽范围和在线业务水线
- 内部统计信息查询
sudo dnf install -y oncn-bwm
oncn-bwm 工具提供了 bwmcli
命令行工具来使能 Pod 带宽管理或进行相关配置。
Shell 运行:
ip link #查看网卡名称
sudo bwmcli -e eth0 #开启 eth0 的 Pod 带宽管理
openEuler Docs 22.09 - oncn-bwm 用户指南
使用人工测试的方式,验证是否能正常安装卸载,并验证是否能成功开启带宽管理:enable eth0 success
未能成功开启带宽管理。
ROS 2 暂不支持,porting 进行中。
oErv 暂不支持,软件包缺失
暂无
LibcarePlus 是一个用户态进程热补丁框架,可以在不重启进程的情况下对 Linux 系统上运行的目标进程进行热补丁操作。热补丁可以应用于 CVE 漏洞修复,也可以应用于不中断应用服务的紧急 bug 修复。
- 软件版本:iSulad-2.1.1-7.oe2303.riscv64
- 硬件信息:QEMU 7.2.1 on Arch Linux (WSL 2),8*vCPU + 8GB RAM
- 操作系统版本:openEuler 23.03 preview riscv64, Linux 6.1.19-2.oe2303.riscv64
openEuler Docs 23.03 - LibcarePlus
使用人工测试的方式,验证 libcareplus 的安装以及热补丁基本功能,共计 5 个测试用例。
测试用例总数 | 通过数 | 失败数 |
---|---|---|
5 | 5 | 0 |
目前不支持,后续如有发版生成镜像需要会做
内核支持需要进一步测试,SM2/3/4 目前已加入内核 Kconfig
国密系列算法的 OpenSSL 实现经过测试,在 openEuler 23.03 v0.1 可用。
目前仅测试 libstorage 非 NVME 部分