Lustre 分布式并行文件系统部署

博客作者:联系请点击,搬运不易,希望请作者喝咖啡,可以点击联系博客作者

一、Lustre简介

Lustre 是一个具有高可用、高性能、可扩展的分布式并行文件系统。主要由 Manage Server、Meta Data Server 和 Data Server 组成。详细介绍可以参见 Lustre 官网

常用命令

  • modprobe lustre:加载Lustre模块

  • lustre_rmmod:去除Lustre模块

  • lctl:通过ioctl接口直接控制Lustre属性,允许调整相关的不同配置、管理和调试等属性。

    • lctl lustre_build_version:显示Lustre版本

    • lctl list_nids:显示网络ID情况

    • lctl list_param:显示配置参数

    • lctl dl:显示所有文件系统组件

  • lnetctl:控制和显示网络信息

    • lnetctl net show:显示网络信息

    • lnetctl net add --net tcp0 --if eth0:添加网络

    • lnetctl net add --net tcp0 --if eth0:添加网络

    • lnetctl net del --net tcp0:删除网络

    • lnetctl route show:显示路由信息

  • lfs:主要对与文件相关的属性进行配置及查询

    • lfs df:客户端上运行时,显示各MDT、OST等空间占用情况

    • lfs mdts /home:客户端上运行时,显示/home使用的MDT情况

    • lfs osts /home:客户端上运行时,显示/home使用的OST情况

  • tunefs.lustre:在服务端运行,显示或调整mkfs.lustre生成的Lustre目标磁盘配置

    • tunefs.lustre /dev/mapper/mpathb:显示磁盘信息

    • tunefs.lustre --erase-params --param="failover.node=192.168.100.1@tcp0:192.168.100.2@tcp0" /dev/mapper/mpathb:修改配置

    • tunefs.lustre --writeconf /dev/mapper/mpathb:将修改后的配置写入

  • 多挂载保护(Multiple-Mount Protection)

    • tune2fs -O mmp /dev/block_device:禁止块设备同时被多个节点mount

    • tune2fs -O ^mmp /dev/block_device:允许块设备同时被多个节点mount

  • 强制卸载

    • umount -f /public :系统无进程夯住,执行强制卸载命令

    • umount -f /home

集群管理

这个命令必须在MGS上运行,查询Lustre文件系统中的所有节点

这个命令必须在MGS上运行,获取所有OST节点的名称和状态

lctl dl命令获取挂载的Lustre设备列表,并查看运行过程

在客户端查询挂载目录,获取所有OST节点的名称和状态

在客户端查询所有OST挂载情况及使用量

在客户端或者MDT节点上激活运行完好,状态是 INACTIVE 的OST节点,通过lctl dl 命令获取设备号

lctl deactivate命令使完整的 OST 脱机停用

Lustre文件系统损坏,恢复操作

参考文档

https://www.cnblogs.com/zl-py/p/11274562.html

第一步获取设备列表

第二步查看损坏OST节点的配置信息

第三步修改OST节点的配置信息,把active 和max_create_count的值都设置为0

第四步再次查看状态由UP变为IN

第五步再将磁盘格式化为lustre格式

备注: --writeconf 必要参数,如果lustre版本是最新版的可以将--writeconf 替换为--replace

第六步再次挂载ost

第七步在mds节点上将active和max_create_count 恢复到原来的值

第八步在管理节点或者客户重新挂载即可

网络检测(LNet)

测试连通性

查询路由配置

二、Lustre 安装

Lustre 主要由 MGSMDSOSSClient 组成

本次部署方案为:配置MGS, MDS为一台,9台 OSS 和36台 客户端 。

一、服务端软件安装

一、添加YUM仓库,在/etc/yum.repos.d/目录下创建 lustre.repo文件

注意:设置YUM源,需要查询关于Lustre支持的内核列表,请参阅Lustre的变动日志

IB网络版YUM源

TCP网络版YUM源

二、安装 epel 源:

三、删除相关软件包,清除yum源,更新内核

四、安装 e2fsprogs :

四、安装带Lustre补丁的内核包。通过禁用OS仓库,确保为内核包选择Lustre仓库:

重启机器:

安装LDISKFSkmod和其他Lustre软件包

加载相关的内核模块:

如有错误,排查错误日志命令:

查看安装的版本

在继续配置LNet之前,需要从内核卸载Lustre模块

二、客户端软件安装

Lustre客户端软件包括一个包含内核模块的包,以及用于管理客户端软件的用户空间工具的其他包,Lustre客户端不需要“带Lustre补丁”的内核,这简化了安装。

注意:关于Lustre支持的内核列表,请参阅Lustre的变动日志

重启机器:

查看内核版本

安装 Lustre Client 相关软件包:

加载内核模块:

查看安装的版本

验证后,从内核卸载Lustre模块:

如下步骤不是必须操作,如报错卸载重新安装可参考如下步骤参考教程:(https://blog.csdn.net/qq_25605377/article/details/85845139)

注意:卸载完成,在安装OFED后必须重启,否则配置网络无法识别o2ib内核模块

三、Lustre(LNet网络配置)

一、关闭 SELinux 和配置防火墙

二、服务端LNet网络配置步骤:

三、客户端LNet网络配置步骤:

静态配置

IB网络版

TCP网络版

三、Lustre 服务端部署

注意:所有部署操作,必须在配置完LNet网络之后进行否则导致无法连接、挂载。

一、磁盘分区

注意:MGS和MDS 节点及OSS节点分区命令一致,初始化和挂载命令不同。

分区完成后,在管理服务器上格式化磁盘为管理服务(MGS)和元数据服务(MDS)

其中 fsname 指定了文件系统名称,index 表示 MDT 的序号,每个 MDT 或者 OST 的序号必须唯一。

二、MGS和MDS 节点部署

MGS和MDS 节点同一台服务器格式化如下:

MGS和MDS 创建挂载目录,启动服务并挂载

写入开机挂载

注意:只能执行一遍,/etc/fstab 文件如有错误,可能导致无法开机

MGS和MDS 节点

三、OSS节点部署

OSS节点格式化如下,index序号需要变更:

OSS 创建挂载目录,启动服务并挂载

写入开机挂载

注意:只能执行一遍,/etc/fstab 文件如有错误,可能导致无法开机

OSS节点

四、Lustre 客户端部署

注意:所有部署操作,必须在配置LNet网络完成之后进行否则导致无法连接、挂载。

一、客户端挂载:

注意:批量挂载客户端之前,需要先手动在某一台客户端挂载,创建对应的其他下层挂载目录

写入开机挂载

注意:只能执行一遍,/etc/fstab 文件如有错误,可能导致无法开机

IB网络版

TCP网络版

五、安装批量部署工具

所有部署调试完毕,执行多台批量部署,其中一些参数,细节,记得在批量部署时记得调整

Ansible 语法学习参考ll

一、批量免密

二、批量修改主机名

三、批量获取主机名和IP重定向写入/etc/hosts文件

批量安装IB网络驱动程序,及初始化安装一些依赖

注意:下载驱动版本一定要下载对应系统版本否则内核无法加载,OFED驱动下载网站

IB网络数据交互测试

参考文档

https://blog.csdn.net/ljlfather/article/details/102925954

https://blog.csdn.net/bandaoyu/article/details/115798693

四、批量获取内网IP并修改IB 网段

六、常见问题处理

问题排查参考连接:

https://blog.51cto.com/u_9099998/2445847

最后更新于

这有帮助吗?