一种快照实现方法及快照系统技术领域
本发明涉及数据存储技术领域,特别涉及一种快照实现方法及快照系统。
背景技术
在存储领域中,快照技术是存储服务器的重要组成部分。通过提升快照
技术的性能,能够有效地提升整个快照系统的性能,以更好地满足用户的需
求。
目前,应用较为广泛的快照技术是COW机制(COW,即CopyOnWrite,
写时复制)。COW机制的主要特点是在对数据卷打完快照后,当有新IO数据
下发时,上述新IO数据不会立刻被写入源卷的指定数据块中,而是先将上述
指定数据块中保存的原IO数据拷贝到数据卷,再将新IO数据写入到上述指定
数据块。可见,利用COW机制进行写数据操作之前需要进行数据拷贝操作,
这显然会降低了COW机制下数据的写性能,从而影响了快照系统的整体性能。
尤其是当需要写入大量的数据时,也就意味着事先需要进行大量的数据拷贝
操作,无疑将大大地提高了数据写入前的等待时间,降低了快照系统的数据
写入性能。
发明内容
有鉴于此,本发明的目的在于提供一种快照实现方法及快照系统,解决
了普通COW机制下存在的写入性能较差的问题,从而提高了快照系统的整体
性能。其具体方案如下:
一种快照实现方法,应用于快照系统,所述快照系统包括源卷和数据卷,
所述源卷包括N个数据块,N为正整数;所述方法包括:
当用户将新IO数据发送至所述快照系统,以利用所述新IO数据替换目标
数据块中的原IO数据时,对所述新IO数据进行缓存处理,得到相应的缓存数
据,其中,所述目标数据块为所述源卷中的任一数据块;
当所述快照系统处于无用户读写数据的空闲状态时,将所述原IO数据迁
移至所述数据卷,然后将所述缓存数据迁移至所述目标数据块。
优选的,所述对所述新IO数据进行缓存处理,得到相应的缓存数据的过
程,具体包括:
对所述新IO数据进行缓存处理,得到所述缓存数据,并记录所述目标数
据块的块信息。
优选的,所述将所述原IO数据迁移至所述数据卷,然后将所述缓存数据
迁移至所述目标数据块的过程,具体包括:
根据记录下来的所述目标数据块的块信息,在所述源卷中找到所述目标
数据块,并将所述目标数据块中保存的原IO数据迁移至所述数据卷,然后将
所述缓存数据迁移至所述目标数据块。
优选的,所述方法还包括:
判断用于存储所述缓存数据的存储空间的使用率是否大于预设使用率,
如果是,则生成相应的提示信息。
优选的,所述方法还包括:
当生成所述提示信息后,对所述存储空间容量进行扩展处理。
本发明还公开了一种快照系统,包括源卷和数据卷,所述源卷包括N个数
据块,N为正整数;所述快照系统还包括:
缓存卷,用于当用户将新IO数据发送至所述快照系统,以利用所述新IO
数据替换目标数据块中的原IO数据时,对所述新IO数据进行缓存处理,得到
相应的缓存数据,其中,所述目标数据块为所述源卷中的任一数据块;
第一数据迁移单元,用于当所述快照系统处于无用户读写数据的空闲状
态时,将所述原IO数据迁移至所述数据卷;
第二数据迁移单元,用于当所述原IO数据迁移至所述数据卷后,将所述
缓存数据迁移至所述目标数据块。
优选的,所述系统还包括:
块信息记录单元,用于当所述缓存卷对所述新IO数据进行缓存处理,得
到所述缓存数据后,记录所述目标数据块的块信息。
优选的,所述第一数据迁移单元,具体用于根据所述块信息记录单元记
录的所述目标数据块的块信息,在所述源卷中找到所述目标数据块,并将所
述目标数据块中保存的原IO数据迁移至所述数据卷;
所述第二数据迁移单元,具体用于当所述第一数据迁移单元将所述目标
数据块中保存的原IO数据迁移至所述数据卷后,将所述缓存数据迁移至所述
目标数据块。
优选的,所述系统还包括:
判断单元,用于判断所述缓存卷的存储空间的使用率是否大于预设使用
率,如果是,则生成相应的提示信息。
优选的,所述系统还包括:
缓存卷扩容单元,用于当所述判断单元生成所述提示信息后,对所述缓
存卷的容量进行扩展处理。
本发明中,当用户将新IO数据发送至快照系统,以利用新IO数据替换
目标数据块中的原IO数据时,对新IO数据进行缓存处理,得到相应的缓存
数据,其中,目标数据块为源卷中的任一数据块;当快照系统处于无用户读
写数据的空闲状态时,将原IO数据迁移至数据卷,然后将缓存数据迁移至目
标数据块。可见本发明中,当新IO数据下发后,并不会将新IO数据直接写
入源卷,而是先将新IO数据写入缓存,也即先对新IO数据进行缓存处理,
得到相应的缓存数据,并且由于将新IO数据写入缓存的过程不涉及任何数据
拷贝操作,从而极大地降低了新IO数据下发时的数据等待时间,提高了新IO
数据的下发速度,也即提高了新IO数据的写入性能。当新IO数据下发完成
后,会在快照系统处于无用户读写数据的空闲状态的情况下,将原IO数据迁
移至数据卷,然后将缓存数据迁移至目标数据块,从而使得本发明在保证了
COW机制良好的读性能的基础上,改善了COW机制的写性能,进而提高了
快照系统的整体性能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实
施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面
描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不
付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例公开的一种快照实现方法流程图;
图2为本发明实施例公开的一种一种快照系统结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行
清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而
不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做
出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例公开了一种快照实现方法,应用于快照系统,快照系统包
括源卷和数据卷,源卷包括N个数据块,N为正整数;参见图1所示,该方法
包括:
步骤S101:当用户将新IO数据发送至快照系统,以利用新IO数据替换目
标数据块中的原IO数据时,对新IO数据进行缓存处理,得到相应的缓存数据,
其中,目标数据块为源卷中的任一数据块;
步骤S102:当快照系统处于无用户读写数据的空闲状态时,将原IO数据
迁移至数据卷,然后将缓存数据迁移至目标数据块。
本发明实施例中,当用户将新IO数据发送至快照系统,以利用新IO数据
替换目标数据块中的原IO数据时,对新IO数据进行缓存处理,得到相应的缓
存数据,其中,目标数据块为源卷中的任一数据块;当快照系统处于无用户
读写数据的空闲状态时,将原IO数据迁移至数据卷,然后将缓存数据迁移至
目标数据块。
可见本发明实施例中,当新IO数据下发后,并不会将新IO数据直接写入
源卷,而是先将新IO数据写入缓存,也即先对新IO数据进行缓存处理,得到
相应的缓存数据,并且由于将新IO数据写入缓存的过程不涉及任何数据拷贝
操作,从而极大地降低了新IO数据下发时的数据等待时间,提高了新IO数据
的下发速度,也即提高了新IO数据的写入性能。当新IO数据下发完成后,会
在快照系统处于无用户读写数据的空闲状态的情况下,将原IO数据迁移至数
据卷,然后将缓存数据迁移至目标数据块,从而使得本发明实施例在保证了
COW机制良好的读性能的基础上,改善了COW机制的写性能,进而提高了快
照系统的整体性能。
本发明实施例公开了一种具体的快照实现方法,相对于上一实施例,本
实施例对技术方案作了进一步的说明和优化。具体的:
上一实施例步骤S101中的对新IO数据进行缓存处理,得到相应的缓存数
据的过程,具体包括:对新IO数据进行缓存处理,得到缓存数据,并记录目
标数据块的块信息。可以理解的是,目标数据块的块信息包括块号,当然还
可以包括块容量等信息。
进一步的,上一实施例步骤S102中的将原IO数据迁移至数据卷,然后将
缓存数据迁移至目标数据块的过程,具体包括:根据记录下来的目标数据块
的块信息,在源卷中找到目标数据块,并将目标数据块中保存的原IO数据迁
移至数据卷,然后将缓存数据迁移至目标数据块。
另外,本实施例公开的方法还可以进一步包括:判断用于存储缓存数据
的存储空间的使用率是否大于预设使用率,如果是,则生成相应的提示信息。
当生成提示信息后,可对存储空间的容量进行扩展处理。
本发明实施例还公开了一种快照系统,参见图2所示,该快照系统包括源
卷21和数据卷22,源卷21包括N个数据块,N为正整数;并且,该快照系统还
包括:
缓存卷23,用于当用户将新IO数据发送至快照系统,以利用新IO数据替
换目标数据块中的原IO数据时,对新IO数据进行缓存处理,得到相应的缓存
数据,其中,目标数据块为源卷21中的任一数据块;
第一数据迁移单元24,用于当快照系统处于无用户读写数据的空闲状态
时,将原IO数据迁移至数据卷22;
第二数据迁移单元25,用于当原IO数据迁移至数据卷22后,将缓存数据
迁移至目标数据块。
需要指出的是,本实施例公开的快照系统还可以包括块信息记录单元,
用于当缓存卷23对新IO数据进行缓存处理,得到缓存数据后,记录目标数据
块的块信息。可以理解的是,目标数据块的块信息包括块号,当然还可以包
括块容量等信息。
另外,本实施例中第一数据迁移单元24具体可以用于根据块信息记录单
元记录的目标数据块的块信息,在源卷21中找到目标数据块,并将目标数据
块中保存的原IO数据迁移至数据卷22;第二数据迁移单元25具体可以用于当
第一数据迁移单元24将目标数据块中保存的原IO数据迁移至数据卷22后,将
缓存数据迁移至目标数据块。
本实施例中的系统还可以进一步包括判断单元和缓存卷扩容单元,其中,
判断单元可用于判断缓存卷23的存储空间的使用率是否大于预设使用率,如
果是,则生成相应的提示信息;缓存卷扩容单元可用于当判断单元生成提示
信息后,对缓存卷23的容量进行扩展处理。
本发明实施例中,缓存卷用于当用户将新IO数据发送至快照系统,以利
用新IO数据替换目标数据块中的原IO数据时,对新IO数据进行缓存处理,得
到相应的缓存数据,其中,目标数据块为源卷中的任一数据块;当快照系统
处于无用户读写数据的空闲状态时,第一数据迁移单元用于将原IO数据迁移
至数据卷,第二数据迁移单元则用于将缓存数据迁移至目标数据块。
可见本发明实施例中,当新IO数据下发后,并不会将新IO数据直接写入
源卷,而是先将新IO数据写入缓存卷,也即先对新IO数据进行缓存处理,得
到相应的缓存数据,并且由于将新IO数据写入缓存的过程不涉及任何数据拷
贝操作,从而极大地降低了新IO数据下发时的数据等待时间,提高了新IO数
据的下发速度,也即提高了新IO数据的写入性能。当新IO数据下发完成后,
会在快照系统处于无用户读写数据的空闲状态的情况下,分别利用第一数据
迁移单元和第二数据迁移单元,将原IO数据迁移至数据卷,然后将缓存数据
迁移至目标数据块,从而使得本发明实施例在保证了COW机制良好的读性能
的基础上,改善了COW机制的写性能,进而提高了快照系统的整体性能。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语
仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求
或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术
语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而
使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且
还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或
者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存
在另外的相同要素。
以上对本发明所提供的一种快照实现方法及快照系统进行了详细介绍,
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例
的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的
一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改
变之处,综上所述,本说明书内容不应理解为对本发明的限制。