1.了解lustre
本章介绍了Lustre体系结构和Lustre的特点。它包括以下几个部分:
1.lustre可以做什么
2.lustre的组件
3.lustre的存储和I/O
1.1 Lustre可以做什么
Lustre是一个存储集群架构.Lustre的体系结构的核心组成部分是Lustre文件系统,它支持Linux系统,并提供了一个符合POSIX标准的UNIX文件系统接口。
Lustre用于许多不同类型的集群存储架构。它最出名的是,提供七个前十名的高性能计算(HPC)集群,有成千上万个客户端系统。千兆字节的存储(PB)和数百个I/0吞吐量每秒千兆字节(GB/sec)。
许多的HPC站点使用Lustre的站点范围的全局文件系统,服务几十个集群。Lustre文件系统提供扩展容量和性能的能力。简化了存储管理,避免需要计算集群之间的数据复制。除了累计许多服务器的存储容量I/O吞吐量也,累计额外添加的服务器,能很容易得动态添加服务器。
虽然Lustre可以在许多工作环境中运作,但是它不一定是所有的应用程序的最佳选择。它适合多台大容量的服务器,由于其强大的锁定和数据一致性,在某些情况下Lustre也可以提供执行一个单一的服务器。
Lustre目前不适合“对等”的使用模式,凡是有客户端和服务器运行在同一节点的,共用一个共享存储。由于缺乏Lustre的级别的数据复制功能,在上述用途中,如果一个客户机/服务器发生故障时,则在该节点中存储的数据无法访问,直到重新启动节点。
1.1.1Lustre的特点
Lustre的安装可缩放或客户端节点的数量,磁盘存储和带宽方面。可伸缩性和性能依赖于可用的磁盘和网络带宽和系统中的服务器的处理能力。Lustre的可以部署在各种各样的架构,还可以扩展,远远超出了在生产系统中观察到的大小和性能。
表1-1显示了实用范围,Lustre文件系统的可扩展性和性能特征,在生产系统中的一些试验结果。
特点 | 范围 | 在生产环境中的测试 | |
客户端 | 可伸缩性 | 100-100,000 |
50,000+客户 端
许多安装在10,000至20,000区间 |
性能 |
单客户端:单客户端: 2GB/秒 I/O 2GB秒 1000元数据 OPS/秒文件统: 文件系统: 240GB/sI/O 2.5TB/s |
单客户端: 2GB/s 文件系统: 240GB/s I/O |
|
OSS | 可伸缩性 |
4-500,可以高达4000台 450 -1000, 192-1344 文件系统: 64PB,单个文件支持320TB |
450 -1000, 192-1344 文件系统:
10PB,10多TB文件大小
|
性能 | 高达5GB/S | OSS吞吐量2.0GB/s | |
MDS | 可伸缩性 | 可伸缩性1+1(一个备份的故障转移) | |
性能 |
高达35,000/ s的创建,100,000/s的统计元数据操作 |
其他的Lustre功能:
性能增强的ext4文件系统:Lustre使用Ext4增强版日志文件系统来存储数据和元数据的。这个版本,称为ldiskfs,已得到增强,以提高性能,并提供额外的lustre功能
POSIX相容性:完整的POSIX测试套件传递与Lustre的客户有限的。在集群中,大多数操作都是原子的,这样客户端从来没有看到过时的数据或元数据。Lustre的支持mmap()的文件I / O
高性能异构网络:Lustre的支持多种高性能,低延迟的网络,并允许远程直接内存访问(RDMA)的Infiniband(OFED)。这使得多个RDMA网络桥接使用Lustre路由的最高性能。Lustre还提供了集成网络诊断。
高可用性:Lustre以共享存储的方式提供主动/主动故障切换用于OSS,Lustre以共享存储的方式提供主动/被动故障切换用于MDS,这使得应用程序恢复具有透明度,Lustre可以与多种高可用整合(HA),允许故障自动转移,并没有单点故障(NSPF),多个挂载保护(MMP)可提供高度可用的系统中的错误,否则会造成文件系统损坏。
安全性:在lustre中,选择设置一个选项,使得Lustre只接受某个专用端口的TCP连接
访问控制列表(ACL),exended属性:目前,Lustre的安全模型,UNIX文件系统,加强对于POSIXACL。
基于对象的体系结构:客户端从磁盘上的文件结构,启用存储架构的升级,在不影响客户端的情况下被隔离。
颗粒字节的文件和细粒度的元数据锁定:任何客户端可以同时运行在相同的文件和目录。Lustre的分布式锁管理器(DLM)确保在文件系统中的所有客户端和服务器之间的文件是一致的。多个客户端可以同时访问相同的文件,和DLM确保所有客户端在任何时候都看到一致的数据。DLM是每个MDT和每个OST管理存储在该文件系统的对象锁定。MDT管理锁inode的权限和路径名。OST内每个对象的每个条带的文件和数据管理锁。
配额:用户和组配额的Lustre。
OSS 特例:在不中断任何操作的情况下,通过增加一个新的OSS的OST到集群,Lustre文件系统的容量和总的集群带宽可以增加。
控制条带:跨OST的文件的分布可以配置对每一个文件,目录,或每个文件系统。这使得文件I/ O被调谐到特定的应用需求。Lustre使用RAID0条带和平衡跨空间使用OST。
网络数据完整性保护:从客户端发送到OSS的所有数据校验和数据传输过程中防止腐败。
MPI的I / O:Lustre的有一个专用的MPI的ADIO层,优化并行I/ O,以配合相关的文件系统架构。
NFS和CIFS出口:Lustre的文件可以被重新使用NFS或CIFS(通过Samba),使他们能够共享一个非Linux客户端导出。
Lustre的的灾难恢复工具:提供了一个分布式文件系统检查,(lfsck)一款主流的文件系统错误的情况下,可以恢复存储组件之间的一致性。即使在文件系统不一致的存在下,Lustre的也是可以操作,所以lfsck不是必需的。
内部监控和检测仪器接口:Lustre提供了各种机制,以检查性能和调优。
开放源码:Lustre的授权GPL2.0许可下使用Linux。
1.2lustre的组件
Lustre的软件的安装包括一个管理服务器(MGS)和一个或多个互连的与Lustre的网络(LNET)Lustre文件系统。
Lustre的组件的基本配置如图1-1所示。
图1-1的Lustre的组成部分在一个基本的集群
1.2.1管理服务器(MGS)
MGSLustre文件系统在集群配置信息存储将此信息提供给其他Lustre的组成部分。每个Lustre的目标接触MGS提供信息,Lustre的客户联系MGS检索信息。
这是最好的MGS有它自己的存储空间,以便它可以独立地进行管理。然而,MDS可以共同位于共享存储空间如图1-1所示。
1.2.2Lustre文件系统组件
每个lustre文件系统由以下几个部分组成:
元数据服务器(MDS)– MDS Lustre的客户端可在一个或多个MDTs中存储的元数据。每个MDS管理Lustre文件系统(S)的名称和目录,并提供一个或多个本地MDTs处理网络请求。
元数据目标(MDT)– MDT的元数据(如文件名,目录,权限和文件布局)连接到一个MDS存储。每个文件系统都有一个MDT。MDT对共享存储的目标可以提供给多的MDS,虽然只有一个可以访问它一次。如果活跃MDS失败,可以作为一个备用的MDSMDT它提供给客户。这是被称为“MDS的故障转移。
对象存储服务器(OSS):OSS提供文件I/ O服务和网络请求处理一个或多个本地的OST。通常情况下,OSS供应2和8之间的OST,每个高达16TB。一个典型的配置是一个专用节点,两个或更多的OST每个OSS节点上.
对象存储目标(OST):用户文件数据被存储在一个或多个对象,每个对象Lustre文件系统中的一个单独的OST。每个文件的对象的数量是由用户配置,可以进行调节,对于一个给定的工作负载,以优化性能。
Lustre客户端:让他们安装Lustre文件系统Lustre的客户端计算,可视化或桌面节点,运行Lustre的客户端软件。
Lustre的客户端软件,提供Linux虚拟文件系统和Lustre服务器之间的接口。客户端软件包括管理客户端(MGC),元数据客户机(MDC),和多个对象存储客户端(OSCS),一个对应的文件系统中的每个OST。
一个逻辑对象体积(LOV)聚集体的OSC在所有的OST提供透明的访问。因此,Lustre文件系统安装一个客户端看到一个单一的,一致的,同步的命名空间。多个客户端可以同时对同一文件的不同部分的写入,同时,在同一时间,其他客户端可以从文件中读取。
表1-2提供附加存储每个Lustre文件系统组件的要求,并介绍了所使用的硬件的理想特性的影响。
表1-2存储和Lustre的组件的硬件要求
需要连接存储 | 最佳的硬件特性 | |
MDSs | 文件系统的容量的1%至2%的 |
足够的CPU处理能力,大量的内存,磁盘存储快。 |
OSSs | 1-16TB | 良好的总线带宽。推荐存储平衡,均匀地分布在OSS |
Clients | 没有 | 低延迟,高带宽的网络。 |
对于额外的硬件要求和注意事项,请参见第5章:设立一个Lustre文件系统。
1.2.3的Lustre的网络(LNET)
Lustre的网络(LNET)是一个自定义的网络API,它提供的通信基础设施,处理元数据和文件的Lustre文件系统的服务器和客户端的I/ O数据。对于更多信息LNET,请参阅第2章:了解Lustre的网络(LNET)。
1.2.4Lustre集群
Lustre集群规模,可以包括数百OSS系统和成千上万的客户端(参见图1-2)。可用于一个以上的类型的网络中,在一个Lustre集群。OSS系统之间的共享存储使故障转移能力。 OSS故障转移的更多详细信息,请参见第3章:在Lustre了解故障转移。
图1-2 Lustre集群规模
1.3 Lustre的存储和I / O
Lustre文件系统上存储的文件与数据文件相关联的一个或多个对象的MDT点,如图1-3所示。每个对象都包含数据,并存储在一个OST。如果MDT文件指向一个对象,在该对象中的所有文件数据存储。如果该文件指向一个以上的对象,文件数据是“条纹”跨越的对象(使用RAID0),每个对象被存储在一个不同的OST。(如何实现条带化在Lustre欲了解更多信息,请参阅Lustre文件系统和分拆。)
在图1-3中,每个文件指向一个inode。inode包含所有的文件属性,如所有者,访问权限,Lustre的条带化布局,访问时间和访问控制。多个文件名可能指向相同的inode。
图1-3 MDT文件的OST文件数据点上的对象
当客户端打开一个文件,这个文件的打开操作的文件传输布局从MDS给客户端。然后客户端使用这些信息进行I/ O上的文件,直接跟OSS对象存储节点交互。此过程中,如图1-4所示。
图1-4在luster上打开和文件I/O
对MDT上的每个文件包含的布局相关联的数据文件,其中包括OST号码和对象标识符。客户布局从MDS请求文件,然后进行直接通信与OSS系统管理文件数据,文件I/ O操作。
Lustre文件系统中的可用带宽的确定,如下所示:
网络带宽等于目标的OSS系统的总带宽。
磁盘带宽等于磁盘存储目标(OST的)的网络带宽的限制带宽的总和。
总带宽等于minimium的磁盘带宽和网络带宽。
可用的文件系统空间等于所有的OST的可用空间的总和。
1.3.1Lustre文件系统和条带化
领先的高性能Lustre文件系统的主要因素之一是能够在轮循的方式跨多个OST的磁条数据。用户可以选择配置为每个文件数量的条纹,条带大小和所使用的OST。
分段可以被用来提高性能时的总带宽到一个单一的文件exeeds单一OST的带宽。条纹的能力也是有用的,当一个单一OST没有anough的自由空间来保存整个文件。有关文件条带化的优点和缺点的更多信息,请参阅Lustre文件条带化注意事项。
分拆允许段或“块”的文件中的数据将被存储在不同的OST,如图1-5所示的。Lustre文件系统,其中数据是“条纹”跨越目标的对象数,则RAID 0模式是用来。在一个单一文件中的对象的数目称为的stripe_count。
每个对象都包含一个从文件中的数据块。当的组块的数据被写入到一个特定的对象超过stripe_size的,存储在文件中的数据的下一个块的下一个对象。
文件系统被设置为默认值为stripe_countstripe_size。文件默认值stripe_count的条纹的默认值stripe_size的是1MB。每一个目录或每个文件的基础上,用户可以更改这些值。欲了解更多详细信息,请参阅,设置文件的布局/条带化配置(LFSsetstripe)。
在图1-5中,文件cstripe_size较大为文件A比stripe_size的,允许更多的数据存储在一个条带文件C.stripe_count文件的是3,导致条纹跨越三个对象的数据,而文件B和文件Cstripe_count1。
关于OST的不成文的数据没有保留空间。文件图1-5中的A是一个稀疏文件丢失块6。
图1-5文件条带化跨三的OST模式三种不同的数据文件
并不限于由单一的目标的大小的最大文件大小。Lustre的条纹多个对象文件(最多160个),每个对象可以高达2TB的大小。这导致的最大文件大小为320 TB。(请注意,Lustre的本身可以支持到2^64字节,取决于后备存储使用的OST文件。)
只能是一个单独的文件超过160个对象的条纹,Lustre文件系统可以有成千上万的OST。I / O带宽,访问一个单一的文件是聚合I / O带宽,它可以在一个文件中的对象尽可能多的带宽高达160台服务器。在超过160OSTS系统,客户可以执行I / O使用多个文件,以充分利用文件系统的带宽。
转载于:https://blog.51cto.com/xiaolangit/1221247