(计算机科学与技术专业论文)支持持续数据保护的快照系统研究.pdf_第1页
(计算机科学与技术专业论文)支持持续数据保护的快照系统研究.pdf_第2页
(计算机科学与技术专业论文)支持持续数据保护的快照系统研究.pdf_第3页
(计算机科学与技术专业论文)支持持续数据保护的快照系统研究.pdf_第4页
(计算机科学与技术专业论文)支持持续数据保护的快照系统研究.pdf_第5页
已阅读5页,还剩50页未读 继续免费阅读

(计算机科学与技术专业论文)支持持续数据保护的快照系统研究.pdf.pdf 免费下载

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

文档简介

国防科学技术大学研究生院硕士学位论文 摘要 随着社会信息化的进一步发展,通信、金融等行业,以及教育、政府等部门 越来越依赖于可信、可用的数据来维持正常有序的运作。然而,这些行业和部门 的数据都面临着自然灾害、硬件软件失效、人为错误、恶意攻击等威胁。一旦这 些宝贵的数据受到这些因素的影响导致不可用,其造成的不良影响将是巨大的。 针对这样的问题,用户使用多种手段保证自身数据不受破坏,然而,完美的防护 手段是不存在的。于是,提高数据的可恢复性也成为保持数据可用的重要手段。 提高数据可恢复性的主要手段是运用定期备份、快照、镜像、版本、持续数 据保护等备份技术进行数据备份,以期在需要的时候,能将数据“回滚到之前 做备份的某个时刻。然而,这些技术各自有其优缺点,对数据可用性要求高的用 户需要利用这些技术的结合来达到综合保护的目的。 本文提出了支持持续数据保护的快照系统c d p s n a p 的设计实现,该系统对 用户进行的块数据修改进行跟踪,提供快照和持续数据保护能力。类似快照系统, 用户可以选择时间点进行快照,以便需要的时候选择快照点进行数据恢复。在选 择快照点恢复之后,可以再从持续数据保护提供的多个恢复点中选择一个进行数 据小幅度回滚。本文还提出了一种堆栈式文件系统a c f s ,它能为底层文件系 统提供更加全面的访问控制,并结合c d p s n a p ,帮助其选择快照时机。同时,还 记录用户的文件操作,能为用户选择合适的快照进行数据恢复提供参考。 本文还针对c d p s n a p 进行了性能测试,并在文章的最后展望了c d p s n a p 系统的扩展应用。 主题词:持续数据保护,快照,堆栈式文件系统,数据可用性 第i 页 国防科学技术大学研究生院硕士学位论文 a b s tr a c t w i t ht h ep o p u l a r i z a t i o no fi n f o r m a t i o ns y s t e m ,b a n k i n gb u s i n e s s ,c o m m u n i c a t i o n b u s i n e s s ,g o v e r n m e n td e p a r t m e n t sa n de d u c a t i o nd e p a r t m e n t sd e p e n d sm o r eo nr e l i a b l e a n da v a i l a b l ed a t ao np ct oe n s u r eb u s i n e s sc o n t i n u i t y h o w e v e r , ad i s a s t e r , a h a r d w a r e s o f t w a r ef a i l u r eo rh u m a nm i s t a k e s ,i n t r u s i o n sc a ne a s i l yl e a dt od a t a u n a v a i l a b i l i t y o n c eh i sd a t ab e i n gu n a v a i l a b l e ,o n ec a l ls u f f e rf r o mg r e a te c o n o m i cl o s s h e n c ep e o p l eu s ea l lk i n d so ft e c h n o l o g yt oe n s u r ed a t as a f e t y h o w e v e r , t h e r ei sn o ”p e r f e c t ”o n ew h i c hc a np r e v e n td a t af r o mn e v e rb e i n gu n a v a i l a b l e a sar e s u l t ,d a t a r e s i l i e n c yi sn o wb e i n gf o c u s e do n ,谢t i lt h eh o p et h a td a t ac a ne a s i l yr e c o v e rf r o ma f a i l u r e t h en o r m a lt e c h n o l o g ym e a n st oe n s u r ed a t ar e s i l i e n c ya r ed a i l yb a c k u p ,s n a p s h o t , m i r r o r i n g ,v e r s i o n i n ga n dc o n t i n u o u sd a t ap r o t e c t i o n w i t ht h e s ea p p r o a c h e s ,o n ec a n r o l lb a c kh i sd a t at oo n eo fp r e v i o u st i m ep o i n t s h o w e v e r ,e a c ha p p r o c hh a sh i so w n a d v a n t a g e sa n ds h o r t c o m i n g s ,p e o p l eh a v et ou s eac o m b i n a t i o no ft h e mf o rb e a e r p r o t e c t i o n i nt h i sp a p e r , w ei n l u s t r a t e dab l o c kl e v e l s y s t e mn a m e dc d p s n a pw h i c h e x p l o i t e db o t hs n a p s h o tt e c n o l o g ya n dc o n t i n u o u sd a t ap r o t e c t i o nt e c n o l o g y i tt r a c e sa l l c h a n g e db l o c k s ,o f f e r i n gs n a p s h o ta n dc o n t i n u o u sd a t ap r o t e c t i o ns e r v i c e l i k es n a p s h o t s y s t e m s ,i tc a nb eu s e dt ot a k es n a p s h o t sw h e nn e e d e da sw e l la sr o l lb a c kal i u l ef r o ma c h o s e ns n a p s h o tp o i n t a n dw ea l s od e s i g n e das t a c k a b l ef i l es y s t e m ,a c f s a c f sc a n p r o v i d eb e t t e ra c c e s sc o n t r o lf o rf i l e s ,a n di tc a nh e l pc d p s n a p t od e c i d ew h e nt ot a k e s n a p s h o t s m o r eo v e r ,a c f sl o g sf i l eo p e r a t i o n s ,w h i c hc a nh e l pp e o p l et oc h o o s ea p r o p e rt i m ep o i n tt or o l lb a c kt o w ea l s or a nab e n c h m a r kt oa n y l i s et h ep o r f o r m a n c eo fc d p s n a p a tl a s t ,w e i l l u s t r a t e dt h a tc d p s n a pc a nb ew i d e l yu s e da n ds t a t e do u rf u t u r ew o r k k e yw o r d s :c o n t i n u o u sd a t ap r o t e c t i o n ,s n a p s h o t ,s t a c k a b l ef i l es y s t e m ,d a t a r e s i l i e n c y 第i i 页 国防科学技术大学研究生院硕士学位论文 表目录 表3 1 i n d e x n o d e 2 的e n t r y 表一2 0 表4 1a c f s 的访问规则3 5 第1 i i 页 国防科学技术大学研究生院硕士学位论文 图目录 图2 1r e d i r e c t o n w r i t e 示意图1o 图2 2 虚拟相邻示意图1 4 图3 1l i n u x 存储层次示意图哺3 1 6 图3 2 s n a p s h o ts t o r e 所在设备数据分配示意图。1 7 图3 3b t r e e 示意图1 9 图3 4 叶结点和e x c e p t i o n 列表2 0 图3 5 s u p e r b l o c k 结构2 4 图3 6 系统的b o n n i e + + 读写性能2 6 图3 7 系统的b o n n i e + + “s e e ka n dr e a d ”性能2 6 图4 1快照与数据恢复流程2 7 图4 2 堆栈式文件系统在l i n u x 内核中所处的层次3 1 图4 3f i s t 的工作流程3 2 图4 4a c f s 框架图3 3 图4 5 写操作流程图3 6 图4 6日志3 7 图5 1c d p s n a p 部署在h o s t 端4 1 图5 2c d p s n a p 部署在s e r v e r 端4 1 图5 3c d p s n a p 应用与远程镜像容灾系统4 3 图5 4 带c d p 支持的t h m s n s 的镜像系统h 4 4 第1 v 页 独创性声明 本人声明所呈交的学位论文是我本人在导师指导下进行的研究工作及取得 的研究成果。尽我所知,除了文中特剔加以标注和致谢的地方外,论文中不包含 其他人已经发表和撰写过的研究成果,扣1 = 包含为获得国防科学技术大学或其它 教育机构的学位或证书而使用过的材料与我一同工作的同志对本研究所做的任 何贡献均已在论文中作了明确的说明并表示谢意 学位论文题目: 主盘擅缝壑篮堡蕈叠避:盘蕴煎鱼 学位论文作者签名:凶一日期:q 年i 。月叩日 学位论文版权使用授权书 本人完全了解国防科学技术大学有关保留,使用学位论文的规定本人授权 国防科学技术大学可以保留并向国家有关部门或机构送交论文的复印件和电子 文档,允许论文被查阅和借阅;可以将学位论文的全部或部分内容编入有关数据 库进行检索,可以采用影印,缩印或扫描等复制手段保存、汇编学位论文 学位论文题目: 迸拄篷鳖叠堡塑盟:迷必缝墨煎 学位论文作者签名:j 肇牡 日期:呷年l 乞月z 7 日 作者指导教师签名:二二受翌日期:。号年cz 月号日 国防科学技术大学研究生院硕士学位论文 第一章绪论 信息系统的普及,使得企业和个人对存储的要求不断增长,数据的可用性成 为一个值得关注的领域。然而,日益猖獗的病毒、木马等恶意软件不断威胁着用 户的数据安全,因此用户需要消耗大量资金与资源来对自己的数据进行安全保护。 然而,再严密的防护也不能保证万无一失。再加上信息系统中人为错误等因素的 影响,用户在防护恶意软件等危害数据安全的行为的同时,也不得不重点关注数 据的可恢复性运用定期备份、快照、镜像、版本等备份技术,以期在需要的 时候,能将数据“回滚 到之前做备份的某个时刻。本章将从背景出发,介绍这 些技术的发展现状,引出另外一种与这些手段相结合能更好保护数据安全的技术, 最后提出本课题的研究内容与目标,以及已经取得的成果。 1 1 研究背景 随着社会信息化的进一步发展,通信、金融等行业,以及教育、政府等部门 越来越依赖于可信、可用的数据来维持正常有序的运作。然而,这些行业和部门 的数据都面临着自然灾害、硬件软件失效、人为错误、恶意攻击等威胁。一旦这 些宝贵的数据受到这些因素的影响导致不可用,其造成的不良影响将是巨大的: 早在2 0 0 1 年美国的一个调查,e a g l e 2 0 0 1 n3 指出,2 5 的被调查者表示,数据不可 用带来的经济损失超过2 5 万美元每小时;8 的被调查者则估计超过1 百万美元每 小时。数据丢失造成的影响就更大。9 1 1 事件产生的灾难性后果使得人们对于数据 安全的保护、以及保持数据的可用性的重要性认识上升到了一个新的层次。 与此同时,存储技术进一步发展,使得人们能够在将存储成本控制在可接受 的范围内的同时,利用保持数据冗余的方法来提高数据的可用性。然而,对数据 可用性的威胁多种多样,每一种提高数据可用性的技术在某些方面有其优势,在 另外的方面就比较薄弱,甚至无能为力;采用不同技术所需要投入的资金也各不 相同。在这样的情况下,每个企业都多少面临这样的问题: 哪些数据是最重要的,需要在事故,甚至是自然灾害之后依然保持? 哪些数 据主要是应对硬件失效人为错误,哪些数据需要应对恶意攻击等蓄意破坏? 哪些 数据对于恢复时间不敏感,一天一次拷贝就足够? 哪些数据需要尽可能地保留历 史数据,以便能够在需要的时候尽可能减少数据损失、尽可能减小恢复时间的情 况下,回退到最近的数据可用点? 这些问题其实是企业对于其数据重要性与对恢复时间敏感性分级、明确不同 级别数据需要应对的主要安全威胁,不同级别的数据保护需要付出的代价的过程。 第l 页 国防科学技术大学研究生院硕士学位论文 这里我们介绍两个概念:r p o ( r e c o v e r yp o i mo b j e c t i v e ) ,把数据恢复到过去的目 标时间点,即备份回溯时间窗口的“前端点 。r p o 直接影响发生意外灾难事件 时可能丢失的数据量。r t o ( r e c o v e r yt i m eo b j e c t i v e ) ,灾难发生后,从i t 系统 停机导致业务停顿开始,到i t 系统恢复可以支持业务恢复运营之时,所需要的时 间啦3 钉。那么,企业对于数据重要性和恢复时间敏感性的要求,事实上就是对 r p o 和r t o 的要求。在对这两者要求很高的情况下,该如何选择? 我们应该先确 定好要应对的威胁数据安全的因素。 我们可以发现,硬件、软件失效、人为错误、恶意攻击等是造成数据不可用 的主要原因哺1 ,对于硬件错误,r a i d 哺3 等方法能起到很好的作用;而对于自然灾害, 由于其特殊性,不在本文的讨论范围之内。本课题在确定主要针对软件错误和人 为错误、恶意攻击的情况下,致力于给用户提供一个可适用性好、廉价经济的解 决方案。 1 2 研究现状 1 2 1 提高数据可恢复性的主要手段 1 、传统的数据备份方法 周期性地对重要数据进行拷贝,以期在存储系统文件系统崩溃的时候,能够 使数据恢复到其中一个备份时间点口m 钔。周期性备份产生的数据不依赖于源数据, 存放于异地可用于数据容灾。然而,这种方法不能进行“o n l i n e ”备份,拷贝的时 候必须暂停服务,因此一般选择在夜晚等闲时进行。另外,粗粒度的拷贝决定了, 一个恢复动作可能使用户丢失最长达一个备份周期之内所做的所有改动。 2 、镜像 镜像是在两个或多个磁盘或磁盘子系统上产生同一个数据的镜像视图的信息 存储过程,它能够很好地解决介质错误等硬件失效。但是镜像不能防止人为错误、 恶意攻击,所有发生在主盘上的数据写过程,会同样地发生在从盘。镜像分为同 步镜像和异步镜像。同步镜像是指在远程拷贝的时候,每一个i o 事务都必须等待 远程复制完成的消息才继续进行下一个同步,使得本地和镜像的数据几乎完全一 致,在本地数据失效以后,将用户的应用程序切换到远程备份,没有数据丢失。 然而,完全同步的做法决定了其延时较长。异步镜像无需等待i o 事务的确认,数 据拷贝在后台进行。但是这使得存储子系统的写没有得到及时确认,一旦主盘发 生数据失效,从盘的数据可能会有一致性问题。 尽管镜像技术存在一些固有问题,它仍然是提高数据可用性的重要技术,尤 其在数据容灾领域,更是不可缺少。 第2 页 国防科学技术大学研究生院硕士学位论文 3 、快照技术 快照技术解决了热备份的问题。存储网络工业协会( s n n ) 对快照的定义为: 快照为一个数据对象产生完全可用的副本,它包含该数据对象在某一时间点的映 像;快照在快照时间点对数据对象进行逻辑复制操作,产生数据对象在该时间点 的一致性数据副本,但实际的部分或全部物理复制过程可能在复制时间点之外的 某些时间进行。 快照技术一般不产生原数据集合的完全拷贝。当前的快照技术主要采用 c o p y o n w r i t e 或者r e d i r e c t o i l w r i t e 的做法,前者先为快照后改动的块预留一块被 称之为“c o w 区域 的空间,为一个数据卷创建一个快照之后,c o w 区域被用 来存放数据更新的旧数据。快照在初始化的过程中仅仅创建用来描述源数据块位 置的指针信息,而不是完整的将源数据块拷贝过来。因此初始化的过程几乎可以 在瞬间完成,对系统的影响也很小。快照之后对于源卷数据块的写操作分为三步 进行:读要写的位于源卷的数据块,将之写到c o w 区域并产生一个表示此数据块 和c o w 数据块的映射关系的元数据记录,将新内容写入到源卷位置嘲。 r e d i r e c t o n - w r i t e 的做法与c o p y o n w r i t e 类似,其不同之处在于,对于一个写源卷 的请求,将之重定向到快照预留空间,源卷上继续保有此块的旧版本。这样做的 好处在于避免了c o p y o n - w r i t e 快照做法中的写时拷贝动作,从而对数据写性能不 会产生明显的影响在某些系统的测试数据中甚至写性能要超过正常写,这得 益于r e d i r e c t o n w r i t e 的快照预留空间线性分配写的位置。 。 快照技术除了解决了热备份的问题之外,其与传统备份方法的不同还体现在 对存储空间的有效利用。只有上次快照后改动过的数据块才需要分配新的存储空 间,对于没有修改过的数据块,快照只保留一个指向此块的指针,从而避免了重 复数据大量拷贝的情况。 4 、版本技术 文件版本技术记录文件变化历史来达到保护用户数据的目的。也就是说,文 件版本技术使得用户同时拥有文件的不同版本每个版本通过修改时间或者是 提供的版本号来区分。这些不同版本的文件对于恢复人为错误( 比如误删除) , 收集文件在一段时间内的变动信息,数据挖掘,入侵检测分析等方面能起到重要 作用。早期的文件版本工具c v s n 们,需要用户手动创建版本。e l e p h a n t 文件系统在 对一个打开的文件进行第一次写操作时自动创建一个版本n 。 文件版本技术常实现在文件系统级,通过记录文件的不同历史版本,提供给 用户恢复到任意历史版本文件的能力,从而拥有可控的恢复时间目标和恢复点目 标。然而,文件系统级别的实现使得它无法应用到不同文件系统,以及不通过文 件系统来管理存储的数据库系统。 第3 页 国防科学技术大学研究生院硕士学位论文 5 、持续数据保护 持续数据保护是一种对主要数据进行持续捕捉或跟踪数据修改,并保存变化, 从而实现从过去的任意非预设点恢复的技术。持续数据保护的主要特点是:持续 跟踪数据更改;任意时间点的恢复能力( a n y - p o i n t i n t i m e ) ;提供对选定点瞬间恢复。 持续数据保护可以在不同层次实现,按照实现层次,现有的持续数据保护基本上 可以分为以下三类t 基于应用的持续数据保护、基于文件的持续数据保护、基于 数据块的持续数据保护。 基于应用的持续数据保护是在特定应用程序中嵌入持续数据保护功能,多为 已经成熟的数据库产品所使用。基于文件的持续数据保护,捕捉文件系统的数据、 元数据修改信息,以期在适当的时候将修改后的文件恢复到某个时间点。基于数 据块的持续数据保护跟踪数据块的修改情况,可以采用类似快照的方法,将新数 据块写到预先划分好的区域或者是采用c o p y o i l w r i t e 的方法,将旧数据拷贝到预 先划分的区域。与快照不同的是,每一次记录数据块,块级数据保护都会为此次 写加上时间戳。 总之,在不存在“牢不可破 的系统的情况下,提高数据可恢复性是提高数 据可用性的重要手段。而上述提高数据可恢复性的多种技术,都是依靠种种数据 冗余的方法,在数据不可用后( 比如非正常关机导致数据不一致、用户发现系统 被病毒感染) ,根据历史数据来对已经损坏的数据进行修复使数据恢复到选 定的时间点。该时间点和当前时间之间的事务,就没有办法保持了,需要用户结 合日志等方法进行手工修复。基于缩小恢复时间和尽可能细粒度的恢复点的考虑, 在下面的小节中,我们重点介绍快照和持续数据保护的典型系统,并分析其不足。 1 2 2 国内外典型系统 i b mt i v o l ic d pf o rf i l e s n 羽:i b m 提供的w i n d o w s 平台上对重要文件进行持 续数据保护的c d p 系统,它主要针对移动计算机、工作站,文件服务器。备份数 据被保存到本地磁盘、指定远程文件服务器,以及t i v o l i 服务器,针对l o t u s n o t e s 和m so u t l o o k 进行了邮件特别保护。它的主要功能在于,监视指定的文件或者文 件夹,一旦文件发生改变并保存退出的时候,就分别复制一份拷贝存储到本地指 定位置、网络指定设备、t i v o l i 文件服务器。 其主要组成部分为:f p s y s ,f i l e p a t h s r v e x e ,f p a e x e 三个部分。前者为内核驱 动,主要负责监视文件活动,尤其是o p e n 之后有数据改动的c l o s e 动作;屏蔽本 地硬盘的指定目录的写操作,使得该目录只提供只读备份文件。通知守护进程进 行文件拷贝动作。f i l e p a t h s r v e x e 是一个作为服务运行的d e a m o n 进程,主要负责 进行文件复制、进行传统定时备份以及g u i 的u p d a t e 。f p a e x e 主要负责向内核传 第4 页 国防科学技术大学研究生院硕士学位论文 递命令。严格说来,i b mt i v o l ic d pf o rf i l e s 是一个近似c d p ( n e a rc d p ) 产品,因 为它所提供的用户恢复点不能实现任意时间点恢复。它主要适合于个人、文件服 务器使用,用以保存邮件以及重要文件。 p e a b o d y n 3 3 是一个提供磁盘状态持续版本的系统,p e a b o d y 系统的作者的主要 目的在于u n d o 文件系统的变化。当然,这个功能也可以由文件系统来提供,但是, 文件系统层次已经够复杂了,因此选择在相对简单的块级别来实现。p e a b o d y 通过 扩展i n t e l 的i s c s it a r g e t 来实现,它对写的内容做日志,并在t r a n s a c t i o nl o g 中记 录相关元数据。i s c s i 协议在i o 请求结束之后才会发送一个应答,多出来的元数 据写将会造成性能下降。在一致性方面,p e a b o d y 假设上层文件系统有一个一致性 恢复机制,其自身不负责一致性保证。p e a b o d y 作者称在写的内容方面,有8 4 的 重复写,他的解决手段是对写的s e c t o r 内容进行m d 5 校验来获得一个1 2 8 位的校 验值,以保证相同内容的s e c t o r 通过引用来共享。 l v m n 们n 5 3 使用物理块设备来创建逻辑卷,在用户看来,逻辑卷同普通的分区 一样,他们可以在逻辑卷上创建文件系统,当作s w a p 分区,或者是当作r a w 设备 使用。同时,这个逻辑卷可以很容易地支持动态扩展、容量调整,甚至是动态替 换物理设备。同时,l v m 提供卷快照功能。l v m l 使用c o w 机制创建只读快照 卷;l v m 2 则更进一步,提供给用户可读写的快照卷。用户可以使用这个快照卷 来进行数据恢复或者是直接m o u n t 上以后使用。 1 2 3 不同层次的技术实现 提高数据可恢复性的技术按照层次分,大致可以分为用户级,文件系统级, 块设各级三个等级。当然,这样的等级划分不是绝对的,比如说,堆栈式文件系 统位于一般文件系统( 比如说,e x t 3 ) 之上,v f s 层之下;逻辑卷管理器位于块设备 驱动之上,文件系统层之下。在这两个层次,都有不少提高数据可恢复性的技术。 为了方便起见,我们将堆栈式文件系统级别的实现归于文件系统级别,将逻辑卷 管理器之类的实现归于块设备级。这里我们主要关注文件系统级和块设备级的实 现。 文件系统级别有很多提高数据可恢复性的优秀实现,版本文件系统n 胡n 力n 8 3 n 9 3 , 快照文件系统都有很成熟的产品。然而,在文件系统层次进行提高数据可恢复性 的实现面临以下三个问题: 第一,需要用户更改文件系统,有的甚至要求重新编译内核,这是一般用户 所无法接受的;第二,文件系统级别的实现往往性能上有较大损失;同时,在原 本就很复杂的文件系统级别再加上数据保护功能,会使文件系统更加臃肿,其复 杂性大为提高。第三,这些系统大多不适用数据库这种广泛应用的场景,因为数 第5 页 国防科学技术大学研究生院硕士学位论文 据库往往绕过文件系统进行r a w 设备读写。 要解决上述不足,可以在块级进行设计,来完成提高数据可恢复性的功能。 块设备级别的实现能够避免复杂的文件系统开发,同时提供更好的透明性与可移 植性。性能方面,i b m 的一份研究报告啪3 表明,在l i n u xs t a c k a b l es t o r a g e 的层次 中,b l o c ks t a c k i n g 更适合用来进行磁盘映像管理( d i s ki m a g em a n a g e m e n t ) ,其性能 要优于f i l e s y s t e ms t a c k i n g 。 1 2 2 中简要介绍了l v m ,它用来提高数据可恢复性的机制是快照机制。这 就意味着,用户如果选择一个快照点来恢复其数据,那么,这次快照和此刻之间 的所有数据改动都丢失了。 块设备级版本技术,如c l o t h o 陋,为上层提供不同时刻的版本,其机制与快照 类似,缺点也是一样:两个相邻版本之间的数据修改无法被用户回滚。 块级别持续数据保护可以解决这个问题。块级数据保护的做法和块级版本技 术做法类似,不同之处在于,块级版本技术对于上个版本以来已经修改过的块的 写操作,会覆盖掉上一次的修改当然,操作系统的i o 调度层可能会对短时间 内对同一个块的多次写进行合并,以提高性能这样就避免了对同一个块的写 操作分多次进行,对于这样的合并块级别数据保护也无能为力。虽然这个优化使 得从实际上来说,“每操作 粒度的块级别持续数据保护变得不现实,事实上, 大多数时候也应该没有必要区分这样短的时间内用户所做的改动,其理由有两点: 第一,用户修改数据需要时间。短时间内所做的修改,其改动程度不会很大,区 分这样的写操作所带来的好处不会大过合并这样的写请求所带来的收益。第二, 对于用户经常修改的文件这通常是文本编辑,文本编辑器带有回退功能,类 似m sw o r d 的u n d o 操作。 尽管如此,块级持续数据保护能够提供比快照更多的恢复点,这是毋庸置疑 的。但是注意它提供给用户的恢复方式一般而言,只有“时间”这样一个参 考。而期望用户在发生了需要恢复数据的时候,选择一个精确到秒的时间点 这显然是不现实的:对用户而言,他可能记得上一次对某个文件的修改,比如误 删除了一个文件,现在想要恢复回来。 如果能在众多的持续数据保护提供的恢复点中插入一些类似快照技术的“快 照点”,使得用户在这些“快照点”上能像使用快照一样,m o u n t 上之后预览( 当 然,快照点本身也是一个恢复点) ,发现恢复的程度还不够,又可以利用这个快 照点之前的一般恢复点回滚- d , 段,无疑是很有意义的。结合“快照点 之间上 层提供的文件修改日志,用户可以很容易地挑出合适的快照点,使存储系统回滚 到该快照点( 或附近的恢复点) 。 第6 页 国防科学技术大学研究生院硕士学位论文 1 3 研究内容 本文的研究目标在于设计实现一种块级持续数据保护技术,在持续数据保护 的恢复点中插入“快照点 ,使得在快照点上用户能够像使用快照样使用这个 系统;并提供上层机制,记录快照点之间文件修改的日志信息,使得用户能够在 选择快照点的时候有除了时间之外更丰富的参考;同时,提供一种机制,使得用 户能够获得更为有意义的快照点。因此,本文的研究内容主要包括以下几个方面: 支持持续数据保护的快照系统c d p s n a p 的设计与实现:对用户进行的块 数据修改进行跟踪,提供给用户创建快照点,回滚到快照点的功能;同时 提供往快照点之前的恢复点进行小幅度回滚的功能。 c d p s n a p 的扩展:在堆栈文件系统层次加入文件访问控制功能,对于违 规访问,予以拒绝,并记录日志,同时通知c d p s n a p 系统做一个系统的 快照。这个扩展使得c d p s n a p 能够创建更有意义的快照点,同时提供文 件修改日志,使得用户在恢复存储系统数据的时候能有更好的参考。 夺c d p s n a p 的性能评估:使用广为使用的功能测试软件对比使用 c d p s n a p 和不使用c d p s n a p 的读写性能,分析性能表现差异的内在原 因,在此基础上提出c d p s n a p 要做的改进。 夺c d p s n a p 的应用:将c d p s n a p 用于系统分区保护,并使之扩展应用到 s a n 和n a s 环境、以及与镜像技术结合,构建容灾备份系统。 1 4 本文的主要研究成果 本文取得的主要研究成果包含以下几个方面: 设计和实现了一个支持持续数据保护的快照系统c d p s n a p 。c d p s n a p 提供给用户细粒度的数据恢复点,同时提供传统快照的功能,结合其他备 份方法,能够使得企业的数据受到全面可恢复的保护,这主要体现在 c d p s n a p 提供的多恢复点和瞬间恢复能力上。 设计和实现了一个堆栈式文件系统,结合c d p s n a p ,能够为用户选择快 照时机,同时在堆栈式文件系统级别提供用户访问修改文件的日志,使得 用户在选择合适的恢复点的时候有了有效的参考。 分析了c d p s n a p 的性能,在此基础上提出了c d p s n a p 的应用场景,并 展望c d p s n a p 和堆栈式文件系统相结合的进一步拓展,并指出这两者的 有机结合能提供用户友好型的入侵检测和数据恢复能力。 1 5 论文组织 第7 页 国防科学技术大学研究生院硕士学位论文 本文共分为五章,各章的组织结构如下: 第一章:绪论。从课题背景出发,介绍了目前主要使用的提高数据可用性的 多种技术,以及几个国内外典型系统,分析几种技术的不足,最后提出本文的主 要研究内容与研究成果。 第二章:块级数据保护。主要介绍块级数据保护系统采用的技术。 第三章:c d p s n a p 的设计与实现。主要介绍c d p s n a p 的构架、实现,以及 性能评测。性能评测方面,使用b e n c h m a r k 软件b o n n i e + + 对c d p s n a p 进行读写 性能评估,分析性能差异的内在原因,在此基础上提出c d p s n a p 的进一步工作 方向。 第四章:堆栈式文件系统对c d p s n a p 的支持。主要介绍一种堆栈式文件系 统对c d p s n a p 的快照时机选择,以及提供文件操作日志的支持。 第五章:c d p s n a p 的应用与扩展。提出了几种c d p s n a p 的典型应用场景, 论证c d p s n a p 对此类应用场景的适用性。 最后是结束语。结束语对本文的工作进行总结,并对下一步的工作进行展望。 第8 页 国防科学技术大学研究生院硕士学位论文 第二章块级数据保护技术 常见的块级数据保护技术有快照,版本技术,持续数据保护技术,镜像技术。 第一章已经分别介绍过这些技术,本章主要关注快照。快照常采用c o p y o n w r i t e 或者是r e d i r e c t o n w r i t e 技术。第一节简要介绍r e d i r e c t - o n w r i t e 快照,第二节介 绍快照的元数据组织方法。其余小节介绍一些改善空间利用,以及数据局部性的 方法。 2 1r e d i r e c t 0 1 1 w r i t e 快照 r e d i r e c t o n - w r i t e 快照在创建一个快照之后,快照与源设备是一模一样的。对 于之后到来的写请求,不能让其直接覆盖源设备这样会破坏掉快照卷。这时 采用一个被称之为“r e d i r e c t - o n w r i t e 的策略,把新的数据重定向到一个预先创 建好,称之为“s n a p s h o ts t o r e ”的存储空间。即,快照创建之后,源设备事实上已 经是只读了,所有针对源设备的写操作都将被重定向到s n a p s h o ts t o r e 。快照元数 据同样要写入s n a p s h o ts t o r e ,这个元数据主要包含卷逻辑地址与物理地址的映射。 因为写入的数据已经被重定向,对于今后的数据访问,我们需要查询这些元数据 来判断,要读的数据是在源设备,还是s n a p s h o ts t o r e 。 一个快照是以一个只读虚拟块设备的形式来供上层使用的。对此设备的数据 访问将需要查询上述元数据来决定其物理地址对于快照后没有改动过的数 据,它依然在源设备,而改动过的数据则在s n a p s h o ts t o r e 。根据这样的“新旧 数据定位,我们可以按需要创建某个快照时刻的数据视图,这个虚拟块设备能与 源设备同时被访问,就像它们两个设备是相互独立的一样。当然,事实上,他们 共享了数据,这些共享的数据无需被拷贝到s n a p s h o ts t o r e ,虚拟设备只需要保有 指向源设备数据的指针,从而达到了节约存储空间的目的。 如图2 1 所示,一个4 个数据块的源设备,在t 0 ,t 1 时刻做了两次快照,t 0 t 1 之间数据块4 有写访问,t 1 之后,数据块4 有写访问。图中的虚线部分代表的是 t 1 时刻的快照所提供的虚拟设备。 第9 一页 国防科学技术大学研究生院硕士学位论文 源设备 图2 1r e d i r e c t - o n w r i t e 示意图 2 2 元数据组织方法 s n a p s h o ts t o r e 对于2 1 所述快照方法,虚拟设备是在l i n u xi o 层次里面加入的一个抽象层 次。这个抽象层的作用之一是,将上层提供的逻辑块地址( l o g i cb l o c ka d d r e s s , l b a ) 翻译成下层物理设备的物理块地址。我们知道,l i n u x 块设备层次i o 的最 小单位为扇区( s e c t o r , 般为5 1 2 字节) ,上层视块设备为一个线性的s e c t o r 集合。 块设备还有一个基本概念:块( b l o c k ) ,典型的块大小是4 k 。 那么,对于上述逻辑块地址到物理块地址的映射关系如何组织,最简单的方法 就是,线性数组。然而,对于一个基本块大小为4 k ,容量为1 0 0 g 的块设备,其 需要的数组容量为1 0 0 g 4 k ,即2 5 m 。假设一个数组元素需要1 6 字节( 其中至少4 字节逻辑块地址,4 字节物理块地址) ,那么这个数组需要占用4 0 0 m 的空间1 2 2 1 减小元数据空间 一个解决方法是,使用一个固定大小的、实质上是一些连续的块的“e x t e n d 来作为基本数据单位。当我们采用3 2 k 的e x t e n d 作为基本数据单位的时候,最乐 观的情况是,上述1 0 0 g 的块设备只需要5 0 m 的内存来保持这个映射表。这样做 还有一个好处t 它扩大了3 2 位地址空间所能表示的最大存储空间。通常,采用这 种做法的系统会将映射关系组织成一个以l b a 为关键字的h a s h 表,这样在给定 l b a 的情况下,不需要在映射关系数组里面线性查找与此l b a 对应的物理块地址 这个做法的平均查找时间与数组大小成正比,其开销是巨大的。而采用h a s h 表的做法,使得这个开销缩减到o ( 1 ) 。 采用固定大小的e x t e n d 的方法能够有效扩展数据表示空间,并且减小映射表 体积。然而,让我们考虑这样一个情景:部分e x t e n d 写。即,操作系统需要更新 一个b l o c k 。按照r e d i r e c t o n w r i t e 的做法,我们需要将这个b l o c k 写请求定向到 第1 0 页 国防科学技术大学研究生院硕士学位论文 ? = = = = = = = = = = = = 皇= = = = = 2 = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = s n a p s h o ts t o r e 中去,但是注意到,我们是以e x t e n d 为基本数据单位的这意味 着我们需要拷贝这个e x t e n d 剩下内容,然后再写入到s n a p s h o ts t o r e 中。这会给系 统写操作带来写性能损失,尤其是对于r a n d o m 写较多的情况。同时,部分e x t e n d 写也会带来存储效率的下降,因为除了需要更新的b l o c k 之外,剩余的e x t e n d 需要 做拷贝,这意味这同样内容的几个b l c o k 保有多分拷贝。我们可以考虑最坏的情况: 每一个e x t e n d 中只有一个b l o c k 写,此时这个解决方案已经退化到最早的数组解决 方法一甚至更坏,因为有多余的e x t e n d 内容拷贝。 c l o t h o 采用”s u b e x t e n da d d r e s s i n g ”的方法来解决这个问题,其主要思想在于, 在映射表的一个元素中放置8 位的b i t r n a p ( b l o c k 为4 k ,e x t e n d 大小为3 2 k ,一个 e x t e n d 中包含8 个b l o c k ) ,对于部分e x t e n d 写,只需要更新要写的b l o c k ,并置 这个b l o c k 的b i t m a p 对应位为1 。这个方法避免了部分e x t e n d 写时需要的拷贝,但 是,我们考虑的极端退化情况依然存在。 2 2 2 组织元数据 对于h a s h 表,采用l b a 作为k e y 来进行索引,采用拉链法解决不同版本的同 一个l b a 对应不同版本e x t e n d 数据块号的问题。可以想象,随着版本数的增多, h a s h 表项不断增多,同一个l b a 对应的表项链不断拉长,对于旧版本的读,通过 l b a 作为索引查找h a s h 表后需要遍历此l b a 对应的表项链,这个速度直接与表 项链的长度相关当然,如果h a s h 表足够小,内存能够装下整个h a s h 表,这个 查找不是问题。然而h a s h 表增大到一定程度时,一定需要将一些部分淘汰出内存。 理想的做法应该是将版本号较小的表项链淘汰( 因为其存在时间最长) ,那么, 对于那些有表项被淘汰出内存的版本的读,就会需要读多次硬盘。 为了尽可能少地进行i o 操作,人们设计了b t r e e 。b t r e e 是一种为大量数据不 能保存在主存,而外存开销又十分巨大的情况特别设计的数据结构。b t r e e 的结点 拥有大量的关键字,因此每个结点可以拥有大量子树,使得树的层数不会太高, 这保证了需要查询一个叶结点的时候不需要太多的i o 操作。 、 一个m 阶b t r e e 有如下特点: 1 、树中每个结点至多有r 1 1 个孩子; 2 、除根结点和叶结点外,其它每个结点至少有r r r l 2 个孩子; 3 、若根结点不是叶结点,则至少有2 个孩子; 4 、所有叶结点都出现在同一层,叶结点不包含任何关键字信息; 5 、有k

温馨提示

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

最新文档

评论

0/150

提交评论