努力
加油

在物理服务器上部署应用应该选择哪个Ubuntu版本?

在物理服务器上部署应用,选 Ubuntu 版本的核心逻辑不是“哪个最新”,而是“稳定性”和“生命周期支持(LTS)”。

直接给结论:首选最新的 LTS 版本(Long Term Support),次选上一个 LTS 版本。

目前(2024年语境下),如果你现在要装新机器,请无脑选择 Ubuntu 22.04 LTS。如果业务极其保守且硬件较老,可以考虑 Ubuntu 20.04 LTS。坚决避开非 LTS 版本(如 23.10, 24.04 等中间版本),除非你是为了测试特定内核特性。

下面从几个实际运维和生产环境的维度,拆解为什么这么选,以及你在物理机上部署时需要注意的坑。

1. 为什么必须是 LTS?

Ubuntu 的版本分为两种:

  • 常规版本(Non-LTS):每半年发布一次,仅支持 9 个月。比如 23.10。这类版本适合桌面用户尝鲜新特性,但在生产环境是灾难。9个月后没有安全补丁,你的服务器就变成了裸奔状态。
  • 长期支持版(LTS):每两年发布一次(逢双数年),提供 5年 的标准免费支持。对于企业级用户,通过 Canonical 还可以购买 Extended Security Maintenance (ESM),再延长 3-5 年。

在物理机上,你不可能像云服务器那样随时快照回滚或秒级迁移。一旦系统底层库升级导致兼容性问题,排查成本极高。LTS 版本的软件包经过更长时间的冻结和测试,依赖关系更稳定,这是生产环境的基石。

2. 当前版本的具体对比与建议

推荐:Ubuntu 22.04 LTS (Jammy Jellyfish)

  • 现状:目前的“当红炸子鸡”。内核版本 5.15+,对现代硬件(尤其是近3-4年发布的 CPU、网卡、NVMe SSD)驱动支持最好。
  • 适用场景:绝大多数新建的物理服务器。无论是跑 K8s、Docker、数据库还是 Web 服务,22.04 都是平衡性最好的选择。
  • 优势:社区资源最丰富,国内各大云厂商(阿里云、腾讯云、华为云等)的基础镜像都以此为主力,遇到报错搜到的解决方案最多。

备选:Ubuntu 20.04 LTS (Focal Fossa)

  • 现状:上一代 LTS,依然非常稳定,但已进入维护中后期。
  • 适用场景:
    • 硬件比较老旧(例如 5-7 年前的服务器),新内核可能无法识别某些旧硬件或出现性能损耗。
    • 现有应用栈强依赖某些旧版库(如特定的 Python 2/3 混合环境,或者某些闭源商业软件的官方认证列表只到 20.04)。
    • 团队运维习惯尚未迁移,且短期内无重大升级计划。
  • 注意:虽然还能用,但新出的高性能硬件在 20.04 上可能需要手动安装 HWE (Hardware Enablement) 内核才能发挥全部性能。

不推荐:Ubuntu 24.04 LTS (Noble Numbat)

  • 现状:刚发布不久(2024年4月)。
  • 风险:虽然它是未来的 LTS,但在刚发布的前6个月内,往往存在少量未发现的 Bug,尤其是涉及到底层驱动、虚拟化接口或第三方非开源组件时。
  • 策略:如果你是互联网大厂的核心业务线,建议再观望 3-6 个月,等第一个 Point Release(如 24.04.1)出来后再上生产。如果是个人项目或非关键业务,可以尝试,但要做好排错准备。

3. 物理机部署的特殊考量(区别于云服务器)

在云服务器上,我们通常直接用厂商提供的镜像。但在物理机上,你面临的是裸金属(Bare Metal)环境,以下几点至关重要:

A. 内核与硬件兼容性

Ubuntu 默认安装的内核是通用内核。如果你的物理机有特殊的 RAID 卡(如 Dell PERC, HP Smart Array)、万兆网卡( Mellanox, Intel X710 )或 GPU,默认内核可能带不出驱动。

  • 操作建议:安装时选择 Minimal Install 或 Server Install,不要选 Desktop。安装完成后,立即检查 lspci 和 lsblk,确保所有硬件被正确识别。如有必要,启用 HWE 内核更新通道:
    sudo apt install --install-recommends linux-generic-hwe-22.04

B. BIOS/UEFI 设置

物理机的 BIOS 设置直接影响 Linux 的性能和稳定性:

  • Secure Boot:建议关闭。虽然 Ubuntu 支持 Secure Boot,但第三方驱动(如 NVIDIA 显卡驱动、某些无线网卡驱动、ZFS 模块)在开启 Secure Boot 时会带来巨大的配置麻烦和编译负担。
  • Power Management:设置为 Performance 模式,避免 CPU 频率波动过大影响实时性要求高的应用(如音视频处理、高频交易)。
  • VT-x / AMD-V:确保开启,即使你不打算立刻做虚拟化,这也是未来扩容容器集群的基础。

C. 网络配置

物理机通常有多块网卡。Ubuntu 22.04 默认使用 Netplan 进行网络配置,而非传统的 /etc/network/interfaces。

  • 务必确认 IP 分配方式:静态 IP 还是 DHCP?在生产环境中,强烈建议使用静态 IP,并通过 /etc/netplan/ 配置文件固化下来,防止重启后 IP 漂移导致服务不可达。
  • Bonding/LACP:如果需要链路聚合,直接在 Netplan 中配置 Bonding,比后续手动修改脚本更可靠。

D. 自动化与初始化

不要在物理机上手动敲命令完成所有配置。使用 Ansible 或 Cloud-init(即使是物理机,也可以通过自定义 seed.iso 实现类 Cloud-init 的初始化)来保证每次重装系统的一致性。

  • 物理机最容易出现的故障是人为配置差异。通过代码定义基础设施(IaC),是避免“这台机器能跑,那台不行”这种玄学问题的唯一解。

4. 总结行动指南

  1. 下载 ISO:去 Ubuntu 官网下载 Ubuntu Server 22.04.4 LTS(或最新的小版本)。
  2. 制作启动盘:使用 Rufus (Windows) 或 Etcher (Mac/Linux) 写入 U 盘。
  3. BIOS 检查:关闭 Secure Boot,开启 VT-x/AMD-V,调整电源管理。
  4. 安装过程:
    • 语言:English(减少潜在编码问题,国内开发环境普遍 UTF-8)。
    • 键盘布局:English (US)。
    • 分区:推荐使用 LVM,方便后续扩容。如果数据极其重要,考虑 ZFS(需额外安装 zfsutils-linux,但 22.04 已原生较好支持)。
    • 软件选择:勾选 OpenSSH server,其他按需。
  5. 安装后第一件事:
    sudo apt update && sudo apt upgrade -y
    sudo reboot
  6. 后续优化:禁用不必要的服务(如 snapd,如果不用 Snap 应用的话,Snap 在物理机上有时会导致启动变慢和磁盘占用高),配置防火墙(UFW),并设置自动安全更新。

最后提醒:无论选哪个版本,定期备份和监控告警比操作系统本身更重要。物理机坏了,换硬盘或整机替换即可,但数据丢了就是事故。