一种改进的写时拷贝快照方法及系统的制作方法

文档序号:9547047阅读:225来源:国知局
一种改进的写时拷贝快照方法及系统的制作方法
【技术领域】
[0001]本申请涉及计算机数据存储技术领域,尤其涉及一种改进的写时拷贝快照方法及系统。
【背景技术】
[0002]信息技术的加速发展,使得企业的关键业务数据的规模日益膨胀,企业不仅要求存储容量越来越大,对数据安全的要求以及响应要求也越来越高。随着存储应用需求的提高,用户需要在线的备份和保护数据。快照(Snapshot)技术是一种有效地在线数据保护方法,能够快速的实现在线数据备份。快照是指定数据集合的一个完全可用拷贝,该拷贝包括指定数据集合在某个时间点的映像。指定数据集合称为源卷,某个时间点的映像称为快照卷。
[0003]目前的快照技术主要有两种:写时拷贝(COW,Copy-On-ffrite)和重定向写(R0W,Redirect-On-ffrite)。其中写时拷贝技术在创建快照时,不进行任何数据拷贝,仅需为源数据区初始化快照引用指针索引,标识该时间点的数据实际所处位置,瞬间即可完成创建写时拷贝快照。因此,写时拷贝技术占用空间小,创建速度快,且对源数据区访问性能影响较小,广泛应用于各种快照系统中。
[0004]写时拷贝技术按指定大小单元将源数据区划分为若干数据块(chunk),数据块是快照处理数据的基本单位。写时拷贝的原理如下:创建写时拷贝快照后,当源卷收到写数据请求时,存储系统首先查找快照引用指针索引,判断源卷待修改的数据块是否建立了引用指针,若该数据块未建立引用指针,则先将该数据块拷贝到快照卷,并建立该数据块的引用指针,然后更新源卷数据块;若该数据块已经建立了引用指针,则表示该数据块已经拷贝到快照数据区,可直接更新该数据块。这样快照数据区就备份了源卷快照后所有的更改数据,即生成了源卷在快照创建时间点的映像。
[0005]独立冗余磁盘阵列系统(RAID)是一种把多块独立的磁盘按不同的方式组合起来形成一个磁盘组(逻辑卷),从而提供比单个磁盘更高的存储性能和提供数据冗余保护的技术。RAID技术的原理,就是把数据和相对应的奇偶校验信息以条带的形式存储到组成RAID系统的各个磁盘上,并且奇偶校验信息和相对应的数据分别存储于不同的磁盘上。当RAID系统的一个磁盘数据发生损坏后,利用剩下的数据和相应的奇偶校验信息去恢复被损坏的数据。
[0006]现有的写时拷贝快照的实现流程如图1所示,其中涉及的模块交互如图2所示。现有的写时拷贝快照的实现流程包括:
[0007]步骤101:快照模块201接收到第一写10时,先把第一写10放在等待队列;
[0008]步骤102:快照模块201生成用于读取写10所对应的源卷的原有数据的第一读10,下发所述第一读10到缓存模块202,缓存模块202将第一读10下发到RAID模块203,RAID模块203从源卷204读取数据返回给缓存模块202,缓存模块202再将所述数据返回给快照模块201 ;
[0009]步骤103:快照模块201生成将读取的数据写入快照卷205的第二写10,下发第二写10到缓存模块202,由缓存模块202将第二写10下发到RAID模块203,最后由RAID模块203将数据写入快照卷205,然后将写成功消息返回给缓存模块202,由缓存模块202返回给快照模块201 ;
[0010]步骤104:快照模块201将放在等待队列的第一写10下发到缓存模块202,由缓存模块202下发到RAID模块203,最后由RAID模块203写入源卷204。
[0011]步骤105:RAID模块203将写成功消息返回给缓存模块202,由缓存模块202返回给快照模块201。
[0012]至此,一个快照10的业务全部完成,继续下一个快照10业务。
[0013]现有的写时拷贝快照方法中,当有快照业务时,存储系统需要先将新接收到的数据所对应的源卷原有的数据读出来,然后将源卷原有的数据写入快照卷,再将新接收到的数据写入源卷,这样,每进行一次写时拷贝操作,需要一个读10和两个写10,10数量增多,流程复杂,需要多个模块之间多次交互,响应时间很慢,快照性能难以提高。

【发明内容】

[0014]本申请提供了一种改进的写时拷贝快照方法及系统,减少了模块之间的交互,可以极大提升快照性能。
[0015]本申请实施例提供的一种改进的写时拷贝快照方法,快照涉及的源卷和快照卷均由独立冗余磁盘阵列RAID实现,该方法包括:
[0016]A、接收到针对源卷的写10后,根据写10所在源卷的RAID类型,使用相对应的RAID算法,定位该写10对应的条带;
[0017]B、判断该条带是否已建立快照,若是执行步骤D,否则执行步骤C ;
[0018]C、使用读改写的方式将所述整个条带的数据读取出来写入快照卷,并将写10的数据写入源卷,然后结束本次快照10 ;
[0019]D、将写10的数据写入源卷。
[0020]较佳地,步骤C以及步骤D之后,进一步包括:返回写成功消息。
[0021]本申请实施例还提供了一种快照系统,包括:快照模块、缓存模块、RAID模块、源卷和快照卷,快照模块用于接收针对源卷的写10,并将写10下发到缓存模块,以及接收来自缓存模块的写成功消息;
[0022]缓存模块用于将快照模块下发的写10下发到RAID模块,以及将RAID模块返回的写成功消息发送到快照模块;
[0023]RAID模块用于接收缓存模块下发的写10,根据写10所在源卷的RAID类型,使用相对应的RAID算法,定位该写10对应的条带,判断该条带是否已建立快照,若是,使用读改写的方式将所述整个条带的数据读取出来写入快照卷,并将写10的数据写入源卷;否则将写10的数据写入源卷;当数据写入源卷后,将写成功消息返回给缓存模块。
[0024]本申请实施例还提供了一种改进的写时拷贝快照方法,该方法由如前所述的快照系统实现,包括如下步骤:
[0025]快照模块接收针对源卷的写10,并将写10下发到缓存模块;缓存模块将快照模块下发的写10下发到RAID模块;
[0026]RAID模块用于接收缓存模块下发的写10,根据写10所在源卷的RAID类型,使用相对应的RAID算法,定位该写10对应的条带,判断该条带是否已建立快照,若是,使用读改写的方式将所述整个条带的数据读取出来写入快照卷,并将写10的数据写入源卷;否则将写10的数据写入源卷;当数据写入源卷后,将写成功消息返回给缓存模块;
[0027]缓存模块将RAID模块返回的写成功消息发送到快照模块。
[0028]从以上技术方案可以看出,利用RAID系统中读改写的特点生成快照,只需要执行一个写10,10数量减少,多个模块之间只需要一次交互,流程简洁,大部分的工作在RAID模块内即可完成,大大的提高了快照性能。
【附图说明】
[0029]图1为现有的写时拷贝快照的实现流程示意图;
[0030]图2为现有的写时拷贝快照实现过程中模块交互示意图;
[0031]图3为本申请实施例提供的写时拷贝快照的实现流程示意图;
[0032]图4为本申请实施例提供的写时拷贝快照实现过程中模块交互
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1