3种分布式文件系统_第1页
3种分布式文件系统_第2页
3种分布式文件系统_第3页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第一局部CEPH1.1特点Ceph最大的特点是分布式的元数据效劳器通过CRUS, 一种拟算法来分配文件的 locaiton ,其核心是 RADOS resilient automatic distributed object storage),一个对象集群存储,本身提供对象的高可用,错误检测和修 复功能。1.2组成CEPHfc件系统有三个主要模块:a) Client :每个Client实例向主机或进程提供一组类似于 POSIX的接口。b) OSD簇:用于存储所有的数据和元数据。c) 元数据效劳簇:协调平安性、一致性与耦合性时,管理命名空间文件名和 目录名1.3架构原理Client :用户I/O

2、 :输入/输出MDS Metadata Cluster Server元数据簇效劳器OSD Object Storage Device对象存储设备Clienlsti-ashIclientii!I怕巳怕已日怡Cluster Metadata operationsAMetadatastorageObject St。创3。ClustofvfsfuseLinuxkernelcfcgntlibfusePfprocrnyproc I11Client通过与OS的直接通讯实现I/O操作。这一过程有两种操作方式:1. 直接通过Client实例连接到Client ;2. 通过一个文件系统连接到Client。当一个进

3、行翻开一个文件时,Client向MDSK发送一个请求。MDS!过文 件系统层级结构把文件名翻译成文件节点inode,并获得节点号、模式mode、大小与其他文件元数据。注意文件节点号与文件意义对应。如果文 件存在并可以获得操作权,那么 MDS!过结构体返回节点号、文件长度与其他文 件信息。MDSC时赋予Client操作权如果该Client还没有的话。目前操 作权有四种,分别通过一个 bit表示:读read、缓冲读cache read丨、 写write、缓冲写buffer write 。在未来,操作权会增加平安关键字, 用于client向OSC证明它们可以对数据进行读写目前的策略是全部client

4、都允许。之后,包含在文件I/O中的MDS被用于限制管理能力,以保证文件 的一致性与语义的合理性。CEPH产生一组条目来进行文件数据到一系列对象的映射。为了防止任何为 文件分配元数据的需要。对象名简单的把文件节点需要与条目号对应起来。对 象复制品通过CRUSH著名的映射函数分配给 OSD例如,如果一个或多个 Client翻开同一个文件进行读操作,一个 MDS赋予他们读与缓存文件内容的 能力。通过文件节点号、层级与文件大小,Client可以命名或分配所有包含该文件数据的对象,并直接从OSD簇中读取。任何不存在的对象或字节序列被定 义为文件洞或0。同样的,如果Client翻开文件进行写操作。它获得使

5、用缓冲 写的能力。任何位置上的数据都被写到适宜的OSD上的适宜的对象中。Clie nt关闭文件时,会自动放弃这种能力,并向MDS提供新的文件大小写入时的最大偏移。它重新定义了那些存在的并包含文件数据的对象的集合。CEPH勺设计思想有一些创新点主要有以下两个方面:第一,数据的定位是通过 CRUS算法来实现的传统的,或者通常的并行文件系统,数据的定位的信息是保存在文件的 metadata中的, 也就是in ode结构中,通过到 metadata server 上去获取数 据分布的信息。而在Ceph中,是通过CRUSH这个算法来提供数据定位的。 第二,元数据效劳器可以提供集群 metadata se

6、rver 效劳。只要当我们了解了其结构后,感觉并没有太大的特点。元数据效劳器一般 就用来存储文件和目录的信息,提供统一的命名效劳。在Ceph中,元数据的inode ,dentry,以及日志都是在对象存储集群 RADO中存储,这就使得 metadata的持久化都是在远程的RADO中完成,metadata server 不保存状 态,只是缓存最近的in ode和dentry 项,当metadata server 失效后,其所 所有信息都可以从RADO中获取,可以比较容易恢复。CEPHft核心的,就是 RADO就是 RADOS resilient automatic distributed obje

7、ct storage.其 resilient指的是可以轻松扩展,automatic指的是其对象存储集群可以处理 failover , failure recovery 。 RADOS寸象集群其对外提供了一个高可用的,可扩展的,对象集群,从客户端 的角度看,就是一个统一命名空间的对象存储。1.4使用方式一Ceph 的 Monitor用来监控集群中所有节点的状态信息,完成类似配置效劳的功能。在Ceph里,配置主要就是cluster map ,其保存集群所有节点信息,并和所有的节点 保持心跳,来监控所有的节点状态。其通过Paxos算法实现实现自身的高可用,也就是说,这个Ceph Monitor是不会

8、有单点问题的。目前流行的zookeeper的功能,以及实现都类似。二对象存储Ceph文件系统中的数据和元数据都保存在对象中。对于对象存储,通常的定义是:一个 Object,由三局部组成id,metadata,data丨,id是对象的 标识,这个不必多说。所谓的 metadata,就是key/value的键值存储,至于用 来保存什么信息,由文件系统的语义定义。data就是实际存储的数据。Ceph的对象,包括四个局部id,metadata,attribute , data,在 Ceph里,一个Object,实际就对应本地文件系统的一个文件,一个对象的 attribute ,也是key/value的

9、键值对,其保存在本地文件系统的文件的扩展属 性中。对象的 metadata就是key/value 的键值对,目前 Ceph保存在google开 源的一个key/value 存储系统leveldb中,或者自己写的一个 key/value 存储 系统中。数据就保存在对象的文件中。对于一个对象的更新,都需要写日志中 来保持一个Object数据的一致性consistenee,日志有一个单独的设备或 者文件来保存。三副本存储一个PGplacement group由一个OS列表组成,OSD的个数,就是对象 的副本数,一个三副本的PG就是一个主,两个副本的OSD列表组成。一个PG和OSD列表的映射关系,是通

10、过 CRUS算法计算的,知道PG的id, 和当前的cluster map,就可以通过CRUS算法,计算出OS列表。特别强调 的是,一个PG是逻辑层概念,也就是说,一个 OSD可能同时是一个或者多个 PG的主,同时是另一个PG的从。一个OS处于多个PG组中。一个PG就是复 制和修复的根本单位。每个 OSD本地保存其所在的PG列表就可以了,其它OSD 可以通过输入当前的该 OSD呆存的cluster map 和PG的id,通过CRUS计 算得出。四Ceph的容错处理对于Ceph文件系统,错误分两类:一类是磁盘错误或者数据损坏 disk error or corruptted data , 这类错误

11、OSD会自己报告和处理。self report ; 第二类是OSD失去网络连接导致该 OSD不可达unreachable on the network丨这种情况下需要主动检测active monitor ,在同一个PG组 中的其它OSD会发心跳信息互相检测。这种检测的一个优化的方法就是,当replication复制操作时,就可以顺带检测,不用发单独的消息来检测,只有一段时间没有replication 操作时,才发ping消息里检测。OSD勺失效状态有两种:一种是dow n状态,这种状态下,被认为是临时错 误。在这种情况下,如果是primay,其任务由下一个replicate 接手。如果 该OS

12、D没有迅速恢复quickly recovery ,那么就被标记为out状态,在这 种状态下,将有新的osd参加这个PG中。如何标记一个OSD从down状态 标记为out状态?由于网络分区的问题,需要通过Ceph Monitor 来裁定。五Ceph的写流程客户端先写主副本,然后同步到两个从副本。主副本等待从副本的ack消息和apply消息。当主副本收到ack消息,说明写操作已经写在内存中完成, 收到apply消息,说明已经apply到磁盘上了。如果在写的过程中,主副本失效,按顺序下一个从副本接管主副本的工作, 这个时候是否返回给客户端写正确?在这种情况下,客户端只是判断正常工作 的acting丨

13、的OSD的返回结果,只要所有正常工作的 OSDS回即认为成功, 虽然这时候可能只有两副本成功。同时该临时primay必须保存所有操作的recovey队列里,如果原 primay恢复,可以replay 所有recovery 队列里的操 作,如果主副本从down到out状态,也即是永久失效,临时 primay转正,由 临时primay为正式primay,只是需要参加一个新的 OSD到该PG中。如果是从副本失效,就比较简单。临时失效,主replay所有写操作,如过永久失效,新参加一个 OSD到PG中就可以了。六恢复当有OSD失效,恢复或者增加一个新的 OSD寸,导致OSD cluster map的

14、变换。Ceph处理以上三种情况的策略是一致的。为了恢复, ceph保存了两类数 据,一个是每个OSD勺一个version,另一个是PGf修改的log,这个log包括 PG修改的object 的名称和version 。当一个OSD接收至U cluster map 的更新时:1检查该OSD勺所属的PG对每个PG通过CRUS算法,计算出主副本 的三个OSD2如何该PG里的OSD发生了改变,这时候,所有的replicate 向主副本 发送log,也就是每个对象最后的version,当primay决定了最后各个对象的 正确的状态,并同步到所有副本上。3每个OSD独立的决定,是从其它副本中恢复丧失或者过时

15、的 missing or outdated对象。如何恢复?好似是整个对象全部拷贝,或者基于整个对 象拷贝,但是用了一些类似于rsync的算法?目前还不清楚4当OSD在恢复过程中,delay所有的请求,直到恢复成功。第二局部 GlusterFSGlusterFS是Scale-Out存储解决方案 Gluster的核心,它是一个开源的 分布式文件系统,具有强大的横向扩展能力,通过扩展能够支持数PB存储容量和处理数千客户端。GlusterFS借助TCP/IP或InfiniBand RDMA网络将物理分 布的存储资源聚集在一起,使用单一全局命名空间来管理数据。GlusterFS基于可堆叠的用户空间设计,

16、可为各种不同的数据负载提供优异的性能。GlusterFS支持运行在任何标准IP网络上标准应用程序的标准客户端,用 户可以在全局统一的命名空间中使用NFS/CIFS等标准协议来访问应用数据。GlusterFS使得用户可摆脱原有的独立、高本钱的封闭存储系统,能够利用普 通廉价的存储设备来部署可集中管理、横向扩展、虚拟化的存储池,存储容量 可扩展至TB/PB级。2.1特点1扩展性和高性能GlusterFS利用双重特性来提供几TB至数PB的高扩展存储解决方案。 Scale-Out架构允许通过简单地增加资源来提高存储容量和性能,磁盘、计算 和I/O资源都可以独立增加,支持10GbE和InfiniBand

17、 等高速网络互联。 Gluster弹性哈希Elastic Hash解除了 GlusterFS对元数据效劳器的需求, 消除了单点故障和性能瓶颈,真正实现了并行化数据访问。2高可用性GlusterFS可以对文件进行自动复制,如镜像或屡次复制,从而确保数据总 是可以访问,甚至是在硬件故障的情况下也能正常访问。自我修复功能能够把 数据恢复到正确的状态,而且修复是以增量的方式在后台执行,几乎不会产生 性能负载。GlusterFS没有设计自己的私有数据文件格式,而是采用操作系统 中主流标准的磁盘文件系统如 EXT3 ZFS来存储文件,因此数据可以使用 各种标准工具进行复制和访问。3全局统一命名空间全局统一

18、命名空间将磁盘和内存资源聚集成一个单一的虚拟存储池,对上 层用户和应用屏蔽了底层的物理硬件。存储资源可以根据需要在虚拟存储池中 进行弹性扩展,比方扩容或收缩。当存储虚拟机映像时,存储的虚拟映像文件 没有数量限制,成千虚拟机均通过单一挂载点进行数据共享。虚拟机 I/O可在 命名空间内的所有效劳器上自动进行负载均衡,消除了SAN环境中经常发生的访问热点和性能瓶颈问题。4弹性哈希算法GlusterFS采用弹性哈希算法在存储池中定位数据,而不是采用集中式或分 布式元数据效劳器索引。在其他的 Scale-Out存储系统中,元数据效劳器通常 会导致I/O性能瓶颈和单点故障问题。GlusterFS中,所有在

19、Scale-Out存储 配置中的存储系统都可以智能地定位任意数据分片,不需要查看索引或者向其他效劳器查询。这种设计机制完全并行化了数据访问,实现了真正的线性性能 扩展。5弹性卷管理数据储存在逻辑卷中,逻辑卷可以从虚拟化的物理存储池进行独立逻辑划 分而得到。存储效劳器可以在线进行增加和移除,不会导致应用中断。逻辑卷 可以在所有配置效劳器中增长和缩减,可以在不同效劳器迁移进行容量均衡, 或者增加和移除系统,这些操作都可在线进行。文件系统配置更改也可以实时 在线进行并应用,从而可以适应工作负载条件变化或在线性能调优。6基于标准协议Gluster存储效劳支持NFS, CIFS, HTTP, FTP以及

20、Gluster原生协议,完 全与POSIX标准兼容。现有应用程序不需要作任何修改或使用专用API,就可以对Gluster中的数据进行访问。这在公有云环境中部署Gluster时非常有用,Gluster对云效劳提供商专用API进行抽象,然后提供标准POSIX接口。GlusterFS在技术实现上与传统存储系统或现有其他分布式文件系统有显著 不同之处,主要表达在如下几个方面。7完全软件实现Software OnlyGlusterFS认为存储是软件问题,不能够把用户局限于使用特定的供给商或 硬件配置来解决。GlusterFS采用开放式设计,广泛支持工业标准的存储、网 络和电脑设备,而非与定制化的专用硬件

21、设备捆绑。对于商业客户,GlusterFS可以以虚拟装置的形式交付,也可以与虚拟机容器打包,或者是公有云中部署 的映像。开源社区中,GlusterFS被大量部署在基于廉价闲置硬件的各种操作 系统上,构成集中统一的虚拟存储资源池。简而言之,GlusterFS是开放的全软件实现,完全独立于硬件和操作系统。8完整的存储操作系统栈Complete Storage Operating System Stack GlusterFS不仅提供了一个分布式文件系统,而且还提供了许多其他重要的 分布式功能,比方分布式内存管理、I/O调度、软RAID和自我修复等。 GlusterFS汲取了微内核架构的经验教训,借鉴

22、了GNU/Hurc操作系统的设计思想,在用户空间实现了完整的存储操作系统栈。9用户空间实现User Space与传统的文件系统不同,GlusterFS在用户空间实现,这使得其安装和升级 特别简便。另外,这也极大降低了普通用户基于源码修改 GlusterFS的门槛, 仅仅需要通用的C程序设计技能,而不需要特别的内核编程经验。10模块化堆栈式架构Modular Stackable Architecture GlusterFS采用模块化、堆栈式的架构,可通过灵活的配置支持高度定制化 的应用环境,比方大文件存储、海量小文件存储、云存储、多传输协议应用等。 每个功能以模块形式实现,然后以积木方式进行简单

23、的组合,即可实现复杂的 功能。比方,Replicate模块可实现RAID1, Stripe模块可实现RAIDQ通过两 者的组合可实现RAID10和RAID01,同时获得高性能和高可靠性。11原始数据格式存储Data Stored in Native Formats GlusterFS以原始数据格式如 EXT3 EXT4 XFS ZFS储存数据,并实 现多种数据自动修复机制。因此,系统极具弹性,即使离线情形下文件也可以 通过其他标准工具进行访问。如果用户需要从GlusterFS中迁移数据,不需要作任何修改仍然可以完全使用这些数据。12无元数据效劳设计No Metadata with the El

24、astic Hash Algorithm对Scale-Out存储系统而言,最大的挑战之一就是记录数据逻辑与物理位 置的映像关系,即数据元数据,可能还包括诸如属性和访问权限等信息。传统 分布式存储系统使用集中式或分布式元数据效劳来维护元数据,集中式元数据 效劳会导致单点故障和性能瓶颈问题,而分布式元数据效劳存在性能负载和元 数据同步一致性问题。特别是对于海量小文件的应用,元数据问题是个非常大 的挑战。GlusterFS独特地采用无元数据效劳的设计,取而代之使用算法来定位文件, 元数据和数据没有别离而是一起存储。集群中的所有存储系统效劳器都可以智 能地对文件数据分片进行定位,仅仅根据文件名和路径并

25、运用算法即可,而不 需要查询索引或者其他效劳器。这使得数据访问完全并行化,从而实现真正的 线性性能扩展。无元数据效劳器极大提高了GlusterFS的性能、可靠性和稳定性。2.2组成GlusterFS主要由存储效劳器Brick Server、客户端以及 NFS/Sambi存储网关组成。不难发现,GlusterFS架构中没有元数据效劳器组件,这是其最大的设计这点,对于提升整个系统的性能、可靠性和稳定性都有着决定性的意 义。GlusterFS支持TCP/IP和InfiniBand RDMA高速网络互联,客户端可通过 原生Glusterfs协议访问数据,其他没有运行GlusterFS客户端的终端可通过

26、 NFS/CIFS标准协议通过存储网关访问数据。2.3架构原理GigEStorage Gateway 丫忖如Compal ibility with MS Windows and othrr UnicK* * NFS/ SAMBA1 ovsr TCP/IP4J卩 fkCLFS Client1db4 t 4T1RDMAI 1I RDMA dTIhliniBdind RDMA (or) TCP/IPf tbjRDftflAr !GlusterFS总体架构与组成局部如上图所示,存储效劳器主要提供根本的数 据存储功能,最终的文件数据通过统一的调度策略分布在不同的存储效劳器上。 它们上面运行着Gluste

27、rfsd进行,负责处理来自其他组件的数据效劳请求。如 前所述,数据以原始格式直接存储在效劳器的本地文件系统上,如EXT3 EXT4XFS ZFS等,运行效劳时指定数据存储路径。多个存储效劳器可以通过客户端 或存储网关上的卷管理器组成集群,如 Stripe RAIDd、Replicate RAID1 和DHT分布式HashS存储集群,也可利用嵌套组合构成更加复杂的集群,如RAID1Q由于没有了元数据效劳器,客户端承担了更多的功能,包括数据卷管理、 I/O调度、文件定位、数据缓存等功能。客户端上运行 Glusterfs进程,它实际是 Glusterfsd 的符号链接,利用 FUSE File sy

28、stem in User Space 丨模块 将GlusterFS挂载到本地文件系统之上,实现 POSIX兼容的方式来访问系统数 据。在最新的版本中,客户端不再需要独立维护卷配置信息,改成自动 从运行在网关上的glusterd弹性卷管理效劳进行获取和更新,极大简化了卷管 理。GlusterFS客户端负载相对传统分布式文件系统要高,包括CPU占用率和内存占用。GlusterFS存储网关提供弹性卷管理和 NFS/CIFS访问代理功能,其上运行 Glusterd和Glusterfs 进程,两者都是Glusterfsd 符号链接。卷管理器负责 逻辑卷的创立、删除、容量扩展与缩减、容量平滑等功能,并负责

29、向客户端提 供逻辑卷信息及主动更新通知功能等。实现了逻辑卷的弹性 和自动化管理,不需要中断数据效劳或上层应用业务。对于Win dows客户端或没有安装GlusterFS的客户端,需要通过NFS/CIFS代理网关来访问,这时网关 被配置成NFS或Samba®务器。相对原生客户端,网关在性能上要受到 NFS/Samba勺制约。GlusterFS是模块化堆栈式的架构设计,如上图所示。模块称为Translator ,是GlusterFS提供的一种强大机制,借助这种良好定义的接口可以高效简便地 扩展文件系统的功能。效劳端与客户端模块接口是兼容的,同一个 tran slator 可同时在两边加载

30、。每个translator都是SO动态库,运行时根据配置动态加载。每个模块实现特定根本功能,GlusterFS中所有的功能都是通过 translator实现,比方 Cluster, Storage, Performanee. Protocol,Features等,根本简单的模块可以通过堆栈式的组合来实现复杂的功能。这一 设计思想借鉴了 GNU/Hurd微内核的虚拟文件系统设计,可以把对外部系统的访 问转换成目标系统的适当调用。大局部模块都运行在客户端,比方合成器、I/O调度器和性能优化等,效劳端相对简单许多。客户端和存储效劳器均有自己的 存储栈,构成了一棵Translator功能树,应用了假设

31、干模块。模块化和堆栈式 的架构设计,极大降低了系统设计复杂性,简化了系统的实现、升级以及系统 维护。2.4使用方式GlusterFS使用算法进行数据定位,集群中的任何效劳器和客户端只需根据 路径和文件名就可以对数据进行定位和读写访问。换句话说,GlusterFS不需要将元数据与数据进行别离,因为文件定位可独立并行化进行。GlusterFS中数据访问流程如下:1计算hash值,输入参数为文件路径和文件名;2、根据hash值在集群中选择子卷存储效劳器,进行文件定位;3、对所选择的子卷进行数据访问。1. 存储节点的添加GlusterFS的哈希分布是以目录为根本单位的,文件的父目录利用扩展属性 记录了

32、子卷映射信息,其下面子文件目录在父目录所属存储效劳器中进行分布。 由于文件目录事先保存了分布信息,因此新增节点不会影响现有文件存储分布, 它将从此后的新创立目录开始参与存储分布调度。这种设计,新增节点不需要 移动任何文件,但是负载均衡没有平滑处理,老节点负载较重。GlusterFS在设计中考虑了这一问题,在新建文件时会优先考虑容量负载最轻的节点,在目 标存储节点上创立文件链接直向真正存储文件的节点。另外,GlusterFS弹性卷管理工具可以在后台以人工方式来执行负载平滑,将进行文件移动和重新分 布,此后所有存储效劳器都会均会被调度。2. 存储节点删除GlusterFS目前对存储节点删除支持有限

33、,还无法做到完全无人干预的程度。 如果直接删除节点,那么所在存储效劳器上的文件将无法浏览和访问,创立文 件目录也会失败。当前人工解决方法有两个,一是将节点上的数据重新复制到 GlusterFS中,二是使用新的节点来替换删除节点并保持原有数据。3.文件改名如果一个文件被改名,显然hash算法将产生不同的值,非常可能会发生文 件被定位到不同的存储效劳器上,从而导致文件访问失败。采用数据移动的方 法,对于大文件是很难在实时完成的。为了不影响性能和效劳中断,GlusterFS采用了文件链接来解决文件重命名问题,在目标存储效劳器上创立一个链接指 向实际的存储效劳器,访问时由系统解析并进行重定向。另外,后

34、台同时进行 文件迁移,成功后文件链接将被自动删除。对于文件移动也作类似处理,好处 是前台操作可实时处理,物理数据迁移置于后台选择适当时机执行。4. 弹性卷管理GlusterFS3.1.X 实现了真正的弹性卷管理。存储卷是对底层硬件的抽象, 可以根据需要进行扩容和缩减,以及在不同物理系统之间进行迁移。存储效劳 器可以在线增加和移除,并能在集群之间自动进行数据负载平衡,数据总是在 线可用,没有应用中断。文件系统配置更新也可以在线执行,所作配置变动能 够快速动态地在集群中传播,从而自动适应负载波动和性能调优。弹性哈希算法本身并没有提供数据容错功能,GlusterFS使用镜像或复制 来保证数据可用性,

35、推荐使用镜像或 3路复制。复制模式下,存储效劳器使用 同步写复制到其他的存储效劳器,单个效劳器故障完全对客户端透明。此外, GlusterFS没有对复制数量进行限制,读被分散到所有的镜像存储节点,可以 提高读性能。弹性哈希算法分配文件到唯一的逻辑卷,而复制可以保证数据至 少保存在两个不同存储节点,两者结合使得GlusterFS具备更高的弹性。第三局部LustreLustre是一个以GNUGeneral Public为许可证的,开源的分布式并行文件 系统,由Sun Microsystems Inc.公司开发和维护。由于 Lustre文件系统的体系结构具有极好的可扩展性,它得以在科学计算、石油天然

36、气、制造业、 rich media、金融等领域得到广泛部署。Lustre为其客户端提供了包含对共享 文件对象的并行存取能力在内的 POSIX接 口。3.1 特点Lustre 是一个透明的全局文件系统,客户端可以透明地访问集群文件系统 中的数据,而无需知道这些数据的实际存储位置。 Lustre 作为下一代的集群 文件系统,可支持10,000个节点,PB的存储量,100GB/S的传输速度;两个 MDS采用共享存储设备的Active Standby方式的容错机制;存储设备跟普通 的,基于块的 IDE 存储设备不同,是基于对象的智能存储设备。Luxtre 实现了可靠性的,可用性的,可扩展性的,可管理性

37、的,高性能的, 海量的,分布式的数据存储,并且能够按照应用需求的不同提供不同的效劳, 如不同的应用、不同的客户端环境、不同的性能等,真正实现了按需效劳。3 2 组成1 、对象对象是系统中数据存储的根本单位,一个对象实际上就是文件的数据和一组属 性的组合,这些属性可以定义基于文件的 RAID参数、数据分布和效劳质量等, 而传统的存储系统中用文件或块作为根本的存储单位,在块存储系统中还需要 始终追踪系统中每个块的属性,对象通过与存储系统通信维护自己的属性。在 存储设备中,所有对象都有一个对象标识,通过对象标识OSD命令访问该对象。通常有多种类型的对象,存储设备上的根对象标识存储设备和该设备的各种属

38、 性,组对象是存储设备上共享资源管理策略的对象集合等。2、对象存储设备对象存储设备具有一定的智能,它有自己的 CPU内存、网络和磁盘系统,目 前国际上通常采用刀片式结构实现对象存储设备。OSD提供三个主要功能:1数据存储。OSD管理对象数据,并将它们放置在标准的磁盘系统上,OSD不提供块接口访问方式,Client请求数据时用对象ID、偏移进行数据读写。2智能分布。OSE用其自身的CPUffi内存优化数据分布,并支持数据的预取。由于OSE以智能地支持对象的预取,从而可以优化磁盘的性能。3每个对象元数据的管理。OSD管理存储在其上对象的元数据,该元数据与 传统的 inode 元数据相似,通常包括对

39、象的数据块和对象的长度。而在传统的 NAS 系统中,这些元数据是由文件效劳器维护的,对象存储架构将系统中主要 的元数据管理工作由OSD来完成,降低了 Client的开销。3、元数据效劳器 Metadata Server , MDSMDS空制9 Client与OSD寸象的交互,主要提供以下几个功能:1对象存储访问。MDS勾造、管理描述每个文件分布的视图,允许 Clie nt 直接访问对象。MD站Client提供访问该文件所含对象的能力,OSD在接收到 每个请求时将先验证该能力,然后才可以访问。2文件和目录访问管理。MDSt存储系统上构建一个文件结构,包括限额 控制、目录和文件的创立和删除、访问控

40、制等。3Client Cache 一致性。为了提高Client性能,在对象存储文件系统设 计时通常支持 Client方的Cacha由于引入 Client方的Cache,带来了 Cache 一致性问题,MDS支持基于Client的文件Cache,当Cache的文件发生改变时, 将通知Client刷新Cache,从而防止Cache不一致引发的问题。3.3对象存储文件系统架构Hiah-sfxjedInlerconrectLustreM&ladata (MDS)Metadih(MDT)Servers (QSS)Serfcers (QSS)Lustre尸 'h|H 1 “化心(OST)O

41、bjed Storagelargli (OST)Figure I: Lustre co-riiponeiiis.Lustre是一个面向对象的文件系统。它由三个部件组成:元数据效劳器Metadataservers, MDSs、对象存储效劳器objectstorage servers,OSSS和客户端。上图给出了文件系统的体系结构。 Lustre使用块设备来作为 文件数据和元数据的存储介质,每个块设备只能由一个Lustre效劳管理。Lustre文件系统的容量是所有单个OST的容量之和。客户端通过POSIX I/O系 统调用来并行访问和使用数据。客户端在需要访问文件系统的文件数据时,先访问MDS获取

42、文件相关的元数据信息,然后就直接和相关的 OST通信,取得文件的实际数据。客户端通 过网络读取效劳器上的数据,存储效劳器负责实际文件系统的读写操作以及存 储设备的连接,元数据效劳器负责文件系统目录结构、文件权限和文件的扩展 属性以及维护整个文件系统的数据一致性和响应客户端的请求。由于Lustre采用元数据和存储数据相别离的技术,可以充分别离计算和存储资源,使得客户端电脑可以专注于用户和应用程序的请求;存储效劳器和元数据效劳器专注于 读、传输和写数据。存储效劳器端的数据备份和存储配置以及存储效劳器扩充 等操作不会影响到客户端,存储效劳器和元数据效劳器均不会成为性能瓶颈。3.4使用方式Lustre作为一个遵从POSIX标准的文件系统,为用户提供了诸如 open()、 read()、write()等统一的文件系统接口。在 Linux中,这些接口是通过虚拟文 件系统Virtual File System,VFS丨层实现的在 BSD/Solaris中,那么称为vnode层。在Lustre中,诸如创立、翻开、读等一般的文件操作,都需要存 储在MDS1的元数据信息。这些效劳通过一个称为MDC的客户端接口模块来访问。从MDS勺观点来看,每个文件都是分条stripe丨在一个

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论