4、操作系统与基础环境准备:推荐Linux发行版(Ubuntu、CentOS)的安装与配置
大模型训练与推理任务对操作系统的稳定性、内核版本、文件系统性能以及远程管理能力都有极高要求。Windows 或 macOS 在驱动兼容性、批量部署和无人值守场景下往往不是最优选择,而 Linux 凭借其开源生态、高效的进程调度和灵活的存储管理,成为深度学习环境的事实标准。本章将围绕 Ubuntu 与 CentOS 两大主流发行版,系统讲解从安装规划、用户权限、网络配置、SSH 远程访问到磁盘分区与文件系统优化的完整链路,帮助读者建立一套可复用、可审计、可扩展的基础环境准备方法论。
上图展示了从发行版选择到最终验证监控的完整链路。在实际部署中,我们通常遵循“最小化安装、按需配置、验证闭环”的原则,避免在基础阶段引入不必要的图形界面或服务,从而降低攻击面并提升系统资源利用率。下面将按照操作顺序逐一展开。
4.1 发行版选型与安装规划
核心原理:Ubuntu 与 CentOS 分别代表 Debian 系与 RHEL 系两大生态。Ubuntu 的 apt 包管理器软件源更新频繁,对 CUDA、PyTorch 等深度学习框架的兼容性验证最快,适合开发与迭代环境;CentOS 的 yum/dnf 包管理器则更强调稳定性,内核版本相对保守,适合生产环境与长期运维。对于大模型部署,我们更关注内核版本对 NVIDIA 驱动的支持、文件系统对高并发小文件读写的表现,以及系统更新策略对训练任务连续性的影响。
判断方法:选择发行版时,可依据以下维度进行决策:
| 对比维度 | Ubuntu 22.04 LTS | CentOS 7.9 / Stream 9 |
|---|---|---|
| 内核版本 | 5.15+(支持新硬件) | 3.10 / 5.14(保守稳定) |
| 软件源更新频率 | 每 6 个月发布新版本 | 滚动更新(Stream)或长期维护 |
| 深度学习框架兼容性 | 官方优先支持 | 需额外配置 EPEL 源 |
| 适合场景 | 开发、测试、原型验证 | 生产环境、合规要求高的场景 |
| 系统管理工具 | apt + systemd | yum/dnf + systemd |
操作流程:以 Ubuntu Server 22.04 为例,安装时选择“最小安装”选项,不勾选“安装第三方软件”和“下载更新”以加快部署速度。磁盘分区建议采用 LVM 逻辑卷管理,便于后续扩容。具体分区方案如下:
# 分区规划(以 2TB NVMe SSD 为例)
/boot 1GB ext4 # 内核与引导文件
/ 200GB ext4 # 系统根目录
/data 剩余空间 xfs # 大模型权重、数据集、日志存放
swap 32GB swap # 与物理内存大小一致或按需调整
常见误区:很多初学者将全部空间分配给根分区,导致后续训练数据无处存放。实际上,将 /data 独立分区不仅便于数据管理,还能在系统重装时保留模型权重。另外,swap 分区在大模型训练中并非越大越好,当物理内存充足(如 512GB)时,swap 反而会拖慢 I/O 性能,建议设置为 0 或仅保留 8GB 用于内核转储。
4.2 用户权限与安全基线
核心原理:大模型训练通常需要以非 root 用户运行,以降低误操作或安全漏洞带来的风险。Linux 的权限模型基于 UID/GID 和 sudo 提权机制,合理的用户规划应遵循“最小权限原则”——每个服务或任务使用独立用户,避免共享账号。
操作流程:创建专用用户并配置 sudo 权限:
# 创建用户 ai-user,并指定 home 目录和 shell
sudo useradd -m -d /home/ai-user -s /bin/bash ai-user
# 设置密码
sudo passwd ai-user
# 将用户加入 sudo 组(Ubuntu)或 wheel 组(CentOS)
sudo usermod -aG sudo ai-user # Ubuntu
sudo usermod -aG wheel ai-user # CentOS
# 验证 sudo 权限
su - ai-user
sudo whoami # 应输出 root
安全加固要点:编辑 /etc/ssh/sshd_config,禁止 root 直接登录,并限制 SSH 登录用户:
PermitRootLogin no
AllowUsers ai-user
PasswordAuthentication no # 启用密钥认证后关闭密码登录
案例拆解:某 AI 实验室部署 8 卡 A100 服务器时,因未限制 root 登录且使用弱密码,被暴力破解后植入了挖矿程序,导致训练任务中断。事后排查发现攻击者通过 SSH 默认端口 22 进入系统。修复措施包括:更换 SSH 端口至 2222、启用密钥认证、配置 fail2ban 自动封禁异常 IP。整个过程耗时 2 小时,但避免了更大的算力损失。复盘经验:基础环境的安全配置必须在联网前完成,且每次系统更新后需重新审计 SSH 配置。
4.3 网络设置与远程访问优化
核心原理:大模型训练服务器通常位于数据中心或实验室内部网络,需要配置静态 IP 以保证服务可发现性。同时,SSH 是远程管理的主要通道,其性能与稳定性直接影响开发效率。
操作流程:在 Ubuntu 中使用 netplan 配置静态 IP:
# /etc/netplan/01-netcfg.yaml
network:
version: 2
ethernets:
eth0:
dhcp4: no
addresses: [192.168.1.100/24]
routes:
- to: default
via: 192.168.1.1
nameservers:
addresses: [8.8.8.8, 114.114.114.114]
# 应用配置
sudo netplan apply
CentOS 则通过 /etc/sysconfig/network-scripts/ifcfg-eth0 配置,或使用 NetworkManager 的 nmcli 工具。配置完成后,务必测试网络连通性:
ping -c 4 8.8.8.8
curl -I http://mirrors.ubuntu.com # 测试软件源连通性
SSH 性能调优:对于跨地域远程访问,可在 sshd_config 中增加以下参数:
# 保持会话活跃,防止断连
ClientAliveInterval 60
ClientAliveCountMax 3
# 启用压缩(对低带宽场景有效)
Compression yes
常见误区:部分用户直接复制虚拟机配置到物理机,导致网卡名称不匹配(如 eth0 变为 ens33)。建议使用 ip link 查看实际网卡名称,并在配置文件中使用匹配的接口名。另外,防火墙(ufw 或 firewalld)需显式放行 SSH 端口,否则即使 SSH 服务正常也无法连接。
4.4 磁盘分区与文件系统优化
核心原理:大模型训练涉及海量小文件(如 JSON 数据集、tokenizer 词表)和超大文件(如模型 checkpoint),文件系统的选择直接影响数据加载速度。Ext4 兼容性最好,XFS 在并发写入和删除大文件时表现更优,而 ZFS/Btrfs 虽支持压缩与快照,但 CPU 开销较高,不适合训练节点。
优化策略:
- 挂载参数:在
/etc/fstab中为 /data 分区添加noatime,nodiratime,减少元数据写入。 - I/O 调度器:NVMe SSD 建议使用
none(即 noop),机械硬盘使用deadline。 - 预读优化:使用
blockdev --setra 8192 /dev/nvme0n1增加预读缓存。
# /etc/fstab 示例
/dev/vg_data/lv_data /data xfs defaults,noatime,nodiratime 0 0
# 查看当前 I/O 调度器
cat /sys/block/nvme0n1/queue/scheduler
案例拆解:某团队在加载 200GB 的 Llama-2-7B 数据集时,初始使用 Ext4 默认挂载参数,数据加载耗时 45 分钟。通过将分区切换为 XFS 并启用 noatime,加载时间缩短至 28 分钟,提升约 38%。进一步使用 iostat -x 1 监控发现,瓶颈在于随机读 IOPS,通过调整预读值后,最终稳定在 22 分钟。该优化无需额外硬件成本,仅通过文件系统参数调整即可实现。
mkfs.xfs -f 强制格式化,该操作会清除所有数据。执行前应使用 lsblk 和 blkid 确认设备路径,避免误操作系统盘。