跳转到内容
搜索 RunEntLinux 文档

仅搜索 RunEntLinux 通用文档,各发行版文档使用各自的搜索入口。

    浏览当前文档目录

    OpenCloudOS 使用指南

    OpenCloudOS 是由腾讯主导、多家企业联合发起的开源操作系统社区项目,引入了 TencentOS Kernel 等差异化特性,是腾讯云生态中的核心操作系统选择。兼容性按版本区分:8 系用户态与 CentOS 8 100% 兼容;9 系为社区全自研(官方 FAQ:内核到软件包自主选型和自主维护)。腾讯云上的「TencentOS Server」即基于 OpenCloudOS。

    版本上游基础生命周期说明
    OpenCloudOS 8(当前 8.10)CentOS 8 用户态兼容以官方公告为准用户态与 CentOS 8 100% 兼容
    OpenCloudOS 9(当前 9.6)社区全自研(内核到软件包自主选型/编译/维护)以官方公告为准非基于 RHEL 9;TencentOS Kernel 6.6
    OpenCloudOS Stream 23独立演进滚动维护自主技术路线,社区创新版本

    OpenCloudOS 8 用户态与 CentOS 8 100% 兼容;OpenCloudOS 9 为社区全自研版本(官方 FAQ:内核到软件包自主选型/编译/维护,非基于 RHEL 9)。两者均适合生产环境;OpenCloudOS Stream 23 采用独立版本策略,引入更多社区创新。

    腾讯云上的命名对应关系:

    腾讯云镜像名对应社区版本
    TencentOS Server 3.1基于 OpenCloudOS 8
    TencentOS Server 4基于 OpenCloudOS 9

    两个版本系都默认使用社区维护的 TencentOS Kernel(TK),但兼容性口径不同:

    • OpenCloudOS 8:用户态与 CentOS 8 100% 兼容;内核为社区 5.4 LTS 系(TK),不是 RHEL 8 的 4.18 内核回移——为 RHEL 8 内核模块/驱动编译的二进制需逐项验证;
    • OpenCloudOS 9:社区全自研(内核到软件包自主选型/维护),内核为 6.6 LTS 系(TK)。

    具体内核版本号随发布更新,以本机 uname -r 与 grubby --info=ALL 实际输出为准(本页不锁定版本号以免过时)。TencentOS Kernel 是 OpenCloudOS 区别于其他 EL 生态发行版的核心特性。

    OpenCloudOS 8 的用户态软件包与 CentOS 8 100% 兼容,通常可以直接使用 RHEL/CentOS 8 的 RPM 包。OpenCloudOS 9 为全自研路线,软件包自主维护——为 RHEL 9 编译的二进制不保证直接可用,逐项验证。

    • SELinux 默认处于 enforcing 模式
    • 防火墙默认使用 firewalld
    • 网络管理使用 NetworkManager
    • 在腾讯云 CVM 上运行时,cloud-init 预配置了腾讯云数据源
    查看当前 OpenCloudOS 版本
    $ cat /etc/opencloudos-release
    查看内核版本
    $ uname -r
    查看已启用的仓库
    $ dnf repolist

    OpenCloudOS 8 默认仓库:

    仓库 ID说明
    BaseOS基础操作系统包
    AppStream应用流包
    Extras额外软件包
    PowerTools开发者工具
    Plus社区增强包
    仓库 ID说明
    BaseOS基础操作系统包
    AppStream应用流包
    CRBCodeReady Builder 对应包
    Extras额外软件包
    查看仓库配置文件
    $ ls /etc/yum.repos.d/

    第三方软件仓库:8 系用 EPEL,9 系用 EPOL

    Section titled “第三方软件仓库:8 系用 EPEL,9 系用 EPOL”

    按官方 FAQ,两个版本系的第三方仓库不同:

    OpenCloudOS 8(用户态兼容 CentOS 8)沿用 EPEL:

    OpenCloudOS 8 启用 EPEL
    $ sudo dnf install epel-release -y

    如果 epel-release 不在默认仓库中,可手动安装:

    手动安装 EPEL 8(OpenCloudOS 8)
    $ sudo dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm

    OpenCloudOS 9(社区全自研)使用 EPOL(OpenCloudOS 社区提供的软件仓库——官方 FAQ 特别提示注意拼写,不是 EPEL):

    OpenCloudOS 9 启用 EPOL(官方 FAQ 给出的安装命令)
    $ sudo dnf install epol-release -y
    $ dnf repolist | grep -i epol

    在腾讯云 CVM 上,OpenCloudOS 仓库默认指向腾讯云内网镜像,访问速度快且不消耗公网带宽。如果在非腾讯云环境使用:

    切换到公网镜像源
    $ sudo sed -i 's|http://mirrors.tencentyun.com|https://mirrors.cloud.tencent.com|g' /etc/yum.repos.d/OpenCloudOS*.repo
    $ sudo dnf makecache

    TencentOS Kernel(TK)是 OpenCloudOS 的核心差异化特性,基于上游 LTS 内核,融入了腾讯在大规模生产环境中积累的优化经验。

    TK 基于上游 LTS 内核加腾讯自研补丁,与 RHEL 系(回移策略)的取向不同:

    特性RHEL 系内核(回移策略)TencentOS Kernel
    版本策略大版本内冻结基线,安全/特性回移上游 LTS 基线 + 腾讯补丁(8 系 5.4 系 / 9 系 6.6 系)
    更新节奏跟随 RHEL 发布社区独立更新周期
    容器优化标准支持深度优化(云场景)
    性能调优通用配置针对云场景(多租户隔离/大页/eBPF 网络等)

    在腾讯云 CVM 上,TencentOS Server / OpenCloudOS 官方镜像默认即 TK,无需另行安装。TK 随系统内核更新通道(dnf update kernel 系)演进;如需安装其它内核变体,包名以当前版本仓库实际提供为准(dnf list kernel* 查看),本页不锁定包名以免过时。

    查看当前内核与已安装内核包
    $ uname -r
    $ rpm -qa | grep ^kernel
    $ dnf list --available 'kernel*' 2>/dev/null | head
    • cgroupfs 优化:改进 cgroup v2 的性能和稳定性
    • 容器网络优化:减少容器网络命名空间切换的开销
    • OOM 增强:改进 OOM Killer 在容器场景下的行为,避免误杀关键进程
    • io_uring 增强:对异步 I/O 框架的性能优化
    • 云盘 I/O 优化:针对虚拟化存储的 I/O 调度优化
    • 文件系统改进:ext4 和 XFS 在高并发场景下的性能提升
    • BBR 拥塞控制:预置 TCP BBR 拥塞控制算法
    启用 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
    • XDP 支持:eXpress Data Path 高性能数据包处理
    • MPTCP:多路径 TCP 支持
    • 内核热补丁:支持在不重启的情况下修复内核漏洞
    • KASLR 增强:内核地址空间布局随机化改进

    TencentOS Kernel 提供了一些额外的可调参数:

    查看 TK 专属参数
    $ sudo sysctl -a | grep tencent 2>/dev/null
    常用网络调优参数
    # 增大 TCP 缓冲区
    $ sudo sysctl -w net.core.rmem_max=16777216
    $ sudo sysctl -w net.core.wmem_max=16777216
    # 优化 TCP 连接复用
    $ sudo sysctl -w net.ipv4.tcp_tw_reuse=1
    # 增大连接队列
    $ sudo sysctl -w net.core.somaxconn=65535

    OpenCloudOS 社区提供了官方迁移工具 migrate2opencloudos:

    下载迁移脚本
    $ curl -fsSL https://mirrors.opencloudos.tech/opencloudos/migration/migrate2opencloudos.sh -o migrate2opencloudos.sh
    $ chmod +x migrate2opencloudos.sh

    CentOS 7 到 OpenCloudOS 8 属于跨大版本迁移,建议采用重新部署的方式而非原地升级。如果必须原地迁移:

    1. 先将 CentOS 7 迁移到 OpenCloudOS 7(如果可用)
    2. 再执行大版本升级

    更推荐的做法是新建 OpenCloudOS 8 实例,然后迁移应用和数据。

    CentOS 8 到 OpenCloudOS 8 属于同版本迁移,兼容性最好:

    执行预检查
    $ sudo bash migrate2opencloudos.sh --check

    预检查会扫描:

    • 当前系统版本是否支持迁移
    • 第三方仓库和包的兼容性
    • 磁盘空间是否充足
    • 内核模块兼容性
    执行迁移
    $ sudo bash migrate2opencloudos.sh --migrate

    迁移过程:

    1. 备份当前仓库配置
    2. 替换 CentOS 仓库为 OpenCloudOS 仓库
    3. 替换系统标识包(centos-release → opencloudos-release)
    4. 同步更新所有系统包
    5. 重建 RPM 数据库
    迁移后验证
    $ cat /etc/opencloudos-release
    $ rpm -qa | grep centos
    # 应该没有 CentOS 相关包输出
    重启以加载新内核
    $ sudo reboot
    重启后确认系统状态
    $ uname -r
    $ systemctl is-system-running
    $ dnf check
    CentOS Stream 9 迁移
    $ sudo bash migrate2opencloudos.sh --os-version 9 --check
    $ sudo bash migrate2opencloudos.sh --os-version 9 --migrate
    • 备份优先:迁移前务必创建完整快照或备份
    • 测试先行:在测试环境验证迁移流程后再操作生产环境
    • 第三方包:迁移后需按目标版本系重新配置第三方仓库——8 系重新配置 EPEL/Remi 等;9 系(全自研)改用 EPOL 并对每个第三方包逐项验证可用性(官方 FAQ 区分两系仓库,见上文「第三方软件仓库」节)
    • 自编译模块:自编译的内核模块需在新内核上重新编译
    • 不可中断:迁移过程中不要中断操作或关闭电源
    • 监控服务:迁移后检查所有关键服务是否正常运行
    迁移后检查关键服务
    $ sudo systemctl list-units --type=service --state=failed
    $ sudo systemctl status nginx postgresql redis

    在腾讯云 CVM 上运行 OpenCloudOS(即 TencentOS Server)时,有以下专属集成特性:

    TencentOS Server 镜像预装了以下腾讯云组件:

    • cloud-init:实例初始化,预配置腾讯云数据源
    • tat_agent:腾讯云自动化助手 agent,支持远程命令执行
    • sgagent:腾讯云监控 agent
    • YunJing:腾讯云主机安全 agent
    查看预装的腾讯云组件
    $ rpm -qa | grep -E "(cloud-init|tat_agent|sgagent)"
    $ systemctl status tat_agent

    TAT 允许你在控制台或通过 API 远程执行命令,无需 SSH 登录:

    查看 TAT agent 状态
    $ systemctl status tat_agent

    通过 CLI 执行远程命令:

    使用 tccli 在实例上远程执行命令
    $ tccli tat RunCommand \
    --Content "$(echo 'df -h && free -m' | base64)" \
    --InstanceIds '["ins-xxxxxx"]' \
    --CommandType SHELL

    腾讯云为 TencentOS Kernel 提供内核热补丁支持:

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

    TencentOS Server 在 CVM 上的默认配置针对腾讯云做了调优:

    • 虚拟化驱动:virtio 驱动针对腾讯云虚拟化平台优化
    • 内存管理:页面回收和 swap 策略针对 CVM 调优
    • 网络参数:TCP 和网卡参数针对腾讯云网络调优
    • 存储调度:I/O 调度器针对云硬盘特性调优
    查看腾讯云调优参数
    $ cat /etc/sysctl.d/*tencent* 2>/dev/null
    $ cat /etc/sysctl.d/*cloud* 2>/dev/null

    结合 tccli 可以实现自动化运维:

    批量查询实例状态
    $ tccli cvm DescribeInstances \
    --Filters '[{"Name":"instance-state","Values":["RUNNING"]}]' | \
    jq '.InstanceSet[] | {InstanceId, InstanceName, PrivateIpAddresses}'
    创建定期快照策略
    $ tccli cbs CreateAutoSnapshotPolicy \
    --Policy '[{"DayOfWeek":[0],"Hour":[3]}]' \
    --AutoSnapshotPolicyName "weekly-backup" \
    --RetentionDays 30

    OpenCloudOS 社区资源:

    腾讯云用户还可以通过腾讯云工单系统获取技术支持。

    如何在多个已安装内核之间切换

    Section titled “如何在多个已安装内核之间切换”
    查看所有已安装的内核(按实际路径选择,勿硬套版本号)
    $ sudo grubby --info=ALL | grep -E '^kernel|title'

    从上一步列出的实际内核路径中,选择目标内核(各 vmlinuz-* 路径随已安装包而定):

    切换默认内核(把路径换成上一步列出的实际 vmlinuz 路径)
    $ sudo grubby --set-default /boot/vmlinuz-<实际版本>.<架构>
    $ sudo reboot
    $ uname -r # 重启后确认已切换

    OpenCloudOS 与 TencentOS Server 的关系

    Section titled “OpenCloudOS 与 TencentOS Server 的关系”

    OpenCloudOS 是社区开源项目,TencentOS Server 是腾讯云基于 OpenCloudOS 定制的商业镜像。两者的主要区别:

    • TencentOS Server 预装了腾讯云 agent 和监控组件
    • TencentOS Server 的仓库指向腾讯云内网镜像
    • TencentOS Server 可获得腾讯云官方技术支持
    • 两者的内核和用户态软件包完全一致

    OpenCloudOS 8 用户态兼容 CentOS 8,为 RHEL/CentOS 8 编译的软件通常可以直接运行;OpenCloudOS 9 为全自研路线需逐项验证。如遇问题:

    检查二进制文件依赖
    $ ldd /path/to/binary
    查找缺失的库文件属于哪个包
    $ dnf provides libxxx.so.1