在高性能存储领域,Lustre是一个如雷贯耳的名字。据统计(2011年7月),世界十大超级计算中心当中的七个以及超过50%的全球top50超级计算机都在使用Lustre。
Lustre是一个基于对象的,分布式文件系统,一般用于大规模集群计算。Lustre的名字是由Linux和集群(cluster)融合得来。该项目旨在为有成千上万的节点的集群提供一个支持PB的存储容量的文件系统,同时又不损害其速度、安全性和可用性。
基于对象的文件系统将文件的元数据和文件数据分离开来,存储在不同的服务器上。文件元数据存储在元数据服务器里,而文件数据则存储在对象存储服务器(object storage server)里。文件系统的客户利用元数据服务器和对象存储服务器来为用户提供一个完整的文件系统抽象。基于对象的文件系统具有性能优势。例如,文件系统客户直接通过对象存储服务器来访问文件内容,而元数据服务器只有在文件打开时才需要连接,从而消除了数据瓶颈。
从体系结构上看,Lustre文件系统包括三种主要的功能部件:
1. 系统中唯一的元数据目标(metadatatarget,MDT),MDT存储元数据,例如文件名,文件夹,访问权限,文件布局(file layout等)。
2. 一个或者多个的对象存储目标(objectstorage target,OST),OST在一个或者多个对象存储服务器上(object storage server,OSS)存储文件数据。根据服务器硬件的不同,一个OSS为两到八个OST提供服务,为每个OST提供容量达到8万亿字节(Terabyte)的本地磁盘文件系统。Lustre文件系统的容量是这些OST提供的存储容量之和。
3. 客户(client)。客户存取和使用数据。Lustre为每个客户提供标准的POSIX语义和并行读写存取文件系统中文件的功能。
MDT、OST和客户可以处于同一个节点或者不同的节点,但是在典型安装里,这些功能部件处于分离的节点中,而每个OSS节点有两个到四个OST通过网络相互通信。Lustre支持多种网络类型,包括Infiniband,以太网上的TCP/IP,Myrinet,Quadrics和其他专有技术。Lustre能够利用远程直接内存存取(remote direct memoryaccess,RDMA)的优点,在可用的时候提高吞吐率和减少CPU使用率。
OST是提供对对象的字节宽度的读写操作的专用文件系统。而MDT是控制文件存取和告知客户哪些对象构成一个文件的专用文件系统。MDT和OST当前使用ext3文件系统的一个变种来存储数据,将来。Sun的ZFS/DMU也将用来存储数据。
当一个客户存取一个文件时,它在MDS中查找文件名。作为结果,MDS将代表客户创建文件,或者将已存在的文件的布局(layout)返回给客户。对于读写操作,客户还要将布局传递给逻辑对象卷(logicalobject volume,LOV)。LOV将偏移量和大小映射到一个或者多个对象,其中每个对象都处于不同的OST里。客户随后对正在操作的文件区域上锁,然后直接在OST上执行一个或者多个并行读写操作。通过这种方式,消除了客户到OST(client-to-OST)的通信瓶颈,因此客户读写数据的可用带宽几乎随着文件系统中OST的数量的增加而线性增加。
客户并不直接修改OST文件系统上的对象,而是将这个任务交给OSS。这种方法确保了大规模集群和超级计算机的的可扩放性、安全性和可靠性。相对于此,基于共享块的文件系统,例如Global File System和OCFS必须允许文件系统中的所有的客户都能直接地访问低层存储,这使得系统承受失常或有缺陷的客户造成文件系统崩溃的危险。
本文章欢迎转载,请保留原始博客链接http://blog.csdn.net/fsdev/article