http://blog.sina.com.cn/s/blog_8c243ea30101mz8a.html
目录
写该文档的最直接的原因是有网友说网上很难找到lustre的部署文档,我曾答应说要给他整理出一个,所以就~~~
其实也是,目前lustre想找一个安装部署文档确实很困难,哪怕是英文的也好。网上流行为数不多的lustre的资料是09年以及10年时期的资料,那还是1.X的年代。比较完全的资料是1.8版的安装部署过程,但现在最新的lustre已经更新到2.5.1了。
造成lustre的资料难以查找的直接原因是lustre的命运太过于坎坷。从1999年lustre项目起,他的版权所有者就在不断的变换,从lustre项目组到Sun公司到Oracle再到Whamclound,最终被因特尔收购。一直都没有一个稳定的社区提供很完整的资料。最主要的是lustre的安装过程还比较复杂,因此导致了国内很多想研究它的人都望而却步。并且很多人使用的lustre还是当年的1.8版。
好吧,既然如此我就整理出一个lustre的安装过程出来,版本呢是2.4的,也算是比较新比较稳定的一个版本。希望能够给大家带来一点点帮助!
由于Whamclound是被因特尔收购了,所以他的官方如今已经自动跳转到了因特尔的官网,但是他的下载地址还是没有变化,从http://downloads.whamcloud.com/public/lustre/依然能够下载到最新的lustre2.5.1版本。
但是~~~我会告诉你,其实他提供的rpm很多很乱而且还是有些缺失的依赖包吗?
链接中有二十几个包,很乱很杂,有些是根本需要的,有些是没列出来的,到时候还得自己下去。我自己将2.4相关的所有有用的包加上他没有提供但是又需要的包打了个包放在了群共享中,需要的可以直接去下。
好了,解决了包的问题,开始安装吧~~~
Luster2.4服务端和客户端的安装一共需要14个安装包,当然有几个包服务端和客户端是公用的。
(1)rpm -Uvh kernel-firmware-2.6.32-358.6.2.el6_lustre.g230b174.x86_64.rpm -f //最好升级安装
(2)rpm -Uvh bfa-firmware-3.0.3.1-1.el6.noarch.rpm -f
(3)rpm -ivh kernel-2.6.32-358.6.2.el6_lustre.g230b174.x86_64.rpm -f //最好重启下机子
(4)rpm -ivh lustre-modules-2.4.0-2.6.32_358.6.2.el6_lustre.g230b174.x86_64_gd3f91c4.x86_64.rpm -f
(5)rpm -ivh libcom_err-1.42.7.wc1-7.el6.x86_64.rpm -f
(6)rpm -ivh e2fsprogs-libs-1.42.7.wc1-7.el6.x86_64.rpm -f
(7)rpm -ivh e2fsprogs-1.42.7.wc1-7.el6.x86_64.rpm -f
(8)rpm -ivh lustre-ldiskfs-4.1.0-2.6.32_358.6.2.el6_lustre.g230b174.x86_64_gd3f91c4.x86_64.rpm -f
(9)rpm -ivh lustre-osd-ldiskfs-2.4.0-2.6.32_358.6.2.el6_lustre.g230b174.x86_64_gd3f91c4.x86_64.rpm -f
(10)rpm -ivh lustre-2.4.0-2.6.32_358.6.2.el6_lustre.g230b174.x86_64_gd3f91c4.x86_64.rpm -f
//至此,服务端的所有包安装完毕。
(1) rpm -Uvh kernel-firmware-2.6.32-358.6.2.el6.noarch.rpm -f
(2)rpm -Uvh bfa-firmware-3.0.3.1-1.el6.noarch.rpm -f
(3)rpm -ivh kernel-2.6.32-358.6.2.el6.x86_64.rpm -f //重启机器
(4)rpm -ivh lustre-client-modules-2.4.0-2.6.32_358.6.2.el6.x86_64_gd3f91c4.x86_64.rpm -f
(5)rpm -ivh lustre-client-2.4.0-2.6.32_358.6.2.el6.x86_64_gd3f91c4.x86_64.rpm -f
//客户端安装完毕,客户端也需要升级内核,不过需要的包少多了。
对比好几个开源的分布式文件系统,Lustre的安装算是比较复杂的了。不仅需要升级内核进行安装,而且还需要众多的依赖包。需要注意的是bfa-firmware的安装,最好进行覆盖安装,不然低版本的bfa-firmware会影响安装进度。
lustre的配置也是一个繁琐的过程。Lustre是基于内核的分布式文件系统,而不是像其他一些用户态的分布式文件系统那样直接建立在ext3或者是ext4之上。Lustre需要对磁盘进行格式化,并且在格式化的过程中进行参数配置。
假设共有四台机器,分别为192.168.1.100/192.168.1.101/192.168.1.102/192.168.1.103四台,并且前三台各有一个空余磁盘sdb,103为客户端。
在100/101/102中安装服务端rpm包,103中安装客户端rpm包,具体安装过程参考如上。
192.168.1.100:mkfs.lustre --fsname=lustrefs --mgs --mdt --index=0 /dev/sdb
//解释下格式化磁盘的参数吧
fsname指定的是创建lustre时的文件系统名
mgs指定该机器为元数据服务器,即该机器为mds
mdt指定/dev/sdb为元数据实际数据存储位置
至于index则指定该mgs的索引号,mgs可以设置主备模式,但mdt需要在主备mds之间共享
Mkfs.lustre
192.168.1.101:mkfs.lustre --fsname=lustrefs --mgsnode=192.168.1.100@tcp --ost --index=0 /dev/sdb
192.168.1.102:mkfs.lustre --fsname=lustrefs --mgsnode=192.168.1.100@tcp --ost --index=1 /dev/sdb
//解释格式化参数
fsname不多说
mgsnode指定oss请求元数据节点,并指明访问协议tcp
ost指定/dev/sdb为存储数据的实际位置
index这个参数可以看到两个节点是不一样的
//整个系统的实际容量是101+102的/dev/sdb的容量
MDS(192.168.1.100):
mount -t lustre /dev/sdb /mnt/mdt
OSS(192.168.1.101/102):
mount -t lustre /dev/sdb /mnt/ost0
mount -t lustre /dev/sdb /mnt/ost1
Client(192.168.1.103):
mount -t lustre 192.168.1.100@tcp:/lustrefs /mnt/lustre
//在客户端的/mnt/lustre上就可以看到101/102的/dev/sdb的容量聚合了。
OK 至此 配置完毕,可以存储东西了~~~
对于lustre个人还是想说两句,它是我迄今为止用过的最快的分布式文件系统,其他开源的分布式的性能跟他比起来差的可不是一星半点。但它最致命的弱点在于没有很好的数据冗余保护机制,部分节点宕机的话很容易造成数据丢失。
推荐一个提高lustre系统数据安全性的架构,即底层直接配置两个lustre系统,数据一式两份,这样子的架构是一个成本比较低的提高lustre数据安全性的方案。并且我所知道的是已经有不少朋友都是这么设计的。不过这样做需要花费成本的地方在于数据如何正确的同步。