Lustre文件系统的网络配置(LNet)是其高性能和可靠性的核心,涉及网络架构设计、故障转移、安全设置等多方面。以下是基于最佳实践的详细配置指南:
🔧 一、Lustre网络架构基础
-
LNet(Lustre Networking)作用
LNet负责节点间通信(MGS、MDS、OSS、Client),支持多种网络协议(如InfiniBand、TCP/IP),并提供路由、多路径、故障转移等功能。 -
核心组件网络需求
- MGS(管理服务器):存储文件系统配置,需高可用(通常与MDS合并部署)。
- MDS(元数据服务器):处理文件元数据,建议双节点主备模式(Active/Standby)。
- OSS(对象存储服务器):管理OST(对象存储目标),建议双节点Active模式。
- Client(客户端):通过LNet挂载文件系统。
⚙️ 二、LNet配置详解
1. 网络接口配置
-
单网络示例(TCP/IP):
# 加载LNet模块,使用eth0网卡 modprobe lnet networks=tcp(eth0) -
双网络冗余(IB+TCP):
# 同时启用IB(bond0)和TCP(eth2)网络 modprobe lnet networks=o2ib(bond0),tcp(eth2)需确保网卡已启用,且IP配置正确。
2. 节点NID配置
-
每个节点需唯一网络标识符(NID),格式为
IP@网络类型(如11.11.11.34@o2ib)。 -
验证NID:
lctl list_nids # 输出示例:11.11.11.34@o2ib
3. 服务端配置(MGS/MDS/OSS)
-
MGS创建(独立设备):
mkfs.lustre --mgs --fsname=lustre --failnode=11.11.11.35@o2ib /dev/mapper/mgt--failnode指定备用节点NID,实现故障转移。 -
MDS创建(与MGS合并):
mkfs.lustre --mgs --mdt --index=0 --mgsnode=11.11.11.34@o2ib /dev/mapper/mdt -
OST创建:
mkfs.lustre --ost --index=0 --mgsnode=11.11.11.34@o2ib /dev/sdb
4. 客户端挂载
mount -t lustre 11.11.11.34@o2ib:11.11.11.35@o2ib:/lustre /mnt/lustre
- 冒号分隔主备MGS节点,确保高可用。
🔄 三、网络故障转移与冗余
-
节点级冗余
- MDS:主备切换(Active/Standby),故障时自动接管。
- OSS:双Active模式,OST均匀分布。
-
网络级多路径
LNet支持多网络接口自动切换:options lnet networks=o2ib(bond0),tcp(eth2) # 主用IB,故障切TCP
🌐 四、多网络接口配置场景
案例:高性能计算集群
-
IB网络:用于OSS与Client间数据传输(低延迟)。
-
TCP/IP网络:用于管理流量(如MGS通信)。
-
配置要点:
- 所有节点加载双网络模块。
- MGS/MDS声明双NID:
mkfs.lustre --mgs --mdt ... --failnode=192.168.242.35@tcp --mgsnode=11.11.11.34@o2ib - 客户端挂载时指定双协议地址。
🔒 五、防火墙与安全配置
-
关键端口
988:Lustre默认通信端口。1021-1023:LNet动态端口范围。
firewall-cmd --permanent --add-port=988/tcp firewall-cmd --permanent --add-port=1021-1023/tcp -
关闭SELinux(测试环境)
setenforce 0 # 临时关闭 sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config -
主机名解析
所有节点需配置/etc/hosts,确保IP与主机名映射正确。
💻 六、客户端网络配置
-
Lustre客户端安装
yum install lustre-client # CentOS modprobe lustre # 加载内核模块 -
自定义网络接口
编辑/etc/modprobe.d/lustre.conf:options lnet networks=tcp(eth1) # 指定客户端用eth1网卡 -
自动挂载(/etc/fstab)
11.11.11.34@o2ib:/lustre /mnt/lustre lustre _netdev 0 0_netdev确保网络就绪后挂载。
🧪 七、测试与验证
-
LNet连通性
lctl ping 11.11.11.34@o2ib # 返回"12345-0@lo"表示成功 -
文件系统性能测试
dd if=/dev/zero of=/mnt/lustre/testfile bs=1G count=10 fio --name=test --rw=randread --directory=/mnt/lustre --size=1G -
故障模拟
断开主用网络(如IB),观察TCP网络是否自动接管。
⚠️ 八、常见问题解决
-
Lustre模块加载失败:检查内核版本、驱动兼容性(特别是InfiniBand)。
-
挂载超时:确认防火墙开放988端口,且
/etc/hosts映射正确。 -
性能低下:验证网络带宽(如
iperf3),避免虚拟机环境网络限制。
💎 总结:关键配置表
| 组件 | 网络要求 | 关键参数示例 |
|---|---|---|
| MGS/MDS | 双网卡冗余(IB+TCP) | --mgsnode=ip1@ib,ip2@tcp |
| OSS | 高带宽网络(如IB) | --mgsnode=ip@ib |
| Client | 稳定TCP/IP连接 | mount -t lustre mgs_ip@ib:/fs /mnt |
| LNet | 多路径支持 | networks=ib(bond0),tcp(eth2) |
💡 提示:生产环境务必通过
sgpdd-survey测试硬件性能,并部署监控(如Lustre Monitoring Tools)。详细命令参考Lustre官方文档。
浙公网安备 33010602011771号