(计算机应用技术专业论文)分布式面向对象文件系统研究.pdf_第1页
(计算机应用技术专业论文)分布式面向对象文件系统研究.pdf_第2页
(计算机应用技术专业论文)分布式面向对象文件系统研究.pdf_第3页
(计算机应用技术专业论文)分布式面向对象文件系统研究.pdf_第4页
(计算机应用技术专业论文)分布式面向对象文件系统研究.pdf_第5页
已阅读5页,还剩66页未读 继续免费阅读

(计算机应用技术专业论文)分布式面向对象文件系统研究.pdf.pdf 免费下载

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

文档简介

中文摘要 中文摘要 网络存储结构的发展经历了几个阶段:大致包括d a s 、s a n 、n a s 、带文 件系统的s a n 和o s d 。理想的存储结构应该能够提供强安全性、跨平台的数据 共享、高性能和对存储设备与客户数量的高可伸缩性,而无论是传统的r a i d 还 是基于网络的n a s 、d a s 、s a n 面对当前海量存储的需求,都有着这样或那样 的不足。于是,基于o s d 的面向对象存储逐渐成为学术界和工业界的重要研究 课题之一。 本文首先介绍了面向对象存储的基本概念和业界当前的研究进展,然后介绍 了本文设计并实现的基于o s d 的面向对象文件系统o f s ,包括系统的基本结构、 运用的对象存储技术、通信协议和o s d 的实现。o f s 主要由客户端和o s d 组 成,为了解决中心化服务器的瓶颈问题,o f s 去掉了元数据服务器。在客户端, 采用了基于f u s e 的用户态文件系统框架,而o s d 主要是利用b e r k e l e y d b 实现。 本文还根据面向对象存储的特点,设计了基于自定义属性的多级高可用策略。 同时运用了对象数据加密技术来提高安全性。最后本文从多方面测试了系统的 性能并给出了测试结果分析。 关键字:面向对象;文件系统;f u s e ;可靠性;o s d ; a b s t r a t c t ab s t r a c t t h e r ef i l es e v e r a ls t a g e sf o rt h ed e v e l o p m e n to fn e t w o r ks t o r a g e ,g e n e r a l l y , i n c l u d i n gd a s ,s a n ,n a s ,s a nw i mf i l es y s t e ma n do s d i d e a ls t o r a g es y s t e m s h o u l dp r o v i d es t r o n gs e c u r i t y , d a t as h a r i n ga c r o s sp l a t f o r m s ,h i 曲p e r f o r m a n c ea n d s c a l a b i l i t yi nt e r m so ft h en u m b e ro fd e v i c e sa n dc l i e n t s b u tf a c i n gc u r r e n td e m a n d o fm a s ss t o r a g e ,b o t ht h et r a d i t i o n a lr a i da n dw e b b a s e dn a s ,s a n ,d a sh a v ea s h o r t a g e o fo n e “n do ra n o t h e r t h e r e f o r e b a s e d - o s do b j e c t e d - o r i e n t e ds t o r a g e g r a d u a l l yb e c o m e so n eo ft h ei m p o r t a n tr e s e a r c ht o p i c si na c a d e m i aa n di n d u s t r y a tf i r s t , w ei n t r o d u c et h eb a s i cc o n c e p t so fo b j e c t e d o r i e n t e ds t o r a g ea n dc u r r e n t r e s e a r c hp r o g r e s si nt h ei n d u s t r y t h e nw ei n t r o d u c eb a s e d - o s do b j e c t e d - o r i e n t e d f i l e s y s t e m ,i n c l u d i n gt h eb a s i cs t r u c t u r e ,o b j e c t e d - b a s e ds t o r a g et e c h n o l o g y , c o m m u n i c a t i o np r o t o c o l sa n dt h er e a l i z a t i o no fo s d o f si sc o m p o s e do fc l i e n t f s a n do s d w er e m o v e dm e t a d a t as e r v e r , i no r d e rt os o l v i n gt h ep r o b l e mo fc e n t r a l s e r v e r i nc l i e n tf s ,w eu s ef u s et h a ti sa no p e ns o u r c ef i l es y s t e mf r a m e w o r ki n u s e rm o d e o s di ss i m u l a t e db yb e r k e l e y d b a c c o r d i n gt h ef e a t u r e so fo b j e c t e d o r i e n t e ds t o r a g e ,w ed e s i g n e dm u l t i - l e v e l m g h - a v a i l a b l es t r a t e g yf o ro f s a tt h es a m et i m e ,w ea l s ou s ed a t ae n c r y p t i o n t e c h n o l o g yt oe n h a n c es e c u r i t y f i n a l l y , w et e s to u rs y s t e mo f si ns e v e r a lw a y sa n d g i v eo u ra n a l y s i s k e y w o r d :o b j e c t e d o r i e n t e d ;f i l es y s t e m ;r e l i a b i l i t y ;f u s e ;o s d ; i i 表日录 图目录 图2 - 1o b f s 1 0 图2 2d i m 算法13 图3 1o f s 系统结构l7 图3 2 对象散布图例2 0 图3 3 对象定位2l 图3 - 4n b d 报文格式2 4 图3 5o r s 报文格式2 5 图3 - 6 对象请求报文格式2 5 图3 7 读写报文格式。2 6 图3 8 属性撤文格式2 6 图3 - 9o s d 逻辑结构2 7 图4 1 客户端文件系统结构2 9 图4 2 客户端文件系统数据结构。3 l 图4 3 客户端义件系统u m l 结构图3 2 图4 4d i r 的逻辑存储结构3 3 图4 5 对象读写层结构。4 1 图4 6 对象读写模块u m l 结构图4 2 图5 1 单副本逻辑结构4 6 图5 2a e s 迭代操作模式4 9 图6 1 读写性能对比测试。5 2 图6 2 低负载顺序写性能5 3 图6 3 高负载顺序写性能5 4 图6 4 请求大小和对象大小对读性能的影响5 5 图6 5o s d 伸缩性测试。5 6 图6 - 6 客户端用户态进程伸缩性测试。5 7 图6 7 客户端数量伸缩性5 8 图6 8 加密性能对比测试5 9 表目录 表目录 表3 1o i d 格式18 表3 2 对象i d 各字段含义1 9 表3 3 对象存储接口2 8 表4 1f u s e 文件系统接口介绍3 0 表4 2f sd e n t r y 结构描述表3 3 之殳4 3r e q u e s t 4 0 表4 - 4o s dc m dt 4 0 表4 50 s d 请求类型4 0 表5 1o n o d e 4 4 表5 2a e s 算法状态矩阵4 8 表5 3n r 与n b 和n k 的关系4 9 v i i 南开大学学位论文使用授权书 根据南开大学关于研究生学位论文收藏和利用管理办法,我校的博士、硕士学位获 得者均须向南开大学提交本人的学位论文纸质本及相应电子版。 本人完全了解南开大学有关研究生学位论文收藏和利用的管理规定。南开大学拥有在 著作权法规定范围内的学位论文使用权,即:( 1 ) 学位获得者必须按规定提交学位论文( 包 括纸质印刷本及电子版) ,学校可以采用影印、缩印或其他复制手段保存研究生学位论文, 并编入南开大学博硕士学位论文全文数据库;( 2 ) 为教学和科研目的,学校可以将公开 的学位论文作为资料在图书馆等场所提供校内师生阅读,在校园网上提供论文目录检索、文 摘以及论文全文浏览、下载等免费信息服务;( 3 ) 根据教育部有关规定,南开大学向教育部 指定单位提交公开的学位论文;( 4 ) 学位论文作者授权学校向中国科技信息研究所和中国学 术期刊( 光盘) 电子出版社提交规定范围的学位论文及其电子版并收入相应学位论文数据库, 通过其相关网站对外进行信息服务。同时本人保留在其他媒体发表论文的权利。 非公开学位论文,保密期限内不向外提交和提供服务,解密后提交和服务同公开论文。 论文电子版提交至校图书馆网站:h t t p :2 0 2 1 1 3 2 0 1 6 1 :8 0 0 1 i n d e x h u n 。 本人承诺:本人的学位论文是在南开大学学习期间创作完成的作品,并已通过论文答辩; 提交的学位论文电子版与纸质本论文的内容一致,如因不同造成不良后果由本人自负。 本人同意遵守上述规定。本授权书签署一式两份,由研究生院和图书馆留存。 作者暨授权人签字: 2 0 年月日 南开大学研究生学位论文作者信息 论文题目 姓名学号 答辩日期年月日 论文类别博士口学历硕士口 硕士专业学位口高校教师口同等学力硕士口 院系所专业 联系电话e m a i l 通信地址( m g 编) : 备注:是否批准为非公开论文 注;本授权书适用我校授予的所有博士、硕士的学位论文。由作者填写( 一式两份) 签字后交校图书 馆,非公开学位论文须附南开大学研究生申请非公开学位论文审批表。 南开大学学位论文原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师指导下,进行 研究工作所取得的成果。除文中已经注明引用的内容外,本学位论文 的研究成果不包含任何他人创作的、已公开发表或者没有公开发表的 作品的内容。对本论文所涉及的研究工作做出贡献的其他个人和集 体,均已在文中以明确方式标明。本学位论文原创性声明的法律责任 由本人承担。 学位论文作者签名: 年 月 日 绪论 第一章绪论 第一节研究背景 近年来,随着存储技术的发展,数据的存储量每年约以8 0 的速度持续增长。 关于信息增长的速度,图灵奖获得者j i mg r a y 提出了一个经验定律:网络环境 下每1 8 个月产生的数据量等于有史以来的数据量之和。这样,磁盘设备必然成 为存储的瓶颈,难以满足应用的需求,因此采用磁盘阵列技术来提高i o 的性能 和可靠性是非常必要的。 p a t t e r s o n 等人于8 0 年代末期提出了廉价磁盘冗余阵列技术( r e d u n d a n t a r r a y so fi n e x p e n s i v ed i s k s ,r a i d ) h 1 2 。r a i d 技术将大量的磁盘组合成单一 的虚拟磁盘,通过磁盘的并行操作来提高存储系统的性能,通过数据的冗余来 提高可靠性,该技术提供了一种以低廉的价格构造大容量、高性能、高可靠性 存储系统的方法,因此很快就成为海量存储系统中最重要的技术之一。 磁盘阵列技术是当前大数据量存储领域的主流产品,目前大部分服务器产 品都使用r a i d 作为外存储设备。虽然r a i d 可以组合磁盘的存储空间,但随着 各种应用的不断发展,单纯的磁盘阵列对构成海量存储系统在容量、性能、可 靠性以及扩展性产生了一定的局限性的,于是出现了将存储与网络结合起来的 网络存储系统。所谓网络存储就是通过网络存储设备,包括专用数据交换设备、 磁盘阵列或磁带库等存储介质以及专用的存储软件,利用原有网络或构建一个 存储专用网络为用户提供统一的信息系统的信息存取和共享服务。 网络存储结构的发展经历了几个阶段1 3 j :大致包括d a s 、s a n 、n a s 、带 文件系统的s a n 和o s d ,也包括最近的云存储等。理想的存储结构应该能够提 供强安全性、跨平台的数据共享、高性能和对存储设备与客户数量的高可伸缩 性。d a s ( d i r e c t a t t a c h e ds t o r a g e ) 是最简单的一种存储结构。其主要的缺点是 存储设备扩展困难、共享困难,服务器容易成为瓶颈,而且系统的可靠性较差。 对d a s 的改进方法有两种:一是将存储设备从服务器中独立出来,组成单独的 存储区域网( s t o r a g ea r e a n e t w o r k ) ;二是简化服务器的操作系统、网络协议、 文件系统等,形成专用的存储服务器,称为n a s ( n e t w o r ka t t a c h e ds t o r a g e ) 。 绪论 n a s 中存储的数据容易共享,但本质上仍然是客户一服务器模式,当它管理的 数据过大时,文件服务器仍然会成为系统的瓶颈。s a n 的扩展性很好,存储设 备容易共享,但其中存储的数据却难以共享。为了方便共享s a n 中的数据,可 以在s a n 上建立文件系统。带文件系统的s a n 对外提供文件接口,而且容易 扩展,但其安全性较差。为了提高系统的安全性需要增加存储设备的处理能力。 增加了处理能力以后的设备除了可以完成安全性检查之外,还可以完成数据的 分配和回收等其他工作。这种具有智能、能够自我管理、提供对象接口并具有 较高安全性的存储设备称为基于对象的存储设备( o b j e c tb a s e ds t o r a g ed e v i c e , o s d ) 。相应的,以o s d 为基础的网络存储就是基于对象的网络存储。o s d 具 有n a s 和s a n 的所有优点,而且具有较高的安全性,是网络存储的主要发展 方向。为此,i n c i t s 的t 1 0 技术委员会开发了o s d 标准。2 0 0 5 年1 月,a n s i 批准了o s d 标准,目前的版本是2 0 。 o s d 标准的制定宣布了网络存储新时代的到来。它对存储的发展产生了深 远的影响,因此许多国内外的机构都在进行相关的研究,其目前的成果主要基 于o s d 的分布式文件系统,如美国加利福尼亚大学存储系统研究中心的c e p h 、 c l u s t e r 公司的l u s t r e 、i b m 研究室的z f s 等。下面本文将分别说明这些分布式 文件系统的特点,并比较它们的异同。 第二节分布式文件系统概述 1 2 1 分布式文件系统特性 按照操作系统的功能划分,文件系统是用来管理外部存储设备的软件子系 统。它的主要任务有两个: 1 ) 负责外部存储资源的管理,如存储块的分配和回收; 2 ) 为用户提供一个文件操作接l ,即以文件为单位组织,管理存储在外存 上的数据。 s a n 只能为用户提供块级的数据访问,而且用户之间仅仅能共享存储资源 ( 如设备) ,但不能共享数据。n a s 虽然可以为用户提供文件的共享,但是有文 件服务器瓶颈问题。为了解决这些问题,我们可以在s a n 上建立文件系统。 分布式文件系统结合n a s 和s a n 的优点,能够使多个主机服务器通过s a n 2 绪论 同时对数据进行访问,实现了数据访问的高性能。并且使得存储管理服务器可 以与应用服务器运行在不同的服务器上,甚至可以运行在不同的操作系统平台 的服务器上,当应用需要增加服务器的性能时,可以在原有服务器的基础上进 行扩容,也可以增加新的服务器运行新的应用,提高了整个系统的可伸缩性。 1 2 2 基于s a n 的分布式文件系统优势 在s a n 上建立了文件系统以后,可以带来如下的好处: 1 ) 支持异构的存储设备。s a n 文件系统建立在存储虚拟化平台之上,屏蔽 了各种存储设备的细节特征,所管理的是一个统一的存储池。 2 ) 提高了存储资源的利用率。s a n 文件系统面对的是一个经过虚拟化的存 储层次,负责该存储层次的管理,能够实现存储资源的动态、按需分配; 因而对存储资源的使用会更加合理、高效,存储资源的利用率会更高。 3 ) 提高了s a n 系统的抽象层次。在建立s a n 文件系统之前,用户看见的 s a n 是一个数据块的数组。在建立了s a n 文件系统之后,用户看见的 s a n 是一个文件的集合。 4 ) 提供文件操作的接口。s a n 用户可以以文件方式使用存储在s a n 中的 数据,不再需要关心数据的具体存储位置。在建立文件系统之前,用户 必须记录数据在s a n 中的存储位置,并以块为单位访问数据。 5 ) 方便用户之间数据共享。s a n 文件系统能够提供在多个用户之间共享文 件的手段,如锁、同步等,因而多个用户可以同时访问同一个文件而不 会造成文件的损坏。在建立s a n 文件系统之前,各个用户都可以直接 访问s a n 上的数据块,很容易造成对数据的损坏。 6 ) 提供了系统的安全性。s a n 文件系统可以利用已有的、成熟的技术,如 加密、验证、存取控制等,来统一保护其上的所有文件。在建立s a n 文件系统之前,所有用户都可以直接访问s a n 上的存储,没有安全性 可言。 1 2 3 分布式文件系统分类与研究进展 在s a n 上,建立文件系统的方法大致有三种1 2 】: 1 ) 全集中式文件系统 绪论 全集中式文件系统就是在s a n 服务器上建立文件系统。文件系统负 责所有资源的管理。用户访问任何资源都需要访问文件系统服务器。典 型的全集中式文件系统有n f s 和c i f s 。由此可见,全集中式文件系统 是n a s 和s a n 的结合。 这种形式的s a n 文件系统比较简单,利用率高。但是还是存在中心 服务器的问题;服务器容易成为系统瓶颈;存储资源利用率较低。 2 ) 半集中式文件系统 半集中式s a n 文件系统是把文件的元数据和数据分离,只用中心服 务器管理元数据,而服务器不负责数据转发,c l i e n t 可以直接与s a n 中 数据存储节点通信进而交换数据。c l i e n t 部分负责文件系统的工作。 在这种半集中式的s a n 文件系统,数据流和控制流分开,只有控制 流经过中心服务器。相对于数据流来说,控制流是极小的。因此,中心 服务器的压力大大减小了,已经基本不会成为系统瓶颈。 典型的应用代表是i b m 的s t o r a g et a n k 、c e p h 等。 3 ) 全分布式文件系统 在半集中式的s a n 文件系统中,毕竟还存在一个文件服务器,当 应用服务器的数据量增加时,文件服务器仍然可能成为系统瓶颈。一种 极端的做法是去掉文件服务器,让系统中的c l i e n t 应用服务器自己去协 调控制文件的使用。即将文件服务器的工作分散到c l i e n t 中去。 全分布式s a n 文件系统去掉了中心的服务器,消除了系统中的瓶 颈,但是对于应用服务器增加了负担,并且由于所有c l i e n t 共享所有的 存储空间,保持系统中数据的一致性较为困难。 典型的全分布式s a n 文件系统有g f s 。 第三节本文的工作与组织结构 本文的研究内容主要包括实现了一种有高可伸缩性的全分布式的s a n 文件 系统,并且根据面向对象文件系统的特点,实现了对象属性的自定义。根据对 象动态属性的定义,我们对面向对象文件系统多层次的可靠性和安全性做出了 探索和研究。论文的随后几章对系统的功能和实现做了详细介绍,分别是: 第二章主要介绍了当前已有面向对象文件系统和面向对象文件系统关键 4 绪论 技术。 第三章主要介绍o f s 文件系统的主要结构和功能模块。本章在第一节首先 对系统的设计思想和目标做了阐述,然后详细介绍了系统结构。第三节介绍了 系统使用的对象存储技术,包括对象的定义、对象的分类和对象的散布算法。 第四节介绍了系统使用的自定义通信协议。本章最后详细介绍了o s d 设计和实 现。 第四章主要讨论客户端文件系统。本章首先对客户端整体结构做了介绍。 然后自顶向下分别介绍f u s e 文件系统层和对象读写层。 第五章介绍o f s 系统安全性和可靠性。包括加密算法和密钥管理。 第六章主要介绍系统的扩展性和性能实验结果。期望系统在有高性能的同 时性能能够随着存储节点o s d 做线性扩张。 最后一章主要指出系统的不足和未来的改进方向。 5 面向对缘文件系统关键技术 第二章面向对象文件系统关键技术 面向对象文件系统相比于传统的n a s 、d a s 有了很大变化。本章主要介绍 当前现有面向对象文件系统用到的关键技术,详细介绍面向对象文件系统的几 项关键技术:对象文件系统、通信协议和对象散布算法。 第一节基于对象的文件系统 2 1 1p a n f s p a n a s a s 的主要产品是存储集群系统a c t i v e s c a l es t o r a g ec l u s t e r ,该存储系统 是一个软硬兼备的产品,其硬件部分包括基于对象的存储设备( o s d ) ,称为存 储刀片( s t o r a g e b l a d e ) ,和元数据服务器,称为指挥刀片( d i r e c t o r b l a d e ) :其 软件部分就是p a n a s a s 的并行文件系统,称为p a n f s t 引。 p a n a s a s 存储集群系统的设计原则如下: 1 ) 将存储系统虚拟化成一个无缝的全局名字空间( n a m e s p a c e ) ,以提高可 管理性; 2 ) 跨所有存储设备形成集群,可以线性地扩展容量和性能。 3 ) 优化集群的设计以达到最大的可用性和自动故障切换。 4 ) 平衡所有必需的资源以优化性能:容量必需与处理能力、缓存大小和网 络带宽相适应地扩展。 5 ) 摆脱体系结构的束缚,消除繁琐的存储管理任务。 6 ) 在现有以太网中,将存储带宽和随机i 0 提高一个数量级。 p a n f s 是半集中式的文件系统,集群大概由三部分组成:客户、元数据服务 器( m d s ) 和基于对象的存储设备。 p a n f s 的客户端提供下列四个核心功能: 1 ) p o s i x 文件系统接口。对客户来说,p a n f s 就是一个本地文件系统,与 其他的文件系统,如e x t 3 ,完全一致。当p a n f s 被安装( m o u n t ) 以后, 客户可以像使用其他文件系统一样使用p a n f s ,如打开文件、读文件、 写文件、定位文件读写的位置、关闭文件等,并能实现权限检查、存取 6 面向对象文件系统关键技术 控制、对文件的互斥与共享访问等。在l i n u x 上,p a n f s 的客户端软件 必需实现l i n u x 的v f s 接口,包括超级块操作集、 n o d e 操作集、文件 操作集等,并在加载时向虚拟文件系统注册自身。 2 ) 缓存。出于性能考虑,分布式文件系统都应该在客户端提供缓存机制。 p a n f s 的客户端提供如下三种缓存机制: 输入缓存。输入缓存用于c a c h e 来自o s d 文件数据,减少o s d 的 1 0 次数。客户端中也可以实现预读,并将预读的数据暂存在输入缓 存中。 输出缓存。输出缓存用户暂存将要写入o s d 的数据。在缓存中的输 出数据可以被重新排序和组合,从而可以聚合输出数据,有效减少 写o s d 设备的次数。由于输出数据被聚合成了较大的数据块,便于 o s d 为其分配连续的存储空间,因此可以优化对象的布局。 元数据和安全信息缓存。在p a n f s 的客户端可以缓存来自元数据服 务器的元数据,如目录内容、文件布局等,从而有效较少与元数据 服务器的通信量。 3 ) 条纹化与r a i d 为了提高文件系统存取操作的并行度,p a n f s 允许将一个文件分成条纹 ( s t r i p e ) 并按照某种r a i d 算法将其分布存储在多个o s d 中。默认的 条纹单元大小是6 4 k b ,r a i d 级别是o ,l ,5 。如果文件采用r a i d 5 方 式存储,那么客户在向o s d 中写入数据之前还需要计算其校验和。 4 ) i s c s l 。p a n f s 的客户通过i s c s i 协议向o s d 设备发送o s d 命令、数据、 属性信息。p a n f s 的i s c s i 是建立在以太网之上的,采用标准的t c p i p 协议。 2 1 2l u s t r e 文件系统 l u s t r e 5 】是h p ,i n t e l ,c l u s t e rf i l es y s t e m 公司联合美国能源部开发的l i n u x 集群并行文件系统。它来源于卡耐基梅隆大学的n a s d 项目研究工作。l u s t r e 文件系统2 0 0 3 年推出了1 0 版,目前已经推出了1 4 7 的发布版本。l u s t r e 在美 国能源部( u s d e p a r t m e n to f e n e r g y d o e ) 、l a w r e n c el i v e r m o r e 国家实验室, l o s a l a m o s 国家实验室,s a n d i a 国家实验室,p a c i f i cn o r t h w e s t 国家实验室的高 7 面向对象文件系统关键技术 性能计算系统中已得到了初步的应用,i b m 正在研制的b l u e g e n e 系统也将采用 l u s t r e 文件系统实现其高性能存储。h p 公司的“s t o r a g e w o r k ss c a l a b l ef i l es h a r e ( h p s f s ,可扩展文件共享) ,是首款采用l u s t r e 技术的商业化产品。作为首个 开源的基于对象存储设备的分布式并行文件系统,l u s t r e 可以说是性能优异,并 被越来越广泛的应用。 l u s t r e 文件系统是个高度模块化的系统,主要由三个部分组成:客户端 ( c l i e n t ) 、对象存储服务器( o b j e c ts t o r a g et a r g e t ,o s t ) 和元数据服务器 ( m e t a d a t as e r v e r ,m d s ) 。三个组成部分除了各自的独特功能外,相互之间共 享诸如锁、请求处理、消息传递等模块。为了提高l u s t r e 文件系统的性能,通 常c l i e n t 、o s t 和m d s 是分离,当然这些子系统也能运行在同一个系统中。 1 ) 客户端。通过标准的p o s i x 接口向用户提供对文件系统的访问。对于客 户端而言。c l i e n t 同o s t 进行文件数据的交互,包括文件数据的读写、 对象属性的改动等;同m d s 进行元数据的交互,包括目录管理、命名 空间管理等。 2 ) o s t 。在l u s t r e 中,o s t 负责实际数据的存储,处理所有客户端和物理 存储之间的交互。这种存储是基于对象( o b j e c t b a s e d ) 的,o s t 将所有 的对象数据放到物理存储设备上,并完成对每个对象的管理。o s t 和实 际的物理存储设备之间通过设备驱动程式来实现交互。通过驱动程式的 作用,l u s t r e 能继承新的物理存储技术及文件系统,实现对物理存储设 备的扩展。为了满足高性能计算系统的需要,l u s t r e 针对大文件的读写 进行了优化,为集群系统提供较高的i o 吞吐率。存储在o s t 上的文件 可以是普通文件,也可以是复制文件。l u s t r e 同时还将数据条块化,再 把数据分配到各个存储服务器上,提供了比传统s a n 的“块共享”更 为灵活和可靠的共享访问方式。 3 ) m d s 。在l u s t r e 中,元数据的管理由m d s 负责。m d s 负责向客户端提 供整个文件系统的元数据,管理整个文件系统的命名空间,维护整个文 件系统的目录结构、用户权限,并负责维护文件系统的数据一致性。通 过m d s 的文件和目录访问管理,l u s t r e 能控制客户端对文件系统中文件 的创建、删除、修改及对目录的创建、删除、修改等访问控制。通过 m d s ,客户端得到数据所在的o s t ,并和其建立连接,此后的读写操作 就在客户端同o s t 之间进行,除非有对命名空间的修改,将不再同m d s 8 面向对象文件系统关键技术 有关系,这样就降低了m d s 的负载。在多个客户端的情况下,由于有 多个o s t 存在,上述的工作模式就把对文件系统的访问转换为并行操作, 从而能较好地提高性能。在l u s t r e 中,客户端使用写回式c a c h e 来确保 元数据的一致性。l u s t r e 系统能设置两个m d s 服务器,其中一个作为备 份。两个服务器采用共享存储的方式来存放元数据。当某个m d s 出现 故障后,备份服务器能接管其服务,确保系统的正常运行。l u s t r e 打算 将来实现多元数据服务器来提高元数据处理的性能和可扩展性。 为了保证文件操作一致性,l u s t r e 也提供了锁机制。 l u s t r e 的锁机制主要是从v a xc l u s t e r sd l m ( d i s t r i b u t e dl o c km a n a g e r ) 中 派生出来的,并做了很多修改,是一种分布式的锁管理机制。与i b m 的d l m 包相比较,l u s t r e 自己实现的d l m 更小、更简单,也更容易扩展。但事实上l u s t r e 的d l m 不是真正的分布式锁,在l u s t r e 中,锁总是由对象存储目标器( o s t ) 节点管理,并未分布到各个客户中。 在l u s t r e 中,每个o s t 上都运行一个锁服务器( l o c k s e v e r ) 。锁服务器驻 留o s t 上,管理在该o s t 中的各个对象上的锁。因而在l u s t r e 中,同时存在多 个锁服务器。这样设计的好处有两个: 1 ) 消除了单个锁服务器可能导致的瓶颈问题。在l u s t r e 中,增加o s t 的同 时也增加了锁服务器和网络带宽。 2 ) 消除了普通集群系统中常见的s p i t b r a i n 问题。在l u s t r e 中,一个对象上 的锁和该对象上i o 操作是由同一个o s t 管理的,不会出现锁可用而i o 不可用或者i o 可用但锁不可用的情形,不会因为锁服务器的故障而损 坏数据。 2 1 3o b f s 加州大学圣克鲁兹分校存储系统研究中心在对l l n l ( l a w r e n c el i v e r m o r e n a t i o n a ll a b o r a t o r y ) 的分布式系统的负载情况进行统计分析发现请求大小为 5 1 2 k b 占据了8 5 ,而其它的情况占据1 5 。如果文件系统的块设定为5 1 2 k 必然有一定的浪费,特别是在一个海量的存储系统中,这种浪费尤为明显。而 块设定过小则会影响系统的吞吐率。基于以上事实,研究人员提出了一种o s d 文件系统o b f s 【6 】的设计,其中首次采用了两种块的空间管理思想,系统中 将传统的块组分成了大块组和小块组。存储文件数据时,文件被分割为若干个 9 面向对象文件系统关键技术 长度等于大块长度的大对象和一个长度小于大块长度的小对象,大对象放到大 块组内,小对象集中到小块组内存放,如图2 1 所示: 厂 | 愀| l j 图2 1o b f s o b f s 中每个对象对应一个o n o d e 来记录存储分配的情况。o n o d e 存放在每 个组固定的地方。于是可以通过组号和o n o d e 的下标就可以得出o n o d e 的值,从 而间接获得分配的空间。对于大块组,o n o d e 直接标出数据块;而对于小块组, o n o d e 提供了一个数据块位图,通过位图可以方便的找出该对象的所有数据块。 组号和o n o d e 的下标的组合被称为o n o d ei d ,系统在内存中存放着一张对象i d 到对象o n o d ei d 映射的h a s h 表,通过对这个表的查找可以很容易通过对象i d 获得对象在磁盘上的数据。 可以说,o b f s 的设计是简单而高效的,但是它也存在一些缺陷,比如使用 过程中很可会出现由于大块组或小块组分布不合理而导致尚有空间却无法存储 对象数据的情况。此外,o b f s 限制了对象长度不能超过一个大块的长度,这使 得其可用范围受到了很大限制。 2 1 4e b o f s 加州大学圣克鲁兹分校存储系统研究中心正在开发的基于对象的分布式 文件系统c e p h 中,使用了一种高效的对象文件系统e b o f s ( e x t e n da n db + t r e e b a s e do b j e c tf i l es y s t e m ) 7 1 。它克服了o b f s 限制对象长度的缺点,同时又尽可 能满足为对象分配连续的存储空间,提高i o 性能。 1 0 面向对象文件系统关键技术 e b o f s 中存储的分配采用以e x t e n t 为基本单位。一个e x t e n t 是一个二元组 ( s t a l t ,l e n g t h ) 。所有空闲的e x t e n t 被组织为一棵b + 树。同o b f s 相同,e b o f s 中每个对象对应一个o n o d e 来记录对象的基本存储属性,包括为其分配的e x t e n t 。 对象i d 到o n o d e 的映射通过一棵b + 数来进行映射。于是,获得一个对象的数据 分为以下几步:首先,通过对象i d 在b + 树中找到对象的o n o d e ;然后在o n o d e 中获得对象数据所在的e x t e n t :最后定位到e x t e n t ,获得数据。 空闲e x t e n t 的分配有些类似于内存分配中的伙伴算法,采用了c l o s e s tg o o df i t 策略。它将所有的空闲e x t e n t 按照大小分组,每组中的e x t e n t 按照e x t e n t 的s t a k r t 进行排序,当有一个分配e x t e n t 请求到达,e b o f s 先根据e x t e n t 的大小选择对 应的组,在选定的组中找出一个s t a r t 最接近分配请求的,并将分配后剩余的部 分重新插入空闲链表。 第二节对象散布算法 在大规模的分布式存储系统中,存储节点可能成百上千甚至更多,如何合理 有效、负载均衡的将数据对象分配到各个存储节点上对系统的整体性能以及资 源的充分利用都至关重要。一个好的对象散布算法应具备以下几个方面特点: 首先,从系统处理的并行性角度,对象应当尽量分散到不同的存储节点。这 样在实际的i o 过程中,客户端可以并发地访问各存储节点,增大了客户端的聚 合i o 带宽,提高了系统的整体性能。但实际情况通常是,各存储节点的网络处 理能力,i o 请求的处理能力以及存储容量等都不尽相同,对象散布算法在分配 数据对象时应当考虑各存储节点的权重。这里,权重是指根据存储节点的整体 性能和存储容量得出的一个值。权重大的存储节点应当负担更多的存储负载。 第二,对象散布算法应当保证系统具有一定的伸缩性【2 3 1 。首先随着计算机技 术和i n t e m e t 的迅速发展,各种应用需要存储的数据量也在迅速地膨胀,统计数 据表明,对于一个典型的基于i n t e m e t 的e b u s i n e s s 企业而言,平均每隔9 0 天, 数据量就会增加一倍,当存储系统的容量不能满足用户需求的时候,对存储系 统的扩展成为一种必然的选择;其次,随着存储规模的扩大,增加存储设备在 增加系统地存储容量和带宽的同时,也加大磁盘失败的可能性,在一个p b 级规 模的文件系统中,磁盘失败的情况平均每天都可能发生,如此频繁的丢失数据 对存储系统是不能容忍的。并且由于容量的增加,导致在磁盘失败时磁盘的重 面向对缘文件系统关键技术 建时间更长。另外,即使在磁盘没有完全失效的情况下,发生不可恢复的读错 误的情况可能在每小时都发生。因此,对象散布算法应当保证系统扩容或缩容 时,系统能够较容易的在线重构数据对象,以做到不同存储节点依然保持工作 负载均衡,系统的整体性能能够随着节点的数量改变而可伸缩的变化。 第三,对象散布算法能够保证系统在节点级别具有高可靠性和高可用性。系 统的高可靠性在节点内部可以通过r a i d 技术实现,r a i d 技术利用特定的编码 算法可以通过较少的冗余数据实现高可靠性和高可用性。对节点间的可靠性而 言,主要是副本技术和容错编码技术【8 】。对象布局算法需要保证冗余数据和正常 数据不在同一存储节点,同时在对数据进行恢复或获取副本时,又能够快速准 确的定位需要的数据。 2 2 1 循环散布 循环数据对象布局算法类似r a i d 0 的数据布局算法,它以循环的方式一次 将数据对象分布到不同的存储节点。该方法假设所有存储节点的权重相同,在 存储节点不变时简单有效,能够将数据对象均衡的分布到各个存储节点。但是, 当存储节点数目发生变化时,大量的数据对象需要迁移。若系统中原有n 个存 储节点,当新增加一个存储节点时,n ( n + 1 ) 的数据对象需要重新布局,而最优 的需要重新布局的数据对象是其中的1 ( n + 1 ) 。 2 2 2 基于随机算法的散布算法 基于随机算法的散布算法的思路是每个数据对象对应h a s h 空间中的一个随 机值,根据这个随机值,选择一个h a s h 方法将数据对象映射到存储节点。对于 这类算法而言,h a s h 函数的选取是算法的核心部分,因为系统的并行性、伸缩 性、可靠性很大程度上都取决于h a s h 函数。 2 2 2 1c r u s h 加州大学圣克鲁兹分校存储系统研究中心提出了c r u s h ( c o n t r o l e d r e p l i c a t i o nu n d e rs c a l a b l eh a s h i n g ) 1 9 1 对象布局算法,并将其应用到了正在研发 的分布式系统c e p h 中。它的基本做法是,所有的磁盘按照权重与物理位置组成 一棵树,树有唯一的根,以下分别是r o w 、c a b i n e t ,树的叶结点代表具体的磁盘。 1 2 面向对象文件系统关键技术 对象散布时要遵循一套定义好的布局规则,例如可以定义规则将不同的对象散 布到不同的c a b i n e t 以避免因机柜损坏而导致的数据不可用。在布局规则的基础 上,对象的具体的位置是由一个伪随机算法决定的。树中节点都有一个特定的 权重,父节点的权重就是其所有子节点的权重之和。当存储系统进行扩容或由 于磁盘故障导致的缩容时,树的各节点的权重也随之发生变化,磁盘中的对象 也随着权重按比例向相对应的磁盘进行调整,以保证负载依旧是均衡的。 该算法的优点是能够在线有效利用新增的存储节点

温馨提示

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

评论

0/150

提交评论