您当前的位置:首页 > 计算机论文>信息管理论文

存储备份技术探析

2015-07-04 09:20 来源:学术参考网 作者:未知
摘 要:随着互联网络飞速发展,数据量呈现海量增长,单机存储无法满足需求,分布式存储应运而生并且取得了较大的发展。系统中的数据由于自然灾害、异常故障等原因会遭到破坏,因而需要对数据进行备份加以保护。以基于分布式文件服务器的存储备选份恢复系统为研究对象,探讨了分布式存储下海量数据备份恢复的关键问题:存储备份恢复的高效性、一致性和可靠性。
关键词:备份;存储;分布式;p2p;技术
  
  1 存储与备份技术的高效性
  
  1.1 高性能多源下载过程
  (1)服务器根据相关信息返回存储需要下载文件的slave的具体信息;(2)根据文件大小和slave的负载状态,选择合适的slave建立socket连接对文件进行分块下载;(3)下载完成后把各个文件块合并成为原始文件。
  
  
  1.2 静态下载
  在静态下载中,不考虑备份文件的大小,服务器的负荷量,采取统一的模型进行下载。算法如下:(1)得到备份文件所在服务器的个数n,以及每个服务器的ip地址和端口号;(2)得到文件的总大小size,按照文件分割算法,把文件分割为n块;(3)与每个服务器建立连接,从每个服务器上下载一块文件;(4)下载完成后,把所有文件块合并成一个完整的文件,存储在备份介质上;(5)保存备份文件的相关元数据信息;(6)文件下载、备份完成。www.133229.COm
  
  1.3 动态下载
  在动态下载模型中,要综合考虑各方面因素,动态决定文件是否分块进行多源下载,以及文件块的大小,提高系统资源利用率,进而提高备份效率。对于没有冗余的文件,只能从一个节点上下载。对于较小的文件,使用单线程下载;对于较大的文件,可以采用多线程下载。对于有多个冗余的文件,可以动态选取从负荷量较低的节点进行下载。伪算法表示如下:
  首先定义如下变量:文件大小阀值tl,当文件大小大于tl时采用多源下载;节点标准负荷t2,若节点负荷大于t2,则节点处于重负荷状态;文件大小size文件冗余数n。
  算法表示如下:
  if(文件没有冗余)
  {
  无须分块下载,可以采用多线程从存储文件的节点上下载文件;
  }
  else{
  if(文件大小size<阀值t1)
  {
  无须多源下载,从存储文件的节点中选取负荷最小的节点,下载文件;
  }
  elsel
  得到存储文件的n个节点的信息;
  从n个节点上选择负荷小于阀值t2的节点,节点数目为m;
  利用文件分割算法把文件分割为m块;
  与选中的m个节点建立连接,从每个节点上下载一个文件块;
  下载完成后,把m个文件块合并成为完整的文件;
  把文件存储在备份介质;
  }
  }
  
  2 存储与备份技术的一致性
  
  2.1 锁和快照技术
  锁就是当进行数据备份时,对需要备份的数据加锁,此时禁止对数据进行修改。由于备份时禁止对数据的修改,锁技术对数据的可用性会造成一定的影响,会影响到系统的效率。快照就是在相当短的时间内生成原存储系统的瞬时映像,该映像生成之后,备份就可以根据该映像来进行,而不用担心数据的不一致性。快照技术的实现有两种方式:更新复制方式和split-mirror方式。更新复制技术就是当进行快照时,并不立刻复制数据,只有当数据发生变化时才进行复制。split-mirror是使用和主存储系统一样的快照存储系统,数据同时保存在主存储系统和快照系统,此时快照系统就可作为备份数据。
  2.2 在线备份
  在分布式文件访问平台中,存在着海量的文件,文件的信息较多,若把文件的信息逐个复制则要浪费大量的时间、空间,对系统的可访问性造成影响。wafl文件系统使用了更新复制技术。当创建系统快照时,并不立刻复制所有文件信息,而是创建新的快照根节点,它与原文件系统根节点有相同的信息,文件系统中根节点的子节点也为快照根节点的子节点。此时以快照根节点为根节点生成了一棵快照树,它和原文件系统树除了根节点以外,其余部分相同。当文件信息需要修改时,创建新的节点,把文件信息赋给此节点,并把节点作为快照节点插入快照树中,同时修改原节点的信息,具体分为以下情况:
  (1)修改文件信息:当对文件的基本信息进行修改时,如更改文件名称等,此种情况下比较简单,伪算法如下:
  

  if修改文件)
  {
  创建新的节点作为快照节点;
  把原节点的信息复制到快照节点;
  把快照树中指向原节点的指针指向快照节点;
  快照节点儿子节点的指针指向原节点的儿子节点;
  修改原节点的信息;
  }
  修改文件信息具体过程如图3:
  
  (2)移动文件:当把文件或者目录从一个目录移动到另外一个目录下时,具体伪算法如下:
  if移动文件)
  {
  创建新的快照节点;
  把原节点的信息复制到快照节点;
  复制原父目录的信息,添加到快照树中;
  把快照树中指向原节点的指针指向快照节点;
  快照节点儿子节点的指针指向原节点的儿子节点;
  复制新父目录的信息,修改子节点,添加到快照树中;
  修改原节点的信息,把原节点移动到新的目录下;
  }
  移动文件过程如图4所示:
  
  (3)新建文件:当新建文件时,具体伪算法如下:
  if(新建文件)
  {
  创建新的节点,并给节点赋予相应的文件信息;
  在文件系统树中找到节点的父目录;
  if(若父目录己经创建了副本),
  {
  把创建的节点插在文件系统树中父目录节点下;
  }
  else{
  父目录创建副本;
  副本赋予相应的信息;
  父目录副本儿子节点即为父目录的儿子节点;
  快照树中指向原来父目录的指针指向副本;
  新建节点插在文件系统树中父目录节点下;
  }
  }
  新建文件过程如图5所示:
  
  2.3 备份的实现
  
  在创建好快照树之后,就可以进行在线备份。快照树保存的信息就是开始备份瞬间所有文件的信息,进行在线备份时,首先从快照树的根节点开始,逐个访问节点,按顺序对快照树进行遍历、备份,保证了数据的一致性,并且可以在备份的同时允许对数据进行修改,不影响用户的访问。
  
  3 存储与备份的可靠性
  
  在分布式系统中存储着海量的数据,数据量大,备份的时间较长,在备份的过程中可能会出现错误情况或者发生意外的中断。因此备份过程中需要随时记录备份的进度,这样在备份发生错误或者异常时,下次备份能够在上次备份的出错点继续进行,实行断点备份,而不用重新开始备份。断点备份过程中,使用日志表来记录备份过程,把每次备份的信息写入日志表。日志表如表1:
  3.1 伪算法
  if(日志表为空)
  {
  无须查找断点位置,直接开始备份,备份时把每一个文件的备份信息添加
  到日志表;
  }
  else{
  while(日志表尚未查找完毕)
  {
  对于表中每一项,查找此项对应文件在树中的具体位置;
  if(此文件尚未备份完成)
  记录此文件,即为断点位置;
  }
  当日志表查找完成后,即可得到未备份完成的文件;
  从断点位置开始继续备份,并把文件备份信息添加到日志表;
  }
  本次备份完成后把日志表清空
  
  名称定义
  id文件独一无二的id
  type备份类型,可以是完全备份、增量备份、差量备份
  stary_time开始备份时间
  finished是否完成
  isfolder是否为文件夹
  parentid文件父节点id
  3.2 算法复杂度
  若日志表中的记录个数为k,文件总数为n。则对于每一个记录项,要查找其在文件树中的位置,当前一个记录项查找到时,由于遍历的顺序性,后一个记录项可以从前一个的位置继续向后查找,这样,可以保证k个记录项查找次数为k,也即为o(n)。当备份发生错误或者中断时,通过此算法,能够在相当少的时间内,找到断点位置,下一次备份时可以直接从断点位置继续进行,实现断点备份,保证了备份的可靠性。
  
  参考文献
  [1]牛云,徐庆.数据备份与灾难恢复[m].北京:机械工业出版社,2007.
  [2]张联峰,刘乃安,张玉清.p2p技术[j].计算机工程与应用,2007,(12).
  [3]刘天时,赵正.一种通用数据库数据整理方法[j].计算机工程,2007,(2).
  [4]韩德志,谢长生,李怀阳.存储备份技术探析[j].计算机应用研究,2006,(5).
  [5]谢川.数据备份技术的初探[j].中国科技信息,2006,(12).
相关文章
学术参考网 · 手机版
https://m.lw881.com/
首页