跳转到内容

Anolis OS 使用指南

Anolis OS 是由阿里巴巴发起、OpenAnolis 社区维护的 Enterprise Linux 兼容发行版。Anolis OS 7/8 分别与 RHEL 7/8 兼容;Anolis OS 23 则走独立演进路线(ANCK 6.6 内核)。它在保持 EL 生态兼容的同时,引入了 Cloud Kernel(ANCK)、LoongArch 架构支持等独有特性,是阿里云生态中的核心操作系统选择。

版本上游基础生命周期说明
Anolis OS 7(当前 7.9)RHEL 7至 2029 年兼容 CentOS 7,适合老系统迁移
Anolis OS 8(当前 8.10)RHEL 8至 2031 年兼容 CentOS 8 / AlmaLinux 8
Anolis OS 23(当前 23.5)独立演进滚动维护自主技术路线,非严格 RHEL 兼容

Anolis OS 23 是 Anolis 社区的创新版本,采用了更激进的技术选型(如更新的工具链、独立的包版本管理),不再严格追求与 RHEL 的二进制兼容。阿里云上的「Alibaba Cloud Linux 3」基于 Anolis OS 8,「Alibaba Cloud Linux 4」则基于 Anolis OS 23。

Anolis OS 最大的差异在于内核。除了标准的 RHEL 兼容内核,Anolis OS 还提供 Cloud Kernel(ANCK),这是其核心竞争力。

Anolis OS 8 的用户态软件包与 RHEL 8 保持高度一致,可以直接使用 RHEL/CentOS 8 的 RPM 包。Anolis OS 23 的部分包版本会领先于 RHEL 9。

  • SELinux 默认处于 enforcing 模式(与 RHEL 一致)
  • 防火墙默认使用 firewalld
  • 网络管理使用 NetworkManager
  • 在阿里云 ECS 上运行时,cloud-init 预配置了阿里云数据源
查看当前 Anolis OS 版本
$ cat /etc/anolis-release
Anolis OS 8 使用 DNF 管理软件包
$ sudo dnf update
$ sudo dnf install nginx
查看已启用的仓库
$ dnf repolist

Anolis OS 8 默认启用以下仓库:

仓库 ID说明
BaseOS基础操作系统包,与 RHEL 8 BaseOS 对应
AppStream应用流包,与 RHEL 8 AppStream 对应
PowerTools开发者工具包(对应 RHEL 的 CodeReady Builder)
PlusAnolis 社区额外维护的增强包
Extras额外的常用软件包
查看仓库配置
$ ls /etc/yum.repos.d/
查看 BaseOS 仓库配置
$ cat /etc/yum.repos.d/AnolisOS-BaseOS.repo

Anolis OS 8 兼容 EPEL 仓库:

启用 EPEL 仓库
$ sudo dnf install epel-release -y

Anolis OS 23 的仓库结构有所不同,使用 osupdateextras 等仓库名:

Anolis OS 23 仓库列表
$ dnf repolist

Cloud Kernel 是 Anolis OS 的核心特性,全称为 Alibaba Cloud Linux Kernel(ANCK)。它基于上游 LTS 内核,针对云场景做了大量优化。

特性标准内核 (kernel)ANCK (kernel-anck)
基础版本RHEL 回移内核上游 LTS + 阿里云补丁
更新频率跟随 RHEL 节奏独立更新,更频繁
云优化通用配置针对云虚拟化深度优化
新特性保守引入积极引入上游新特性

在阿里云 ECS 上,Alibaba Cloud Linux 默认使用 ANCK。如果需要手动安装:

安装 Cloud Kernel
$ sudo dnf install kernel-anck
查看已安装的内核
$ rpm -qa | grep kernel
设置 ANCK 为默认启动内核
$ sudo grubby --set-default /boot/vmlinuz-*anck*
重启后验证
$ uname -r

输出中包含 anck 字样表示正在使用 Cloud Kernel。

  • Group Identity:为容器提供基于 cgroup 的调度优先级,确保高优先级任务的 CPU 时间
  • CPU Burst:允许容器在短时间内突发使用超出 CPU 限额的资源,减少延迟毛刺
  • Memory QoS:基于 cgroup v2 的内存 QoS 支持,精细控制容器内存行为
查看 CPU Burst 支持
$ cat /sys/fs/cgroup/cpu/cpu.cfs_burst_us
  • io_uring 增强:对 io_uring 的异步 I/O 框架做了额外优化
  • ext4/XFS 优化:针对云盘场景的文件系统性能改进
  • EROFS:增强型只读文件系统,适合容器镜像场景
  • BBR 拥塞控制:默认可用的 TCP BBR 算法
  • XDP 增强:eXpress Data Path 的性能改进
启用 BBR 拥塞控制
$ sudo sysctl -w net.core.default_qdisc=fq
$ sudo sysctl -w net.ipv4.tcp_congestion_control=bbr
持久化 BBR 配置
$ echo "net.core.default_qdisc=fq" | sudo tee -a /etc/sysctl.d/99-bbr.conf
$ echo "net.ipv4.tcp_congestion_control=bbr" | sudo tee -a /etc/sysctl.d/99-bbr.conf
  • China SM 国密算法:内核级别支持 SM2/SM3/SM4 国密算法
  • KASLR 增强:内核地址空间布局随机化改进

Anolis OS 提供 sysAK(System Analyse Kit)工具集,用于性能分析和故障诊断:

安装 sysAK
$ sudo dnf install sysak
使用 sysAK 进行性能分析
# 查看可用的诊断工具
$ sysak list
# CPU 性能分析
$ sudo sysak cpu_flamegraph -t 10
# 内存泄漏检测
$ sudo sysak memleak -p <pid>
# I/O 延迟分析
$ sudo sysak iolat

Anolis OS 支持多种处理器架构,这是其相比其他 EL 兼容发行版的一个显著优势:

架构Anolis OS 8Anolis OS 23说明
x86_64支持支持Intel/AMD 64 位
aarch64支持支持ARM 64 位(如鲲鹏、飞腾)
LoongArch-支持龙芯架构
RISC-V-实验性正在适配中

阿里云提供基于倚天 710(ARM 架构)的 ECS 实例(g8y/c8y/r8y 系列)。Anolis OS 在这些实例上有良好支持:

查看系统架构
$ uname -m
# 输出 aarch64 表示 ARM 64 位
$ cat /proc/cpuinfo | head -20

ARM 实例上使用 Anolis OS 与 x86 基本一致,大部分命令和配置通用。少数软件可能尚未提供 ARM 版本,安装前确认仓库中是否有对应架构的包。

OpenAnolis 社区提供了官方迁移工具 anolis-migration

安装迁移工具
$ sudo yum install -y yum-utils
$ sudo curl -o /etc/yum.repos.d/anolis-migration.repo \
https://mirrors.openanolis.cn/anolis/migration/anolis-migration.repo
$ sudo yum install -y anolis-migration
执行预检查
$ sudo anolis-migration --check

预检查会扫描以下内容:

  • 当前系统版本和架构是否支持
  • 已安装的第三方包是否兼容
  • 内核版本和模块是否兼容
  • 磁盘空间是否充足
执行迁移
$ sudo anolis-migration --migrate

迁移过程会:

  1. 替换 CentOS 仓库为 Anolis OS 仓库
  2. 替换系统标识包(centos-releaseanolis-release
  3. 更新所有系统包到 Anolis OS 版本
  4. 重建 RPM 数据库
迁移后验证
$ cat /etc/anolis-release
$ rpm -qa | grep centos
# 应该没有输出,表示所有 CentOS 包已被替换

流程与 CentOS 7 类似:

CentOS 8 迁移到 Anolis OS 8
$ sudo dnf install -y dnf-utils
$ sudo curl -o /etc/yum.repos.d/anolis-migration.repo \
https://mirrors.openanolis.cn/anolis/migration/anolis-migration.repo
$ sudo dnf install -y anolis-migration
$ sudo anolis-migration --check
$ sudo anolis-migration --migrate
  • 迁移前务必做好完整备份(快照、数据备份)
  • 迁移过程中不要中断,否则可能导致系统不可用
  • 第三方仓库的包(如 EPEL、Remi)需要在迁移后重新配置
  • 自编译的内核模块需要在新内核上重新编译
  • 迁移后建议重启系统以加载新内核
  • 生产环境建议先在测试机上验证迁移流程
迁移后重启
$ sudo reboot
重启后确认系统状态
$ cat /etc/anolis-release
$ uname -r
$ systemctl is-system-running
$ dnf check

在阿里云 ECS 上运行 Anolis OS / Alibaba Cloud Linux 时,有以下专属集成特性:

Alibaba Cloud Linux 镜像预装了以下阿里云组件:

  • cloud-init:实例初始化工具,配置了阿里云数据源
  • aliyun-cli:阿里云命令行工具(部分镜像)
  • aegis:阿里云安全 agent(云安全中心)
  • cloudmonitor:云监控 agent
查看预装的阿里云组件
$ rpm -qa | grep -E "(cloud-init|aegis|cloudmonitor|aliyun)"

阿里云为 ANCK 提供内核热补丁功能,可以在不重启的情况下修复内核漏洞:

查看可用的内核热补丁
$ sudo dnf list available | grep kpatch
安装内核热补丁
$ sudo dnf install kpatch-patch-<kernel-version>

Alibaba Cloud Linux 在 ECS 上的默认配置针对阿里云做了调优:

  • 虚拟化驱动优化:virtio 驱动调优,提升 I/O 性能
  • 内存管理:针对 ECS 实例的内存回收策略调优
  • 网络参数:TCP 缓冲区和拥塞控制针对阿里云网络调优
  • 存储优化:云盘 I/O 调度和预读参数调优
查看阿里云专属调优参数
$ sudo sysctl -a | grep alibaba
$ cat /etc/sysctl.d/*ali* 2>/dev/null

在 ECS 实例上,Anolis OS 仓库默认指向阿里云内网镜像源,速度快且不消耗公网带宽:

查看仓库指向的镜像源
$ dnf repoinfo BaseOS | grep "Repo-baseurl"

如果在非阿里云环境使用 Anolis OS,可以将仓库指向公网镜像:

切换到公网镜像源
$ sudo sed -i 's|http://mirrors.cloud.aliyuncs.com|https://mirrors.aliyun.com|g' /etc/yum.repos.d/AnolisOS-*.repo
$ sudo dnf makecache
查看所有已安装内核
$ sudo grubby --info=ALL | grep title
切换默认内核
# 切换到标准内核
$ sudo grubby --set-default /boot/vmlinuz-4.18.0-xxx.el8.x86_64
# 切换到 ANCK
$ sudo grubby --set-default /boot/vmlinuz-4.19.91-xxx.anck.x86_64
重启生效
$ sudo reboot

Anolis OS 8 与 RHEL 8 高度兼容,绝大多数为 RHEL/CentOS 8 编译的软件可以直接运行。如遇兼容性问题:

  1. 检查软件是否有针对 Anolis OS 的版本
  2. 使用 RHEL 8 版本的包通常可以直接安装
  3. 检查是否缺少依赖库
检查共享库依赖
$ ldd /path/to/binary