Lustre文件系统
Lustre架构是用于集群的存储架构。Lustre架构的核心组件是Lustre文件系统,它在Linux操作系统上得到支持,并提供了一个符合POSIX *标准的UNIX文件系统接口。
Lustre存储架构用于许多不同类型的集群。它以支持世界上许多最大的拥有数万个客户端系统、pb (PiB)存储和每秒数百GB (GB/sec)的I/O吞吐量的高性能计算(HPC)集群而闻名,许多HPC站点使用Lustre文件系统作为站点范围的全局文件系统,为几十个集群提供服务。
Lustre文件系统能够根据任何需要扩展容量和性能,从而减少了部署许多独立文件系统的需要,例如为每个计算集群部署一个文件系统。通过避免在计算集群之间复制数据,简化了存储管理。除了聚合许多服务器的存储容量外,I/O吞吐量还可以通过额外的服务器进行聚合和扩展。此外,通过动态添加服务器,可以很容易地增加吞吐量和/或容量。
虽然Lustre文件系统可以在许多工作环境中运行,但它不一定是所有应用程序的最佳选择。它最适合于超过单个服务器所能提供的容量的使用,尽管在某些用例中,Lustre文件系统在单个服务器上比其他文件系统执行得更好,因为它具有强锁和数据一致性。
一个Lustre文件系统目前不是特别适合于“点对点”的使用模型,其中客户端和服务器运行在同一个节点上,每个共享少量的存储,因为Lustre软件级别缺乏数据复制。在这种情况下,如果一个客户机/服务器出现故障,那么存储在该节点上的数据将无法访问,直到该节点重新启动。
相关依赖安装
- 1.zlib-devel,libffi-devel
- 2.python-dev
- 3.dkms
可直接yum下载,或者apt-get,如果是内网环境可以使用源码编译安装。环境配置脚本:
#!/bin/bash
cd /home/dkms
make install
yum install zlib-devel,libffi-devel
mkdir /usr/local/python38
cd /home/Python3.8.18
./configure --prefix=/usr/local/python38
make && make install
cd /usr/bin
mv python3 python3.bak
ln -s /usr/local/python38/bin/python3.8 /usr/bin/python3
python3 -V
lustre文档
https://www.lustre.org/documentation/
lustreRPM包下载
下载地址:https://downloads.whamcloud.com/public/lustre/
选择对应的版本下载(我用的8.3,选择2.14版本):
客户端服务端分别下载:
服务端需要的e2fsprogs包:
下载地址:https://downloads.whamcloud.com/public/e2fsprogs/latest/el8/RPMS/x86_64/
lustre安装脚本
自己修改下载的三个包的路径。
#!/bin/bash
cd /home/e2fsprogs
rpm -ivh * --nodeps --force
cd /home/lustre-2.14/client
rpm -ivh * --nodeps --force
cd /home/lustre-2.14/server
rpm -ivh * --nodeps --force
查看内核
uname -a
加载lustre
modprobe lustre
modprobe ldiskfs
lsmod | grep lustre
查看lustre版本
modinfo lustre
正常显示即为安装成功。
挂载lustre
可以添加新的磁盘进行分区挂载,也可以创建一个临时文件,用作虚拟磁盘设备。然后使用-o loop分配一个loop设备将文件作为块设备进行挂载。
dd if=/dev/zero of=/home/mgs bs=100M count=1
dd if=/dev/zero of=/home/mdt bs=100M count=1
dd if=/dev/zero of=/home/ost0 bs=100M count=1
dd if=/dev/zero of=/home/ost1 bs=100M count=1
mkfs.lustre --fsname=vlustre --reformat --mgs --mgsnode=192.168.120.101@tcp --device-size=4000000 /home/mgs
mount -o loop -t lustre /home/mgs /mnt/loopmgs
mkfs.lustre --fsname=vlustre --reformat --mdt --index=0 --mgsnode=192.168.120.101@tcp --device-size=4000000 /home/mdt
mount -o loop -t lustre /home/mdt /mnt/loopmdt
mkfs.lustre --fsname=vlustre --reformat --ost --index=0 --mgsnode=192.168.120.101@tcp --device-size=8000000 /home/ost0
mount -o loop -t lustre /home/ost0 /mnt/loopost0
mkfs.lustre --fsname=vlustre --reformat --ost --index=1 --mgsnode=192.168.120.101@tcp --device-size=8000000 /home/ost1
mount -o loop -t lustre /home/ost1 /mnt/loopost1
mount -t lustre 192.168.120.101@tcp:/vlustre /mnt/vlustre
mgs
mdt
ost0
ost1
查看挂载结果
感受lustre条带策略
一个条带:
设置条带数量为2:
对比: