CentOS-7 安装Lustre-2.10.1文件系统

注:原创文章,转载请注明出处

一、文档说明

Lustre是一种强大的平行分布式文件系统,通常用于HPC行业。主要组建包括:元数据服务器(Metadataservers, MDSs)、对象存储服务器(objectstorage servers, OSSs)和客户端。其中MDSs提供元数据服务,MGS管理服务器提供Lustre文件系统配置信息,OSS对象存储服务器expose块设备提供数据。

目前网上关于lustre的搭建文档比较少,且大多数文档是1.×版本或者是英文的文档,本篇文档基于centos7.4和最新的lustre2.10.1进行搭建整理,希望对大家有帮助

二、环境准备

1. 准备4台虚拟机,内存>=2G,硬盘>=20G,配置主机名和IP地址

centos1 192.168.11.148 (MDT)

centos2 192.168.11.149 (OST)

centos3 192.168.11.150 (OST)

centos4 192.168.11.151 (client)

2. 每台机器都需要关闭selinux和防火墙(如果会配置防火墙,4台都要开启防火墙:988,1021,1022,1023端口)

[root@centos1 ~]# systemctl stop firewalld

[root@centos1 ~]# systemctl disable firewalld

[root@centos1 ~]# sed -i -e "s/enabled/disabled/" /etc/sysconfig/selinux && reboot

3. 配置4台机器免密登录(这里不再赘述,以下是我的配置)

[root@centos1 ~]# cat /etc/hosts

192.168.11.148 centos1

192.168.11.149 centos2

192.168.11.150 centos3

192.168.11.151 centos4

[root@centos1 ~]# cat .ssh/authorized_keys

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCns/OqLy8ISef8eg9MAbLU8ic0zAvmoCYe5vAuiMj2HmtOjpA3zKqxGuoj3Uklrn+4mqmKWBiPq0q6NDwdPJD2c2sV+2Fd3HUIiz7POH+Co13VClBb9hH/v4Y69Qx3tOOuAxakaBfZu0QrBSi2X4xy2fNlECAcUR4M8s4DANNq8Pl2GN1kG2zIA3bQH1bjqZkKNEk0zOvEX5RIeCzIZ7cVPhqZSz6BBo+bJ1+Ct5w8yjzw1uBAqsTHAg4fhyf7uQ54j7qOB4crLA3T9djDNqQHq4tCG2wFN+GO+cTZAb7m1boQZUh+kbyZmeg5eof9zkyB93LYejVySZcjvCHQjI1 root@centos1

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCf4b9FiAoHmj/TEbkiXJDy8VQl5Fi9nDOkll983kcmju35Yk3bB/mYivKJebQVOfmsis98Xa0RCOm8p/ZMzSqCecflV//IRQFt9o8iFNAXfvo2dkonL+lu07d/lDGRnzcGGu5TCR7WZ9l1h1822P1KsAXH9HTzZO/tZ3BIxCCemqXgYerx8b2CPBFIrLE6OutnqJY9lj9TZMsWZ6d2KD7FtKEl1h88lu+wcI4ZnMEkV9JG10CDPQKzZX1hz58YLudxn7yJkIF7Ot41x1yKOFficaoo25kNdclOb+wbu2rV3WuSZ8lbOVLjR6t4PAiETEe5NvhAbAnR3RqLWQFKkHh root@centos2

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC8omJRBfKVy/zXL5N9ISCfGyAQOFxZ182JMv2DmhdYnrBoMgaIxyDg3zT1S0XVMTHB8IcjuWSVNkb2EQzlQ3mA1KV73COEKPX5R1pyi8m+LGgj0WHBw22gw6Tki+8xxXSyOc357/6sGHhmMxzGzIsvoobQWbdl8ZYwP14JHM+T4Lu6iucxjhbmA5Gz0WOg04Lzn9Rpc0xKEOL8fwFEAnIDbuwtBGhbeD1MX1OI/CFmfPkpEZW/c4hlnPWBmPbOrNJjO4sLljxvc8NJFvoPfYSQFFjn1sBd9+UrYWM0hiTVtV/G9NMBJuz+CohTiUp/BCW7C2YBQvJqtGyDD9JaqnV root@centos3

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCmSPlKKHdqoAjdBCabO+QqvxsdW2/JXUN69Wb4i2YnO+65+UEgW/8P8BhDWt2MbWbMiFfcxYX/CPBonFVDUA+N8N6e9lQIQ2fCqHlZOoaJiSSyfN2nebojK0Ta839AMekAZRZqZhiHDZmdKGcUWDSfVDpCa1Bg3POQE8JQU9U+C4Zugw4P4C1DCczvDoBL7eEiSa8gVWXh2FmTzgNg/4QvLOiBOwjDoFLhGs/ByWWbFD5Qe1Y98RQ6M2Z07JQ8mplql9zutI8OwIdM/1cvkpQpY6AYY62e7XstGz5Ws8JS+gESpirmJRnDybPY2clEoRrC9PpSSV+tbOrzuUt03Cz root@centos4

以上配置,每台机器都一样,才能主机互信

4. 每台机器都配置yum源并升级

[root@centos1 ~]# cd /etc/yum.repos.d/

[root@centos1 yum.repos.d]# wget http://mirrors.aliyun.com/repo/Centos-7.repo

[root@centos1 yum.repos.d]# wget http://mirrors.aliyun.com/repo/epel-7.repo

[root@centos1 yum.repos.d]#curl -O https://www.watters.ws/rpms/lustre/lustre-2.10.1/server/e2fsprogs.repo

[root@centos1 yum.repos.d]#curl -O https://www.watters.ws/rpms/lustre/lustre-2.10.1/server/lustre.repo

[root@centos1 yum.repos.d]#curl -O https://www.watters.ws/rpms/lustre/lustre-2.10.1/client/lustre-client.repo(此源是为配置lustre客户端使用)

[root@centos1 yum.repos.d]# yum clean all && yum repolist && yum update

5. lustre软件包下载

lustre的软件包可以直接从官网下载(http://downloads.whamcloud.com/public/lustre/)。但是官网提供的包非常多非常乱,有的包也用不到,有的包没提供,相信很多小伙伴都是一脸懵逼,不知如何下手。所以这里我按照自己的方式整理了luster需要下载的源码包,再配合yum一起使用,就可以解决包的问题了(可能整理的源码包不全,但是配合yum使用会解决源码包依赖和系统环境依赖)。

MDT 和 OST需要下载的源码包

kmod-lustre-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-osd-ldiskfs-mount-2.10.1-1.el7.x86_64.rpm

lustre-osd-zfs-mount-2.10.1-1.el7.x86_64.rpm

client需要下载的源码包

lustre-client-debuginfo-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           

三、lustre安装

1.服务端安装(1台MDT和2台OST)

[root@centos1 ~]# mkdir /opt/lustre

[root@centos1 ~]# cd /opt/lustre/

下载上述源码包

[root@centos1 lustre]# ls

kmod-lustre-2.10.1-1.el7.x86_64.rpm     

lustre-osd-ldiskfs-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-osd-zfs-mount-2.10.1-1.el7.x86_64.rpm 

使用yum安装zfs及其相关依赖

[root@centos1 lustre]# yum -y install epel-release

[root@centos1 lustre]# yum -y installhttp://download.zfsonlinux.org/epel/zfs-release.el7_3.noarch.rpm

[root@centos1 lustre]# yum -y install spl-dkms zfs-dkms

[root@centos1 lustre]# yum -y install libzfs

[root@centos1 lustre]# yum -y install expect

安装源码包

[root@centos1 lustre]# rpm -ivh lustre-osd-ldiskfs-mount-2.10.1-1.el7.x86_64.rpm

[root@centos1 lustre]# rpm -ivh lustre-osd-zfs-mount-2.10.1-1.el7.x86_64.rpm

[root@centos1 lustre]# rpm -ivh lustre-dkms-2.10.1-1.el7.noarch.rpm (耐心等待,过程有点长,中间会提示是否有匹配的kernel-debuginfo-common和kernel-debuginfo-common-包安装)

[root@centos1 lustre]#yum -y install lustre sg3_utils openmpi

[root@centos1 lustre]# yum -y install lustre-tests

[root@centos1 lustre]# rpm -ivh kmod-lustre-osd-ldiskfs-2.10.1-1.el7.x86_64.rpm

[root@centos1 lustre]# rpm -ivh kmod-lustre-2.10.1-1.el7.x86_64.rpm

安装完毕重启一下

[root@centos1 lustre]# reboot

加载lustre和ldiskfs模块

[root@centos1 lustre]# modprobe lustre

[root@centos1 lustre]# modprobe ldiskfs

查看安装的lustre相关的包

[root@centos1 lustre]# rpm -qa | grep lustre

lustre-dkms-2.10.1-1.el7.noarch

lustre-2.10.1-1.el7.x86_64

kmod-lustre-tests-2.10.1-1.el7.x86_64

lustre-osd-ldiskfs-mount-2.10.1-1.el7.x86_64

lustre-iokit-2.10.1-1.el7.x86_64

lustre-osd-zfs-mount-2.10.1-1.el7.x86_64

kernel-3.10.0-693.2.2.el7_lustre.x86_64

lustre-tests-2.10.1-1.el7.x86_64

kmod-lustre-2.10.1-1.el7.x86_64

kmod-lustre-osd-ldiskfs-2.10.1-1.el7.x86_64

2.安装客户端(client)

[root@centos4 ~]# mkdir /opt/lustre

[root@centos4 ~]# cd /opt/lustre/

下载上述源码包

[root@centos4 lustre]# ls

lustre-client-debuginfo-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

[root@centos4 lustre]# rpm -ivh lustre-client-debuginfo-2.10.1-1.el7.x86_64.rpm

[root@centos4 lustre]# yum -y install libzfs

[root@centos4 lustre]# yum -y install expect

[root@centos4 lustre]# rpm -ivh lustre-osd-ldiskfs-mount-2.10.1-1.el7.x86_64.rpm

[root@centos4 lustre]# rpm -ivh lustre-osd-zfs-mount-2.10.1-1.el7.x86_64.rpm

[root@centos4 lustre]# yum -y install lustre-client

安装完毕重启一下

[root@centos4 lustre]# reboot

加载lustre模块

[root@centos6 lustre]# modprobe lustre

查看安装的lustre相关的包

[root@centos6 lustre]# rpm -qa | grep lustre

lustre-client-debuginfo-2.10.1-1.el7.x86_64

lustre-osd-zfs-mount-2.10.1-1.el7.x86_64

lustre-client-2.10.1-1.el7.x86_64

lustre-osd-ldiskfs-mount-2.10.1-1.el7.x86_64

kmod-lustre-client-2.10.1-1.el7.x86_64

四、lustre配置

Lustre是基于内核的分布式文件系统,而不是像其它一些用户态的分布式文件系统那样直接建立在ext3或者是ext4之上。Lustre需要对磁盘进行格式化,并且在格式化的过程中进行参数配置。这里分别给前3台机器添加一块20G硬盘作为测试用,添加的硬盘显示为/dev/sdb ,最后一台机器作为客户端

1. 在MDS服务器(192.168.11.148)上执行以下操作

[root@centos1 lustre]# mkfs.lustre --fsname=lustrefs --mgs --mdt --index=0 /dev/sdb

参数解释:

fsname指定的是创建lustre时的文件系统名

mgs指定该机器为元数据服务器,即该机器为mds

mdt指定/dev/sdb为元数据实际数据存储位置

至于index则指定该mgs的索引号,mgs可以设置主备模式,但mdt需要在主备mds之间共享

[root@centos1 lustre]# mount.lustre /dev/sdb /mnt/mdt

2.在两台OST服务器(192.168.11.149/150)上执行以下操作

[root@centos2 lustre]# mkfs.lustre --fsname=lustrefs --mgsnode=192.168.11.148@tcp --ost --index=0 /dev/sdb

参数解释:

fsname不多说

mgsnode指定oss请求元数据节点,并指明访问协议tcp

ost指定/dev/sdb为存储数据的实际位置

index这个参数可以看到两个节点是不一样的

//整个系统的实际容量是两台OST的/dev/sdb的容量

[root@centos2 lustre]# mount.lustre /dev/sdb /mnt/ost0

[root@centos3 lustre]# mount.lustre /dev/sdb /mnt/ost1

查看一下容量

[root@centos2 ~]# df -h

文件系统            容量  已用  可用 已用% 挂载点

/dev/mapper/cl-root  37G  4.1G  33G  11% /

devtmpfs            907M    0  907M    0% /dev

tmpfs                920M    0  920M    0% /dev/shm

tmpfs                920M  8.4M  912M    1% /run

tmpfs                920M    0  920M    0% /sys/fs/cgroup

/dev/sda1          1014M  235M  780M  24% /boot

/dev/sdb              20G  46M  19G    1% /mnt/ost0

tmpfs                184M    0  184M    0% /run/user/0

3.客户端(192.168.11.151)挂载

[root@centos4 lustre]# mount.lustre 192.168.11.148@tcp:/lustrefs /mnt/lustre

查看系统容量

[root@centos4 lustre]# df -hT

文件系统                    类型      容量  已用  可用 已用% 挂载点

/dev/mapper/cl-root          xfs        37G  4.2G  33G  12% /

devtmpfs                    devtmpfs  910M    0  910M    0% /dev

tmpfs                        tmpfs    920M    0  920M    0% /dev/shm

tmpfs                        tmpfs    920M  8.4M  912M    1% /run

tmpfs                        tmpfs    920M    0  920M    0% /sys/fs/cgroup

/dev/sda1                    xfs      1014M  186M  829M  19% /boot

192.168.11.148@tcp:/lustrefs lustre    39G  91M  37G    1% /mnt/lustre

tmpfs                        tmpfs    184M    0  184M    0% /run/user/0

可以看到客户端挂载后,可用容量为两台OST的/dev/sdb的总容量

4. 测试

1)客户端测试:

[root@centos4 lustre]# dd if=/dev/zero of=/mnt/test.img bs=1M count=4500

记录了4500+0 的读入

记录了4500+0 的写出

4718592000字节(4.7 GB)已复制,7.40257 秒,637 MB/秒)

2)其中一台OST服务器测试

[root@centos2 lustre]# dd if=/dev/zero of=/tmp/test.img bs=1M count=4500

记录了4500+0 的读入

记录了4500+0 的写出

4718592000字节(4.7 GB)已复制,6.74598 秒,699 MB/秒

3)MDT上测试

[root@centos1 lustre]# dd if=/dev/zero of=/tmp/test.img bs=1M count=4500

记录了4500+0 的读入

记录了4500+0 的写出

4718592000字节(4.7 GB)已复制,7.06079 秒,668 MB/秒)

4)一台普通电脑PC测试

shown@localhost ~ $ dd if=/dev/zero of=/tmp/test.img bs=1M count=4500

记录了4500+0 的读入

记录了4500+0 的写出

4718592000 bytes (4.7 GB, 4.4 GiB) copied, 43.889 s, 108 MB/s

可以看出lustre是相当的快

五、番外篇

lustre文件系统非常快,但它没有很好的数据冗余保护机制,部分节点宕机的话很容易造成数据丢失。推荐一个提高lustre系统数据安全性的架构,即底层直接配置两个lustre系统,数据一式两份,这样子的架构是一个成本比较低的提高lustre数据安全性的方案。并且我所知道的是已经有不少朋友都是这么设计的。不过这样做需要花费成本的地方在于数据如何正确的同步(此方案未经论证)

六、参考资料

http://www.blogchong.com/?mod=pad&act=view&id=27

https://www.watters.ws/mediawiki/index.php/Lustre_Install_Notes

http://www.weiruoyu.cn/?p=524

https://jira.hpdd.intel.com/browse/LU-9801?page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel&showAll=true

https://dev.uabgrid.uab.edu/wiki/LustreQuickStart

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,362评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,330评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,247评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,560评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,580评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,569评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,929评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,587评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,840评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,596评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,678评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,366评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,945评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,929评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,165评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,271评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,403评论 2 342

推荐阅读更多精彩内容