容灾数据文件访问控制列表备份的方法及装置与流程

文档序号:12040420阅读:230来源:国知局
容灾数据文件访问控制列表备份的方法及装置与流程
本发明涉及一种计算机应用领域中的灾备技术,尤其涉及对容灾数据文件的访问控制列表进行备份的方法及装置。

背景技术:
我国信息化建设日见成效,数字化数据已成为大多数企事业单位的宝贵财富。然而,由于存储介质故障、自然灾害等原因,常常会导致数据丢失,若不对数据进行容灾备份,将给各单位造成不可挽回的严重损失。因此,数据容灾已成为信息化建设中非常重要的技术。数据容灾即通过数据备份的方式,将当前存储的内容复制到其它存储介质,以保证当前存储介质被损坏时,可以从其它存储介质获取这些数据,以保证数据不被丢失。数据容灾的备份方式主要有文件备份、数据库备份以及其它应用备份等。对于文件备份,除备份文件内容外,还需要备份文件的访问控制列表(ACL,AccessControlList)备份。目前主流版本的Windows和Linux操作系统都支持文件ACL。ACL中包含有那些被授权访问该文件或者文件夹的所有用户账号、组和计算机,还包含他们被授予的访问类型。为了让一个用户访问某个文件或文件夹,针对相应的用户账号、组,或者该用户所属的计算机,ACL中必须包含一个对应的入口,这样的入口叫作访问控制入口(ACE,Accesscontrolentries)。为了让用户能够访问文件或者文件夹,访问控制入口必须具有用户所请求的访问类型。如果ACL没有相应的ACE存在,操作系统就拒绝该用户访问相应资源。之前的备份技术大多只支持文件内容备份。然而,随着个人与单位对数据安全性的要求越来越高,备份ACL也成为数据所有者的重要需求。每个文件都有ACL,如果在备份中为每个文件都保留一份ACL副本,将 会在空间上造成很大的开销。ACL具有继承的特性,目录中的文件常常继承目录的ACL,子目录的ACL也会继承父目录的ACL。由此会在局部产生大量重复的ACL记录。如果将这些重复的ACL仅保存一份副本,可以节省大量的存储空间,并且能够提高备份与恢复时的读写效率。然而,将重复的ACL仅保存一份副本,由于涉及到如何建立备份文件与ACL的对应关系,故存在采用何种格式存储,如何设计压缩算法,以及如何解压还原等一系列问题,其中任何一个环节出现问题都会引起备份失败或者备份出的ACL数据不可用而无法还原,最终导致无法正确完成ACL的备份与还原功能。因此,现有的灾备数据需要提供一种容灾数据备份的方法及装置,能够克服上述难点而将上述重复的ACL仅保存一份副本,从而节省大量的存储空间,并有效地提高备份与恢复时的读写效率。

技术实现要素:
本发明所要解决的技术问题是提供一种容灾数据文件访问控制列表备份的方法及装置,能够将上述重复的ACL仅保存一份副本,以节省大量的存储空间。为了解决上述技术问题,本发明提供了一种容灾数据文件访问控制列表备份的方法,包括:在进行访问控制列表备份时,获取待备份的目录中的每一文件路径下的访问控制列表内容,根据访问控制列表内容生成访问控制列表特征码,对连续具有相同访问控制列表特征码只在第一次出现该特征码时,将相应的访问控制列表内容写入备份文件,同时生成一个文件列表,记录文件路径及相应的访问控制列表特征码。进一步地,该方法还包括:在进行访问控制列表恢复时,对文件列表中连续具有相同的访问控制列表特征码只在第一次出现该特征码时,从备份文件读取相应的访问控制列表内容存入内存缓存,然后将该访问控制列表内容分别恢复至文件列表中相应 的文件路径下所有连续具有相同特征码的目标文件。进一步地,访问控制列表备份在初始化内存缓存后具体包括:遍历待备份的目录,得到一个文件路径;根据该文件路径读取待备份的所述访问控制列表内容,根据读取的访问控制列表内容生成访问控制列表特征码;然后将文件路径和相应的访问控制列表特征码写入文件列表;若比较生成的该访问控制列表特征码与内存缓存中的访问控制列表特征码不同,则将包括访问控制列表特征码、访问控制列表长度以及访问控制列表内容的访问控制列表记录写入备份文件,并将控制列表特征码和访问控制列表内容更新到内存缓存;返回遍历待备份的目录的步骤,直至到达文件列表的结尾为止。进一步地,访问控制列表恢复在初始化内存缓存后具体包括:从文件列表读取一个文件路径及其相应的访问控制列表特征码;若比较读取的该访问控制列表特征码与内存缓存中的访问控制列表特征码不同,则先根据读取的访问控制列表特征码从备份文件中读取访问控制列表记录,并更新到内存缓存;然后将内存缓存中访问控制列表特征码相应的访问控制列表内容恢复至文件路径所指示的目标文件;否则,直接将内存缓存中所述访问控制列表特征码相应的访问控制列表内容恢复至文件路径所指示的目标文件。进一步地,访问控制列表特征码的生成,是以一份文件的访问控制列表内容为基础,通过MD5、SHA1的算法,生成一串唯一的编码,作为文件的访问控制列表内容的识别标识。为了解决上述技术问题,本发明提供了一种容灾数据文件访问控制列表备份的装置,包括依次连接的文件列表管理模块、ACL备份模块、ACL特征码生成模块,还包括内存缓存,其中:文件列表管理模块,用于遍历待备份的目录,将该目录下所有文件路径的信息传递给ACL备份模块;针对文件路径上的每个文件在文件列表中生成 一条文件记录,以存储文件路径和内存缓存中的访问控制列表特征码;ACL备份模块,用于根据文件路径信息读取文件的访问控制列表内容,并传递给ACL特征码生成模块;若判断ACL特征码生成模块生成的访问控制列表特征码与内存缓存中的访问控制列表特征码不同,则更新内存缓存中的访问控制列表特征码和访问控制列表内容,然后将更新的内容连同相应的访问控制列表长度一起作为访问控制列表记录写入备份文件;ACL特征码生成模块,用于根据访问控制列表内容生成访问控制列表特征码,并返回给ACL备份模块;内存缓存,用于保存访问控制列表特征码和访问控制列表内容。进一步地,该装置还包括与文件列表管理模块连接的ACL恢复模块,其中:内存缓存通过ACL特征码缓存保存访问控制列表特征码,通过ACL内容缓存保存访问控制列表内容;ACL恢复模块,用于从文件列表中逐条读取文件路径和访问控制列表特征码,并比对内存缓存中的访问控制列表特征码,若相同,则将ACL内容缓存保存的访问控制列表内容恢复至所述文件路径所指定的目标文件;若不同,则从备份文件中读取下一条访问控制列表记录,将其中访问控制列表特征码保存至ACL特征码缓存,将作为访问控制列表内容保存至ACL内容缓存,然后将ACL内容缓存保存的访问控制列表内容恢复至文件路径所指定的目标文件;直至到达文件列表的结尾为止。进一步地,ACL特征码生成模块生成访问控制列表特征码,是以一份文件的访问控制列表内容为基础,通过MD5、SHA1的算法,生成一串唯一的编码,作为文件的访问控制列表内容的识别标识。本发明利用ACL具有继承的特性,备份时通过ACL的备份文件对连续重复的ACL内容进行压缩存储;恢复时通过文件列表对连续重复的ACL内容进行解压缩。由此,将这些重复的ACL仅保存一份副本,从而节省大量的存储空间,并有效地提高备份与恢复时的读写效率。附图说明图1为本发明的容灾数据文件访问控制列表备份的方法实施例中文件列表的结构;图2为本发明的容灾数据文件访问控制列表备份的方法实施例中备份文件的结构;图3为图1所示的文件列表与图2所示的备份文件中ACL记录对应示意图;图4为本发明的容灾数据文件访问控制列表备份的装置实施例的结构示意图;图5为本发明的容灾数据文件访问控制列表备份的方法实施例中备份流程示意图;图6为本发明的容灾数据文件访问控制列表备份的方法实施例中恢复流程示意图。具体实施方式以下结合附图和优选实施例对本发明的技术方案进行详细地阐述。应该理解,以下列举的实施例仅用于说明和解释本发明,而不构成对本发明技术方案的限制。为了满足备份ACL的需要,并且减少备份文件所占空间,提高备份与恢复效率,本发明设计了一种容灾数据备份的方法及装置。在进行ACL备份时,获取待备份的目录中的每一文件路径下的ACL内容,根据ACL内容生成ACL特征码,对连续具有相同ACL特征码只在该特征码第一次出现时将相应的ACL内容写入备份文件;同时生成一个文件列表,记录文件路径及相应的ACL特征码。在进行ACL恢复时,对文件列表中连续具有相同的ACL特征码,则只在该ACL特征码第一次出现时从备份文件读取相应的ACL内容存入内存缓存,然后将该ACL内容分别恢复至文件列表中相应的文件路径下所有连续具 有相同特征码的目标文件。其中,文件列表由文件记录组成,如图1所示,每条文件记录包含文件路径和ACL特征码。ACL特征码依据ACL内容生成。以一份文件的ACL内容为基础,通过MD5、SHA1或者其它类似算法,生成一串唯一的编码,作为这份ACL内容的识别标识。如果两个文件的ACL内容相同,那么它们的ACL特征码也会相同;相反,只有两个文件的ACL内容不同,则它们的ACL特征码才不同。备份文件由ACL记录组成,如图2所示,每项ACL记录包含ACL特征码、ACL长度以及ACL内容。备份时通过ACL的备份文件对连续重复的ACL内容进行压缩存储,即连续具有相同特征码的ACL记录,只在其第一次出现时写入备份文件,后续具有相同特征码的ACL记录不写入备份文件。文件列表中连续具有相同ACL特征码的文件记录,只与备份文件中的一条ACL记录相对应,如图3所示。恢复时通过ACL的备份文件对连续重复的ACL内容进行解压缩恢复,即文件列表中连续具有相同的特征码,则只在其第一次出现时从备份文件读入内存缓存,然后将该ACL内容分别恢复至文件列表中相应的文件路径下所有连续具有相同特征码的目标文件。本发明的容灾数据备份的方法实施例,其备份流程如图5所示,在初始化ACL特征码缓存、ACL内容缓存后,包括如下步骤:110:遍历待备份的目录,得到下一个文件路径;按照先文件后目录的方式递归遍历待备份的目录。120:根据文件路径读取待备份的ACL内容;130:根据读取的ACL内容生成ACL特征码;140:比较生成的该ACL特征码是否与内存缓存中的ACL特征码相同,是则执行步骤150,否则执行步骤170;150:将文件路径、ACL特征码写入文件列表;160:判断是否完成目录的遍历,是则结束流程,否则返回步骤110执行;170:将ACL记录写入备份文件;ACL记录如图2所示,包括ACL特征码、ACL长度以及ACL内容。180:将ACL记录更新到内存缓存;转步骤150执行。本发明的容灾数据备份的方法实施例,其恢复流程如图6所示,在初始化ACL特征码缓存、ACL内容缓存后,包括如下步骤:210:从文件列表读取下一个文件路径及其相应的ACL特征码;220:比较该ACL特征码是否与内存缓存中的ACL特征码相同,是则执行步骤230,否则执行步骤250;230:将内存缓存中该ACL特征码相应的ACL内容恢复至文件路径所指示的目标文件;240:判断是否到达文件列表的末尾,是则结束流程,否则转步骤210执行;250:根据ACL特征码从备份文件中读取ACL记录,并更新到内存缓存;返回步骤230执行。本发明针对上述方法实施例,相应地提供了容灾数据备份的装置实施例,其结构如图4所示,包括依次连接的文件列表管理模块、ACL备份模块、ACL特征码生成模块,还包括内存缓存,其中:文件列表管理模块,用于遍历待备份的目录,将该目录下所有文件路径信息传递给ACL备份模块;针对文件路径上的每个文件在文件列表中生成一条文件记录,以存储文件路径和内存缓存中的ACL特征码;ACL备份模块,用于根据文件路径信息读取文件的ACL内容,并传递给ACL特征码生成模块;若判断ACL特征码生成模块生成的ACL特征码与内存缓存中的ACL特征码不同,则更新内存缓存中的ACL特征码和ACL内容,然后将ACL记录写入备份文件;ACL特征码生成模块,用于根据ACL内容生成ACL特征码,返回给ACL 备份模块;内存缓存,用于通过ACL特征码缓存保存ACL特征码,通过ACL内容缓存保存ACL内容。上述装置实施例还包括与文件列表管理模块连接的ACL恢复模块,用于从文件列表中逐条读取文件路径和ACL特征码,并比对内存缓存中的ACL特征码,若相同,则将内存缓存中的ACL内容恢复至文件路径所指定的目标文件;若不同,则从备份文件中读取下一条ACL记录,将其中的ACL特征码保存至ACL特征码的内存缓存,将ACL内容保存至ACL内容的内存缓存,然后将内存缓存中保存的ACL内容恢复至文件路径所指定的目标文件;直至到达文件列表结尾为止。本发明利用ACL具有继承的特性,备份ACL时通过ACL的备份文件对连续重复的ACL内容进行压缩存储;恢复ACL时通过文件列表对连续重复的ACL内容进行解压缩。由此,将这些重复的ACL仅保存一份副本,从而节省大量的存储空间,并有效地提高备份与恢复时的读写效率。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1