共计 3698 个字符,预计需要花费 10 分钟才能阅读完成。
背景
由于 CentOS 7 项目生命周期终止,已于 2024年6月30日 停止维护。我司现在提出计划,调研 openEuler 是否可替代 CentOS。
openEuler 介绍
是什么
- 基本定义
 
- openEuler是一个开源的Linux发行版
 - 由华为主导开发并捐赠给开放原子开源基金会
 - 是一个开源社区,同时也是一个操作系统
 
- 技术特点
 
- 多架构支持
- x86_64架构
 - ARM64架构
 - RISC-V架构
 
 - 性能优化
- 支持多样性计算
 - 提供A-Tune智能优化系统
 - 针对云计算场景优化
 
 - 安全特性
- 提供安全加固方案
 - 支持国密算法
 - 完整性保护机制
 
 
- 主要应用场景
 
- 服务器环境
 - 云计算平台
 - 边缘计算
 - 嵌入式系统
 - 个人桌面系统
 
- 核心优势
 
- 开源开放
- 完全开源的代码
 - 开放的社区治理
 - 支持社区贡献
 
 - 自主可控
- 支持国产化硬件
 - 适配国产软件生态
 - 安全可信
 
 - 高性能
- 优化的系统性能
 - 支持云原生架构
 - 智能调优能力
 
 
- 版本策略
 
- LTS版本
- 每2年发布一次
 - 提供4年支持期
 - 适合稳定性要求高的环境
 
 - 创新版本
- 每半年发布一次
 - 提供6个月支持期
 - 包含最新特性
 
 
- 生态系统
 
- 软件包支持
- 提供丰富的软件仓库
 - 支持主流开发语言
 - 兼容主流应用程序
 
 - 开发工具
- 提供完整的开发环境
 - 支持容器化部署
 - 提供API和SDK
 
 
- 社区支持
 
- 技术支持
- 文档资源
 - 问题解答
 - 技术培训
 
 - 社区协作
- 代码贡献
 - 问题反馈
 - 特性建议
 
 
- 主要特性
 
- iSula容器引擎
 - A-Tune智能优化系统
 - StratoVirt虚拟化平台
 - secGear安全框架
 - 鲲鹏加速引擎
 
- 发展目标
 
- 打造安全可靠的操作系统
 - 建设活跃的开源社区
 - 推动产业生态发展
 - 支持数字化转型
 
- 使用场景示例
 
- 政府部门
 - 金融机构
 - 电信运营商
 - 互联网企业
 - 科研教育机构
 
发展历史
- 起源(2019年)
 
- 2019年12月31日,openEuler正式开源,华为捐赠源代码
 - 这标志着openEuler社区正式成立
 
- 早期发展(2020年)
 
- 2020年3月:发布openEuler 20.03 LTS版本
- 这是第一个长期支持版本
 - 支持周期为4年
 - 面向服务器场景
 
 - 2020年9月:发布openEuler 20.09创新版本
- 引入更多新特性
 - 支持多样性计算
 
 
- 稳步推进(2021年)
 
- 2021年3月:发布openEuler 21.03创新版本
- 增加了对树莓派的支持
 - 优化ARM架构支持
 
 - 2021年9月:发布openEuler 21.09创新版本
- 引入A-Tune智能优化系统
 - 增强云原生特性
 
 
- 快速发展(2022年)
 
- 2022年3月:发布openEuler 22.03 LTS版本
- 第二个LTS版本
 - 支持周期为4年
 - 全面支持多样性计算
 
 - 2022年9月:发布openEuler 22.09创新版本
- 增强边缘计算能力
 - 优化云原生体验
 
 
- 最新进展(2023年)
 
- 2023年3月:发布openEuler 23.03创新版本
- 提供更好的桌面体验
 - 增强安全特性
 
 - 2023年9月:发布openEuler 23.09创新版本
- 进一步优化性能
 - 增强生态兼容性
 
 
版本命名规则:
- 版本号格式:YY.MM
- YY表示年份
 - MM表示月份
 
 - 版本类型:
 
- LTS版本:长期支持版本,每两年发布一次,支持期4年
 - 创新版本:每半年发布一次,支持期6个月
 
主要特点:
- 发布周期稳定
 
- LTS版本:每2年发布一次
 - 创新版本:每半年发布一次
 
- 版本支持策略清晰
 
- LTS版本提供4年支持
 - 创新版本提供6个月支持
 
- 持续创新
 
- 创新版本引入新特性
 - LTS版本注重稳定性
 
测试
上文是由AI生成,不保真但是与我浏览文档看到的出入不大。
本次测试其实不涉及太多环节,仅仅是从华为云创建 ECS 并修改ansible playbook 适配 openEuler。
华为云提供了 Huawei Cloud EulerOS 镜像
support.huaweicloud.com/productdesc-hce/hce_01_0001.html
其中 1.1 版本 100% 兼容 CentOS 7.9,实现了 BUG 级兼容。但是后续版本并不保证 100% 兼容,不过仍是基于 rhel 的发行版。
2.0 版本基于 openEuler 22.03 LTS,而 22.03 主要兼容 CentOS 8,采用了 dnf 作为包管理器。
创建服务器过程略过不谈,下面以 Huawei Cloud EulerOS 2.0 为例。
操作系统版本信息:
# cat /etc/os-release
NAME="Huawei Cloud EulerOS"
VERSION="2.0 (x86_64)"
ID="hce"
VERSION_ID="2.0"
PRETTY_NAME="Huawei Cloud EulerOS 2.0 (x86_64)"
ANSI_COLOR="0;31"
内核版本:
# uname -a
Linux openeuler-test 5.10.0-182.0.0.95.r2220_156.hce2.x86_64 #1 SMP Sat Sep 14 02:34:54 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
包管理器:
# rpm -q dnf yum
dnf-4.10.0-3.r18.hce2.noarch
yum-4.10.0-3.r18.hce2.noarch
SeLinux 默认关闭:
# getenforce 
Disabled
python版本 3.9.9:
# python --version
Python 3.9.9
glibc版本:
# ldd --version
ldd (GNU libc) 2.38
Copyright (C) 2023 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Written by Roland McGrath and Ulrich Drepper.
上面是一些简单信息展示,基本与 CentOS 8 差别不大。
之前的 ansible 初始化剧本,简单改改就成功运行:
# CentOS 7 
$ tree centos/
centos/
├── files
│   ├── atop.service
│   ├── Centos-7.repo
│   ├── elrepo-release-7.el7.elrepo.noarch.rpm
│   ├── elrepo.repo
│   └── RPM-GPG-KEY-elrepo.org
└── tasks
    ├── atop.yml
    ├── kernel.yml
    ├── main.yml
    ├── ntp.yml
    ├── selinux.yml
    ├── test.hosts
    └── yum.yml
$ cat centos/tasks/main.yml 
---
- import_tasks: selinux.yml
- import_tasks: yum.yml
- import_tasks: atop.yml
- import_tasks: ntp.yml
- import_tasks: kernel.yml
# openEuler
$ tree openeuler/
openeuler/
├── files
│   ├── atop.service
│   ├── Centos-7.repo
│   ├── elrepo-release-7.el7.elrepo.noarch.rpm
│   ├── elrepo.repo
│   └── RPM-GPG-KEY-elrepo.org
└── tasks
    ├── atop.yml
    ├── kernel.yml
    ├── main.yml
    ├── ntp.yml
    ├── selinux.yml
    ├── test.hosts
    └── yum.yml
# 由于selinux默认关闭了,不需要再调整。内核版本也比较新,不执行更新。
$ cat openeuler/tasks/main.yml 
---
#- import_tasks: selinux.yml
#- import_tasks: yum.yml
- import_tasks: yum.yml
- import_tasks: atop.yml
- import_tasks: ntp.yml
#- import_tasks: kernel.yml
# 将yum改为dnf模块
$ cat openeuler/tasks/yum.yml 
---
# 添加源
- name: Dnf | Install Epel Repo
  shell: dnf config-manager --add-repo https://repo.openeuler.org/openEuler-22.03-LTS-SP2/update/x86_64 && dnf clean all && dnf makecache
  args:
    warn: false
# 安装基础包
- name: Dnf | Install Basic Package
  dnf:
    name: "{{ item }}"
    #state: latest
  loop:
    - wget
    - telnet
    - lsof
    - net-tools
    - bind-utils
    - htop
    - nfs-utils
    - iftop
    - atop
    - tree
    - traceroute
    - mtr
    - nc
    - ntpdate
    - lrzsz
总结
本文没有实际部署业务进行测试。事实上我司存量有上千台 CentOS 服务器,想完成验证、测试、替换的周期可能需要几年。
对于不同的服务类型,测试验证的办法也不同,内核参数或各种其他系统配置都需要经过时间检验,任重而道远。