Lustre文件系统主要内容背景Lustre体系结构及技术分析背景(网络存储技术)直接附加存储(DAS)网络附加存储(NAS)存储区域网(SAN)基于对象的存储(OBD)2020/8/44国防科技大学基于对象存储文件系统Lustre结构背景—基于对象存储体系结构的特点网络带宽,IO吞吐量,文件系统容量以及处理能力是随着存储节点的增加而同步线性增长,因而具有很好的性能和扩展性,存储节点可扩展、存储对象数可扩展性、存储对象空间也具有可扩展性。可以实现大规模的海量数据访问的高度并行一般采用了文件数据与元数据分离存储的机制,通过条带化技术将传统文件的数据分解存储到存储对象中;文件元数据则保存在元数据对象中,并具有一个全局唯一的对象标识以及一些文件属性信息背景—采用对象存储概念设计的分布式集群文件系统StorageTankOBFSPanasasLuster类似的还有BrainStorOBSS比较成功的,商业化的:StorageTank,Lustre,Panasas作为开源的面向下一代存储的基于对象的分布式文件系统的开创者,目前已经在集群存储尤其是大规模高性能并行计算领域取得了巨大的成功。由ClusterFileSystems公司开发的一个开源的、高性能的文件系统源于卡耐基梅隆大学的Coda项目研究工作Lustre消除了传统网络文件系统(AFS、NFS)在可扩展性、可用性和性能上的问题背景—Lustre文件系统背景--Lustre文件系统针对大文件读写进行优化,提供高性能的I/O;元数据独立存储;服务和网络失效的快速恢复;基于意图的分布式锁管理基于对象存储,使存储更具智能化,可以实现基于对象一级的数据保护技术;系统可快速配置体系结构--Lustre文件系统I/O结构体系结构--Lustre文件系统I/O结构文件系统组成:客户端(CFS,ClientFileSystem)对象存储服务器(OST,ObjectStorageTarget)元数据服务器(MDS,MetaDataServer)一个高度模块化的系统三个子系统可以分别运行在不同的计算机节点上,也可以多个子系统运行在同一个节点上体系结构-总体模块结构图ClientFileSystem(CFS)VFSLustrelliteLOV(logicalobjectvolume)OSCLMV(logicmetadatavolume)PortalsPortalsOSCOSCMDSServerOBDServerLOVOSTServerMDSBackend(OBD)FileSystemExt3,Reiserfs,xFSOBDserverObjectbasedDevice(OBD)FileSystemExt3,Reiserfs,xFS,JFSExt2Ext3MDSOSC…FigOverviewofmudularLusterMDCMDCMDCMDCLockserverOSCOSCOSCLockServer…OST体系结构——Lustre子系统交互图体系结构——Lustre子系统交互图Client同OST进行文件数据的交互,包括文件数据的读写、对象属性的改变等.同MDS进行元数据的交互,包括目录管理、命名空间管理等.OST负责对象数据的存储,将I/O数据保存到由它管理的后端基于对象存储设备(OBD,ObjectBasedDevice)中.MDS负责向客户端提供整个文件系统的元数据,管理整个文件系统的全局命名空间,维护整个文件系统的目录结构、用户权限,并负责维护文件系统的元数据一致性LustreClientMeta-dataServerMDSOST1OST2OST3OSC3Filemeta-dataInodeA(obj1,obj2)FileopenrequestWrite(obj1)Write(obj2)OSC1Fileopen&writeMDCLinuxVFSLustreclientFSLOVOddblocks,evenblocksAchieveparallelBandwidthtoallOST’sLustre文件系统数据分布布局由于Lustre采用了数据和元数据分离的基于对象存储的体系结构,下面将从这两个方面分别讨论Lustre数据的分布布局:文件数据文件元数据文件数据布局策略–(本地文件系统)数据...块号数据数据...块号、长度块分配分配器尝试分配顺序块如Ext2一级索引二级索引三级索引范围(extent)分配基于连续快分配,描述:逻辑偏移/长度/物理偏移三元组B+树如:VxFS,JFS,reiserfs,xFS…多数据块文件数据布局策略–(Lustre文件系统)。。。。。。。OST1。ObjAObjBObjCOST2OST0FileDatastripesize:1MStripecount:3sizecreatetime…extentattribute:…….Objectid:ALocationinfoObjectid:BLocationinfoObjectAObjectBMDS:FilemetadataOST0OST1Filedata….基于对象分配文件数据布局策略–Lustre每个常规文件,目录,符号连接和特殊文件都有一个唯一的inode,作为文件元数据对象文件数据按照一定的条带模式分布存储在几个OST的存储对象中文件的分带大小,存储对象数目,分带模式对应的OST索引等定位信息都作为数据分布布局属性对象保存在元数据对象的inode的扩展属性中NetworkStripping借鉴RAID,将文件数据以某种RAID模式分布存储在多个OST的存储对象中能够同时容忍磁盘和节点失效。NetworkStripping–datalayoutJOINFile原理与MD/RAID的线性模式有点类似。每个连接文件的元数据扩展属性中包含有多个数据分布布局属性对象(LayoutObject,LAO)所有的数据分布布局属性对象一般都采用相同的条带模式,并附带有它所管理的文件范围域信息,每个数据分布布局属性对象负责定位文件一部分连续的数据区域.JOINFile(cont’)LAO1EALAO2LAO3….OST1OST2OST3objectLAOiLayoutObjectJOINFile(cont’)文件可以根据大小变化动态的增加或减少数据分布属性对象突破了文件大小的限制,理论上它可以占有整个系统所有OST对象存储设备的空间。连接文件优点就是数据迁移的代价相对较低,迁移策略灵活大的存储对象可分裂成多个小的存储对象文件数据范围连续的较小存储对象可进行合并灵活的文件数据分布策略:对于小文件采用RAID1镜像模式存储;对于大文件采用RAID0/5模式存储;或者文件开始部分用RAID1方式,随着文件增大,后续部分采用RAID0/5模式存储。Lustre元数据服务器集群(ClusterMetadata,CMD)元数据服务器功能及特点:存储和管理文件元数据;控制对文件元数据的访问以及创建、删除、修改等操作当客户端从元数据服务器获得文件元数据及其属性信息后,就可以直接和对象数据存储节点交互访问文件数据;控制流与数据流分离的传输方法,可以有效的分布IO负载,减轻对存储服务器CPU和内存等计算资源的消耗,大大提高了系统的I/O性能Lustre元数据服务器集群(ClusterMetadata,CMD)单一元数据服务器局限:整个系统的集中控制点,如果发生故障,将会导致整个系统不可用;随着客户端和对象存储节点的增加,单个元数据服务器很可能成为整个系统的性能瓶颈,导致系统响应时间变长,降低系统的吞吐率。CMD-元数据分配方法多元数据服务器构建方法主要有两类:目录子树分区法;纯哈希法;CMD--元数据分配方法(目录分区法)将命名空间划分为不同的目录子树每一个目录子树对应的元数据由同一个元数据服务器进行管理一个元数据服务器也可以管理多个目录子树每个目录子树就是一个可安装的小文件系统CMD--元数据分配方法--目录分区法优点静态的、由系统管理员决定怎样分割命名空间不需要与其他节点通讯就能处理元数据请求,具有很强的独立性保留了文件系统的层次结构,可以利用客户端的预取技术和缓存机制,提高元数据服务的处理效率CMD--元数据分配方法--目录分区法缺点增加元数据服务器并不能有效的重新均衡元数据服务器间的工作负载不能有效的处理“热点“目录问题目录分区法中根目录所在的元数据服务器失效,会导致整个文件系统不可用。CMD--元数据分配方法(哈希法)基本思想:当客户端创建一个文件时,以文件的标志符(或者路径名)为键值(Key),通过哈希函数选择负责创建文件的元数据服务器采用这种方法分配元数据的分布式文件系统有Intermezzo,Vesta,zFS等CMD--元数据分配方法--哈希法优点通过哈希函数可以快速的定位到管理该文件的MDS文件系统的负载可以更均匀的分布到各个MDS上能够有效的避免热点目录的出现CMD--元数据分配方法--哈希法缺点消除了命名空间层次结构的local特性为了满足POSIX语义,MDS必须遍历该文件的前缀目录检查当前用户是否具有访问权限。而文件和其前缀可能位于不同的元数据服务器上,这将导致很高的查询开销。MDS间的前缀缓存开销很大,不同元MDS的前缀缓存的重叠度也非常高,降低了元数据服务其内存的利用效率CMD--lustre元数据分配方法Lustre结合了目前目录子树分区法和哈希法的优点,提出了一种管理元数据的混合方法创建新目录时总是通过哈希法选择一个与父目录可能不同的元数据服务器当一个目录变得很大或者非常繁忙时,Lustre通过目录分割策略将该目录拆分成由若干个不同的元数据服务器管理的子目录CMD(目录分割)CMD的恢复通过硬件/软件等措施实现了高可用的元数据服务对象存储上的元数据可用通过本地格式化的日志文件系统进行恢复自恢复机制重放处理任何来自客户端未完成请求相关的恢复以及锁服务的恢复类似数据库的基于日志的回滚技术,实现了涉及到多个元数据服务器服务的不一致性恢复文件系统一致性语义当多个用户对同一个文件进行读写操作时,各个用户看到的文件是一样的.按照UNIX的POSIX共享语义标准,在本地文件系统中,如果一个进程修改了某个文件的属性或内容,应该很快能够被其他进程察觉到。文件系统一致性语义-分布式锁管理器(LDLM)在分布式文件系统中要想按照严格的POSIX语义,就意味着要进行即时更新来维持共享资源的一致性视图,增加了大量的传输和一致性管理的开销,不仅实现困难而且会大大降低系统性能.分布式锁管理器技术为实现对共享存储资源的协同访问避免单个节点的访问以及冲突给出了一套行之有效的解决方法锁服务器也被分布到多个存储节点上,不会成为性能瓶颈.LDLM–锁的类型基本模型在Lustre文件系统中被称为普通锁(plainlock)普通锁模型进行了扩展引入了两种新类型锁:意图锁(intentlock)范围锁(extentlock)。LDLM--锁模式(cont’)模式名称访问授权含义EX独占RW允许对资源的读写访问,且其他任何进程不能获得读或写权限PW保护写W允许对资源的写访问,且其他任何进程不能获得写权限,PR保护读R允许对资源的读访问,且其他任何进程不能获得写权限但可共享读CW并发写W对其他进程没有限制,可以对资源并发写访问.无保护方式写CR并发读R对其他进程没有限制,可以对资源并发读访问.无保护方式读NL空无仅仅表示对该资源有兴趣,对资源没有访问权限.LDLM--锁模式(cont’)EXPWPRCWCRNLEX000001PW000011PR000111CW001111CR011111NL111111锁模式的兼容性LDLM--锁模式(cont’)授权锁队列转换锁队列等待锁队列LDLM--queues(cont’)Lock1CRGrantedQueueR