一、背景认知:为什么 AI 场景必须重视 LVM PE 大小

1.1 openEuler 24.03 LTS SP3 与 AI 的天然契合

  • 版本定位:2025 年 12 月发布的首个支持超节点的 LTS 版本,基于 Linux 6.6 内核,官方原生优化 AI 训练 / 推理性能,大模型 MoE 预训练性能提升 3 倍
  • 默认存储方案:系统默认采用 LVM 逻辑卷管理,是信创环境下 AI 服务器的标准存储规范
  • AI 存储痛点:大模型训练涉及GB 级单文件(模型权重、Checkpoint)、TB 级数据集高频大块 I/O,默认 4MB PE 会导致严重的元数据开销和性能下降

1.2 LVM 核心概念(AI 场景必懂)

物理磁盘 → 物理卷(PV) → 卷组(VG) → 逻辑卷(LV) → XFS文件系统 → 挂载点(/ai)
  • PE(Physical Extent):LVM 最小存储分配单位,创建 VG 时指定,一旦创建无法修改
  • LE(Logical Extent):LV 的最小分配单位,与 PE 大小一一对应
  • AI 场景核心矛盾:PE 太小→元数据过多→管理开销大→I/O 性能差;PE 太大→小文件空间浪费

1.3 AI 场景 PE 大小选择标准

存储容量 普通场景 AI 大模型场景 适用业务
<1TB 4MB (默认) 8MB 个人 AI 实验、小模型推理
1TB~10TB 16MB 32MB 7B/13B 模型微调、中等数据集训练
10TB~100TB 32MB 64MB 34B/70B 模型全量训练、多模态数据存储
>100TB 64MB 128MB 千亿参数模型集群、PB 级数据湖

关键提示:AI 场景优先选择32MB 或 64MB PE,平衡性能与空间利用率。系统盘保持默认 4MB 即可,单独为 AI 数据盘创建专用 VG


二、核心配置:AI 场景 LVM 环境准备

2.1 系统要求与工具安装

openEuler 24.03 LTS SP3 标准安装已自带 lvm2,最小化安装需手动安装:

# 1. 更新软件源缓存(必做)
sudo dnf makecache

# 2. 安装LVM工具集
sudo dnf install -y lvm2

# 3. 验证安装
lvm version

# 4. 检查监控服务状态(默认已启用)
sudo systemctl status lvm2-monitor

2.2 AI 服务器磁盘规划最佳实践

磁盘类型 用途 分区方案 PE 大小 文件系统
SATA/SAS HDD 系统盘 /boot (2GB)+/boot/efi (1GB)+LVM 系统 VG 4MB XFS
NVMe SSD AI 数据盘 整块磁盘作为 PV,不分区 32MB/64MB XFS
多块 NVMe 高速存储池 所有 NVMe 合并为一个 VG 64MB XFS

AI 专属建议

  1. 系统盘与 AI 数据盘物理分离,避免系统 I/O 影响训练
  2. 优先使用NVMe SSD作为 AI 数据盘,HDD 仅用于冷数据备份
  3. 禁用 swap 分区(AI 训练对内存敏感,swap 会导致性能暴跌)openEuler社区

2.3 核心查看命令(AI 运维必备)

# 查看所有磁盘及分区(最常用)
lsblk

# 查看LVM可用磁盘
lvmdiskscan

# 查看物理卷摘要
pvs

# 查看卷组摘要(重点看PE大小和剩余空间)
vgs

# 查看逻辑卷摘要
lvs

# 查看卷组详细信息(确认PE大小)
vgdisplay vg_ai

# 查看文件系统使用情况
df -hT

三、基础实操:从零创建 AI 专用 LVM 存储池

实验环境

  • 系统:openEuler 24.03 LTS SP3
  • 空闲磁盘:2 块 NVMe SSD,分别为/dev/nvme1n1(2TB) 和/dev/nvme2n1(2TB)
  • 目标:创建 PE=32MB 的 AI 专用卷组vg_ai,划分逻辑卷lv_model(2TB) 和lv_data(2TB)

3.1 步骤 1:准备磁盘(数据会被清除!)

⚠️ 警告:以下操作会永久删除磁盘上的所有数据,请确认磁盘未被使用!

# 1. 查看系统磁盘,确认目标磁盘
lsblk

# 预期输出:
# nvme1n1     259:0    0    2T  0 disk 
# nvme2n1     259:1    0    2T  0 disk 

# 2. 清除磁盘旧分区表和数据(推荐执行)
sudo wipefs -a /dev/nvme1n1 /dev/nvme2n1

3.2 步骤 2:创建物理卷 (PV)

将空闲磁盘转换为 LVM 可识别的物理卷:

sudo pvcreate /dev/nvme1n1 /dev/nvme2n1

# 预期输出:
#  Physical volume "/dev/nvme1n1" successfully created.
#  Physical volume "/dev/nvme2n1" successfully created.

# 验证PV创建结果
sudo pvs

3.3 步骤 3:创建 AI 专用卷组 (VG) 并指定 PE 大小

关键步骤:这里指定 PE=32MB,适合 7B/13B 模型训练

# 创建VG并指定PE大小为32MB
sudo vgcreate -s 32M vg_ai /dev/nvme1n1 /dev/nvme2n1

# 预期输出:
#  Volume group "vg_ai" successfully created

# 验证VG创建结果,重点确认PE大小
sudo vgdisplay vg_ai

# 预期输出关键行:
#  PE Size               32.00 MiB
#  Total PE              131071
#  Free PE               131071

3.4 步骤 4:创建 AI 逻辑卷 (LV)

从 VG 中划分逻辑卷用于存储模型和数据:

# 1. 创建模型存储逻辑卷,大小2TB
sudo lvcreate -L 2T -n lv_model vg_ai

# 2. 创建数据集存储逻辑卷,使用所有剩余空间
sudo lvcreate -l +100%FREE -n lv_data vg_ai

# 参数说明:
# -L:指定绝对大小(如10G、500M、2T)
# -l:指定PE数量,+100%FREE表示使用所有剩余空间
# -n:指定逻辑卷名称

# 验证LV创建结果
sudo lvs

3.5 步骤 5:格式化逻辑卷(XFS)

openEuler 默认推荐 XFS 文件系统,专为大文件和高并发优化:

# 格式化模型卷
sudo mkfs.xfs /dev/vg_ai/lv_model

# 格式化数据卷
sudo mkfs.xfs /dev/vg_ai/lv_data

3.6 步骤 6:临时挂载逻辑卷

# 1. 创建挂载点目录
sudo mkdir -p /ai/model /ai/data

# 2. 临时挂载(重启后失效)
sudo mount /dev/vg_ai/lv_model /ai/model
sudo mount /dev/vg_ai/lv_data /ai/data

# 3. 验证挂载结果
df -hT

3.7 步骤 7:配置永久挂载(重启生效)

推荐使用 UUID 挂载,比设备名更稳定,避免磁盘顺序变化导致挂载失败

# 1. 获取逻辑卷的UUID
sudo blkid /dev/vg_ai/lv_model
sudo blkid /dev/vg_ai/lv_data

# 预期输出:
# /dev/vg_ai/lv_model: UUID="xxxx-xxxx-xxxx-xxxx" TYPE="xfs"
# /dev/vg_ai/lv_data: UUID="yyyy-yyyy-yyyy-yyyy" TYPE="xfs"

# 2. 编辑/etc/fstab文件
sudo vi /etc/fstab

# 3. 在文件末尾添加以下内容(替换为你的UUID)
# AI专用LVM逻辑卷永久挂载
UUID=xxxx-xxxx-xxxx-xxxx /ai/model xfs defaults 0 0
UUID=yyyy-yyyy-yyyy-yyyy /ai/data xfs defaults 0 0

# 4. 验证fstab配置是否正确(必须执行!错误会导致系统无法启动)
sudo mount -a

# 5. 重启系统验证
sudo reboot

3.8 步骤 8:设置 AI 目录权限

# 创建AI用户(可选)
sudo useradd -m aiuser

# 设置目录所有者
sudo chown -R aiuser:aiuser /ai

# 设置目录权限
sudo chmod -R 755 /ai

四、高阶用法:AI 场景 LVM 高级操作

4.1 AI 数据盘在线扩容(零停机)

场景:模型训练过程中,/ai/data 空间不足,新增了一块 4TB NVMe 磁盘/dev/nvme3n1

# 1. 准备新磁盘
sudo wipefs -a /dev/nvme3n1

# 2. 创建物理卷
sudo pvcreate /dev/nvme3n1

# 3. 将新PV添加到AI卷组
sudo vgextend vg_ai /dev/nvme3n1

# 4. 验证VG扩容结果
sudo vgs vg_ai

# 5. 扩容数据逻辑卷(使用所有剩余空间)
sudo lvextend -l +100%FREE /dev/vg_ai/lv_data

# 6. 扩容XFS文件系统(关键!很多人忘记这一步)
# 注意:XFS使用xfs_growfs,后面跟挂载点,不是设备路径!
sudo xfs_growfs /ai/data

# 7. 验证扩容结果
df -h /ai/data

4.2 系统安装时修改默认卷组 PE 大小

如果需要在系统安装时就设置好 AI 专用 PE 大小,按以下步骤操作:

  1. 在 "安装概览" 页面点击 "安装目的地"
  2. 选择要安装系统的磁盘,勾选 "自定义" 分区,点击 "完成"
  3. 在 "手动分区" 界面,点击 "卷组" 区域中的 "修改" 按钮openEuler社区
  4. 在弹出的 "修改卷组" 对话框中,找到 "物理扩展块大小" 选项
  5. 选择或输入你需要的 PE 大小(如 32MB)
  6. 点击 "保存",然后继续完成系统安装

4.3 LVM 快照:AI 训练 Checkpoint 快速备份

LVM 快照基于 ** 写时复制 (COW)** 技术,能在秒级创建数据的一致性快照,适合训练前备份和故障恢复

# 1. 创建lv_model的快照,命名为lv_model_snap,大小50GB
# 快照大小建议为原LV容量的15-20%,需大于备份期间的写入量
sudo lvcreate -L 50G -s -n lv_model_snap /dev/vg_ai/lv_model

# 2. 挂载快照(只读)
sudo mkdir /ai/model_snap
sudo mount -o ro /dev/vg_ai/lv_model_snap /ai/model_snap

# 3. 从快照恢复数据(训练失败时使用)
sudo umount /ai/model
sudo umount /ai/model_snap
sudo lvconvert --merge /dev/vg_ai/lv_model_snap
sudo mount /dev/vg_ai/lv_model /ai/model

4.4 调整已存在卷组的 PE 大小

⚠️ 重要警告:PE 大小一旦创建无法直接修改!只能通过 "创建新卷组→迁移数据→删除旧卷组" 的方式调整

# 1. 准备新磁盘/dev/nvme4n1,创建新VG并指定PE=64MB
sudo pvcreate /dev/nvme4n1
sudo vgcreate -s 64M vg_ai_new /dev/nvme4n1

# 2. 在新VG中创建相同大小的逻辑卷
sudo lvcreate -L 2T -n lv_model_new vg_ai_new
sudo mkfs.xfs /dev/vg_ai_new/lv_model_new

# 3. 挂载新逻辑卷
sudo mkdir /ai/model_new
sudo mount /dev/vg_ai_new/lv_model_new /ai/model_new

# 4. 迁移数据(使用rsync保证数据一致性)
sudo rsync -av /ai/model/ /ai/model_new/

# 5. 卸载旧逻辑卷,修改/etc/fstab指向新逻辑卷
sudo umount /ai/model
sudo vi /etc/fstab

# 6. 删除旧逻辑卷和旧卷组
sudo lvremove /dev/vg_ai/lv_model
sudo vgremove vg_ai
sudo pvremove /dev/nvme1n1 /dev/nvme2n1

五、拓展建议:AI 场景 LVM 最佳实践

5.1 AI 训练存储性能优化

  1. 使用条带化逻辑卷:多块 NVMe 磁盘创建条带化 LV,提升 I/O 并行度

    # 创建4路条带化逻辑卷,条带大小=PE大小
    sudo lvcreate -L 8T -i 4 -I 32M -n lv_stripe vg_ai
    
  2. 优化 XFS 挂载参数:在 /etc/fstab 中添加 AI 优化参数

    UUID=xxxx /ai/data xfs defaults,noatime,nodiratime,logbufs=8,logbsize=256k 0 0
    
  3. 预留 VG 空间:不要将 VG 空间全部分配完,预留 10-20% 用于应急扩容

5.2 常见陷阱与避坑指南

陷阱 后果 解决方法
只扩展 LV,忘记扩展文件系统 df -h 显示空间没有变化 执行sudo xfs_growfs 挂载点
尝试缩容 XFS 文件系统 数据损坏,无法挂载 备份数据后重建 LV 和文件系统
系统盘使用过大 PE 系统启动变慢,小文件空间浪费 系统盘保持默认 4MB,单独创建 AI 数据 VG
使用设备名挂载 重启后磁盘顺序变化,挂载失败 改用 UUID 方式挂载
fstab 配置错误 系统无法启动 进入单用户模式,注释错误的挂载行

5.3 AI 场景 LVM 监控与运维

  1. 定期监控空间使用:设置脚本监控逻辑卷使用率,超过 80% 自动告警
  2. 定期清理 Checkpoint:大模型训练会产生大量 Checkpoint 文件,及时清理无用文件
  3. 数据备份:LVM 快照不能替代完整备份,重要模型和数据定期备份到异地存储
  4. 磁盘健康检查:定期使用smartctl检查 NVMe 磁盘健康状态

5.4 官方参考资料

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐