基础知识

Lustre_Manual_cn.pdf

Lustre中的角色:

  1. 管理服务器(Management Server, MGS):

​ ● 管理整个文件系统的元信息和配置。

​ ● 硬件要求:高性能 CPU、充足的内存和可靠存储设备。

  1. 元数据服务器(Metadata Server, MDS):

​ ● 存储文件系统的元数据(如文件名、目录结构等)。

​ ● 通常与元数据目标(Metadata Target, MDT)一起部署在 MDS 上。

  1. 对象存储服务器(Object Storage Server, OSS):

​ ● 存储文件数据。

​ ● 每个 OSS 管理一个或多个对象存储目标(Object Storage Target, OST)。

  1. 客户端:

​ ● 连接并访问 Lustre 文件系统的计算节点

环境要求-Lustre 2.13.0 部署指南(CentOS 8.0)-Lustre-开源使能-开发文档-鲲鹏社区)

安装部署

参考文档:

Lustre 2.10安装.note

CentOS-7 安装Lustre-2.10.1文件系统_centos7安装lustre-CSDN博客

节点名 节点IP 节点角色 软件版本
cn17538 10.182.190.3 MDS、MDT、OST 系统版本:centos7.3
cn17539 10.182.190.4 MDT、OST 软件版本:7.2.4-el7
cn17540 10.182.190.5 Client

简单配置Linux

1、更新yum源

1
2
3
$ yum clean all
$ yum makecache
$ yum update

2、 安装基础包

1
2
$ yum groupinstall "Development Tools" -y
$ yum install epel-release quilt libselinux-devel python-docutils xmlto asciidoc elfutils-libelf-devel elfutils-devel zlib-devel rng-tools binutils-devel python-devel sg3_utils newt-devel perl-ExtUtils-Embed audit-libs-devel lsof hmaccalc -y

3、关闭防火墙

1
2
$ systemctl stop firewalld.service
$ systemctl disable firewalld.service

构建本地Lustre repo库

1
$ vim /etc/yum.repos.d/lustre.repo

在lustre.repo里写入如下内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
[lustre-server]
name=lustre-server
baseurl=https://downloads.whamcloud.com/public/lustre/latest-2.10-release/el7/server
# exclude=*debuginfo*
gpgcheck=0
enabled=1

[lustre-client]
name=lustre-client
baseurl=https://downloads.whamcloud.com/public/lustre/latest-2.10-release/el7/client
# exclude=*debuginfo*
gpgcheck=0
enabled=1

[e2fsprogs-wc]
name=e2fsprogs-wc
baseurl=https://downloads.whamcloud.com/public/e2fsprogs/latest/el7
# exclude=*debuginfo*
gpgcheck=0
enabled=1

更新源

1
2
$ yum clean all 
$ yum makecache

参考文档出现如下出现问题:

解决问题:参考文档中这一部分操作写了一堆,我也看不懂,不知道什么原因,我直接在/etc/yum.repos.d中创建了lustre.repo文件,并更新了yum源,似乎没什么问题

服务节点安装(MDS、OSS)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
$ yum --nogpgcheck --disablerepo=* --enablerepo=e2fsprogs-wc install e2fsprogs -y
$ yum -y install epel-release
$ yum install http://download.zfsonlinux.org/epel/zfs-release.el7_3.noarch.rpm -y
$ yum upgrade linux-firmware dracut -y # 升级冲突包
$ yum upgrade xfsprogs kmod kexec-tools -y # 升级冲突包
$ yum install pciutils -y
$ yum --nogpgcheck --disablerepo=base,extras,updates --enablerepo=lustre-server install kernel kernel-devel kernel-headers kernel-tools kernel-tools-libs kernel-tools-libs-devel -y
$ reboot
$ yum --nogpgcheck --enablerepo=lustre-server install kmod-lustre-osd-ldiskfs lustre-dkms lustre-osd-ldiskfs-mount lustre lustre-resource-agents zfs lustre-osd-zfs-mount -y

加载 ZFS 文件系统的内核模块
$ modprobe -v zfs
加载 Lustre 文件系统的内核模块
$ modprobe -v lustre

服务节点安装的是2.10.8版本,客户端安装2.10.8版本时发现,centos默认的内核不支持客户端安装2.10.8版本,所以客户端安装的是2.10.1版本。

客户端安装

最好不要和MDS和ODS安装在一个节点上,会出现内核不兼容的问题,如果出现安装的客户端与默认的系统内核不兼容的问题,可以尝试更换系统中其他的内核

1
2
3
4
$ yum install kernel kernel-devel kernel-headers kernel-abi-whitelists kernel-tools kernel-tools-libs kernel-tools-libs-devel -y
$ reboot
$ yum install epel-release -y
$ yum --nogpgcheck --enablerepo=lustre-client install lustre-client-dkms lustre-client kmod-lustre-client -y

切换内核

1
2
3
4
5
查看当前系统可用内核
$ sudo awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg
选择输出的内核编号
$ sudo grub2-set-default '1'
$ reboot

配置

​ Lustre是基于内核的分布式文件系统,而不是像其它一些用户态的分布式文件系统那样直接建立在ext3或者是ext4之上。Lustre需要对磁盘进行格式化,并且在格式化的过程中进行参数配置。

​ 在 Lustre 中,MGS(Management Server) 是一个集中式的元数据服务,它负责管理整个 Lustre 文件系统的元数据。MGS 通常只在第一个 MDT 节点上配置,并且该节点会作为主 MDT 来管理所有的元数据操作。一旦配置了 MGS,Lustre 文件系统的所有 MDT节点会通过网络连接到该 MGS。因为 MGS 是唯一的,它的作用是服务所有 MDT 节点(无论你有多少个 MDT 节点)

配置MDT

通过—index来对每个MDT进行标识

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
1、配置第一个MDS
$ mkfs.lustre --reformat --fsname=lustrefs --mgs --mdt --index=0 /dev/nvme0n1p3
$ mkdir /mnt/lustre/mdt
$ mount -t lustre /dev/nvme0n1p3 /mnt/lustre/mdt

2、配置第二个MDS
$ mkfs.lustre --reformat --fsname=lustrefs --mgsnode=10.182.190.3@tcp0 --mdt --index=1 /dev/nvme0n1p3
$ mkdir /mnt/lustre/mdt
$ mount -t lustre /dev/nvme0n1p3 /mnt/lustre/mdt

参数解释:
fsname指定的是创建lustre时的文件系统名
mgs指定该机器为元数据服务器,即该机器为mds
mdt指定/dev/sdb为元数据实际数据存储位置
至于index则指定该mgs的索引号,mgs可以设置主备模式,但mdt需要在主备mds之间共享

配置OST

通过—index来对每个OST进行标识

1
2
3
4
5
6
7
8
9
10
11
12
13
1、配置第一个OST
$ mkfs.lustre --reformat --fsname=lustrefs --mgsnode=10.182.190.3@tcp0 --ost --index=0 /dev/nvme0n1p2
查看是否格式化成功
$ sudo lsblk -f
$ mkdir /mnt/lustre/ost
$ mount -t lustre /dev/nvme0n1p2 /mnt/lustre/ost

2、配置第二个OST
$ mkfs.lustre --reformat --fsname=lustrefs --mgsnode=10.182.190.3@tcp0 --ost --index=1 /dev/nvme0n1p2
查看是否格式化成功
$ sudo lsblk -f
$ mkdir /mnt/lustre/ost
$ mount -t lustre /dev/nvme0n1p2 /mnt/lustre/ost

配置Client

1
2
$ mkdir /mnt/lustre
$ mount -t lustre 10.182.190.3@tcp:/lustrefs /mnt/lustre