1 目标
了解openEuler操作系统发布件、最小硬件要求、硬件兼容性、关键特性、分类及其命命方式,熟知openEuler操作系统的安装过程。
2 openEuler操作系统介绍
openEuler是一款开源操作系统。当前openEuler内核源于Linux,支持鲲鹏及其它多种处理器,能够充分释放计算芯片的潜能,是由全球开源贡献者构建的高效、稳定、安全的开源操作系统,适用于数据库、大数据、云计算、人工智能等应用场景。同时,openEuler是一个面向全球的操作系统开源社区,通过社区合作,打造创新平台,构建支持多处理器架构、统一和开放的操作系统,推动软硬件应用生态繁荣发展。
openEuler的前身是运行在华为公司通用服务器上的操作系统EulerOS。EulerOS是一款基于Linux内核(目前是基于Linux 5.10版本的内核)的开源操作系统,支持X86和ARM等多种处理器架构,伴随着华为公司鲲鹏芯片的研发,EulerOS理所当然地成为与鲲鹏芯片配套的软件基础设施。
2.1 发布件
openEuler发布件包括ISO发布包、虚拟机镜像、容器镜像、嵌入式镜像和repo源。
表 1 发布ISO列表
名称 |
描述 |
openEuler-22.03-LTS-aarch64-dvd.iso |
AArch64架构的基础安装ISO,包含了运行最小系统的核心组件 |
openEuler-22.03-LTS-everything-aarch64-dvd.iso |
AArch64架构的全量安装ISO,包含了运行完整系统所需的全部组件 |
openEuler-22.03-LTS-everything-debug-aarch64-dvd.iso |
AArch64架构下openEuler的调试ISO,包含了调试所需的符号表信息 |
openEuler-22.03-LTS-x86_64-dvd.iso |
x86_64架构的基础安装ISO,包含了运行最小系统的核心组件 |
openEuler-22.03-LTS-everything-x86_64-dvd.iso |
x86_64架构的全量安装ISO,包含了运行完整系统所需的全部组件 |
openEuler-22.03-LTS-everything-debuginfo-x86_64-dvd.iso |
x86_64架构下openEuler的调试ISO,包含了调试所需的符号表信息 |
openEuler-22.03-LTS-source-dvd.iso |
openEuler源码ISO |
openEuler-22.03-LTS-edge-aarch64-dvd.iso |
AArch64架构的边缘ISO,包含了运行最小系统的核心组件 |
openEuler-22.03-LTS-edge-x86_64-dvd.iso |
x86_64架构的边缘ISO,包含了运行最小系统的核心组件 |
表 2 虚拟机镜像
名称 |
描述 |
openEuler-22.03-LTS-aarch64.qcow2.xz |
AArch64架构下openEuler虚拟机镜像 |
openEuler-22.03-LTS-x86_64.qcow2.xz |
x86_64架构下openEuler虚拟机镜像 |
说明:
虚拟机镜像root用户默认密码为:openEuler12#$,首次登录后请及时修改。
表 3 容器镜像列表
名称 |
描述 |
openEuler-docker.aarch64.tar.xz |
AArch64架构下openEuler容器镜像 |
openEuler-docker.x86_64.tar.xz |
x86_64架构下openEuler容器镜像 |
表 4 嵌入式镜像列表
名称 |
描述 |
arm64/aarch64-std/zImage |
aarch64架构下支持qemu的内核镜像 |
arm64/aarch64-std/*toolchain-22.03.sh |
aarch64架构下对应的开发编译链 |
arm64/aarch64-std/*rootfs.cpio.gz |
aarch64架构下支持qemu的文件系统 |
arm32/arm-std/zImage |
arm架构下支持qemu的内核镜像 |
arm32/arm-std/*toolchain-22.03.sh |
arm架构下对应的开发编译链 |
arm32/arm-std/*rootfs.cpio.gz |
arm架构下支持qemu的文件系统 |
source-list/manifest.xml |
构建使用的源码清单 |
表 5 repo源列表
目录 |
描述 |
ISO |
存放ISO镜像 |
OS |
存放基础软件包源 |
debuginfo |
存放调试包源 |
docker_img |
存放容器镜像 |
virtual_machine_img |
存放虚拟机镜像 |
embedded_img |
存放嵌入式镜像 |
everything |
存放全量软件包源 |
extras |
存放扩展软件包源 |
source |
存放源码软件源 |
update |
存放升级软件包源 |
EPOL |
存放openEuler扩展包 |
2.2 最小硬件要求
安装 openEuler 22.03-LTS 所需的最小硬件要求如表6所示。
表 6 最小硬件要求
部件名称 |
最小硬件要求 |
CPU |
鲲鹏 920(架构为AArch64)x86-64(Skylake以上) |
内存 |
不小于8GB |
硬盘 |
不小于120GB |
2.3 硬件兼容性
openEuler已验证支持的服务器和各部件典型配置请参见表7。openEuler后续将逐步增加对其他服务器的支持,也欢迎广大合作伙伴/开发者参与贡献和验证。openEuler当前支持的服务器可见兼容列表。
表 7 支持的服务器及典型配置
厂商 |
服务器名称 |
服务器具体型号 |
部件名称 |
典型配置 |
华为 |
TaiShan 200 |
2280均衡型 |
CPU |
Kunpeng 920 |
内存 |
32G*4 2933MHz |
|
|
|
RAID卡 |
LSI SAS3508 |
|
|
|
网络 |
SF221Q |
|
|
|
华为 |
FusionServer Pro |
2288H V5(机架服务器) |
CPU |
Intel® Xeon® Gold 5118 CPU @ 2.30GHz |
内存 |
32*4 2400MHz |
|
|
|
RAID卡 |
LSI SAS3508 |
|
|
|
网络 |
X722 |
|
|
|
2.4 关键特性
2.4.1 openEuler 22.03-LTS基于 Linux Kernel 5.10 内核构建, 在进程调度、内存管理等方面带来10余处创新
深度优化调度、IO、内存管理,提供Arm64、x86、RISC-V等更多算力支持。
-
内核动态抢占,新增启动选项preempt=none/voluntary/full,允许内核动态切换抢占模式。
-
mremap性能优化,通过移动 PMD/PUD 级别的表项,加速映射大块内存的速度。
-
per memcg lru lock,采用per memcg lru_lock,减少云原生容器实例锁竞争,提升系统性能。
-
大页内存管理优化,通过共享映射方式将HugeTLB管理页中无实际作用的tail页释放掉,从而降低管理结构的开销,降低大页管理自身内存占用。
-
TLB并发刷新支持,本地TLB和远端TLB刷新并行,优化TLB shootdown流程加速TLB刷新,提升业务性能。
-
大页vmalloc性能优化,对于超过huge page的最小size的空间进行vmalloc()分配时,将会尝试使用 huge page 而不是 base page来映射内存,可以大大改善 TLB 的利用,降低TLB miss。
-
UCE容错, 系统运行时,内核态触发硬件内存错误的处理方式是无差别的内核panic,基于分析,部分场景的影响仅仅是用户态进程的运行受到影响,我们可以通过杀死用户态进程并隔离出错页面,而不必通过系统panic来处理内存错误。基于此思路,针对uaccess场景(copy_{from, to}_user, {get, put}_user)、cow场景、coredump场景提供解决方案,避免此情况下的系统复位,提升系统可靠性。
2.4.2 新介质文件系统
-
Eulerfs,Eulerfs创新元数据软更新技术(Soft Update),基于指针的目录双视图计数机制,减少元数据同步开销,有效提升文件系统create、unlink、mkdir、rmdir系统调用性能。
2.4.3 内存分级扩展
支持多种内存、存储介质扩展系统内存容量,降低内存使用成本。新增用户态交换支持。
-
用户态交换(新增),通过etMem的策略配置,对于淘汰的冷内存,通过用户态swap功能交换到用户态存储中,达到用户无感知,性能优于内核态swap。
2.4.4 用户态协议栈
新增gazelle用户态协议栈,无需应用程序修改和重新编译,即可使用,支撑上层业务获得高性能、低时延的网络传输
-
gazelle 用户态协议栈,基于dpdk和lwip,实现支持无锁、多线程的高性能用户态协议栈,加速应用程序的网络性能,无需修改适配和重新编译,即可使用。
2.4.5 云原生调度增强
在云业务场景中,交互类延时敏感在线业务存在潮汐现象,CPU资源利用率普遍较低(不足15%),在线和离线业务混合部署是提升资源利用率的有效方式。现有的内核资源分配和管理机制。
-
QAS(Quality aware scheduler),可以确保在线任务对CPU的快速抢占,确定性的调度运行,同时压制离线任务干扰。
-
OOM回收支持优先级,优化OOM时内存回收调度算法,在发生OOM时,优先对低优先级的进程组进行内存回收,保障在线业务的正常运行。
-
容器混合部署框架,对k8s集群下的混合部署,openEuler用户仅需给业务打上在线或离线的标签,系统即能自动感知业务的创建,并根据业务优先级配置,实现资源的隔离和抢占。
2.4.6 QEMU热补丁机制
-
支持libcareplus热补丁机制,提供一种在线修复进程bug的技术,使得QEMU进程能够在不影响虚机业务的情况下,在线解决QEMU进程bug。
2.4.7 KubeOS
容器化操作系统KubeOS,实现云原生集群OS的统一容器化管理。
-
OS容器化管理,对接K8S容器和OS统一管理,原子化的生命周期管理。
-
OS轻量化裁剪,减少不必要的冗余包,可实现快速升级、替换等。
2.4.8 轻量安全容器增强
基于Stratovirt轻量虚拟化技术,实现容器级别的低负载和虚拟机高安全。
-
支持UEFI启动,支持UEFI启动、ACPI表的构建以及为虚拟机添加包括virtio-pci在内的PCIe/PCI设备。
-
支持VFIO,提供将host上物理设备直通给虚拟机的能力,使虚拟机获得接近裸设备的高性能。
-
支持直通设备热插拔,支持virtio-blk-pci、virtio-net-pci和VFIO等设备的热插拔,有效避免更换外设引起的系统停机和业务中断。
2.4.9 iSulad增强
-
shimv2,shimv2 收编了 kata-runtime,kata-shim, kata-proxy进程,通过加载⼀次运⾏时并通过 RPC 调⽤来处理各种容器,⽣命周期管理命令来简化体系结构,不必为每个容器⼀直运⾏⼀个容器运⾏时
2.4.10 eggo支持容器管理双平面部署
eggo是openEuler云原生Sig组K8S集群部署管理项目,提供高效稳定的集群部署的能力。