一种数据存储与恢复架构与方法与流程

文档序号:12905860阅读:169来源:国知局
一种数据存储与恢复架构与方法与流程

本发明涉及计算机技术领域,尤其是涉及一种数据存储与恢复架构与方法。



背景技术:

持续数据保护技术是对传统数据备份技术的一次革命性的重大突破。传统的数据备份解决方案专注在对数据的周期性备份上,因此一直伴随有备份窗口、数据一致性以及对生产系统的影响等问题。现在,持续数据保护为用户提供了新的数据保护手段,系统管理者无须关注数据的备份过程,而且仅仅当灾难发生后,简单地选择需要恢复到的时间点即可实现数据的快速恢复。

一种持续数据保护技术是按照一定的时间频率,持续的记录并备份数据变化,每次备份有一定时间窗口,需要数据恢复时,可以恢复到过去备份的时间点。

另一种持续数据保护技术是持续不间断的监控并备份数据变化,可以恢复到过去任意时间点,是真正的实时备份。

第三种持续数据保护技术对磁盘数据块的每个写操作,生成一个元数据记录该写操作的元数据,并将该元数据作为一个链表节点,该节点中除了包含数据块的块号以外,还设置前向链接,上行链接,下行链接。在此基础上,构造出二叉树。并以二叉树和元数据节点为基础,进行快照和恢复。

第一种技术方案中,只能通过备份点进行恢复,而不能恢复到任意一个时刻,从而不能做到到真正的连续数据保护。

第二种和第三种技术方案中,可以达到恢复至任意一个时刻,但是第二种技术普遍遇到数据不断增加所带来的存储和合并难题;第三种技术通过二叉树索引技术对数据的存储量有一定的减少,但是无法解决云平台环境中,海量的块设备,每个块设备海量随机io写以及高吞吐io所带来海量存储量问题。



技术实现要素:

本发明的目的就是为应对云平台环境中海量的块设备海量随机io写以及高吞吐io所带来海量存储量问题,提供的一种数据存储与恢复架构与方法。

为实现上述目的,本发明提出一种数据存储与恢复架构,其特征在于,包括通过网络相互连接的块设备与云端设备;所述的云端设备分为接入存储层,归档存储层和元数据服务层;所述的接入存储层执行块设备的写入操作,采用固态硬盘,所述的归档存储层定期从接入存储层拉取和存储新增实时数据,采用低速硬盘;所述的元数据服务层用于存储索引信息。

所述的接入存储层执行块设备的写入操作,采用5元组方式;5元组包括:写的起始地址、写的大小、写的数据、写的顺序编号、写的时间戳。

所述的归档存储层定期从接入存储层拉取和存储新增实时数据,包括以下步骤:

301.归档存储层判断拉取的实时数据的时间间隔是否满足预设的时间粒度,若是,则执行步骤302;若否,则继续拉取实时数据;

302.归档存储层按照预设的数据块大小和时间顺序对实时数据进行分割,分割成多份独立的数据块,并按时间顺序排序;预设的数据块大小为块设备的写入操作最小单位的倍数;

303.归档存储层对所述独立数据块进行编码,生成独立数据块的编码,编码分为两部分,第一部分为位图编码,位图编码的位数为所述写入操作最小单位倍数;第二部分为独立数据块的实际数据;实际数据由多个大小为写入操作最小单位的数据组成;若位图编码中的某位的值为1,则实际数据包含该位对应的实际写入操作数据;若为位图编码中的某位的值为0,则该位无对应的实际写入操作数据;

304.归档存储层按预设的时间粒度和写的顺序编号对独立数据块的编码进行合并;若写的顺序编号大的独立数据块编码中位图编码的某位的值为1,合并完成的独立数据块的编码中的位图编码该位的值为1,并且该位所对应的实际数据为写的顺序编号大的独立数据块的编码的实际数据;若写的顺序编号大的独立数据块的编码中位图编码的某位的值为0,则只有写的顺序编号小的独立数据块的位图编码中的该位得值为1时,合并完成的独立数据块的编码的位图编码该位的值为1,并且该位所对应的实际数据为写的顺序编号小的独立数据块的编码的实际数据;

305.归档存储层按块设备的寻址范围对合并完成的数据块的编码进行分片,每个分片的寻址范围为预设的数据块大小的倍数,同一个分片包含多个独立数据块的编码,分片分布于不同的云端存储设备中;

306.归档存储层对块设备的写入数据生成两级索引,第一级索引包括块设备标识,及该块设备的数据块的编码的所有的时间粒度,其中块设备标识为键值;第二级索引包括块设备标识,一个时间粒度和该时间粒度对应的所有分片的存储位置,其中块设备标识与时间粒度为键值。

所述的归档存储层对块设备的写入数据生成两级索引,两级索引信息存储于元数据服务层。

一种数据存储与恢复方法,其特征在于:具体包括以下步骤;

501.用户通过交互方式选择块设备需要恢复数据的时间点;

502.归档存储层根据时间点和块设备的标识从一级索引查询到该块设备恢复到该时间点所需的所有的时间粒度;

503.归档存储层根据块设备标识,以及时间粒度,从二级索引查询到该时间粒度对应的所有分片的存储位置;

504.归档存储层将所有分片内的独立数据块的编码进行合并;

505.归档存储层将合并好的数据传输至块设备。

与现有技术相比,本发明的效果是积极明显的,具体地:

本发明将数据通过网络从数据块发送到云端设备。云端设备可以对数据进行分割,再次编码,合并形成任意时间粒度的数据。将任意时间粒度的数据按块设备的寻址范围进行分片,从而可以将数据分布于多个存储设备中。在恢复数据时,可根据索引获取任意恢复时刻所需要的所有时间粒度的数据块数据,可随时将分片内的独立数据块的编码进行合并。生成任意恢复时刻对应的所有数据。云端设备将存储层分为接入存储层和归档存储层,采用固态硬盘的接入存储层可以很有效地应对海量随机io写带来的性能问题。归档存储层及分片方式可以很有效的应对高吞吐io所带来海量存储量问题。

附图说明

图1为本发明的结构示意图;

图2为本发明的接入存储层写操作5元组示意图;

图3为本发明归档储存层拉取实时数据进行合并的流程图;

图4为本发明的对实时数据分割成独立的数据块的示意图;

图5为本发明归档储存层对独立数据块编码进行合并的示意图;

图6为本发明归档存储层对数据块编码进行分片的示意图;

图7为本发明中归档存储层生成的两级索引的示意图;

图8为本发明数据恢复方法的流程图。

具体实施方式

下面结合附图和具体实施例对本发明进行详细说明。

如图1所示,一种数据存储与恢复架构,其特征在于,包括通过网络相互连接的块设备与云端设备;所述的云端设备分为接入存储层,归档存储层和元数据服务层;所述的接入存储层执行块设备的写入操作,采用固态硬盘,所述的归档存储层定期从接入存储层拉取和存储新增实时数据,采用低速硬盘;所述的元数据服务层用于存储索引信息。

如图2所示,接入存储层执行块设备的写入操作,采用5元组方式,5元组包括:写的起始地址、写的大小、写的数据、写的顺序编号、写的时间戳。本实施例的5元组分别为:

写的起始地址:5120

写的大小:10240

写的数据:[a1a2a3a4a5a6a7a8a9a10a12a13a14a15a16]

写的顺序编号:1

写的时间戳:1501083462

如图3所示,所述的归档存储层定期从接入存储层拉取和存储新增实时数据,包括以下步骤;

301.归档存储层判断拉取的实时数据的时间间隔是否满足预设的时间粒度,若是,则执行步骤302;若否,则继续拉取实时数据;

302.图4示出了本发明中归档储存层如何按照预设的数据块大小将实时数据分割成多份独立的数据块,归档存储层按照预设的数据块大小对实时数据进行分割,分割成多份独立的数据块,并按写的顺序编号排序;预设的数据块大小为块设备的写入操作最小单位的倍数;

303.归档存储层对所述独立数据块进行编码,生成独立数据块的编码,编码分为两部分,第一部分为位图编码,位图编码的位数为所述写入操作最小单位倍数;第二部分为独立数据块的实际数据;实际数据由多个大小为写入操作最小单位的数据组成;若位图编码中的某位的值为1,则实际数据包含该位对应的实际写入操作数据;若为位图编码中的某位的值为0,则该位无对应的实际写入操作数据;

本实施例中独立数据块的大小设定为4096,则上述5元组可被分割和编码为:

顺序编号:1,起始地址:4096,位图:00001111,实际数据[a1a2a3a4]

顺序编号:1,起始地址:8192,位图:11111111,实际数据[a5a6a7a8a9a10a11a12]

顺序编号:1起始地址:12288,位图:11110000,实际数据[a13a14a15a16];

304.如图5所示,归档存储层按预设的时间粒度和写的顺序编号对独立数据块的编码进行合并;若写的顺序编号大的独立数据块编码中位图编码的某位的值为1,合并完成的独立数据块的编码中的位图编码该位的值为1,并且该位所对应的实际数据为写的顺序编号大的独立数据块的编码的实际数据;若写的顺序编号大的独立数据块的编码中位图编码的某位的值为0,则只有写的顺序编号小的独立数据块的位图编码中的该位得值为1时,合并完成的独立数据块的编码的位图编码该位的值为1,并且该位所对应的实际数据为写的顺序编号小的独立数据块的编码的实际数据。

本实施例中,多个独立数据块编码如下:

顺序编号:1,起始地址:4096,位图:00001111,实际数据[a1a2a3a4]

顺序编号:1,起始地址:8192,位图:11111111,实际数据[a5a6a7a8a9a10a11a12]

顺序编号:1,起始地址:12288,位图:11110000,实际数据[a13a14a15a16]

顺序编号:2,起始地址:4096,位图:00000011,实际数据[b3b4]

顺序编号:2,起始地址:8192,位图:11111111,实际数据[b5b6b7b8b9b10];

按步骤304,合并后的独立数据块编码如下:

顺序编号:2,起始地址:4096,位图:00001111,实际数据[a1a2b3b4]

顺序编号:2,起始地址:8192,位图:11111111,实际数据[b5b6b7b8b9b10a11a12]

顺序编号:2,起始地址:12288,位图:11110000,实际数据[a13a14a15a16];

305.如图6所示,归档存储层按块设备的寻址范围对合并完成的数据块的编码进行分片,每个分片的寻址范围为预设的数据块大小的倍数,同一个分片包含多个独立数据块的编码,分片分布于不同的云端存储设备中;

本实施例中块设备的寻址范围为1t,每个分片的寻址范围为1g,则可分为1024的分片,第1个分片的寻址范围是0-1g,第2个分片的寻址范围是1-2g,第1024个分片的寻址范围是1023-1024g;

306.如图7所示,归档存储层对块设备的写入数据生成两级索引,第一级索引包括块设备标识,及该块设备的数据块的编码的所有的时间粒度,其中块设备标识为键值;第二级索引包括块设备标识,一个时间粒度和该时间粒度对应的所有分片的存储位置,其中块设备标识与时间粒度为键值。

所述的归档存储层对块设备的写入数据生成两级索引,存储于元数据服务层。

如图8所示,一种数据存储与恢复方法,其特征在于:具体包括以下步骤;

步骤501.用户通过交互方式选择块设备需要恢复数据的时间点;

步骤502.归档存储层根据时间点和块设备的标识从一级索引查询到该块设备恢复到该时间点所需的所有的时间粒度;

步骤503.归档存储层根据块设备标识,以及时间粒度,从二级索引查询到该时间粒度对应的所有分片的存储位置;

步骤504.归档存储层将所有分片内的独立数据块的编码进行合并;

步骤505.归档存储层将合并好的数据传输至块设备。

当然,上述说明并非是对本发明的限制,本发明也并不仅限于上述举例,本技术领域的普通技术人员在本发明的实质范围内做出的变化、改型、添加或替换,也应属于本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1