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 Server | MGS | 管理全局配置 (通常与 MDS 合并) | 高可用节点 |
| Metadata Server | MDS | 存储元数据 (文件名/目录/权限) | NVMe SSD (至关重要) |
| Object Storage Server | OSS | 存储实际文件数据 | 大容量 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/fstab2. 配置 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
EOF3. 组件安装
3.1 基础依赖 (所有节点)
Lustre 依赖特制的 e2fsprogs 来处理 ldiskfs。
bash
dnf install -y e2fsprogs e2fsprogs-libs libcom_err libss3.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-client4. 文件系统格式化与配置
数据丢失警告
执行 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/mdt04.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/ost05. 客户端挂载与验证
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/lustre5.2 状态验证
bash
# 查看容量
lfs df -h
# 查看 OST 列表
lfs osts
# 查看 MDT 列表
lfs mdts
# 健康检查
lfs check servers6. 持久化挂载 (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