存储备份技术研究论文

时间:2022-11-04 03:28:00

导语:存储备份技术研究论文一文来源于网友上传,不代表本站观点,若需要原创文章可咨询客服老师,欢迎参考。

存储备份技术研究论文

摘要:随着互联网络飞速发展,数据量呈现海量增长,单机存储无法满足需求,分布式存储应运而生并且取得了较大的发展。系统中的数据由于自然灾害、异常故障等原因会遭到破坏,因而需要对数据进行备份加以保护。以基于分布式文件服务器的存储备选份恢复系统为研究对象,探讨了分布式存储下海量数据备份恢复的关键问题:存储备份恢复的高效性、一致性和可靠性。

关键词:备份;存储;分布式;P2P;技术

1存储与备份技术的高效性

1.1高性能多源下载过程

(1)服务器根据相关信息返回存储需要下载文件的Slave的具体信息;(2)根据文件大小和Slave的负载状态,选择合适的Slave建立socket连接对文件进行分块下载;(3)下载完成后把各个文件块合并成为原始文件。

1.2静态下载

在静态下载中,不考虑备份文件的大小,服务器的负荷量,采取统一的模型进行下载。算法如下:(1)得到备份文件所在服务器的个数n,以及每个服务器的IP地址和端口号;(2)得到文件的总大小size,按照文件分割算法,把文件分割为n块;(3)与每个服务器建立连接,从每个服务器上下载一块文件;(4)下载完成后,把所有文件块合并成一个完整的文件,存储在备份介质上;(5)保存备份文件的相关元数据信息;(6)文件下载、备份完成。

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).