lustre文件系统基础知识

存储设备 0 955 左昆豫 收藏

Lustre,一种平行分布式文件系统,通常用于大型计算机集群和超级电脑。Lustre是源自Linux和Cluster的混成词。最早在1999年,由皮特·布拉姆(英语:Peter Braam)创建的集群文件系统公司(英语:Cluster File Systems Inc.)开始研发,于2003年发布 Lustre 1.0。采用GNU GPLv2开源码授权。

一:lustre文件系统各个组件对存储和硬件需求


需要附加存储

理想的硬件特性

MDS

1-2%文件系统容量

足够的cpu频率,大量的内存,快速的磁盘存储

OSS

每个OST大小为最大128TB,每个OSS 2-8个OSTs

好的总线带宽,建议,通过多个OSSs平衡存储

Clients

低延迟,高带宽的网络

二:lustre存储硬件方面的考虑

1.MGT要求存储空间小(<100M),而且数据只是在服务端或客户端挂载的时候才会访问,所以磁盘性能不考虑,但是这些数据非常重要,所以建议用RAID1

2. MDT的存储在数据库中被访问,访问模式大多数为,寻道和读写小数据量,高吞吐量的存储对mds是不重要的,所以存储类型应该能够提供低的多的寻道时间,所以建议用高转速的SAS或SSD驱动器,为获得最佳性能,应该配置一个拥有内部日志并且两个磁盘来自不同控制器的RAID1

若果你需要更大一点的MDT,可以先创建多个RAID1设备,然后再通过创建好的RAID1创建RAID0(即创建RAID10),这样保证了最大的可靠性,以为多个磁盘在同一个装置中故障的概率小于只有一个RAID1设备

注意:相反(先做RAID0再做RAID1,即两个RAID0组成RAID1),那就有50%的几率发生同时又两个磁盘故障,从而导致整个MDT数据丢失

3.OSS的存储数据访问模式,是一个取决于正在应用的访问模式的流I/O模式,每个OSS可以有多个OST,通常为2-8个OST,每个OST大小高达128TB,OSS配置应该在网络带宽和存储带宽之间取得平衡

lustre文件系统的容量为所有OST容量之和,比如,有64个OSS,每个OSS有2个8TB的OST,那就能提供一个容量大小为1PB的lustre文件系统,假如每个OST由10个1TB的SATA磁盘(组成RAID6,8个数据盘,2个做奇偶校验),每个磁盘提供50MB/sec的磁盘带宽,那每个OST就可以提供大概400MB/sec的磁盘带宽,如果这个文件系统作为网络存储后端,使用Infiniband网络(能提供40Gb/sec,大概500MB/sec),那每个OSS就可以提供800M/sec的端到端的吞吐量(这是理论值,实际环境中还要仔细的选择硬件并测试)

三:确定空间要求

1.MGT空间需求

需要小于100MB磁盘空间,建议100MB,空间取决于集群里服务器的数量

2.MDT空间要求

当在计算MDT需要的空间时,最重要的因素就是要考虑,存储到文件系统的文件数量,这也就决定了需要多少inodes(inodes决定的MDT大小),为了安全起见,计划每个inode大小为2KB(这也是默认大小)

例如:要存储的文件平均大小为5MB,你有100TB可用的OST存储空间,那你就可以计算需要的最少inodes数了

(100 TB * 1024 GB/TB * 1024 MB/GB) / 5 MB/inode = 20million inodes

我们建议使用最少inodes数的2倍,做为inodes数,并且考虑允许文件的平均大小小于预期值,因此,所需的空间如下

2 KB/inode * 40 million inodes = 80 GB

如果平均文件大小太小,比如要存储的文件平均大小为4KB,那需要的MDT大小差不多为50TB,那这样用lustre文件系统就不合理了

备注:

如果MDT太小,会导致不能利用OST的所有空间,因为在格式换前,一定要确定好MDT大小,以为格式化完后再增加inodes是很困难的

3.确定OST的空间要求

OST里每个对象使用空间的多少取决于用户的使用模式和系统上运行的应用程序,lustre文件系统默认每个对象大小为16KB,如果你确定要存储的文件平均大小大于16KB,你就可以指定一个更大的平均文件大小,以减少文件系统开销和减少文件系统检查时间

4.文件和文件系统限制(lustre2.3和之前的版本)

限制项目

阀值

描述

MDT的最大数量

1个(lustre2.4最多4096个)


OST最大数量

8150个

已经测试过4000个OST

单个OST最大容量

128TB

这不是一个硬限制,当然大于128TB也可以,但通常都不超过128TB

客户端最大数量

131072个

数量可以在编译的时候更改

一个lustre文件系统最大容量

512PB


最大条带数量

2000


最大条带大小

<4GB


最小条带大小

64KB


对象最大大小

16TB


文件最大大小

16TB-32位 31.25PB-64位


单个目录下最大文件数量或子目录数量

1千万


文件系统内最大文件数量

40亿


最大文件名长度

255字节


路径最大长度

4096字节


文件系统内打开的最大文件数

无限制





四:确定内存要求

1.客户端内存要求

最小2GB的内存

2.MDS内存要求

MDS内存要求由以下因素决定

客户数量

目录大小

负载放置在服务器

例如:MDS有一个MDT,1000个客户端,16互动节点,2000000工作组文件(其中400000个文件缓存在客户端),那么所需内存如下

操作系统消耗=512MB

文件系统日志=400MB

1000 * 4-core clients * 100files/core * 2kB = 800 MB
16 interactive clients * 10,000files * 2kB = 320 MB
1,600,000 file extra working set * 1.5kB/file = 2400MB

所以最少需要大概4GB,当然内存越大性能越好

3.OSS内存需求

The minimum recommended RAMsize for an OSS with two OSTs is computed below:
Ethernet/TCP send/receive buffers(4 MB * 512 threads) = 2048 MB
400 MB journal size * 2 OSTdevices = 800 MB
1.5 MB read/write per OST IOthread * 512 threads = 768 MB
600 MB file system read cache *2 OSTs = 1200 MB
1000 * 4-core clients * 100 files/core * 2kB = 800MB
16 interactive clients * 10,000files * 2kB = 320MB
1,600,000 file extra workingset * 1.5kB/file = 2400MB
DLM locks + file systemmetadata TOTAL = 3520MB
Per OSS DLM locks + file systemmetadata = 3520MB/6 OSS = 600MB (approx.)
Per OSS RAM minimum requirement= 4096MB (approx.)
This consumes about 1,400 MBjust for the pre-allocated buffers, and an additional 2 GB for minimal file
system and kernel usage.Therefore, for a non-failover configuration, the minimum RAM would be 4 GB
for an OSS node with two OSTs.Adding additional memory on the OSS will improve the performance
of reading smaller,frequently-accessed files.
For a failover configuration,the minimum RAM would be at least 6 GB. For 4 OSTs on each OSS in a
failover configuration 10GB ofRAM is reasonable. When the OSS is not handling any failed-over OSTs
the extra RAM will be used as aread cache.
As a reasonable rule of thumb,about 2 GB of base memory plus 1 GB per OST can be used. In failover
configurations, about 2 GB per OST is needed.

五:关于存储设备RAID

1.为了获得更好的性能,如果是RAID5,每个RAID5用5块盘或者是9块盘,如果是RAID6,每个RAID6用6块盘或10块盘,并且磁盘在不同的控制器上

六:双网卡绑定

设置绑定:

1.创建一个虚拟网口“bond0”:

# vi/etc/sysconfig/network-scripts/ifcfg-bond0

bond0内容如下:

#cat/etc/sysconfig/network-scripts/ifcfg-bond0

DEVICE=bond0
IPADDR=192.168.10.79
NETWORK=192.168.10.0
NETMASK=255.255.255.0
USERCTL=no
BOOTPROTO=none
ONBOOT=yes

2.编辑eth0网卡配置文件

# vi/etc/sysconfig/network-scripts/ifcfg-eth0

修改内容如下:

DEVICE=eth0
USERCTL=no
ONBOOT=yes
MASTER=bond0
SLAVE=yes
BOOTPROTO=none

3.编辑eth1网卡配置文件

# vi /etc/sysconfig/network-scripts/ifcfg-eth1

修改内容如下:

DEVICE=eth1
USERCTL=no
ONBOOT=yes
MASTER=bond0
SLAVE=yes
BOOTPROTO=none

4. 设置绑定端口bond0选项

# vi/etc/modprobe.d/bond.conf

添加内容如下

alias bond0 bonding
options bond0mode=balance-alb miimon=100

5.载入bonding模块并激活bond0

# modprobe bonding
# ifconfig bond0 up
# ifenslave bond0eth0 eth1

6.检查 /proc/net/bonding获取bond0信息

# cat/proc/net/bonding/bond0

Ethernet ChannelBonding Driver: v3.0.3 (March 23, 2006)
Bonding Mode: loadbalancing (round-robin)
MII Status: up
MII Polling Interval(ms): 0
Up Delay (ms): 0
Down Delay (ms): 0
Slave Interface:eth0
MII Status: up
Link Failure Count:0
Permanent HW addr:4c:00:10:ac:61:e0
Slave Interface:eth1
MII Status: up
Link Failure Count:0
Permanent HW addr:00:14:2a:7c:40:1d

7. 使用ifconfig命令查看bond0信息

#ifconfig

bond0 Linkencap:Ethernet HWaddr 4C:00:10:AC:61:E0
inetaddr:192.168.10.79 Bcast:192.168.10.255 \ Mask:255.255.255.0
inet6 addr:fe80::4e00:10ff:feac:61e0/64 Scope:Link
UP BROADCAST RUNNINGMASTER MULTICAST MTU:1500 Metric:1
RX packets:3091errors:0 dropped:0 overruns:0 frame:0
TX packets:880errors:0 dropped:0 overruns:0 carrier:0
collisions:0txqueuelen:0
RX bytes:314203(306.8 KiB) TX bytes:129834 (126.7 KiB)
eth0 Linkencap:Ethernet HWaddr 4C:00:10:AC:61:E0
inet6 addr:fe80::4e00:10ff:feac:61e0/64 Scope:Link
UP BROADCAST RUNNINGSLAVE MULTICAST MTU:1500 Metric:1
RX packets:1581errors:0 dropped:0 overruns:0 frame:0
TX packets:448errors:0 dropped:0 overruns:0 carrier:0
collisions:0txqueuelen:1000
RX bytes:162084(158.2 KiB) TX bytes:67245 (65.6 KiB)
Interrupt:193 Baseaddress:0x8c00
eth1 Linkencap:Ethernet HWaddr 4C:00:10:AC:61:E0
inet6 addr:fe80::4e00:10ff:feac:61e0/64 Scope:Link
UP BROADCAST RUNNINGSLAVE MULTICAST MTU:1500 Metric:1
RX packets:1513errors:0 dropped:0 overruns:0 frame:0
TX packets:444errors:0 dropped:0 overruns:0 carrier:0
collisions:0txqueuelen:1000
RX bytes:152299(148.7 KiB) TX bytes:64517 (63.0 KiB)
Interrupt:185 Baseaddress:0x6000

七:lustre各版本支持的linux发行版

Lustre发行版

已测试支持lustre 服务端的发行版

已测试支持lustre客户端的发行版

2.0

RHEL 5, CentOS 5

RHEL 5, CentOS 5, SLES 11 SP0

2.1.x

RHEL 5, CentOS 5, RHEL 6,

CentOS 6

RHEL 5, CentOS 5, RHEL 6, CentOS 6,

SLES 11 SP1

2.2

RHEL 6, CentOS 6

RHEL 5, CentOS 5, RHEL 6, CentOS 6,

SLES 11 SP1

2.3

RHEL 6.3, CentOS 6.3

RHEL 6.3, CentOS 6.3, RHEL 5.8,

CentOS 5.8, SLES 11 SP1

2.4.x

RHEL 6.4, CentOS 6.4

RHEL 6.4, CentOS 6.4, SLES 11 SP2,

FC18

请根据上表依据linux发行版安装合适的lustre版本

 


相关推荐:

网友留言:

您需要 登录账户 后才能发表评论

我要评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。
验证码