专利名称:一种持续数据保护系统及其实现方法
技术领域:
本发明涉及数据保护技术领域,更具体地,本发明涉及一种持续数据
保护(Continuous Data Protection, CDP)系统及其实现方法。
背景技术:
CDP技术是一种数据连续时间点保护技术,用来解决传统快照-*数 据保护技术中费时的数据*和低效的恢复能力的问题。目前,根据数据 保护粒度,CDP技术分为准CDP (Near CDP)技术和真CDP (True CDP)技 术。准CDP技术采用快照技术,在某一个时间点对源数据作一个只读快照, 是当时数据的一个静态映像,仅反映做快照时间点的数据情况,在运行时, 可以定时作快照,也可以手工做快照,当读取历史版本数据时,只能访问 快照时间点的数据,属于离散数据保护技术,数据保护的粒度依赖于快照 的频度,真CDP技术是采用每次写进行数据拷贝的技术, 一般只提供单一 粒度的保护支持,数据写入到持久空间(Permanent Storage, PS)时执行 C0W操作,将原始数据W,再写入新的数据,然后在元数据空间(Metadata Storage, MS)中做数据变动记录,方便以后的查找,数据保护粒度为每次 更新操作,可恢复时间点是连续的。
上述两种技术对数据保护没有进行分级,为了实现全数据的任意时间 点的CDP,则需要巨大的存储空间。从数据生命周期的角度看CDP,可以发 现, 一方面,数据具有不同的重要性等级;另一方面,数据的存储行为是不均匀的,数据访问行为符合80/20原则,在大多数情况下,80%的访问集 中在20%的数据上,现有技术中对数据采用同等存储代价进行保存,忽略 这种差异性,导致数据持续保护可靠性的降低和巨大数据存储量的需求。
发明内容
为克服现有技术中持续数据保护可靠性差和数据存储量需求大的缺 陷,本发明提出了一种持续数据保护系统及其实现方法。
根据本发明的一个方面,提供一种持续数据保护系统,包括
管理工具模块,所述管理工具模块负责向内核空间中主体模块发出逻 辑设备创建和删除命令,由主体模块完成具体任务;
物理设备,所述物理i殳备为存储i更备,用于存放元数据和用户数据;
主体模块,所述主体模块由时间戳空间TS、元数据空间MS和持久空 间PS子模块组成;当所述管理工具模块的创建命令发送给主体模块时,所 述主g块在内核空间中创建出一个逻辑块i殳备LD设备,所述TS, MS和 PS与逻辑块设备建立关系,当外部应用通过LD设备进行读写操作时,主 体模块负责数据在TS, PS上的转发和元数据的记录;
所述系统对最近时间段内的数据采用所述TS连续保护,超出TS的时 间段数据,将TS段内的数据合并存储到PS,其中,所述最近时间段的长 度由所述TS的大小确定,所述PS使用原位置写方式存储,逻辑空间与所 述逻辑设备一一映射。
其中,所述TS提供时间戳,标记不同时间的历史数据,采用可恢复日 志方式记录每次数据更新,所述TS使用回收策略,保证空间在被回收前将 数据写到所述PS上。
其中,所述MS用于存储带有时间信息的逻辑地址到物理地址的映射
表,所述MS采用日志方式记录和循环使用方式。
其中,所述PS提供持久数据的存储,通过数据合并迁移机制、连续远 程复制机制提供不同时间粒度的数据保护支持。
其中,所述系统可以是一种可以堆叠使用的结构。
其中,在所述系统的一个逻辑设备中,可以使用另一个逻辑设备代替 所述一个逻辑设备中的PS或者TS。
其中,多个逻辑i殳备可以采用设备间堆叠,所述多个LD设备进行横向 层次堆叠,层次中每一个LD设备具有不同的保护粒度,各LD设备之间没 有直接关系;或者多个LD设备可以采用设备内堆叠,所述多个LD设备进 行纵向层次堆叠,每一个层次具有不同的保护粒度,下层LD的保护粒度为 上层保护粒度的倍数;或者多个LD设备可以同时具有所述设备间堆叠和所 述设备内堆叠;
其中,不同的堆叠方式可以提供不同等级的数据保护和不同长短的恢 复时间。
根据本发明的另一方面,提供一种持续数据保护的方法,包括
步骤10)、用户4吏用管理工具模块创建带有时间戳空间TS的逻辑设 备LD,接收用户请求;
步骤20)、如果所述用户请求是读请求,根据元数据空间MS中的元 数据判断数据位置;如果数据在时间戳空间TS上,将所述用户请求转发到 所述TS,否则,转发到持久空间PS;
步骤30)、如果所述用户请求是写请求,首先根据设定的所述逻辑设 备LD数据记录方式进行元数据记录,然后将数据写入到所述TS,根据设 定的LD设4^数据连续复制方式启动数据复制,写元数据到所述MS中,如 果所述TS资源不足,启动所述TS到所述PS的数据合并过程。
其中,所述逻辑设备LD支持多种数据历史记录方式,包括周期记录、 每写记录和应用驱动记录,所述数据历史记录方式在创建所述逻辑设备时 指定。
其中,TS可以釆用循环使用方式进行数据变动记录,当使用到所述TS 尾部时,重新从所述TS头部开始记录。
其中,当创建所述LD时,根据用户对数据的可靠性要求,配置数据复 制方式为同步复制方式或者异步复制方式,在所述LD内部建立远程设备 名,不区分本地盘和网络盘,当TS产生元数据记录时,触发数据连续复制 过程。
其中,所述方法进一步包括如果数据复制方式是同步复制方式,数 据同时采用镜像方式分别写入到本地盘和网络盘中,等两个写都返回后, 返回给用户;如果数据复制方式是异步方式,数据先写入本地TS,同时将 数据挂接到异步复制链表中,唤醒异步复制进程。
其中,在准备阶段,标识写元数据开始标志,然后将元数据映射表写 入MS中;在提交阶段,确定元数据均已写入MS后,标识写元数据结束标 志,提交该时刻的元^L据,该时刻的元数据有效。
其中,所述TS进行数据合并时,同时使用正常读写时使用的读写空间 和合并数据时使用的合并空间,进行细粒度到粗粒度的合并操作。
其中,步骤20)中,在LD设备创建时,只构建所述LD设备映射表的 初始一部分,用于用户使用所述LD设备;当访问到LD设备未构建的映射 表部分时,触发在线映射表构建过程。
其中,步骤20)中,当用户读取某一个时间版本的数据时,创建所述 时间版本的块设备,构造所述时间版本的逻辑地址到物理地址的映射关系 表,用户通过所述映射关系表读取数据。
其中,步骤20)中,当用户扫描元数据的重构时间版^t据映射表时, 以离所述所读数据的时间戳最近的一个时间版本为起点向前遍历,如果在 遍历的元数据映射表中找到所述数据的映射关系,到所述映射关系指定的 设备读取所述数据;如果未发现映射关系,则到所述PS中读取数据。
使用本发明,按照数据访问频度和数据等级的不同,将最近访问和重 要的数据采用细粒度的CDP技术,不经常访问和非重要的数据采用粗粒度 的备份保护技术,使得可以支持不同保护粒度的持续数据保护,并且通过 灵活的堆栈结构,在不降低对数据持续保护的可靠性的同时减少数据存储 量的需求。
图l是可层叠持续数据保护系统结构图2是逻辑i殳备结构图3是设备间堆叠组织图4是设备内堆叠组织图5是混合堆叠组织图6是LD设^^读写流程图7是连续数据复制示意图8是无检查点元数据格式图9是有检查点元数据格式图IO是写元数据流程图11是读版本数据^^图。
具体实施方式
下面结合附图和具体实施例,对本发明提供的一种持续数据保护系统 及其实现方法作进一步说明。
在根据本发明的一个实施例中,持续数据保护(Continuous Data Protection, CDP)系统如图1所示,所述CDP系统包括管理工具模块、主 体模块和物理i殳备。物理i殳备是指CDP系统的存^i殳备,用于存放元数据 和用户数据,也是CDP系统最终的数据存放设备。管理工具模块由一组用 户空间的命令组成,负责内核空间主体模块中的创建/删除等管理工作。主 体模块由时间戳空间(Timestamp Storage, TS)、元数据空间(Metadata Storage, MS)和持久空间(Permanent Storage, PS)三个子模块组成,三个 子模块功能相对独立,通过核心数据结构进行交互,如图2所示,逻辑设 备提供指定时间点的数据访问,
用户工具发出创建命令,创建命令附带一些参数,包括TS、 MS、 PS 的物理设备名、模式。创建命令发送给主体模块,主体模块使用这些参数 在内核中创建出一个块设备,并将TS, MS和PS与块设备建立关系,这个 时候主体模块对外表现为一个设备,称为逻辑设备(LD设备)。
用户通过管理工具模块进行主体模块的管理,管理工具模块将用户的 请求发往CDP系统的主,块,主体模块按照要求,通过读、写操作进行 访问,实现CDP系统的数据读、写和存储;在主体模块使用时,用户直接 对主体模块进行读写操作,主体模块负责数据更新记录和保存等操作,最 终将数据存放在物理设备上。
在LD设备中,每一个子模块可以表述为一个存储空间和一组对该空间 进行操作的方法构成的对象。
TS用于存储细粒度的数据保护,提供时间戳,标记不同时间的历史数 据。TS存储最新写入的数据,采用可恢复日志方式记录每次数据更新;TS 的空间是重复利用的,使用回收策略,保证空间在被回收前将数据写到PS 上;TS采用远程复制技术将每次更新保存到远程存储点。在本实施例的CDP 设计中,考虑数据的保护性要求是随时间变化的,因此只对最近时间段内 的数据采用连续保护(这个时间段的长短根据TS大小来决定),这个依赖 于TS,在超出TS的时间段的数据,采用了非连续保护,将TS内的数据合 并存储到PS上,节约存储空间。
MS用于存储带有时间信息的逻辑地址到物理地址的映射表;MS采用日 志方式记录,每次新写记录在上次写之后;MS采用循环使用方式,当MS 空间不足时,从开始使用。
PS用于粗粒度的数据保护,提供持久数据的存储,通过数据合并迁移 机制、连续远程复制等技术提供不同时间粒度的数据保护支持;语义上PS 与LD的逻辑空间一致;当读写时,语义上是对PS进行访问;PS使用原位 置写方式存储,逻辑空间与LD—一映射;PS采用^^技a供数据保护。
当发生数据读写操作时,三个子M之间产生互动,用户请求先ii/v 到TS,通过TS的逻辑确定数据是否要产生元数据记录,然后将数据转发 给PS。
所述CDP系统为一种可堆叠持续凝:据保护(SCDP)系统,所述SCDP 系统有两种构建方式, 一种是LD单设备模式,另一种是LD设备堆叠模式。
单设备模式首先创建一个逻辑设备LD,每个LD设备包括TS, MS和 PS;对LD设备进M写操作,在写操作过程中记录发生变化的数据和描述 数据变化的元数据;当LD不再使用时,执行删除操作。
例如,系统在TO时刻创建了一个LD设备,然后对其进行读写操作, 此时按照数据变动记录、数据连续复制、历史版本元数据的记录和持久数 据记^it作,产生持续数据变更记录。
当运行到Tn时刻时,用户想获取Tx (0<x<n)时刻的数据,创建带有 Tx时戳空间TS的LDx设备;读取LDx数据;当完成操作后,删除LDx设 备。
在SCDP的LD单设备模式时,可以提供两种保护粒度支持TS提供细 粒度保护,PS提供H^立度保护。 多设备堆叠模式
为了提供更多保护粒度的支持,在根据本发明的另一实施例中,SCDP 被设计为一种易于堆叠使用的结构,通过PS或者TS进行堆叠,形成层叠 持续数据保护系统。其基本思路是在一个LD中,使用另一个LD设^f戈替 前述一个LD的PS或者TS;多个LD设备可以按照下述三种堆叠方式进行 组合,实现不同保护粒度的^t据持续保护
1) 、设备间堆叠(Intra-Stack)
参见图3,多个LD设备进行横向层次(tier)堆叠,层次中每一个LD 设备具有不同的保护粒度,各LD设备之间没有直接关系;
2) 、设备内堆叠(Inter-Stack)
参见图4,多个LD设备进行纵向层次(layer)堆叠,每一个层次具 有不同的保护粒度,下层LD的保护粒度为上层保护粒度的倍数;
3) 、混合堆叠(Mixed-Stack)
参见图5,混合堆叠同时具有设备间堆叠和设备内堆叠。 不同的堆叠方式提供不同等级的数椐保护和不同长短的恢复时间。例 如,设备间堆叠方式可以采用三^储构成,第一级采用高端设备,TS使 用每次写CDP和同步远程镜像连续复制策略,用于M最重要数据,第一 级设备可提供任意时间点数据恢复和极短的恢复时间,并且可以容忍站点 失效;第二级采用中端i殳备,TS4吏用定时CDP和异步连续复制策略,提供
中等级的数据保护;第三级可以不使用CDP技术,采用^^对PS数据进行 保护,用于存放非重要数据。
设备内堆叠方式提供层次间相关的一种多保护粒度的组织方式,当PS 采用LD设备时,下层LD的保护粒度由上层LD的TS回收策略决定,例如 上层TS为保护粒度1秒,TS向PS写的粒度为300秒,则下层LD的保护 粒度为300秒。
通过多层叠加,SCDP几乎可以回滚到任意时间点的数据状态,使得仅 有少量数据或没有数据丟失,从而具有较短的恢复时间。
SCDP系统依靠下列过程完成整体功能的实现,主要包括数据变动记 录、数据连续复制、历史版本元数据的记录、持久数据记录和历史版本数 据获取。
SCDP系统运行的总体原则
1) 、 SCDP采用Linux块设备驱动模块的方式实现,可以与普通的块 设备层叠使用;
2) 、 PS、 MS和TS的存储空间均为标准块i更备,LD、 TS和PS间采用 转发的方式下传数据,访问方法在LD主框架中实现;
3) 、当访问历史版^lt据时,导出为一个块设备,通过标准的读操作 访问该时间点数据;
4) 、 LD设备在创建时指定参数数据记录方式和数据连续复制方式。 如图6所示,读写LD设备流程如下
如果是读请求,根据MS中的元数据判断数据位置;如果数据在TS上, 则将请求转发到TS;否则转发到PS上;
如果是写请求,根据设定的LD设备数据记录方式进行元数据记录(数
据变更记录);将数据写入到TS中,根据设定的LD设备数据连续复制方 式启动数据复制(数据连续复制);写元数据到MS中(元数据记录);如 果TS资源不足,启动TS到PS的数据合并过程(持久数据记录)。 数据变动记录
按照数据保护粒度的不同,LD支持多种数据历史记录方式,包括周期 记录(Period)、每写i己录(Every write )和应用鸟区动记录(Event-based), 通过创建设备时指定。周期记录(Period)指等时间粒度的自动记录,每 个更新周期内暂存此周期内写入的数据,对重复写的数据进行合并,在下 一周期开始时写入到TS中,该周期内的所有数据具有相同的版本;每写记 录(Every write)指每次写操作都被记录,将每次写同步写入到TS中, 每次写均产生一个数据版本;应用驱动记录(Event-based)指有应用驱动 进行记录,下层提供应用程序接口,上层应用才艮据自己的一致性语义调用 应用程序接口写入版^^ft息。
在LD的内部逻辑上,数据写入时,首先写到TS上,为了提高写性能, TS可以采用IRAM或SSD等高速设备,记录方式采用日志方式;根据数据 版本产生方式,当需要记录版本时,将该版本的元数据写入到MS上;当 TS耗尽或到达PS数据保护粒度时,将数据从TS迁移到PS上。为了不影 响系统的性能,此时需要多版M存(Cache)技术或緩存(Cache)回调 技术。TS采用循环4吏用方式,当使用到尾部时重新从设备头部开始记录。
数据写流程如下
1) 、 LD监控磁盘IO请求,将写请求转发到TS;
2) 、 TS采用日志(Log)方式记录数据,每次更新均追加到新的存储 空间上;
3) 、如果是每写记录方式,则每次写都产生一个元数据记录,写入到
MS上;
4) 、如果是周期记录方式,在TS中则维护一个44^,在一个周期内 的写将延迟到下一个周期到达时再写入到TS中,此时在本周期内的多次重 复写只会产生一个元数据记录,在一个周期内的所有写操作都具有相同的
时间戳;
5) 、如果是应用驱动记录方式,则按照应用的显示语义触发元数据记 录操作,否则不进行记录,应用驱动的方式为开始,数据读写,结束;
在一个开始一结束时间段内的所有写操作会产生一个相同时间版本的元数 数据连续复制
如图7所示,数据连续复制由TS触发,根据对数据可靠性要求不同, TS数据连续复制包括同步复制和异步复制两种方式,同步复制适用于同一
地点的高速设备;异步复制适用于不同地点的存储设备,此时传输延迟会
降低系统性能。
同步复制提供严格的数据一致性,适用于高数据可靠性要求的应用领
域;异步复制数据一致性保证低于同步复制,但是对物理介质的要求相对
降低,具有成本优势,适用于大多数应用领域。 同步复制流程
TS收到新写请求时,
1) 将数据采用镜像的方式同步写入到TS和远端存^fti殳备;
2) 当两个写均正确返回时,TS向上层返回写正确信息;
3) 若远端写失败,重复写N次,仍然失败,则向上层返回写g信息。 异步复制流程
1) TS先写入到本M储中;
2) 写入本地正确返回时,启动异步写进程;
3) 异步写进程将数据复制到远端存储中。
当TS根据数据变更记录方式产生元数据记录时,同时触发数据连续复 制过程,根据复制策略选择;如果是同步复制方式,数据同时采用镜像方 式分別写入到两个设备中,等两个写都返回后,此次写操作最后返回给用 户;当采用异步方式时,数据先写入本地TS,同时将数据挂接到异步复制 链表中,唤醒异步复制进程,异步复制进程执行完后通过回调函数通知主 进程结果。
历史版本元数据的记录
MS保存历史版本数据信息,采用时间戳(timestamp)和地址作为记 录项,当某个数据更新时,其版本信息记录到元数据i殳备上。MS记录数据 更新信息,采用如下三元组作为记录项元数据项信息 <时间戳,逻辑地 址,物理地址>。
记录时机
1) 、每写方式在每个写操作到来时,为数据产生一个版本,同时在 MS上记录其元数据;
2) 、周期方式在时刻Tx到达时,将Tx-l至Tx时间段之间的写操 作合并然后写入TS,产生时刻Tx的版本,同时记录合并后所有写操作的 元数据;
3) 、用户驱动方式由用户显示发出记录版本事件驱动。 记录过程
以定时更新为例,在时刻Tx到达时,将Tx-l至Tx时间段之间的写操
作合并,再写入TS中;数据写入TS时,需要为这些版本数据建立映射关 系;时刻Tx的所有版本数据的映射关系组成一个元数据映射表,每个时刻 的元数据映射表以追加写的方式写入元数据磁盘的MS中。 元数据与数据的一致性
元数据记录过程如图IO所示,采用先将所有版本数据写入TS,再将 元数据映射表写入MS的策略,此外,在TS和MS中都采用日志的追加写方 式。因此,如果在Tx时刻记录版^据过程中系统失效,因为新的元数据 映射表尚未写入MS,则可以通过以前的元数据映射表访问到以前的数据。
每个时刻的元数据映射表或者全写下去,或者全部不写,用来保证元 数据与数据的一致性。
具体地,采用以下的两阶段提交技术来保证写元数据的一致性
A、 在准备阶段,标识写元数据开始标志,然后开始将元数据映射表写 入MS中;
B、 在提交阶段,在确定元数据均已写入MS之后,标识写元数据结束 标志,提交该时刻的元数据,该时刻的元数据有效。
对元数据采用追加写的日志方式,在访问元数据时只访问有效的元数 据(元数据的起始和结束标记一致的元数据),首先查找最新的元数据, 如果无效,则反向查找,直到查到一个最近的有效元数据。 如图10所示,写元数据流程如下
1、 当LD写TS时,触发元数据写操作;
2、 此时将映射表中所有具有Tx时间戳的映射关系项构成x时刻的元 数据映射表(醒Tx);
3、 在元数据设备上为MMTx分配空间,置元数据写开始标志;
4、 将鹿Tx写入到分配的空间。
写完元数据后,置元lt据写结束标志,如果结束标志与开始标志匹配,
则该MMTx是一个有效MMT。 持久数据记录
为了减少数据存储空间,提高存储利用率,定时将TS中的数据进行合 并,写入到PS中去。
当PS是LD时,此时会产生一个较大粒度的历史数据版本记录。例如, TS的保护粒度为1秒钟,PS合并粒度为5分钟时,PS会将5分钟内的TS 数据进行合并,形成5分钟保护粒度的历史数据版本。
当PS是物理设备时,采取原位置写方式,此时最新的数据将覆盖旧数 据,只絲最新的数据。
将TS的数据合并到PS时,会产生大量的数据读写操作,为了减少该 过程对正常读写的影响,在实现中采用异步合并的技术。
具体而言,为了减少合并数据对读写的影响,采用如下技术
1 )、 TS使用两份空间读写空间(RWSpace)和合并空间(MergeSpace), 正常读写时使用的空间称为读写空间(RWSpace),合并数据时使用的空间称 为合并空间(MergeSpace),两者在物理上没有区别,只是在逻辑语义上有 所区别;
2) 、当需要进行数据合并时,将RWSpace与MergeSpace切换,此时 RWSpace含有需务^并的最新数据,作为MergeSpace ^f吏用,原MergeSpace 作为RWSpace,此交换过程随着系统运行会不断进行;
3) 、采用一个独立的合并线程,与读写操作可以并发执行;
4) 、异步线程遍历MergeSpace对应的元数据映射表,按照逻辑地址, 将PS时间粒度内最新写的数据写入到PS中,在PS内重复写的多份数据最
终只保留最新的数据,减少了数据存储空间使用;
5 )、如果PS使用LD设备,则LD会按照PS的数据保护粒度加入新时 间戳写入到PS中,每次写会产生一个PS粒度的数据版本;
6)、如果PS使用普通物理设备,则最后只保留最新数据。
历史版本数据获取
SCDP以块设备的方式向用户提供具体某一历史时间版本的数据,当用 户需要读取某一个时间版本的数据时,SCDP根据给定的时间,通过MS构 建其版本数据映射关系,对外表现为一个块设备,用户通过访问该块设备 来读取指定时间版本的数据。
读取某一时间版M据的基本过程当用户需要读取某一个时间版本 的数据时,首先需要创建一个指定时间版本的块设备,在创建的过程中, SCDP扫描MS中的元数据映射表,构造该时间版本的逻辑地址到物理地址 的映射关系表(LPmap);用户对该设备的读操作通过LPmap读取数据。
扫描元数据的重构时间版;Mt据映射表的过程根据所读的数据的时 间戳,找到离该时间戳最近的一个时间版本,以此时间版本为起始点,向 前遍历(历史最久),如果在遍历的元数据映射表中找到该数据的映射关 系,则到映射关系所指定的设备读取数据;如&亀历完毕l良现映射关系, 则到PS中读取数据,在MS扫描过程中,为了减少扫描长度,釆用定时创 建检查点的策略。
为了便于更详细描述,首先给出两个定义
元数据映射表醒T:时刻Tx到达时,需要将Tx-l至Tx时间段间的写 操作都写入TS,产生一个版本;将数据写入TS时,需要为这些版^lt据 建立映射关系,该时间段的所有映射关系元数据组成一个元数据映射表,
称为MMTx。
完整元数据"CMT:记录某一时刻Tx的所有逻辑块的映射关系的元 数据映射表,称为CMTx。
元lt据区由多个醒T组成,元数据采用的是日志结构的追加写方式, 因此所有的醒T是按照时间排序的,在磁盘中的格式如图8所示。
扫描元数据重构某一时间版本的元数据M,就是要重构该时间版本 的完整元数据^CMT, CMT重构成功后,需要读取该时间版本的数据时, 先从CMT中取到逻辑块的映射关系,再到映射关系所指定的物理块中读取 数据。
为减少被扫描的画T的个数,加快重构过程,采用定期生成检查点技 术。在每个检查点重构生成一个CMT,写入元数据磁盘中,添加了检查点 后,元数据在磁盘中的格式修改如图9所示。
CMT的基本重构过程如下
1) 、要重构时刻Tx的CMTx,首先在元数据磁盘中扫描到与时刻Tx 最接近的时刻Ty, Ty的元数据映射表MMTy,对每一个数据块P,所述数据 块是指可分配物理资源的最小单位,也称为映射粒度;
2) 、如果醒Ty中存在该数据块的映射关系,取该映射关系填入CMT
中;
3) 、否则,逆序查找醒Ty-l,醒Ty-2,…,腹T1,如果在这些元 数据映射表中存在该数据块的映射关系,取其映射关系填入CMT中;
4) 、如果均没有查找到,说明该数据块在上一次写入PS后没有被写 过,将其在ps中的映射地址填入重构的CMT中。
如图11所示,时间点Tx数据读取具体流程如下 1)、应用读请求到达;
2) 、如果时刻Tx的完整元数据链表已经构造,则转步骤9 );
3) 、在元数据/ t盘中扫描与Tx时刻最接近的时刻Ty;
4) 、对每一个逻辑块P,进行以下^Mt;
5) 、逆序查找元数据映射表MMTy,MMTy-l,...,醒Tk,直到查找到一个检 查点CMTz;
6) 、如果在某个MMTi中存在P的映射关系,则把该映射块信息填入CMTx
中;
7) 、如果上述所有的謹T中都不存在映射关系,则把P在CMTz中的映 射关系填入到CMTx中;
8) 、如果CMTx没有构造完毕,则转步骤4);
9) 、在CMTx中读取所读逻辑块的映射关系;
10) 、将该逻辑块请求重定向到映射关系所指的物理块中读取数据。 最后应说明的是,以上实施例仅用以说明本发明的技术方案而非对其
限制,并且在应用上可以延伸到其他的修改、变化、应用和实施例,同时 认为所有这样的修改、变化、应用、实施例都在本发明的精神和范围内。
权利要求
1、一种持续数据保护系统,包括管理工具模块,所述管理工具模块负责向内核空间中主体模块发出逻辑设备创建和删除命令,由主体模块完成具体任务;物理设备,所述物理设备为存储设备,用于存放元数据和用户数据;主体模块,所述主体模块由时间戳空间TS、元数据空间MS和持久空间PS子模块组成;当所述管理工具模块的创建命令发送给主体模块时,所述主体模块在内核空间中创建出一个逻辑块设备LD设备,所述TS,MS和PS与逻辑块设备建立关系,当外部应用通过LD设备进行读写操作时,主体模块负责数据在TS,PS上的转发和元数据的记录;所述系统对最近时间段内的数据采用所述TS连续保护,超出TS的时间段数据,将TS段内的数据合并存储到PS,其中,所述最近时间段的长度由所述TS的大小确定,所述PS使用原位置写方式存储,逻辑空间与所述逻辑设备一一映射。
2、 权利要求l的系统,其中,所述TS提供时间戳,标记不同时间的 历史数据,采用可恢复日志方式记录每次数据更新,所述TS使用回收策略, 保证空间在被回收前将数据写到所述PS上,
3、 权利要求l的系统,其中,所述MS用于存储带有时间信息的逻辑 地址到物理地址的映射表,所述MS采用日志方式记录和循环使用方式。
4、 权利要求l的系统,其中,所述PS提供持久数据的存储,通过数 据合并迁移机制、连续远程复制机制提供不同时间粒度的数据保护支持。
5、 权利要求l的系统,其中,所述系统可以是一种可以堆叠使用的结构。
6、 权利要求l的系统,其中,在所述系统的一个逻辑设备中,可以使 用另 一个逻辑设备代替所述一个逻辑设备中的PS或者TS。
7、 权利要求6的系统,其中,多个逻辑设备可以采用设备间堆叠,所 述多个LD设备进行横向层次堆叠,层次中每一个LD设备具有不同的保护 粒度,各LD设备之间没有直接关系;或者多个LD设备可以采用设备内堆 叠,所述多个LD设备进行纵向层次堆叠,每一个层次具有不同的保护粒度, 下层LD的保护粒度为上层保护粒度的倍数;或者多个LD设备可以同时具 有所述设备间堆叠和所述设备内堆叠;其中,不同的堆叠方式可以提供不同等级的数据保护和不同长短的恢 复时间。
8、 一种持续数据保护的方法,包括步骤10)、用户使用管理工具模块创建带有时间戳空间TS的逻辑设 备LD,接收用户请求;步骤20)、如果所述用户请求是读请求,根据元数据空间MS中的元 数据判断数据位置;如果数据在时间戳空间TS上,将所述用户请求转发到 所述TS,否则,转发到持久空间PS;步骤30)、如果所述用户请求是写请求,首先根据设定的所述逻辑设 备LD数据记录方式进行元数据记录,然后将数据写入到所述TS,根据设 定的LD设备数据连续复制方式启动数据复制,写元数据到所述MS中,如 果所述TS资源不足,启动所述TS到所述PS的数据合并过程。
9、 权利要求8的方法,其中,所述逻辑设备LD支持多种数据历史记 录方式,包括周期记录、每写记录和应用驱动记录,所迷数据历史记录方 式在创建所述逻辑设备时指定。
10、 权利要求8的方法,其中,TS可以采用循环使用方式进行数据变 动记录,当^^吏用到所述TS尾部时,重新从所述TS头部开始记录。
11、 权利要求8的方法,其中,当创建所述LD时,根据用户对数据的 可靠性要求,配置数据复制方式为同步复制方式或者异步复制方式,在所 述LD内部建立远程设备名,不区分本地盘和网络盘,当TS产生元数据记 录时,触发数据连续复制过程。
12、 权利要求ll的方法,其中,所述方法进一步包括如果数据复制 方式是同步复制方式,数据同时采用镜像方式分别写入到本地盘和网络盘 中,等两个写都返回后,返回给用户;如果数据复制方式是异步方式,数 据先写入本地TS,同时将数据挂接到异步复制^中,唤醒异步复制进程。
13、 权利要求8的方法,其中,在准备阶段,标识写元数据开始标志, 然后将元数据映射表写入MS中;在提交阶段,确定元数据均已写入MS后, 标识写元数据结束标志,提交该时刻的元数据,该时刻的元数据有效。
14、 权利要求8的方法,其中,所述TS进行数据合并时,同时使用正 常读写时使用的读写空间和合并数据时使用的合并空间,进行细粒度到粗 粒度的合并操作。
15、 权利要求8的方法,其中,步骤20)中,在LD设备创建时,只 构建所述LD设备映射表的初始一部分,用于用户使用所述LD设备;当访 问到LD设备未构建的映射表部分时,触发在线映射表构建过程。
16、 权利要求8的方法,其中,步骤20)中,当用户读取某一个时间 版本的数据时,创建所述时间版本的块设备,构造所述时间版本的逻辑地 址到物理地址的映射关系表,用户通过所述映射关系表读取数据。
17、 权利要求8的方法,其中,步骤20)中,当用户扫描元数据的重 构时间版M据映射表时,以离所述所读数据的时间戳最近的一个时间版 本为起点向前遍历,如果在遍历的元数据映射表中找到所述数据的映射关 系,到所述映射关系指定的设备读取所述数据;如果未发现映射关系,贝,J 到所述PS中读取数据。
全文摘要
本发明提出了一种持续数据保护(Continuous Data Protection CDP)系统及其实现方法,所述系统包括管理工具模块、主体模块和物理设备,所述系统可以进行灵活的堆栈。使用管理工具模块建立带有时间点的主体模块,并对主体模块进行读、写和存储操作,按照数据访问频度和数据等级的不同,将最近访问和重要的数据采用细粒度的CDP技术,不经常访问和非重要的数据采用粗粒度的备份保护技术,使得可以支持不同保护粒度的持续数据保护,并且通过灵活的堆栈结构,在不降低对数据持续保护的可靠性的同时减少数据存储量的需求。
文档编号G06F17/30GK101187948SQ20071030366
公开日2008年5月28日 申请日期2007年12月20日 优先权日2007年12月20日
发明者吴忠杰, 朱旭东, 剑 柯, 许金萍 申请人:中国科学院计算技术研究所