CN104899161B - 一种基于云存储环境的连续数据保护的缓存方法 - Google Patents
一种基于云存储环境的连续数据保护的缓存方法 Download PDFInfo
- Publication number
- CN104899161B CN104899161B CN201510320769.6A CN201510320769A CN104899161B CN 104899161 B CN104899161 B CN 104899161B CN 201510320769 A CN201510320769 A CN 201510320769A CN 104899161 B CN104899161 B CN 104899161B
- Authority
- CN
- China
- Prior art keywords
- metadata
- data
- file
- request
- backup
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Abstract
本发明公开了一种基于云存储环境的连续数据保护的缓存代理端的设计方案,包括:缓存代理端将根据客户端的操作请求进行相关处理。如果是用户的登录请求,缓存代理端则会判断用户是否存在,如果用户不存在,则为该用户创建元数据记录文件、数据记录文件、时间记录文件和数据映射表,然后进行同步,创建被保护磁盘分区的初始镜像文件;如果存在,继续等待客户端的操作请求。如果是备份请求,缓存代理端则会构造对应的元数据并记录到对应的元数据日志链中,同时将数据写入数据记录文件。如果是恢复请求,缓存代理端则会完成对元数据的检索。本发明能够解决当前主流的备份技术恢复粒度大和传统的连续数据保护技术扩容和数据迁移成本较高的问题。
Description
技术领域
本发明属于云存储应用领域,更具体地,涉及一种基于云存储环境的连续数据保护的缓存方法。
背景技术
随着互联网数据量的爆炸式增长,如何高效、可靠、稳定的存储这些数据愈发成为业界关注的焦点,因此如何为用户提供有效的数据保护方法也成为数据保护领域的研究热点。
当前在数据保护领域中使用方式是按一定时间间隔(比如一天)对需要备份的磁盘数据进行一次全量的数据备份。
然而,这种数据备份方式存在着一个很明显的缺点,即无法恢复到时间周期中的任意一个时间点。这样导致的后果在于,随着数据量的增大,尤其是数据量增长速度的加快,单位时间内增加的数据量也将随之变大,对于金融,银行的等恢复粒度要求较高的行业来说可能造成一定的关键性数据的丢失;另外,虽然现在的连续数据保护技术能够为用户提供恢复到任意时间点的功能,但是现在的的连续数据保护技术存在着扩容、数据迁移的成本较高及数据恢复效率低等问题;而且,由于广域网传输带宽限制的问题,使得该连续数据保护技术没有得到广泛的利用。
发明内容
针对现有技术的以上缺陷或改进需求,本发明提供了一种基于云存储环境的连续数据保护的缓存方法。其目的在于,结合云存储和连续数据保护技术两大技术的优势,解决现有云备份技术中存在的恢复时间粒度大、扩容和数据迁移成本高、数据恢复效率低的技术问题。
为实现上述目的,按照本发明的一个方面,提供了一种基于云存储环境的连续数据保护的缓存方法,包括以下步骤:
(1)接收来自客户端的数据保护请求,并判断该数据保护请求是登陆请求,同步请求,恢复请求,备份请求,还是退出请求,如果是登陆请求则进入步骤(2),如果是同步请求则进入步骤(3),如果是备份请求则进入步骤(4),如果是恢复请求则进入步骤(5),如果是退出请求则进入步骤(9);
(2)获取该客户端的IP地址,并根据该登录请求获取被保护磁盘分区,根据IP地址和被保护磁盘分区判断该客户端是否存在于用户列表文件中,如果存在,则向客户端返回该账号已存在的提示,然后返回步骤(1),如果不存在,分配一个唯一的账号给该客户端,将客户端的IP地址、磁盘分区号、分配的账号记录在用户列表文件中,并根据该账号创建记录该客户端信息的元数据记录文件、元数据映射表和数据文件位置表。并向客户端反馈需要同步的提示,然后返回步骤(1);
(3)根据该同步请求对应的同步数据生成对应的磁盘分区镜像文件,并发送生成完成的信息给客户端,然后返回步骤(1);
(4)接收备份请求对应的数据和元数据,将数据进行本地存储,获取数据在本地存储的位置信息、以及该扇区号最近一次备份过程中所存储的元数据在元数据记录文件中的位置,将元数据、数据在本地存储的位置信息、以及该扇区号上一次备份过程中所存储的元数据在元数据记录文件中的位置存放在元数据记录文件中,并使用存放的位置更新元数据映射表中该扇区号最近一次备份过程中所存储的元数据存放在元数据记录文件中的位置;
(5)根据恢复请求获取恢复数据的恢复时间点,根据恢复数据的恢复时间点检索所有扇区号的元数据、所有扇区号的数据在本地存储的位置信息、以及所有扇区号上一次备份过程中所存储的元数据,以形成恢复视图;
(6)读取磁盘分区镜像文件,并将该磁盘分区镜像文件写入恢复请求对应的恢复文件中;
(7)顺序读取恢复视图中的记录,并根据数据大小、数据在本地存储的位置信息获取数据,并将该数据覆盖到恢复文件中以形成新的恢复文件;
(8)利用open-iscsi协议读取新的恢复文件中的数据,并将读取的数据发回给客户端,并发送成功标识,然后返回步骤(1);
(9)释放TCP连接,回收系统资源,同时将客户端占用的线程放入空闲线程池。
优选地,步骤(1)中,通过读取数据保护请求的数据包头部的字段,如果该字段为0,则表示该请求是登录请求,如果为1则表示该请求是恢复请求,如果为2则表示该请求是备份请求,如果为3则表示该请求是同步请求,如果为4则表示该请求是退出请求。
优选地,元数据包括时间戳、数据大小以及数据在磁盘中的扇区号。
优选地,数据在本地存储的位置信息包括所存储的文件名以及文件偏移,扇区号最近一次备份过程中所存储的元数据在元数据记录文件中的位置从元数据映射表中获取。
优选地,步骤(4)中将数据进行本地存储的过程包括以下子步骤:
(4-1-1)打开记录当前备份数据文件信息的文件,里面记录了当前备份数据文件编号、当前备份数据文件总大小、剩余空间大小,如果记录当前备份数据文件信息的文件为空文件,则进入步骤(4-1-2),否则进入步骤(4-1-3);
(4-1-2)设置备份数据文件名起始标识,然后创建备份数据文件,在数据文件位置表中记录该备份数据文件在本地,并更新记录当前备份数据文件信息的文件,设置当前备份数据文件编号,当前备份数据文件总大小和剩余空间大小都设置为文件规定的大小,转步骤(4-1-4);
(4-1-3)读取文件中的信息,得到当前文件编号,转步骤(4-1-4);
(4-1-4)判断当前备份数据文件没有超过了规定的大小,如果没有超过,则将数据写入到当前备份数据文件,并更新记录当前备份数据文件信息的文件,设置当前备份数据文件剩余空间大小;如果超过规定值,则生成新的备份数据文件,新的备份数据文件名在前一个备份数据文件名前提上加1,并将数据写入新的备份数据文件,然后更新记录当前备份数据文件信息的文件,设置当前备份数据文件编号、当前备份数据文件总大小、剩余空间大小等,最后返回数据写入当前备份数据文件的文件名及文件偏移。
优选地,步骤(4)中将元数据进行组织存储的过程具体包括以下子步骤:
(4-2-1)根据元数据中的扇区号找到对应的元数据映射表中的位置。该扇区号对应的元数据映射表表项中记录着该扇区最近一次备份过程中所存储的元数据在元数据记录文件的位置以及该扇区备份过程中所存储的元数据日志链表的长度,并转入步骤(4-2-2);
(4-2-2)获取该扇区号对应的元数据映射表表项的信息,并将该扇区号最近一次备份过程中所存储的元数据在元数据记录文件的位置写入新生成的元数据的最近一次备份过程元数据记录位置字段,并将元数据映射表中该扇区备份过程中所存储的元数据日志链表长度加1,将元数据、数据在本地存储的位置信息、以及该扇区号上一次备份过程中所存储的元数据在元数据记录文件中的位置写入元数据记录文件中,并将返回的存储位置更新元数据映射表中该扇区最近一次备份过程中所存储的元数据在元数据记录文件中的位置。
优选地,步骤(5)包括以下子步骤:
(5-1)遍历元数据映射表中的每一个元数据映射表项,元数据映射表项代表指定扇区最近一次备份过程中生成的元数据在元数据记录文件中的位置,并对元数据映射表项代表的扇区的元数据日志链进行回溯,找出小于恢复时间的最大时刻的元数据,并转入步骤(5-2);
(5-2)提取元数据中的磁盘扇区号,数据长度和数据的存储位置信息形成磁盘的恢复视图。
优选地,步骤(7)中获取数据的过程具体包括以下子步骤:
(7-1)根据数据文件位置表查找存储文件是否在本地,是则进入步骤(7-2),否则进入步骤(7-3);
(7-2)从云存储端下载相应文件。进入步骤(7-3);
(7-3)解析数据在本地存储的位置信息和数据大小,读取数据。
按照本发明的另一方面,提供了一种基于云存储环境的连续数据保护的缓存系统,包括以下步骤:
第一模块,用于接收来自客户端的数据保护请求,并判断该数据保护请求是登陆请求,同步请求,恢复请求,备份请求,还是退出请求,如果是登陆请求则进入第二模块,如果是同步请求则进入第三模块,如果是备份请求则进入第四模块,如果是恢复请求则进入第五模块,如果是退出请求则进入第九模块;
第二模块,用于获取该客户端的IP地址,并根据该登录请求获取被保护磁盘分区,根据IP地址和被保护磁盘分区判断该客户端是否存在于用户列表文件中,如果存在,则向客户端返回该账号已存在的提示,然后返回第一模块,如果不存在,分配一个唯一的账号给该客户端,将客户端的IP地址、磁盘分区号、分配的账号记录在用户列表文件中,并根据该账号创建记录该客户端信息的元数据记录文件、元数据映射表和数据文件位置表。并向客户端反馈需要同步的提示,然后返回第一模块;
第三模块,用于根据该同步请求对应的同步数据生成对应的磁盘分区镜像文件,并发送生成完成的信息给客户端,然后返回第一模块;
第四模块,用于接收备份请求对应的数据和元数据,将数据进行本地存储,获取数据在本地存储的位置信息、以及该扇区号最近一次备份过程中所存储的元数据在元数据记录文件中的位置,将元数据、数据在本地存储的位置信息、以及该扇区号上一次备份过程中所存储的元数据在元数据记录文件中的位置存放在元数据记录文件中,并使用存放的位置更新元数据映射表中该扇区号最近一次备份过程中所存储的元数据存放在元数据记录文件中的位置;
第五模块,用于根据恢复请求获取恢复数据的恢复时间点,根据恢复数据的恢复时间点检索所有扇区号的元数据、所有扇区号的数据在本地存储的位置信息、以及所有扇区号上一次备份过程中所存储的元数据,以形成恢复视图;
第六模块,用于读取磁盘分区镜像文件,并将该磁盘分区镜像文件写入恢复请求对应的恢复文件中;
第七模块,用于顺序读取恢复视图中的记录,并根据数据大小、数据在本地存储的位置信息获取数据,并将该数据覆盖到恢复文件中以形成新的恢复文件;
第八模块,用于利用open-iscsi协议读取新的恢复文件中的数据,并将读取的数据发回给客户端,并发送成功标识,然后返回步骤(1);
第九模块,用于释放TCP连接,回收系统资源,同时将客户端占用的线程放入空闲线程池。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,能够取得下列有益效果:
1、能够解决现有方法中存在的恢复时间粒度大的技术问题:由于采用了有别于传统备份技术的连续数据保护技术,连续数据保护技术能够实时地对客户端发生的对磁盘的写操作数据进行捕获、重定向、并将写操作数据备份到缓存代理端。在备份过程中需要根据捕获的写操作数据创建时间戳、数据大小、写入的扇区号等元数据,并将元数据和数据一并发送给缓存代理端。缓存代理端采用步骤(4)将元数据和数据存放到缓存代理端,数据的存放过程采用步骤(4-1-1)、步骤(4-1-2)、步骤(4-1-3)和步骤(4-1-4),将数据存放到备份数据文件中,并获取数据存放的位置信息,数据存放的位置信息作为新的元数据的一个字段。元数据的存放过程采用步骤(4-2-1)和步骤(4-2-2),首先需根据元数据、数据存放的位置信息、该扇区号最近一次备份过程产生的元数据在元数据记录文件中的位置信息构建新的元数据,该扇区号最近一次备份过程产生的元数据在元数据记录文件中的位置信息通过查找元数据映射表来获取,并将新的元数据存放到元数据记录文件中,最后更新元数据映射表,使得该扇区最近一次备份过程产生的新的元数据的存储位置指向本次新的元数据存放位置。采用连续数据保护解决了备份粒度大的问题。
2、本发明能够解决现有方法中存在的扩容和数据迁移成本高的技术问题:本发明基于云存储环境,由于采用了调度方法中的步骤(1)和步骤(2),能够动态地将备份数据迁移到云存储中,这样便可以节省存储数据的硬件开销;步骤(1)是根据磁盘空间的使用率以及每个客户端使用的磁盘空间量和每个客户端的备份数据增长率来决定是否触发迁移操作并决定迁移哪个客户端的数据,步骤(2)是迁移操作及备份数据文件的记录操作,备份文件的记录操作记录备份文件是在缓存代理端还是云存储端。采用云存储环境和调度方法,能够有效解决扩容和数据迁移成本高的问题;
3、本发明能够解决现有方法中存在的数据恢复效率低的技术问题:本发明采用了元数据映射表这一部件,元数据映射表记录各扇区最近一次备份过程中所存储的元数据在元数据记录文件中的位置,通过元数据映射表和元数据记录文件中的记录可以跳跃式的找到所有扇区在恢复时间点的元数据,并生成恢复视图;恢复过程如步骤(5)、步骤(6)、步骤(7)、步骤(8)所示,首先获取恢复时间点,并根据恢复时间点、元数据记录文件、元数据映射表得到恢复视图,然后根据恢复视图和数据文件位置表找到相应的数据,根据磁盘分区镜像文件生成恢复文件,覆盖恢复文件的相应部分;最后将恢复文件发送给客户端。
4、本发明的效率高,能够为用户提供7*24的数据备份服务,当故障发生时,丢失的数据极少,最大限度的保护了数据。
附图说明
图1是本发明基于云存储环境的连续数据保护的缓存方法的总体流程图;
图2是本发明将数据进行本地存储的细化流程图;
图3是本发明将元数据进行组织存储的细化流程图;
图4是本发明方法中步骤(5)的细化流程图;
图5是本发明步骤(7)中获取数据的细化流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
本发明的思路在于,传统服务器端扩容成本昂贵、可扩展性差,且CDP备份服务积攒的数据随着时间的推移将急剧增加。为此,可将备份的数据迁移至云存储服务提供商,从而解决可扩展性差的问题。我们设计一个缓存代理端,一方面让它响应客户端的服务请求,另一方面则根据缓存代理端备份数据量的情况,不定时的将备份数据迁移至云存储端。为使数据恢复操作具有较小的响应时间,采用LRU策略迁移备份数据。这样最近使用过的备份数据将保存在缓存代理端。为加快数据恢复速度,创建元数据映射表,用于记录各扇区最近一次备份过程中所存储的元数据在元数据记录文件中的位置,元数据映射表保存在数据库中。
如图1所示,本发明基于云存储环境的连续数据保护的缓存方法包括以下步骤:
(1)接收来自客户端的数据保护请求,并判断该数据保护请求是登陆请求,同步请求,恢复请求,备份请求,还是退出请求,如果是登陆请求则进入步骤(2),如果是同步请求则进入步骤(3),如果是备份请求则进入步骤(4),如果是恢复请求则进入步骤(5),如果是退出请求则进入步骤(9);具体而言,通过读取数据保护请求的数据包头部的字段,如果该字段为0,则表示该请求是登录请求,如果为1则表示该请求是恢复请求,如果为2则表示该请求是备份请求,如果为3则表示该请求是同步请求,如果为4则表示该请求是退出请求;
(2)获取该客户端的IP地址,并根据该登录请求获取被保护磁盘分区,根据IP地址和被保护磁盘分区判断该客户端是否存在于用户列表文件中,如果存在,则向客户端返回该账号已存在的提示,然后返回步骤(1),如果不存在,分配一个唯一的账号给该客户端,将新客户端信息(IP地址,磁盘分区号,还有分配的账号)记录在用户列表文件中,并根据该账号创建记录该客户端信息的元数据记录文件、元数据映射表和数据文件位置表。并向客户端反馈需要同步的提示,然后返回步骤(1);具体而言,假设客户端的ip地址为192.168.0.2,被保护磁盘分区为sdc,则根据ip地址和被保护磁盘分区号到用户列表文件中查找是否存在该客户端,不存在则给该客户端(192.168.0.2,sdc)分配唯一的账号,并将IP地址、磁盘分区号、分配的账号,比如(192.168.0.2,sdc,1)记录到用户列表文件中,最后根据账号创建一个文件和两个数据库表:元数据记录文件和元数据映射表和数据文件位置表。元数据记录文件文件名的命名形式为/CDP/data/metafile/metafile*,元数据映射表表名命名形式为MapTable*,其中*表示给客户端分配的唯一账号;存在则从用户列表中获取之前记录的账号;数据文件位置表记录数据文件在缓存代理端还是在云存储端或者既在缓存代理端又在云存储端;
(3)根据该同步请求对应的同步数据生成对应的磁盘分区镜像文件,并发送生成完成的信息给客户端,然后返回步骤(1);具体而言,磁盘分区镜像文件命名方式为/CDP/data/init/init*,其中*表示给客户端分配的唯一账号;
(4)接收备份请求对应的数据和元数据(其包括时间戳、数据大小以及数据在磁盘中的扇区号),将数据进行本地存储,获取数据在本地存储的位置信息、以及该扇区号最近一次备份过程中所存储的元数据在元数据记录文件中的位置。其中,数据在本地存储的位置信息包括所存储的文件名以及文件偏移;扇区号最近一次备份过程中所存储的元数据在元数据记录文件中的位置从元数据映射表中获取。将元数据、数据在本地存储的位置信息、以及该扇区号上一次备份过程中所存储的元数据在元数据记录文件中的位置存放在元数据记录文件中,并使用存放的位置更新元数据映射表中该扇区号最近一次备份过程中所存储的元数据存放在元数据记录文件中的位置;
如图2所示,本步骤中将数据进行本地存储的过程包括以下子步骤:
(4-1-1)打开记录当前备份数据文件信息的文件,其命名形式为/CDP/storage/*/data_file.info,*是代表该客户端的账号,里面记录了当前备份数据文件编号、当前备份数据文件总大小、剩余空间大小等。如果记录当前备份数据文件信息的文件为空文件,则进入步骤(4-1-2),否则进入步骤(4-1-3);
(4-1-2)设置备份数据文件名起始标识为a,然后创建备份数据文件a.data,在数据文件位置表中记录a.data在本地,并更新记录当前备份数据文件信息的文件,设置当前备份数据文件编号为a,当前备份数据文件总大小和剩余空间大小都设置为文件规定的大小,比如4GB,转步骤(4-1-4);
(4-1-3)读取文件中的信息,得到当前文件编号。转步骤(4-1-4);
(4-1-4)判断当前备份数据文件没有超过了规定的大小,比如4GB,如果没有超过,则将数据写入到当前备份数据文件,并更新记录当前备份数据文件信息的文件,设置当前备份数据文件剩余空间大小;如果超过规定值,则生成新的备份数据文件,新的备份数据文件名在前一个备份数据文件名前提上加1,比如前一个备份数据文件名为a.data,则新的备份数据文件名为b.data,并将数据写入新的备份数据文件,然后更新记录当前备份数据文件信息的文件,设置当前备份数据文件编号、当前备份数据文件总大小、剩余空间大小等。最后返回数据写入当前备份数据文件的文件名及文件偏移,即数据在本地存储的位置信息。
如图3所示,本步骤中将元数据进行组织存储的过程具体包括以下子步骤:
(4-2-1)根据元数据中的扇区号找到对应的元数据映射表中的位置。该扇区号对应的元数据映射表表项中记录着该扇区最近一次备份过程中所存储的元数据在元数据记录文件的位置以及该扇区备份过程中所存储的元数据日志链表的长度(日志链表指的是描述对该扇区I/O操作的元数据所形成的一个链表);并转入步骤(4-2-2);
(4-2-2)获取该扇区号对应的元数据映射表表项的信息,并将该扇区号最近一次备份过程中所存储的元数据在元数据记录文件的位置写入新生成的元数据的最近一次备份过程元数据记录位置字段,并将元数据映射表中该扇区备份过程中所存储的元数据日志链表长度加1。将元数据、数据在本地存储的位置信息、以及该扇区号上一次备份过程中所存储的元数据在元数据记录文件中的位置写入元数据记录文件中并将返回的存储位置更新元数据映射表中该扇区最近一次备份过程中所存储的元数据在元数据记录文件中的位置;
(5)根据恢复请求获取恢复数据的恢复时间点,根据恢复数据的恢复时间点检索所有扇区号的元数据、所有扇区号的数据在本地存储的位置信息、以及所有扇区号上一次备份过程中所存储的元数据,以形成恢复视图;如图4所示,本步骤包括以下子步骤:
(5-1)遍历元数据映射表中的每一个元数据映射表项,元数据映射表项代表指定扇区最近一次备份过程中生成的元数据在元数据记录文件中的位置,并对元数据映射表项代表的扇区的元数据日志链进行回溯,找出小于恢复时间的最大时刻的元数据;并转入步骤(5-2);
(5-2)提取元数据中的磁盘扇区号,数据长度和数据的存储位置信息形成磁盘的恢复视图。
(6)读取磁盘分区镜像文件,并将该磁盘分区镜像文件写入恢复请求对应的恢复文件中;
(7)顺序读取恢复视图中的记录,并根据数据大小、数据在本地存储的位置信息获取数据,并将该数据覆盖到恢复文件中以形成新的恢复文件;具体而言,根据恢复视图中记录的数据的扇区号确定数据应该被覆盖到恢复文件中的起始位置;
如图5所示,本步骤中获取数据的过程具体包括以下子步骤:
(7-1)根据数据文件位置表查找存储文件是否在本地,是则进入步骤(7-2),否则进入步骤(7-3);
(7-2)从云存储端下载相应文件。进入步骤(7-3);
(7-3)解析数据在本地存储的位置信息和数据大小,读取数据。
(8)利用open-iscsi协议读取新的恢复文件中的数据,并将读取的数据发回给客户端,并发送成功标识,然后转入步骤(1);
(9)释放TCP连接,回收系统资源,同时将客户端占用的线程放入空闲线程池。
综上所述,本发明具有以下的优点:
1、能够解决现有方法中存在的恢复时间粒度大的技术问题:由于采用了有别于传统备份技术的连续数据保护技术,连续数据保护技术能够实时地对客户端发生的对磁盘的写操作数据进行捕获、重定向、并将写操作数据备份到缓存代理端。在备份过程中需要根据捕获的写操作数据创建时间戳、数据大小、写入的扇区号等元数据,并将元数据和数据一并发送给缓存代理端。缓存代理端采用步骤(4)将元数据和数据存放到缓存代理端,数据的存放过程采用步骤(4-1-1)、步骤(4-1-2)、步骤(4-1-3)和步骤(4-1-4),将数据存放到备份数据文件中,并获取数据存放的位置信息,数据存放的位置信息作为新的元数据的一个字段。元数据的存放过程采用步骤(4-2-1)和步骤(4-2-2),首先需根据元数据、数据存放的位置信息、该扇区号最近一次备份过程产生的元数据在元数据记录文件中的位置信息构建新的元数据,该扇区号最近一次备份过程产生的元数据在元数据记录文件中的位置信息通过查找元数据映射表来获取,并将新的元数据存放到元数据记录文件中,最后更新元数据映射表,使得该扇区最近一次备份过程产生的新的元数据的存储位置指向本次新的元数据存放位置。
2、本发明能够解决现有方法中存在的扩容和数据迁移成本高的技术问题:本发明基于云存储环境,由于采用了调度方法中的步骤(1)和步骤(2),能够动态地将备份数据迁移到云存储中,这样便可以节省存储数据的硬件开销;步骤(1)是根据磁盘空间的使用率以及每个客户端使用的磁盘空间量和每个客户端的备份数据增长率来决定是否触发迁移操作并决定迁移哪个客户端的数据,步骤(2)是迁移操作及备份数据文件的记录操作,备份文件的记录操作记录备份文件是在缓存代理端还是云存储端。
3、本发明能够解决现有方法中存在的数据恢复效率低的技术问题:本发明采用了元数据映射表这一部件,元数据映射表记录各扇区最近一次备份过程中所存储的元数据在元数据记录文件中的位置,通过元数据映射表和元数据记录文件中的记录可以跳跃式的找到所有扇区在恢复时间点的元数据,并生成恢复视图;恢复过程如步骤(5)、步骤(6)、步骤(7)、步骤(8)所示,首先获取恢复时间点,并根据恢复时间点、元数据记录文件、元数据映射表得到恢复视图,然后根据恢复视图和数据文件位置表找到相应的数据,根据磁盘分区镜像文件生成恢复文件,覆盖恢复文件的相应部分;最后将恢复文件发送给客户端。
4、本发明的效率高,能够为用户提供7*24的数据备份服务,当故障发生时,丢失的数据极少,最大限度的保护了数据。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (7)
1.一种基于云存储环境的连续数据保护的缓存方法,其特征在于,包括以下步骤:
(1)接收来自客户端的数据保护请求,并判断该数据保护请求是登陆请求,同步请求,恢复请求,备份请求,还是退出请求,如果是登陆请求则进入步骤(2),如果是同步请求则进入步骤(3),如果是备份请求则进入步骤(4),如果是恢复请求则进入步骤(5),如果是退出请求则进入步骤(9);
(2)获取该客户端的IP地址,并根据该登录请求获取被保护磁盘分区,根据IP地址和被保护磁盘分区判断该客户端是否存在于用户列表文件中,如果存在,则向客户端返回账号已存在的提示,然后返回步骤(1),如果不存在,分配一个唯一的账号给该客户端,将客户端的IP地址、磁盘分区号、分配的账号记录在用户列表文件中,并根据该账号创建记录该客户端信息的元数据记录文件、元数据映射表和数据文件位置表,并向客户端反馈需要同步的提示,然后返回步骤(1);
(3)根据该同步请求对应的同步数据生成对应的磁盘分区镜像文件,并发送生成完成的信息给客户端,然后返回步骤(1);
(4)接收备份请求对应的数据和元数据,将数据进行本地存储,获取数据在本地存储的位置信息、以及扇区号最近一次备份过程中所存储的元数据在元数据记录文件中的位置,将元数据、数据在本地存储的位置信息、以及该扇区号上一次备份过程中所存储的元数据在元数据记录文件中的位置存放在元数据记录文件中,并使用存放的位置更新元数据映射表中该扇区号最近一次备份过程中所存储的元数据存放在元数据记录文件中的位置;
其中,在步骤(4)中将元数据进行组织存储的过程具体包括以下子步骤:
(4-2-1)根据元数据中的扇区号找到对应的元数据映射表中的位置,该扇区号对应的元数据映射表表项中记录着该扇区最近一次备份过程中所存储的元数据在元数据记录文件的位置以及该扇区备份过程中所存储的元数据日志链表的长度,并转入步骤(4-2-2);
(4-2-2)获取该扇区号对应的元数据映射表表项的信息,并将该扇区号最近一次备份过程中所存储的元数据在元数据记录文件的位置写入新生成的元数据的最近一次备份过程元数据记录位置字段,并将元数据映射表中该扇区备份过程中所存储的元数据日志链表长度加1,将元数据、数据在本地存储的位置信息、以及该扇区号上一次备份过程中所存储的元数据在元数据记录文件中的位置写入元数据记录文件中,并将返回的存储位置更新元数据映射表中该扇区最近一次备份过程中所存储的元数据在元数据记录文件中的位置;
(5)根据恢复请求获取恢复数据的恢复时间点,根据恢复数据的恢复时间点检索所有扇区号的元数据、所有扇区号的数据在本地存储的位置信息、以及所有扇区号上一次备份过程中所存储的元数据,以形成恢复视图;
其中,步骤(5)具体包括以下子步骤:
(5-1)遍历元数据映射表中的每一个元数据映射表项,元数据映射表项代表指定扇区最近一次备份过程中生成的元数据在元数据记录文件中的位置,并对元数据映射表项代表的扇区的元数据日志链进行回溯,找出小于恢复时间的最大时刻的元数据,并转入步骤(5-2);
(5-2)提取元数据中的磁盘扇区号,数据长度和数据的存储位置信息形成磁盘的恢复视图;
(6)读取磁盘分区镜像文件,并将该磁盘分区镜像文件写入恢复请求对应的恢复文件中;
(7)顺序读取恢复视图中的记录,并根据数据大小、数据在本地存储的位置信息获取数据,并将该数据覆盖到恢复文件中以形成新的恢复文件;
(8)利用open-iscsi协议读取新的恢复文件中的数据,并将读取的数据发回给客户端,并发送成功标识,然后返回步骤(1);
(9)释放TCP连接,回收系统资源,同时将客户端占用的线程放入空闲线程池。
2.根据权利要求1所述的缓存方法,其特征在于,步骤(1)中,通过读取数据保护请求的数据包头部的字段,如果该字段为0,则表示该请求是登录请求,如果为1则表示该请求是恢复请求,如果为2则表示该请求是备份请求,如果为3则表示该请求是同步请求,如果为4则表示该请求是退出请求。
3.根据权利要求1所述的缓存方法,其特征在于,元数据包括时间戳、数据大小以及数据在磁盘中的扇区号。
4.根据权利要求1所述的缓存方法,其特征在于,数据在本地存储的位置信息包括所存储的文件名以及文件偏移,扇区号最近一次备份过程中所存储的元数据在元数据记录文件中的位置从元数据映射表中获取。
5.根据权利要求1所述的缓存方法,其特征在于,步骤(4)中将数据进行本地存储的过程包括以下子步骤:
(4-1-1)打开记录当前备份数据文件信息的文件,里面记录了当前备份数据文件编号、当前备份数据文件总大小、剩余空间大小,如果记录当前备份数据文件信息的文件为空文件,则进入步骤(4-1-2),否则进入步骤(4-1-3);
(4-1-2)设置备份数据文件名起始标识,然后创建备份数据文件,在数据文件位置表中记录该备份数据文件在本地,并更新记录当前备份数据文件信息的文件,设置当前备份数据文件编号,当前备份数据文件总大小和剩余空间大小都设置为文件规定的大小,转步骤(4-1-4);
(4-1-3)读取文件中的信息,得到当前文件编号,转步骤(4-1-4);
(4-1-4)判断当前备份数据文件没有超过了规定的大小,如果没有超过,则将数据写入到当前备份数据文件,并更新记录当前备份数据文件信息的文件,设置当前备份数据文件剩余空间大小;如果超过规定值,则生成新的备份数据文件,新的备份数据文件名在前一个备份数据文件名前提上加1,并将数据写入新的备份数据文件,然后更新记录当前备份数据文件信息的文件,设置当前备份数据文件编号、当前备份数据文件总大小、剩余空间大小等,最后返回数据写入当前备份数据文件的文件名及文件偏移。
6.根据权利要求1所述的缓存方法,其特征在于,步骤(7)中获取数据的过程具体包括以下子步骤:
(7-1)根据数据文件位置表查找存储文件是否在本地,是则进入步骤(7-2),否则进入步骤(7-3);
(7-2)从云存储端下载相应文件,进入步骤(7-3);
(7-3)解析数据在本地存储的位置信息和数据大小,读取数据。
7.一种基于云存储环境的连续数据保护的缓存系统,其特征在于,包括以下步骤:
第一模块,用于接收来自客户端的数据保护请求,并判断该数据保护请求是登陆请求,同步请求,恢复请求,备份请求,还是退出请求,如果是登陆请求则进入第二模块,如果是同步请求则进入第三模块,如果是备份请求则进入第四模块,如果是恢复请求则进入第五模块,如果是退出请求则进入第九模块;
第二模块,用于获取该客户端的IP地址,并根据该登录请求获取被保护磁盘分区,根据IP地址和被保护磁盘分区判断该客户端是否存在于用户列表文件中,如果存在,则向客户端返回账号已存在的提示,然后返回第一模块,如果不存在,分配一个唯一的账号给该客户端,将客户端的IP地址、磁盘分区号、分配的账号记录在用户列表文件中,并根据该账号创建记录该客户端信息的元数据记录文件、元数据映射表和数据文件位置表,并向客户端反馈需要同步的提示,然后返回第一模块;
第三模块,用于根据该同步请求对应的同步数据生成对应的磁盘分区镜像文件,并发送生成完成的信息给客户端,然后返回第一模块;
第四模块,用于接收备份请求对应的数据和元数据,将数据进行本地存储,获取数据在本地存储的位置信息、以及扇区号最近一次备份过程中所存储的元数据在元数据记录文件中的位置,将元数据、数据在本地存储的位置信息、以及该扇区号上一次备份过程中所存储的元数据在元数据记录文件中的位置存放在元数据记录文件中,并使用存放的位置更新元数据映射表中该扇区号最近一次备份过程中所存储的元数据存放在元数据记录文件中的位置;
其中,所述第四模块将元数据进行组织存储的过程具体包括:根据元数据中的扇区号找到对应的元数据映射表中的位置,该扇区号对应的元数据映射表表项中记录着该扇区最近一次备份过程中所存储的元数据在元数据记录文件的位置以及该扇区备份过程中所存储的元数据日志链表的长度,并获取该扇区号对应的元数据映射表表项的信息,并将该扇区号最近一次备份过程中所存储的元数据在元数据记录文件的位置写入新生成的元数据的最近一次备份过程元数据记录位置字段,并将元数据映射表中该扇区备份过程中所存储的元数据日志链表长度加1,将元数据、数据在本地存储的位置信息、以及该扇区号上一次备份过程中所存储的元数据在元数据记录文件中的位置写入元数据记录文件中,并将返回的存储位置更新元数据映射表中该扇区最近一次备份过程中所存储的元数据在元数据记录文件中的位置;
第五模块,用于根据恢复请求获取恢复数据的恢复时间点,根据恢复数据的恢复时间点检索所有扇区号的元数据、所有扇区号的数据在本地存储的位置信息、以及所有扇区号上一次备份过程中所存储的元数据,以形成恢复视图;
其中,所述第五模块具体用于执行以下操作:遍历元数据映射表中的每一个元数据映射表项,元数据映射表项代表指定扇区最近一次备份过程中生成的元数据在元数据记录文件中的位置,并对元数据映射表项代表的扇区的元数据日志链进行回溯,找出小于恢复时间的最大时刻的元数据,并提取元数据中的磁盘扇区号,数据长度和数据的存储位置信息形成磁盘的恢复视图;
第六模块,用于读取磁盘分区镜像文件,并将该磁盘分区镜像文件写入恢复请求对应的恢复文件中;
第七模块,用于顺序读取恢复视图中的记录,并根据数据大小、数据在本地存储的位置信息获取数据,并将该数据覆盖到恢复文件中以形成新的恢复文件;
第八模块,用于利用open-iscsi协议读取新的恢复文件中的数据,并将读取的数据发回给客户端,并发送成功标识,然后返回第一模块;
第九模块,用于释放TCP连接,回收系统资源,同时将客户端占用的线程放入空闲线程池。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510320769.6A CN104899161B (zh) | 2015-06-12 | 2015-06-12 | 一种基于云存储环境的连续数据保护的缓存方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510320769.6A CN104899161B (zh) | 2015-06-12 | 2015-06-12 | 一种基于云存储环境的连续数据保护的缓存方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104899161A CN104899161A (zh) | 2015-09-09 |
CN104899161B true CN104899161B (zh) | 2018-01-05 |
Family
ID=54031835
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510320769.6A Active CN104899161B (zh) | 2015-06-12 | 2015-06-12 | 一种基于云存储环境的连续数据保护的缓存方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104899161B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20170133866A (ko) * | 2016-05-27 | 2017-12-06 | 삼성에스디에스 주식회사 | 데이터 이관 장치 및 방법 |
CN110287064B (zh) * | 2019-07-02 | 2020-04-17 | 成都易我科技开发有限责任公司 | 一种磁盘数据的还原方法、装置及电子设备 |
CN112083893A (zh) * | 2020-09-25 | 2020-12-15 | 酒泉钢铁(集团)有限责任公司 | 一种基于Linux的磁盘空间优化方法 |
CN112800005B (zh) * | 2021-01-22 | 2023-01-03 | 中孚安全技术有限公司 | 一种文件系统深度检查方法、系统、终端及存储介质 |
CN114416431B (zh) * | 2022-03-28 | 2022-06-07 | 成都云祺科技有限公司 | 基于kvm的无代理持续性数据保护方法、系统及存储介质 |
CN115827334A (zh) * | 2023-01-09 | 2023-03-21 | 四川大学 | Oracle数据库块级cdp备份恢复方法及其系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6829688B2 (en) * | 2002-06-20 | 2004-12-07 | International Business Machines Corporation | File system backup in a logical volume management data storage environment |
GB2411030B (en) * | 2002-11-20 | 2006-03-22 | Filesx Ltd | Fast backup storage and fast recovery of data (FBSRD) |
-
2015
- 2015-06-12 CN CN201510320769.6A patent/CN104899161B/zh active Active
Non-Patent Citations (5)
Title |
---|
C-CDP:A Cloud Based Continuous Data Protection System;Chunlu Wang等;《Inernational Conference on Consumer Electrics》;20141231;第188-191页 * |
Fast Recovery and Low Cost Cosist:When Continous Data Protection Meets the cold;Yu GU 等;《IEICE TRANS.INF&SYST.》;20140731;第E97-D卷(第7期);第1700-1708页 * |
一种基于块级的连续数据捕获方法研究;李巍等;《计算机研究与发展》;20111231;第48卷(第2011年S1期);第126-131页 * |
基于群组的连续数据保护服务关键技术研究;李春花等;《计算机研究与发展》;20121231;第49卷(第2012年S1期);第201-205页 * |
支持连续数据保护的云备份系统架构设计;王欢等;《计算机工程与应用》;20121231;第48卷(第1期);第90-93页 * |
Also Published As
Publication number | Publication date |
---|---|
CN104899161A (zh) | 2015-09-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104899161B (zh) | 一种基于云存储环境的连续数据保护的缓存方法 | |
CN109254733B (zh) | 用于存储数据的方法、装置和系统 | |
CN104243425B (zh) | 一种在内容分发网络中进行内容管理的方法、装置及系统 | |
CN101997823B (zh) | 一种分布式文件系统及其数据访问方法 | |
CN105335513B (zh) | 一种分布式文件系统及文件存储方法 | |
CN109327539A (zh) | 一种分布式块存储系统及其数据路由方法 | |
CN108365971A (zh) | 日志解析方法、设备及计算机可读介质 | |
CN103186554B (zh) | 分布式数据镜像方法及存储数据节点 | |
CN106156359A (zh) | 一种云计算平台下的数据同步更新方法 | |
CN109614377A (zh) | 分布式文件系统的文件删除方法、装置、设备及存储介质 | |
CN104008152A (zh) | 支持海量数据访问的分布式文件系统的架构方法 | |
CN106294870B (zh) | 基于对象的分布式云存储方法 | |
CN106649349A (zh) | 用于游戏应用的数据缓存方法、装置和系统 | |
CN106775446A (zh) | 基于固态硬盘加速的分布式文件系统小文件访问方法 | |
CN104660643A (zh) | 请求响应方法、装置及分布式文件系统 | |
CN109657007A (zh) | 基于异步提交的数据库数据同步并行执行方法及设备 | |
CN112084258A (zh) | 一种数据同步方法和装置 | |
CN103763368B (zh) | 一种跨数据中心的数据同步方法 | |
CN102833580A (zh) | 基于infiniband的高清视频应用系统及方法 | |
CN104866528B (zh) | 多平台数据采集方法及系统 | |
CN110399348A (zh) | 文件重删方法、装置、系统及计算机可读存储介质 | |
CN109831486A (zh) | 多客户端的后台数据服务器系统及数据处理方法 | |
CN108427728A (zh) | 元数据的管理方法、设备及计算机可读介质 | |
CN103491155A (zh) | 一种实现移动计算和获取移动数据的云计算方法及系统 | |
CN106817388A (zh) | 虚拟机、宿主机获取数据的方法、装置及访问数据的系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |