lustre文件系统环境搭建及测试
1、节点角色
主机名 | IP地址 | 角色 |
---|---|---|
node1 | 192.168.xxx.xx1 | Client |
node2 | 192.168.xxx.xx2 | MGS MGT MDS MDT |
node3 | 192.168.xxx.xx3 | OSS OST |
node4 | 192.168.xxx.xx4 | OSS OST |
2、硬件配置
主机名 | 角色 | 磁盘 | 内存 | 备注 |
---|---|---|---|---|
node1 | Client | 一块(20GB) | 2GB | |
node2 | MGS MGT MDS MDT | 两块(25GB+20GB) | 2GB | 两块磁盘是系统盘加存储盘 |
node3 | OSS OST | 两块(25GB+20GB) | 2GB | 同上 |
node4 | OSS OST | 两块(25GB+20GB) | 2GB | 同上 |
[root@node2 lustre]# fdisk -l
磁盘 /dev/sda:26.8 GB, 26843545600 字节,52428800 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000c5f94
设备 Boot Start End Blocks Id System
/dev/sda1 * 2048 2099199 1048576 83 Linux
/dev/sda2 2099200 52428799 25164800 8e Linux LVM
磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘 /dev/mapper/centos-root:23.6 GB, 23613931520 字节,46120960 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘 /dev/mapper/centos-swap:2147 MB, 2147483648 字节,4194304 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
3、软件版本
软件 | 版本 |
---|---|
Lustre | lustre-2.10.1 |
4、安装软件包
安装时注意:
- 先关闭selinux和防火墙
- 设置机器间的免密登录
- 软件间的依赖关系、安装顺序
- 软件版本一致
- 系统内核和lustre版本一致
4.1、安装 e2fsprogs 相关包
yum -y --nogpgcheck install
....
下载地址:https://downloads.whamcloud.com/public/e2fsprogs/latest/el7/RPMS/x86_64/
4.2、安装 kernel 相关包
yum -y --nogpgcheck install
kernel-3.10.0-693.2.2.el7_lustre.x86_64.rpm
kernel-devel-3.10.0-693.2.2.el7_lustre.x86_64.rpm
kernel-headers-3.10.0-693.2.2.el7_lustre.x86_64.rpm
kernel-tools-libs-3.10.0-693.2.2.el7_lustre.x86_64.rpm
kernel-tools-3.10.0-693.2.2.el7_lustre.x86_64.rpm
kernel-tools-libs-devel-3.10.0-693.2.2.el7_lustre.x86_64.rpm
修改开机时默认使用的内核
grub2-set-default 'CentOS Linux (kernel-3.10.0-693.2.2.el7_lustre.x86_64) 7 (Core)'
下载地址:https://downloads.whamcloud.com/public/lustre/lustre-2.10.1/el7/server/RPMS/x86_64/
如何修改默认启动内核:https://blog.csdn.net/sinat_25606165/article/details/106693725
4.3、客户端安装
下载地址:https://downloads.whamcloud.com/public/lustre/lustre-2.10.1/el7/client/RPMS/x86_64/
yum -y --nogpgcheck install
lustre-client-2.10.1-1.el7.x86_64.rpm
lustre-client-dkms-2.10.1-1.el7.noarch.rpm
lustre-iokit-2.10.1-1.el7.x86_64.rpm
kmod-lustre-client-2.10.1-1.el7.x86_64.rpm
lustre-osd-ldiskfs-mount-2.10.1-1.el7.x86_64.rpm
lustre-osd-zfs-mount-2.10.1-1.el7.x86_64.rpm
执行 rpm -qa | grep lustre
查看是否安装成功。
安装完成后,需要重启机器。
重启后,执行如下命令,加载 lustre 模块。
[root@node1 ~]# cd /opt/lustre/
[root@node1 lustre]# modprobe lustre # 如果安装成功,则不会报错。
关闭后,需要在各个节点再次运行 modprobe lustre
命令。
4.4、服务器端安装
下载地址:https://downloads.whamcloud.com/public/lustre/lustre-2.10.1/el7/server/RPMS/x86_64/
yum -y --nogpgcheck install
libzpool2-0.7.1-1.el7.x86_64.rpm
libuutil1-0.7.1-1.el7.x86_64.rpm
libnvpair1-0.7.1-1.el7.x86_64.rpm
perf-3.10.0-693.2.2.el7_lustre.x86_64.rpm
python-perf-3.10.0-693.2.2.el7_lustre.x86_64.rpm
libzfs2-0.7.1-1.el7.x86_64.rpm
libzfs2-devel-0.7.1-1.el7.x86_64.rpm
spl-dkms-0.7.1-1.el7.noarch.rpm
spl-0.7.1-1.el7.x86_64.rpm
zfs-dkms-0.7.1-1.el7.noarch.rpm
zfs-0.7.1-1.el7.x86_64.rpm
kmod-lustre-2.10.1-1.el7.x86_64.rpm
lustre-osd-ldiskfs-mount-2.10.1-1.el7.x86_64.rpm
lustre-osd-zfs-mount-2.10.1-1.el7.x86_64.rpm
kmod-lustre-osd-ldiskfs-2.10.1-1.el7.x86_64.rpm
lustre-dkms-2.10.1-1.el7.noarch.rpm
lustre-iokit-2.10.1-1.el7.x86_64.rpm
lustre-2.10.1-1.el7.x86_64.rpm
安装 kmod-lustre-osd-zfs-2.10.1-1.el7.x86_64.rpm
中,会报如下错误,暂未解决,但不影响后期配置。
执行 rpm -qa | grep lustre
查看是否安装成功。
安装完成后,需要重启。
重启后,执行如下命令,加载 lustre 和 ldiskfs 模块。
[root@node2 lustre]# cd /opt/lustre/
[root@node2 lustre]# modprobe lustre
[root@node2 lustre]# modprobe ldiskfs
# 其他两个节点执行同样操作
[root@node3 lustre]# ....
[root@node4 lustre]# ....
4.5、配置
以上均执行完毕,进行配置。
在块设备上创建 MGS\MDT 组合文件系统。在 MDS 节点上运行:
# 这里的 /dev/sdb 就是新增的 20GB 的磁盘空间。新增磁盘后,执行 `fdisk -l` ,能找到即成功。
# 添加 --reformat 项是因为:
# mkfs.lustre FATAL: Device /dev/sdb was previously formatted for lustre. Use --reformat to reformat it, or tunefs.lustre to modify.
[root@node2 ~]# mkfs.lustre --reformat --fsname=lustrefs --mgs --mdt --index=0 /dev/sdb
Failed to initialize ZFS library: 256
Permanent disk data:
Target: lustrefs:MDT0000
Index: 0
Lustre FS: lustrefs
Mount type: ldiskfs
Flags: 0x65
(MDT MGS first_time update )
Persistent mount opts: user_xattr,errors=remount-ro
Parameters:
device size = 20480MB
formatting backing filesystem ldiskfs on /dev/sdb
target name lustrefs:MDT0000
4k blocks 5242880
options -J size=819 -I 1024 -i 2560 -q -O dirdata,uninit_bg,^extents,dir_nlink,quota,huge_file,flex_bg -E lazy_journal_init -F
mkfs_cmd = mke2fs -j -b 4096 -L lustrefs:MDT0000 -J size=819 -I 1024 -i 2560 -q -O dirdata,uninit_bg,^extents,dir_nlink,quota,huge_file,flex_bg -E lazy_journal_init -F /dev/sdb 5242880
Writing CONFIGS/mountdata
在块设备上装入 MGS\MDT 组合文件系统。在 MDS 节点上运行:
[root@node2 mnt]# mount.lustre /dev/sdb /mnt/mdt/
Failed to initialize ZFS library: 256
mount.lustre: increased /sys/block/sdb/queue/max_sectors_kb from 512 to 4096
[root@node2 lustre]# df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 899M 0 899M 0% /dev
tmpfs 912M 0 912M 0% /dev/shm
tmpfs 912M 9.5M 903M 2% /run
tmpfs 912M 0 912M 0% /sys/fs/cgroup
/dev/mapper/centos-root 22G 8.2G 14G 38% /
/dev/sda1 1014M 197M 818M 20% /boot
tmpfs 183M 0 183M 0% /run/user/0
/dev/sdb 12G 2.3M 11G 1% /mnt/mdt
本例中,OSTs(ost0和ost1)在不同 OSSs(oss0和oss1)节点上创建。
在 oss0 上创建 ost0:
# 这里是 node2 的 IP 地址
# 为增加调试日志的可读性,并更方便为多个接口调试配置,建议使用 IP 地址
[root@node3 ~]# mkfs.lustre --reformat --fsname=lustrefs --mgsnode=192.168.xxx.xx2@tcp --ost --index=0 /dev/sdb
Failed to initialize ZFS library: 256
Permanent disk data:
Target: lustrefs:OST0000
Index: 0
Lustre FS: lustrefs
Mount type: ldiskfs
Flags: 0x62
(OST first_time update )
Persistent mount opts: ,errors=remount-ro
Parameters: mgsnode=192.168.xxx.xx2@tcp
device size = 20480MB
formatting backing filesystem ldiskfs on /dev/sdb
target name lustrefs:OST0000
4k blocks 5242880
options -J size=400 -I 512 -i 69905 -q -O extents,uninit_bg,dir_nlink,quota,huge_file,flex_bg -G 256 -E resize="4290772992",lazy_journal_init -F
mkfs_cmd = mke2fs -j -b 4096 -L lustrefs:OST0000 -J size=400 -I 512 -i 69905 -q -O extents,uninit_bg,dir_nlink,quota,huge_file,flex_bg -G 256 -E resize="4290772992",lazy_journal_init -F /dev/sdb 5242880
Writing CONFIGS/mountdata
在 OSS 上,载入 ost0,在 oss0 上运行:
[root@node3 mnt]# mkdir ost0
[root@node3 mnt]# mount.lustre /dev/sdb /mnt/ost0
Failed to initialize ZFS library: 256
mount.lustre: increased /sys/block/sdb/queue/max_sectors_kb from 512 to 4096
[root@node3 lustre]# df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 899M 0 899M 0% /dev
tmpfs 912M 0 912M 0% /dev/shm
tmpfs 912M 9.5M 903M 2% /run
tmpfs 912M 0 912M 0% /sys/fs/cgroup
/dev/mapper/centos-root 22G 8.2G 14G 38% /
/dev/sda1 1014M 197M 818M 20% /boot
tmpfs 183M 0 183M 0% /run/user/0
/dev/sdb 20G 1.1M 19G 1% /mnt/ost1
在 oss1 上创建 ost1:
[root@node4 mnt]# mkfs.lustre --reformat --fsname=lustrefs --mgsnode=192.168.xxx.xx2@tcp --ost --index=1 /dev/sdb
在 OSS 上,载入 ost1,在 oss1 上运行:
[root@node4 mnt]# mount.lustre /dev/sdb /mnt/ost1
在客户端上挂载 Lustre 文件系统,在客户端节点运行:
[root@node1 mnt]# mkdir /mnt/lustre
[root@node1 mnt]# mount.lustre 192.168.xxx.xx2@tcp:/lustrefs /mnt/lustre
5、启动与关闭
启动文件系统,各组件按如下顺序启动:
挂载MGT --> 挂载MDT --> 挂载OST(s) --> 挂载Client
按如下顺序关闭,文件系统将完全关闭:
Client --> MDS --> MGS --> OST(s)
umount -a -t lustre
其中,`-a -t lustre`不是文件系统名称,指代的是卸载 `/etc/mtab` 所有条目中的 lustre 类型。
6、测试
确认文件系统已成功启动,并正常工作。
运行如下命令,创建一个全为字符 0 的文件来验证写入功能:
# 执行 `dd --help` 查看 dd 命令用法
[root@node1 mnt]# dd if=/dev/zero of=/mnt/lustre/test.img bs=1M count=4500
记录了4500+0 的读入
记录了4500+0 的写出
4718592000字节(4.7 GB)已复制,11.3127 秒,417 MB/秒
[root@node2 mnt]# ....
[root@node3 mnt]# ....
[root@node4 mnt]# ....
运行如下命令,查看每个 OST 和 MDT 的空间使用情况:
[root@node1 ~]# lfs df -h
UUID bytes Used Available Use% Mounted on
lustrefs-MDT0000_UUID 11.1G 2.3M 10.1G 0% /mnt/lustre[MDT:0]
lustrefs-OST0000_UUID 19.3G 1.2M 18.3G 0% /mnt/lustre[OST:0]
lustrefs-OST0001_UUID 19.3G 1.2M 18.3G 0% /mnt/lustre[OST:1]
filesystem_summary: 38.5G 2.4M 36.5G 0% /mnt/lustre
测试创建、删除目录:
# 执行 `lfs --list-commands` 查看 lfs 命令用法
# 创建一个目录,由 mdt0 提供服务
[root@node1 ~]# lfs mkdir -i 0 /mnt/lustre/test
[root@node1 ~]# cd /mnt/lustre/
[root@node1 lustre]# ls
test
# 删除该目录
[root@node1 ~]# lfs rm_entry /mnt/lustre/test
[root@node1 ~]# ll /mnt/lustre/
总用量 0
使用 lfs setstripe
创建文件,并指定文件布局:
# 文件条带大小为4MB
[root@node1 ~]# lfs setstripe -S 4M /mnt/lustre/test.txt
[root@node1 ~]# ll /mnt/lustre/
总用量 0
-rw-r--r-- 1 root root 0 4月 8 11:32 test.txt
[root@node1 ~]# lfs getstripe /mnt/lustre/test.txt
/mnt/lustre/test.txt
lmm_stripe_count: 1
lmm_stripe_size: 4194304
lmm_pattern: 1
lmm_layout_gen: 0
lmm_stripe_offset: 0
obdidx objid objid group
0 66 0x42 0
7、问题
问题一:安装 spl-dkms-0.7.1-1.el7.noarch.rpm
,出现要求 dkms 大于 2.2.0.2,如果直接 yum 安装会出现 没有可用软件包
。此时需要先执行 yum install -y epel-release
,再安装 dkms。
参考:
https://blog.csdn.net/spring_color/article/details/79301167
https://doc.lustre.org/lustre_manual.xhtml#configuringlustre
https://mp.weixin.qq.com/s/eJknjD6JCdKkrUeVnDGEjg
lustre文件系统环境搭建及测试的更多相关文章
- Centos7下GlusterFS 分布式文件系统环境搭建
Centos7下 GlusterFS 环境搭建准备工作glusterfs-3.6.9.tar.gzuserspace-rcu-master.zip三台服务器:192.168.133.53.192.16 ...
- Lustre文件系统测试——obdfilter-survey测试
Lustre文件系统测试--obdfilter-survey测试 介绍 该测试主要是在lustre文件系统工作环境下进行,将直接在ost上生成工作负载模拟并行文件访问,可准确检测盘阵在lustre文件 ...
- 【转载】基于RedHatEnterpriseLinux V7(RHEL7)下SPEC CPU 2006环境搭建以及测试流程(之一)——介绍、安装准备、安装、config文件以及运行脚本介绍
基于RedHatEnterpriseLinux V7(RHEL7)下SPEC CPU 2006环境搭建以及测试流程(之一)--介绍.安装准备.安装.config文件以及运行脚本介绍 其他 2018-0 ...
- 【转载】]基于RedHatEnterpriseLinux V7(RHEL7)下SPEC CPU 2006环境搭建以及测试流程 介绍、安装准备、安装、config文件以及运行脚本介绍
https://www.codetd.com/article/1137423 <版权声明:本文为博主原创文章,未经博主允许不得转载> 本次利用SPECCPU2006测试工具来进行Intel ...
- Linux搭建FastFDFS文件管理系统搭建,部署及上传材料
昨天下午花了三四个小时在Linux centos 6 上搭建了一个分布式文件系统.纯粹是搭建来做自己的文件备份.所以把一些自己在其中遇到的一些问题给总结出来,免得更多人走错路. FastDFS 的一些 ...
- 使用XAMPP和DVWA在Windows7上搭建渗透测试环境
前言: XAMPP是一个Web应用程序运行环境集成软件包,包括MySQL.PHP.PerI和Apache的环境及Apache.MySQL.FilleZilla.Mercury和Tomecat等组件.D ...
- 使用WampServer和DVWA在Windows10上搭建渗透测试环境
前言: DVWA是一个具有脆弱性的Web测试应用,需要PHP和MySQL的环境支持.我们可以手动配置DVWA所需的运行环境,也可以使用WampServer进行搭建.WampServer是集成了Apac ...
- Tensorflow object detection API ——环境搭建与测试
1.开发环境搭建 ①.安装Anaconda 建议选择 Anaconda3-5.0.1 版本,已经集成大多数库,并将其作为默认python版本(3.6.3),配置好环境变量(Anaconda安装则已经配 ...
- centos平台基于snort、barnyard2以及base的IDS(入侵检测系统)的搭建与测试及所遇问题汇总
centos平台基于snort.barnyard2以及base的IDS(入侵检测系统)的搭建与测试及所遇问题汇总 原创 2016年12月19日 01:20:03 标签: centos / snort ...
随机推荐
- 2021 NGK新机遇!---NGK生态所、星空计划双赛道爆发
2021年数字加密货币行业迎来几大发展机遇:1.比特币为首的数量加密资产正处于另类资产向数字黄金定位的历史性巨大发展机遇中,2.Defi等新项目异军提起,形成丰富的行业生态,将在未来对旧有的金融格局产 ...
- 【死磕JVM】JVM快速入门之前戏篇
简介 Java是一门可以跨平台的语言,但是Java本身是不可以实现跨平台的,需要JVM实现跨平台.javac编译好后的class文件,在Windows.Linux.Mac等系统上,只要该系统安装对应的 ...
- 微信小程序:添加全局的正在加载中图标效果
在发送请求的时候,显示一个正在加载中的小图标.在加载下一页的时候也显示正在加载中.同时数据请求回来了,把加载中进行关闭. 开发----API-----界面 在哪里添加这两段代码会比较方便呢?一个项目有 ...
- SpringCloud(三):SpringCloud快速开发入门
3-1. 搭建和配置一个服务提供者 我们知道,SpringCloud 构建微服务是基于 SpringBoot 开发的.(如果SpringBoot不会的可以先看SpringBoot专栏) 1. 创建一 ...
- MongoDB4.2 副本集扫盲说明
说明: 在扫盲MongoDB相关的一些知识的时候,顺手做下笔记.本文将说明副本集相关的内容.在比较早之前已经对这些有过说明,可以看MongoDB 副本集的原理.搭建.应用.MongoDB中的副本集是一 ...
- Java 基础加强 01
基础加强·网络编程 和 GUI 网络编程概述 * A:计算机网络 * 是指将地理位置不同的具有独立功能的多台计算机及外部设备,通过通信连接起来 在网路操作系统,网络管理软件和网络通信协议的管理下,实现 ...
- 靶场练习-Sqli-labs通关记录(1-4关)
0x00 实验环境 本地:Win 10 靶场:sqli-labs(共65关,每日一关) 0x02 通关记录 简介:一天一关! (1)第一关: 简单的 ...
- 漏洞复现-Discuz-命令执行(wooyun-2010-080723)
0x00 实验环境 攻击机:win10 靶机:Ubuntu18 (docker搭建的vulhub靶场) 0x01 影响版本 Discuz 7.x 6.x版本 0x02 实验目的 学习d ...
- Linux下查看文件内容的几种常用命令
[常用] 1,cat 由第一行开始显示内容,并将所有内容输出 cat的功能是将文件从第一行开始连续的将内容输出在屏幕上.但是cat并不常用,原因是当文件大,行数比较多时,屏幕无法全部容下时,只 ...
- Azure Front Door(二)对后端 VM 进行负载均衡
一,引言 上一篇我们讲到通过 Azure Front Door 为我们的 Azure App Service 提供流量转发,而整个 Azure Front Door 在添加后端池的时候可选的后端类型是 ...