Skip to content

Lustre 2.15.7 部署指南 (EL8)

摘要: 本文档详细介绍了高性能并行文件系统 Lustre 2.15.7 在 EL8 (RHEL 8, Rocky Linux 8, CentOS Stream 8) 上的完整部署流程,涵盖 MGS/MDS/OSS 服务端配置及客户端挂载。

1. 环境准备与规划

1.1 系统要求

  • OS: RHEL 8 / Rocky Linux 8 / CentOS Stream 8
  • 内核: 建议使用 EL8 官方内核(Lustre 2.15.x 支持 patchless 模式,无需重新编译内核)。
  • 网络: 推荐 InfiniBand (IB) 或 100G RoCE 网络以发挥性能。

1.2 节点角色规划

角色缩写描述硬件建议
Management ServerMGS管理全局配置 (通常与 MDS 合并)高可用节点
Metadata ServerMDS存储元数据 (文件名/目录/权限)NVMe SSD (至关重要)
Object Storage ServerOSS存储实际文件数据大容量 HDD RAID 或 NVMe
Client-计算节点安装 Lustre Client

1.3 系统优化

在所有 Server 节点 (MGS/MDS/OSS) 上执行:

bash
# 1. 禁用防火墙
systemctl stop firewalld
systemctl disable firewalld

# 2. 禁用 SELinux
setenforce 0
sed -i 's/^SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config

# 3. 禁用 Swap (提升性能)
swapoff -a
sed -i '/swap/d' /etc/fstab

2. 配置 Whamcloud 官方仓库

所有节点(包括客户端)上配置 Yum 源:

bash
cat > /etc/yum.repos.d/lustre.repo <<EOF
[lustre-server]
name=Lustre Server
baseurl=https://downloads.whamcloud.com/public/lustre/lustre-2.15.7/el8/patchless-ldiskfs-server/
enabled=1
gpgcheck=0

[lustre-client]
name=Lustre Client
baseurl=https://downloads.whamcloud.com/public/lustre/lustre-2.15.7/el8/client/
enabled=1
gpgcheck=0

[e2fsprogs]
name=e2fsprogs
baseurl=https://downloads.whamcloud.com/public/e2fsprogs/latest/el8/
enabled=1
gpgcheck=0
EOF

3. 组件安装

3.1 基础依赖 (所有节点)

Lustre 依赖特制的 e2fsprogs 来处理 ldiskfs。

bash
dnf install -y e2fsprogs e2fsprogs-libs libcom_err libss

3.2 服务端安装 (MGS/MDS/OSS)

bash
# 安装内核模块
dnf install -y kmod-lustre

# 安装管理工具 (mkfs.lustre, lctl 等)
dnf install -y lustre lustre-utils

# 加载模块验证
modprobe lustre
lsmod | grep lustre

预期输出: 应包含 lustre, lnet, ldiskfs 等模块。

3.3 客户端安装 (Client)

bash
dnf install -y lustre-client

4. 文件系统格式化与配置

数据丢失警告

执行 mkfs.lustre 将格式化磁盘。请务必确认 /dev/sdX 设备路径正确。

4.1 MGS & MDT 配置 (元数据节点)

假设设备为 /dev/sdb,我们将 MGS 和第一个 MDT 合并部署。

bash
# 1. 清理磁盘签名
wipefs -a /dev/sdb

# 2. 格式化
# --fsname: 文件系统名 (全集群必须一致)
# --mgs: 启用管理服务
# --mdt: 启用元数据服务
# --index=0: 第一个 MDT 索引必须为 0
mkfs.lustre --fsname=myfs --mgs --mdt --index=0 /dev/sdb

# 3. 挂载
mkdir -p /mnt/mdt0
mount -t lustre /dev/sdb /mnt/mdt0

4.2 OSS & OST 配置 (对象存储节点)

假设设备为 /dev/sdc,MGS 节点 IP 为 192.168.1.10

bash
# 1. 清理磁盘
wipefs -a /dev/sdc

# 2. 格式化
# --mgsnode: 指定 MGS 的 NID (Network ID),通常是 IP@tcp
# --ost: 标记为对象存储目标
# --index=0: OST 索引 (每个 OST 必须唯一,0, 1, 2...)
mkfs.lustre --fsname=myfs --mgsnode=192.168.1.10@tcp --ost --index=0 /dev/sdc

# 3. 挂载
mkdir -p /mnt/ost0
mount -t lustre /dev/sdc /mnt/ost0

5. 客户端挂载与验证

5.1 挂载文件系统

在计算节点上:

bash
mkdir -p /mnt/lustre
# 语法: mount -t lustre <MGS_IP>@<NET>:/<FSNAME> <MOUNT_POINT>
mount -t lustre 192.168.1.10@tcp:/myfs /mnt/lustre

5.2 状态验证

bash
# 查看容量
lfs df -h

# 查看 OST 列表
lfs osts

# 查看 MDT 列表
lfs mdts

# 健康检查
lfs check servers

6. 持久化挂载 (fstab)

编辑 /etc/fstab 以实现开机自动挂载。注意添加 _netdev 参数,防止网络未就绪导致启动卡死。

服务端 (MDS/OSS):

text
/dev/sdb    /mnt/mdt0   lustre  defaults,_netdev  0 0
/dev/sdc    /mnt/ost0   lustre  defaults,_netdev  0 0

客户端 (Client):

text
192.168.1.10@tcp:/myfs  /mnt/lustre  lustre  defaults,_netdev  0 0

AI-HPC Organization