(计算机软件与理论专业论文)面向对象存储及其协议研究.pdf_第1页
(计算机软件与理论专业论文)面向对象存储及其协议研究.pdf_第2页
(计算机软件与理论专业论文)面向对象存储及其协议研究.pdf_第3页
(计算机软件与理论专业论文)面向对象存储及其协议研究.pdf_第4页
(计算机软件与理论专业论文)面向对象存储及其协议研究.pdf_第5页
已阅读5页,还剩60页未读 继续免费阅读

(计算机软件与理论专业论文)面向对象存储及其协议研究.pdf.pdf 免费下载

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

文档简介

中文摘要 中文摘要 在存储技术成为i t 行业第三次浪潮的背景下,各种新技术对存储系统也提 出了新的挑战。而现有的存储系统,无论是传统的r a i d 还是基于网络的n a s 、 d a s 、s a n 在应对这种挑战时,都有着这样或那样的不足。于是,在c m u 提 出n a s d 系统后,面向对象存储逐渐成为学术界和工业界的重要研究课题之一。 本文首先介绍了面向对象存储的基本概念和其关键技术,然后基于l i n u x 平 台设计并实现了设备级的面向对象存储系统n l o v 。为兼容现有文件系统, n l o v 内部基于对象实现存储,而对外还是提供了块级别的访问接口。n l o v 主要由存储节点、元数据服务器、客户端三个子系统组成,客户端获取对象位 置后直接与存储节点进行数据传输,从而有效的利用了带宽。本文利用 b e r k e l e y d b 软件方式实现了存储节点中对象存储设备( o s d ) ,并给出了测试结 果。对象的散布算法采用了基于动态区间的散布算法,文中给出了程序仿真与 测试结果。 本文还分析了现有的两种轻量级的存储协议:基于t c p i p 的n b d 协议和基 于以太网链路层的a o e 协议,并在它们的基础上进行了扩展,使两种协议能够 支持面向对象的访问接口。在这两种协议之上,本文实现了一个虚拟的协议层, 使得系统中多个协议可以同时工作。最后,文中给出了系统的相关测试结果。 关键字 o s d ;存储协议;面向对象存储; a b s t r a t c t a b s t r a c t a ss t o r a g et e c h n o l o g yb e c o m em o r ei m p o r t a n ti ni td o m a i n , n e wt e c h n o l o g i e s m a k ean e wc h a l l e n g et os t o r a g es y s t e m b u tt h et r a d i t i o n a lt e c h n o l o g i e ss u c ha s r a i d ,d a s ,s a n ,n a sc a n ta f f o r dt h er e q u i r e m e n tf o rn e wt e c h n o l o g i e s a f t e r c m ui s s u en a s ds y s t e m , o b j e c tb a s e ds t o r a g et e c h n o l o g yb e c o m et h eh o t s p o ti n b o t hi n d u s t r ya n da c a d e m e f i i s t , w ei n t r o d u c es o m eb a s i c sa n dk e yt e c h n o l o g yf o ro b j e c tb a s e ds t o r a g e ,a n d t h e nw ei n t r o d u c eo u ro b j e c tb a s es t o r a g es y s t e mi m p l e m e n t a t i o n :n l o v t ob e c o m p a t i b l ew i t l lt h ee x i s t e df i l e s y s t e m s n l o vp r o v i d eab l o c kb a s e di n t e r f a c ef o r t h e m n l o vi sc o m p o s e do ft h r e es u b s y s t e m s :s t o r a g en o d e ,c l i e n t , m e t a d a t as e r v e r a f t e rg e tt h ep o s i t i o no fa l lo b j e c t ,c l i e n tc o n n e c td i r e c t l yt ot h es t o r a g en o d e ,i nt h i s w a y , b a n d w i d t hi su s e ds u f f i c i e n t l y o s di ns t o r a g en o d ei si m p l e m e n e db a s e do n b e r k e l e y d b ,w ea l s og i v eo u tt h et e s tr e s u l t n l o vu s ed y n a m i ci n t e r v a lm a p p i n g a l g o r i t h mt od i s t r i b u t eo b j e c t s ,w ee m u l a t eb o t hs t a t i ca n dd y n a m i cc a s ea n dg i v eo u t t h er e s u l t w ea l s oa n a l y s et w os t o r a g el i g h t w e i g h ts t o r a g ep r o t o c o l s :at c p i pb a s e d p r o t o c o ln b da n dae t h e m e tb a s e dp r o t o c o la o e w ee x t e n dt h et w op r o t o c o l st o a f f o r do u ro b j e c tb a s e ds t o r a g es y s t e mn l o v b a s et h et w oe x t e n d e dp r o t o c o l s ,w e d e s i g na n di m p l e m e n tav i r t u a lp r o t o c o ll a y e r , b yt h ev i r t u a lp r o t o c o ll a y e r , t h et w o d i f f e r e n tp r o t o c o l sc a nw o r kt o g e t h e r k e y w o r d o s d ;s t o r a g e ;p r o t o c o l 目录 图目录 图:! 1o b f s 10 图2 2d i m 算法13 图3 - 1n l o v 系统结构。1 6 图3 2 对象i d 格式17 图3 3 存储节点软件结构。1 8 图3 4 元数据服务器软件结构。19 图3 5 客户端软件结构2 0 图3 - 6o s d 对象组织结构一21 图3 7o s d 写性能2 3 图3 8o s d 读性能2 4 图3 - 9 不同文件系统对创建写的影响:2 5 图3 1o 不同文件系统对覆盖写的影响2 5 图3 1 1 不同文件系统对顺序读的影响2 6 图3 1 2 不同文件系统对随机读的影响2 6 图3 13 对象定位。2 7 图4 - 1 对象请求报文格式31 图4 2 读写报文格式3 2 图4 3 属性报文格式3 2 图4 - 4n b d 的结构3 3 图4 5n b d 报文格式一3 3 图4 6n o d 报文格式3 4 图4 7a o e 消息格式。3 5 图4 8a g e n t 的组织方式3 8 v 目录 图4 - 9a g e n t 的类图3 9 图4 1 0n b d 和a o e 性能对比4 1 图4 1 1n o d 协议中对象大小对性能的影响。4 2 图4 1 2o o e 协议中对象大小对性能的影响4 3 图4 1 3n o d 协议请求大小对性能的影响:。4 4 图4 1 4o o e 协议请求大小对性能的影响4 4 图4 1 5p o s t m a r k 性能测试结果4 5 图4 1 6s y s b e n c h 测试结果4 6 图4 1 7n o d 伸缩性测试4 7 图4 18o o e 伸缩性测试4 8 图4 1 9 多协议创建写性能4 9 图4 2 0 多协议覆盖写性能5 0 图4 2 1 多协议首次读性能5 0 图4 2 2 多协议重读性能51 v i 目录 表目录 表3 1 对象i d 各字段含义18 表3 2 对象存储接口2l 表3 3 均匀性仿真结果2 9 表3 - 4 扩展后均匀性仿真结果3 0 表4 - 1n b d 、a o e 测试环境4 0 表4 2n o d 、o o e 测试环境4 1 表4 3 系统伸缩性测试环境。4 6 表4 - 4 多协议测试环境4 9 表4 5 协议配置4 9 南开大学学位论文版权使用授权书 本人完全了解南开大学关于收集、保存、使用学位论文的规定, 同意如下各项内容:按照学校要求提交学位论文的印刷本和电子版 本;学校有权保存学位论文的印刷本和电子版,并采用影印、缩印、 扫描、数字化或其它手段保存论文;学校有权提供目录检索以及提供 本学位论文全文或者部分的阅览服务;学校有权按有关规定向国家有 关部门或者机构送交论文的复印件和电子版;在不以赢利为目的的前 提下,学校可以适当复制论文的部分或全部内容用于学术活动。 学位论文作者签名:侪骖 溯年5 月砧日 经指导教师同意,本学位论文属于保密,在年解密后适用 本授权书。 指导教师签名:学位论文作者签名: 解密时间:年月日 各密级的最长保密年限及书写格式规定如下: 南开大学学位论文原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师指导下,进行 研究工作所取得的成果。除文中已经注明引用的内容外,本学位论文 的研究成果不包含任何他人创作的、已公开发表或者没有公开发表的 作品的内容。对本论文所涉及的研究工作做出贡献的其他个人和集 体,均已在文中以明确方式标明。本学位论文原创性声明的法律责任 由本人承担。 学位论文作者签名:东骆 g 年岁月形e l 第一章绪论 第一章绪论 第一节研究背景 随着互联网技术和存储技术的不断发展,基于网络的存储技术已成为i t 行 业第三次浪潮的先锋【l 】。一方面,网络存储技术被广泛的应用于数字图书馆、电 子商务、搜索引擎等新技术中,潜移默化地影响着人们的生活;另一方面,各 种应用所表现出的新特点也对网络存储提出了严峻的挑战。 首先是数据量从g b 、t b 、到p b 量级海量增长。图灵奖得主j i mg r a y 2 1 在 9 8 年就指出“每1 8 个月,新增的数据存储量将等于有史以来的数据存储总量”。 而1 0 年后的今天,事实的发展正如g r a y 先生当年的预测一样,不但数据密集 型应用的蓬勃发展,而且计算密集型应用也由于计算规模不断扩大使得数据存 储成为新的瓶颈。g o o g l e l 3 】是全世界最受欢迎的搜索引擎之一,其一天要处理的 数据量据称有2 0 t b 之巨,故整个g o o g l e 的存储系统的处理能力必需达到p b 甚 至e b 级别;其次是用户数量庞大、数据流通很快,因此存储系统必须能够应付 大量的并发的i o 访问。0 8 奥运门票第二阶段预订在第一个小时官方票务网站 的浏览量就达到8 0 0 万次,每秒收到的订单超过2 0 万,这样的负载使预订工作 被迫暂停。因此作为适应新型应用的存储结构需要具备以下几个特性 4 1 : 独立性。系统的独立性表现在两方面:一是降低对主机的依赖,通过标准 接口与各种形式的主机相连,实现开放的体系结构;二是允许不同厂商、不同 品种、不同规格的设备接入系统,只要符合接口协议便可,即实现与设备无关 的结构特性。独立性还有其更新的含义。既然数据被看作重要的财富,而且要 求提供频繁的访问,从网络存储考虑,对于数据的存取又要求具有通信的信息 短、传输的数据量大且连续的时间长等特点,因此应使专用的后端网络从数据 的前端网络独立出来。由此,信息存储的独立性便对系统结构产生了重大的影 响。 可扩展性。存储系统的可扩展性主要是指容量的扩展,但是,简单的增加 容量不是可扩展性的最佳体现,应当是在扩展容量的同时,其他性能也得到了 提高或不致降低,即,可扩展性也应包括与存储有关的其他性能的扩展。 第一章绪论 并行性。并行性反映在两个方面:多个独立的请求可由一组磁盘驱动器并 行服务,减少i o 请求的排队等待时间,从而提高系统的吞吐量;大块数据的请 求可以划分为多块,由多台磁盘驱动器共同服务,从而提高系统的数据传输。 并行性还表现在数据的检、纠错处理和数据的恢复等方面。 实时性。实时响应是所有存储系统的重要性能。除了硬件的系统结构、器 件性能之外,采用嵌入式实时操作系统对读写请求做最优化的调度和管理是大 幅度提高系统速度的重要措施。软件的实时化技术无疑对存储系统的改进有重 大意义。 可靠性。由于数据是非常珍贵的资产,为提高其利用率,使用非常频繁, 某些场合,如视频流,要求不间断的存取,通常都是2 4 小时不间断的工作。因 此,考虑连续工作的存储系统,其系统结构要比一般的系统有较大的区别。 可维护性。存储系统的价值是相当昂贵的,它是服务器价格的l 3 倍,因 此维修的难易程度是用户评价的重要指标。在线维护,即允许在线更换已被损 坏的磁盘驱动器,并能一边继续工作一边恢复数据方式是很受用户欢迎的。提 供备份盘的方式,即当磁盘驱动器失效时,备份盘立即投入使用替代失效盘, 同时进行数据重建的方式,能自动地维护系统的可靠性工作。此外,单一板卡 式的设计可使系统结构紧凑、装卡方便、牢靠,但是它的任何一处微小的故障, 可使全系统报废,造成用户的全部投资丧失:分板的集成方式可以减轻损失的 程度,但也存在其它的缺点。 共享性。即系统( 网络) 提供多个接口,并与多台主机( 服务器) 连接, 达到所存储的信息被共享的目的。系统结构影响共享性和可扩展性。 智能性。人们可以从多个方面赋予存储系统以智能,如最新的面向对象的 存储设备( o s d ) 。通过自动获取存储设备数据分布状况,实现i o 负载与设备 状况的自动匹配的自适应存储系统,也是智能性的具体体现。 第二节存储系统综述 磁盘是当前计算机系统外存储器的主流产品,磁盘由于其机械部件特性, 其性能的提高远远落后于c p u 、内存等设备的发展速度。众所周知,c p u 的处 理能力正以每1 8 个月提高一倍的速度发展,这就是著名的摩尔定律。这样,磁 盘设备必然成为存储的瓶颈,难以满足应用的需求,因此采用磁盘阵列技术来 2 第一章绪论 提高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 ) 【5 j 【6 j 。r a i d 技术将大量的磁盘组合成单一 的虚拟磁盘,通过磁盘的并行操作来提高存储系统的性能,通过数据的冗余来 提高可靠性,该技术提供了一种以低廉的价格构造大容量、高性能、高可靠性 存储系统的方法,因此很快就成为海量存储系统中最重要的技术之一。 磁盘阵列技术是当前大数据量存储领域的主流产品,目前大部分服务器产 品都使用r a i d 作为外存储设备。虽然r a i d 可以组合磁盘的存储空间,但随着 各种应用的不断发展,单纯的磁盘阵列对构成海量存储系统在容量、性能、可 靠性以及扩展性产生了一定的局限性,于是出现了将存储与网络结合起来的网 络存储系统。所谓网络存储就是通过网络存储设备,包括专用数据交换设备、 磁盘阵列或磁带库等存储介质以及专用的存储软件,利用原有网络或构建一个 存储专用网络为用户提供统一的信息系统的信息存取和共享服务。当前几种主 要网络存储结构如下: d a s ( d i r e c ta t t a c h e d s t o r a g e ) :d a s 被定义为直接连接在各种服务器或客户 端扩展接口下的数据存储设备。它完全以服务器为中心,寄生在相应服务器或 客户端上,使用r a i d ,l v m 等技术将单个硬盘组成大容量的磁盘阵列,通过 s c s i 数据线或者光纤等进行连接。d a s 具有简单、可靠、易安装、价格低廉等 特点,主要用于小规模的网络存储应用。同时d a s 存在一定的局限性:首先, 由于r a i d 技术本身的问题,其扩展性方面比较差;其次,存储资源的利用率 低效,大量数据重复存储在多个独立的主机上,空闲的存储容量不能被其它主 机共享;要求管理员人工管理在物理上分散的不同平台的系统,增加了管理难 度和存储系统的成本;存储数据可用性差,当主机失效时,与之相连的存储资 源都不可访问;访问性能受限于主机的处理能力,存储资源的访问只能通过该 主机进行,不能通过多个主机共享负载实现并行处理;对于大量d a s 组成的数 据网络,维护困难,备份修复必须针对每一台d a s 进行,管理难度大。 n a s ( n e t w o r ka t t a c h e ds t o r a g e ) 1 7 :是一种特殊的,利用专门的软、硬件构 造的专用数据存储服务器。它将存储设备与服务器分离,单独作为一个文件服 务器存在,去掉了通用服务器原有不适用的大多数计算功能,仅保留提供文件 系统功能。n a s 以文件作为访问接口,故对跨平台的数据共享和安全机制有比 较好的支持。但文件服务器本身往往成为系统的性能瓶颈,由于所有的请求都 第一章绪论 要定位到这个n a s 服务器上,所以当接入的应用数目超过一定的范围之后, 其响应效率就会大大降低。同时,对于n a s 服务器来说,其本身是一个单点 故障的故障点。如果n a s 服务器发生了故障,无法提供相应的服务,则和这 个n a s 服务器相关的应用都将受到影响。 s a n ( s t o r a g ea r e a n e t w o r k ) 瞵】:s a n 是一种高速的专用网,存储设备通过光 纤通道连接在网络上。s a n 的服务器和客户机的数据通信通过s c s i 命令而非 t c p i p 数据包,数据的处理也是以数据块的形式进行的。s a n 是集中化管理的 存储网络,其中包含存储服务器, 存储管理软件、应用服务器和网络硬件设 备等。s a n 的基本内容包括连接、管理、使用和服务,它将光纤通道集线器, 交换和网关等边网硬件与软件管理功能结合为一体,各种设备和软件密切配合, 随时随地实现信息的存储、访问、共享和保护。s a n 具有高容量、高带宽、低 延迟、高可靠性、高容错能力的优点,但s a n 最大的问题就在于系统过于昂贵, 使用、维护的成本都十分高,只适合于大型、超大型的公司和机构应用。同时, 由于结构复杂,涉及的设备和软件繁多,管理成本也异常高昂。目前的s a n 存 储系统,都是为一些特定的应用所设计,不利于进行扩展工作。并且s a n 共享 的是存储设备而不是数据,于是带来数据完整性与安全问题。 s a n 文件系统1 9 j :结合n a s 和s a n 的优点,能够使多个主机服务器通过 s a n 同时对数据进行访问,实现了数据访问的高性能。s a n 共享文件系统使得 存储管理服务器可以与应用服务器运行在不同的服务器上,甚至可以运行在不 同的操作系统平台的服务器上,当需要增加服务器的性能时,可以在原有服务 器的基础上进行扩容,也可以增加新的服务器运行新的应用,提高了整个系统 的可伸缩性。由于存储设备没有对i 0 访问进行认证的安全机制,所以这种访问 模式在增加了i 0 性能的同时,降低了安全性。 在单一存储结构的基础上,人们又提出了虚拟存储【lo 】的概念。一般说来, 虚拟存储是为了解决传统存储系统的扩展性和可管理性问题。如上所述,存储 系统已经变成一个包括存储设备、主机、网络的大环境,当它越来越庞大、复 杂时,企业系统管理人员面临着严重的管理危机。怎样才能简化存储设备安装 和配置;怎样才能使企业不再通过“停机一更新设备一重新开机这样一种方 式进行存储的扩容,管理等都是企业存储所面临的难题。存储虚拟化是将各种 不同的存储物理介质或不同层面的存储系统通过各种软硬件技术和方法对应到 用户需要和容易使用的存储使用界面,这个实现的过程就是虚拟的过程。虚拟 4 第一章绪论 存储的目的就是要整合现有存储架构,优化存储管理,体现系统优势,更适应 未来的存储需求。 第三节面向对象存储技术 1 3 1 面向对象存储的基本概念 在现有的存储系统中,在设备级别的基本存储单元是块,设备本身并不能 对数据进行智能的管理,这项工作是由更高层的软件( 比如文件系统) 来完成 的。于是,在某些情况下,设备层软件就显得比较的笨拙。例如,当一个r a i d 系统进行同步或重构的时候,r a i d 本身并不知道哪些数据或校验块真正的需要 这个操作,于是扫描所有的数据块,既浪费了大量的时间又增加了系统二次故 障的可能。 在面向对象的设备( o s d ) 【9 】【1 1 】中,对象是数据存储的基本单元。对象类似 于文件,是一系列有序字节的数据集合,能够存储任意类型的数据,如文件、 数据库记录、图像、多媒体等,单个的对象甚至可以存储整个文件系统或者数 据库系统。对象包括数据和属性。数据的属性可以根据应用需求进行设置,对 象维护自己的属性,从而简化了存储系统的管理任务,增加了灵活性。访问接 口方面,o s d 提供了类似文件的访问接口,如创建对象、删除对象、读写对象 中的部分数据、设置修改对象属性等;安全性方面,o s d 提供了对象粒度的认 证;存储空间的分配与管理也是由设备本身来完成的。 1 3 2 对象存储设备的特性与优势 高性能。对象存储结构将现有共享存储系统的关键性能瓶颈传统的存 储分配功能从文件系统层中卸载了,从而解决了当前存储系统的一个性能瓶颈 问题。 、 可伸缩性。对象存储结构反映了集群计算系统的分布式结构特性。由于o s d 是独立的智能设备,增加o s d 数量能够平滑增加聚合i o 带宽、处理能力和存 储容量,这种平衡扩展模型保证了存储系统具有良好的可伸缩性。o s d 能够实 时地监控自身负载量,定时同元数据服务器和其他o s d 进行交互来获得局部负 5 第一章绪论 载信息。当自身的负载量超出某个阈值时,o s d 可以根据系统负载信息做出平 衡负载决策,并通知元数据服务器以及其他o s d 进行任务迁移。 数据的共享更容易。在对象存储系统中,任何客户端都可以通过提供的标 准文件接口访问存储设备上的数据,统一的命名空间保证了客户端访问数据的 一致性,使得文件级的数据共享更容易。 管理更方便。o s d 的自我管理减少了系统管理员的工作量,提高了管理质 量。管理员只需要关注存储系统的逻辑视图,不需要知道存储设备的细节。增 加o s d 自动的增加存储系统的容量,无需额外的分区、卷大小调整。o s d 是基 于对象的,对象是数据、属性以及方法的集合,o s d 为上层提供了统一的对象 访问接口,在下层能根据应用类型来选择具体的对象数据存放策略。这种结构 使用o s d 构建的存储系统具备很大的灵活性。此外,o s d 的智能化使其可对应 用的访问模式进行统计,并根据统计结果更有效的组织对象,提高设备的空间 利用效率和访问效率。 更好的安全性。与传统的文件有一系列数据块集合组成相比,对象作为基 本存储单元由o s d 独立管理,通过对象属性容易建立对象的安全访问策略,使 得文件系统能够建立o s d 设备、对象组、单个对象、对象内的字节范围等多层 次的安全访问机制。o s d 可以适应任何网络平台,它的安全性保证了它可以直 接连接在复杂的网络环境中。安全性功能模块可以决定是否响应和如何响应对 象访问请求,及时察觉非法的数据操作,防止网络中恶意的数据窃取和破坏。 安全性手段包括口令、密钥、数据加密、数字签名等。 容错容灾。o s d 需要保证数据的可靠性和可用性。当新数据存入o s d 时, 通过与其他o s d 协商来选择本地和远程备份空间,同时根据数据的重要程度选 择备份策略和次数。o s d 实时地记录“脏数据,定期写回到备份空间中。当 设备失效时,元数据服务器会检测到失效信息,并通知用户访问备份空间。o s d 需要数据恢复时,可以访问备份o s d 获得原有数据。 1 3 3 面向对象存储的现状 面向对象存储的思想源于c m u ( c a r n e g i em e l l o nu n i v e r s i t y ) 的n a s d ( n e t w o r ka t t a c h e ds e c u r ed i s k s ) 【1 2 】【1 3 1 项目,它的基本想法是将数据组织成可 变大小的对象,通过对象访问接口对存储系统进行访问,对象的管理与安全访 6 第一章绪论 问都由设备负责。1 9 9 7 年,c m u 在美国存储工业联盟( n a t i o n a ls t o r a g ei n d u s t r y c o n s o r t i u m ) 发起一个工作组。该组织包括了惠普、i b m 、西捷、s t o m g e t e k 以 及昆腾等厂商。该工作组在c m u 的n a s d 研究基础上,于1 9 9 9 年成立了全球 网络存储工业协会( s t o r a g en e t w o r k i n gi n d u s t r ya s s o c i a t i o n ,s n i a ) 的对象存储 设备工作组,发布了a n s i 的x 3 t 1 0 1 1 4 】标准。从此以后,s n i a 的o s d 工作组 促进了对象存储接口的变革,众多厂商和研究机构纷纷开展了对该技术的研究。 p a n a s a s 公司的对象文件系统名称为p a n f s t ”j 。p a n f s 由网络,元数据服务 器,对象存储设备和客户端组成。客户端可以直接访问o s d 以获取文件数据, 元数据服务器维护着文件的元数据,充分利用了带外传输,增大了传输效率。 p a n a s a s 公司是存储协议标准化的支持者,p a n f s 正在逐步向着标准化发展。 l u s t r e 1 6 】是一个开放源代码的分布式集群文件系统,由c l u s t e rf i l es y s t e m 公司开发和维护。它由客户端,元数据服务器,存储节点( o s t ) 组成。l u s t r e 使用了一套自己定义的对象存储标准,它多被用于高性能计算。在传输协议方 面,l u s t r e 采用s a n d i a 开发的p o r t a l s 网络传输协议,支持多种网络( t c p i p 、 q u a d r i c s 、i n f m i b a n d 等) ,采用分开传输和存放数据和元数据的机制来提高系统 性能;它使用x m l 、l d a p 和s n m p 等协议来管理系统;它加入失效接替 等特性来提高系统可用性。 e m c 的c e n t e r a 1 7 系统从严格意义上说,并不是一个通用的网络存储的解决 方案,它采用了基于内容寻址的方式。c e n t e r a 中对象的名字是其内容的h a s h 值, 也就是说,若对象的内容发生了改变,则其名字也同时变化了。所以c e n t e r a 系 统只适用于不改变对象内容的应用。 c e p h ”】:由加州大学圣克鲁斯分校开发的一个基于对象的分布式文件系统 原型。系统中数据和元数据都存放于对象存储设备( o s d ) 中,使用对象文件 系统e b o f s 1 9 】高效的管理数据对象,设计了c r u s h 2 0 】算法,使得系统在部分 设备故障以及系统扩展的情况下,对象依然能够正确地散布和定位。 p n f s 2 l 】提供了一个通用的存储系统的框架,在这个框架之下,可以搭载基 于块的、基于文件、基于对象等多种具体类型的存储系统。它使用n f s v 4 作为 传输协议,并进一步扩展,加入了l a y o u t 的概念。客户端要访问存储节点中 的数据,先要向服务器中请求数据的l a y o u t 。在一个对象存储系统中,对象 的l a y o u t 就是对象的格式。服务器返回客户端需要的l a y o u t 表,客户端 根据这张表通过具体的l a y o u t 的驱动来直接访问存储节点获取数据 7 第一章绪论 第四节本文的工作与组织结构 本文的研究内容主要包括构建一个面向对象存储系统及其存储协议的设 计,具体包括: 设计并实现了面向对象的存储系统n l o v ,使得在设备层支持对象存储, 可以为上层的分布式文件系统提供底层支持。 在基于t c p i p 的n b d 协议和基于以太网的a o e 协议的基础上进行扩充, 使之支持面向对象存储。在以上两种对象存储协议的基础上,本文为不同对象 存储协议提供统一的访问接口,屏蔽了不同协议的细节差异,在一个用户的会 话中可以穿插使用多种协议,既方便用户的使用,又利于今后的扩充。 论文分为五章,组织方式如下: 第二章介绍面向对象存储的两项关键技术。首先介绍面向对象的文件系统, 重点介绍了在c e p h 系统中使用的o b f s 和e b o f s ;然后介绍了在存储系统中进 行对象散布的算法,这里主要介绍了两类算法,包括循环散布和基于随机的散 布。 第三章介绍面向对象存储系统n l o v 的设计和实现。首先介绍系统的结构 和开发环境;接下来分别对系统的三个子系统:存储节点、元数据服务器和客 户端进行说明;然后介绍了利用b e r k e l e y d b 实现一个对象存储设备( o s d ) 并 给出了测试结果与分析;最后给出了利用动态区间映射的算法实现对象的散布 的描述以及程序的仿真结果。 第四章介绍了对象存储协议和具体实现。首先分别介绍n b d 和a o e 两种轻 量级的存储协议,并基于它们给出了面向对象存储的扩展算法;然后介绍构建 于具体协议之上的虚拟协议层的设计和实现,以支持多存储协议同时工作;最 后给出相关测试结果和分析。 第五章对全文工作进行了总结,并对下一步的工作进行了展望。 第二章面向对象存储的相关知识 第二章面向对象存储系统的关键技术 无论是就o s d 本身而言,还是利用o s d 集群组织的存储系统,与传统的 基于块的存储系统如n a s 和s a n 相比都有了较大的变化。本章就面向对象存 储的两项关键技术:对象文件系统和对象的散布算法作了详细的阐述。 第一节对象文件系统 对象文件系统主要承担通用文件系统中存储管理部分的功能,这些功能主 要包括对象i d 到对象数据的映射、空间分配与回收、空闲空间管理等。o s d 中 的对象是一个类似于文件的逻辑实体,它包括了数据和相关属性并可以改变长 度。对象文件系统与通用文件系统存在较大差异,具体表现在: 首先,o s d 中对象是以对象d 来管理的,从对象d 即可映射到对象的属 性和数据。所有的对象共享一个水平的i d 空间,因此需要一种水平的名字管理 机制。 其次,在通用文件系统的设计中都要考虑尽量使用具有较强相关性的文件 ( 如同一目录下的文件) 在物理上相邻的存放,在基于对象的存储环境下,为 了提高系统访问的并行性、平衡存储系统中各o s d 的负载,对象可能散布到任 意的o s d 上,因而o s d 上对象间的相关性就被弱化了。 第三,在块式接口环境下,存储设备所能发挥的智能是非常有限的,但在 对象接口条件下,设备知晓对象数据的存放情况以及对象的部分属性,这为存 储管理工作提供了很大的优化空间。 2 1 1o 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 必然有一定的浪费,特别是在一个海量的存储系统中,这种浪费尤为明显。而 块设定过4 , n 会影响系统的吞吐率。基于以上事实,研究人员提出了一种o s d 文件系统o b f s 瞄j 的设计,其中首次采用了两种块的空间管理思想,系统中 将传统的块组分成了大块组和小块组。存储文件数据时,文件被分割为若干个 9 第二章面向对象存储的相关知识 长度等于大块长度的大对象和一个长度小于大块长度的小对象,大对象放到大 块组内,小对象集中n d , 块组内存放,如图2 1 所示: 西s k b 鳅 n c t o r 两曲ni 阳幽n 2 r _ | 鲫 ll k 魄嬲群嬲嬲删 图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 表,通过对这个表的查找可以很容易通过对象d 获 得对象在磁盘上的数据。 可以说,o b f s 的设计是简单而高效的,但是它也存在一些缺陷,比如使用 过程中很可会出现由于大块组或小块组分布不合理而导致尚有空间却无法存储 对象数据的情况。此外,o b f s 限制了对象长度不能超过一个大块的长度,这使 得其可用范围受到了很大限制。 2 1 2e b o f s 】3 n , j 1 i 大学圣克鲁兹分校存储系统研究中心正在开发的基于对象的分布式 文件系统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 ) 【l9 1 。它克服了o b f s 限制对象长度的缺点,同时又尽 可能满足为对象分配连续的存储空间,提高i o 性能。 l 0 第二章面向对象存储的相关知识 e b o f s 中存储的分配采用以e x t e n t 为基本单位。一个e x t e n t 是一个二元组 ( s t a r 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 r t 进行排序,当有一个分配e x t e n t 请求到达,e b o f s 先根据e x t e n t 的大小选择对 应的组,在选定的组中找出一个s t f l _ r t 最接近分配请求的,并将分配后剩余的部 分重新插入空闲链表。 第二节对象散布算法 在大规模的分布式存储系统中,存储节点可能成百上千甚至更多,如何合 理有效、负载均衡的将数据对象分配到各个存储节点上对系统的整体性能以及 资源的充分利用都至关重要。一个好的对象散布算法应具备以下几个方面特点: 首先,从系统处理的并行性角度,对象应当尽量分散到不同的存储节点。 这样在实际的i o 过程中,客户端可以并发的访问各存储节点,增大了客户端的 聚合f o 带宽,提高了系统的整体性能。但实际情况通常是,各存储节点的网络 处理能力,i o 请求的处理能力以及存储容量等都不尽相同,对象散布算法在分 配数据对象时应当考虑各存储节点的权重。这里,权重是指根据存储节点的整 体性能和存储容量得出的一个值。权重大的存储节点应当负担更多的存储负载。 第二,对象散布算法应当保证系统具有一定的伸缩性【2 3 1 。首先随着计算机 技术和i n t e r n e t 的迅速发展,各种应用需要存储的数据量也在迅速地膨胀,统计 数据表明,对于一个典型的基于i n t e r n e t 的e - b u s i n e s s 企业而言,平均每隔9 0 天, 数据量就会增加一倍,当存储系统的容量不能满足用户需求的时候,对存储系 统的扩展成为一种必然的选择;其次,随着存储规模的扩大,增加存储设备在 增加系统地存储容量和带宽的同时,也加大磁盘失败的可能性,在一个p b 级规 模的文件系统中,磁盘失败的情况平均每天都可能发生,如此频繁的丢失数据 对存储系统是不能容忍的,并且由于容量的增加,导致在磁盘失败时磁盘的重 第二章面向对象存储的相关知识 建时间更长,另外,即使在磁盘没有完全失效的情况下,发生不可恢复的读错 误的情况可能在每小时都发生。因此,对象散布算法应当保证系统扩容或缩容 时,系统能够较容易的在线重构数据对象,以做到不同存储节点依然保持工作 负载均衡,系统的整体性能能够随着节点的数量改变而可伸缩的变化。 第三,对象散布算法能够保证系统在节点级别具有高可靠性和高可用性。 系统的高可靠性在节点内部可以通过r a i d 技术实现,r a i d 技术利用特定的编 码算法可以通过较少的冗余数据实现高可靠性和高可用性。对节点间的可靠性 而言,主要是副本技术和容错编码技术【2 4 】。对象布局算法需要保证冗余数据和 正常数据分布在不同存储节点,同时在对数据进行恢复或获取副本时,又能够 快速准确的定位需要的数据。 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 r s c a l a b l eh a s h i n g ) 2 0 】对象布局算法,并将应用到了正在研发的 分布式系统c e p h 中。它的基本做法是,所有的磁盘按照权重与物理位置组成一 棵树,树有唯一的根,以下分别是r o w 、c a b i n e t ,树的叶结点代表具体的磁盘。 1 2 第二章面向对象存储的相关知识 对象散布时要遵循一套定义

温馨提示

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

评论

0/150

提交评论