CN105095015B - 一种磁盘快照的建立方法及装置 - Google Patents

一种磁盘快照的建立方法及装置 Download PDF

Info

Publication number
CN105095015B
CN105095015B CN201410201043.6A CN201410201043A CN105095015B CN 105095015 B CN105095015 B CN 105095015B CN 201410201043 A CN201410201043 A CN 201410201043A CN 105095015 B CN105095015 B CN 105095015B
Authority
CN
China
Prior art keywords
snapshot
data block
global
secondary table
write operation
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.)
Expired - Fee Related
Application number
CN201410201043.6A
Other languages
English (en)
Other versions
CN105095015A (zh
Inventor
杨耀敏
董世宁
马龙飞
杨效振
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Yun Chao Artery Science And Technology Ltd
Original Assignee
Beijing Yun Chao Artery Science And Technology Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Yun Chao Artery Science And Technology Ltd filed Critical Beijing Yun Chao Artery Science And Technology Ltd
Priority to CN201410201043.6A priority Critical patent/CN105095015B/zh
Publication of CN105095015A publication Critical patent/CN105095015A/zh
Application granted granted Critical
Publication of CN105095015B publication Critical patent/CN105095015B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明提供一种磁盘快照建立方法及装置,该方法包括设立全局快照号作为全局变量,全局快照号根据快照建立的次数进行取值,对当前二级表管理的每个数据块设立局部编号,局部编号根据全局快照号的取值进行取值;接收快照建立命令,根据快照建立命令拷贝当前一级表和当前二级表作为快照一级表和快照二级表;接收写操作命令,根据写操作命令获取写操作命令指向的待操作数据块;对比待操作数据块在当前二级表中的局部编号是否等于全局快照号,根据比对结果判断是否需要进行写时拷贝。由于本技术方案中建立快照时仅对当前一级表和当前二级表进行了拷贝操作,没有遍历所有当前二级表对每个数据块的引用计数进行获取,因此建立快照的时间大大缩短。

Description

一种磁盘快照的建立方法及装置
技术领域
本发明涉及数据备份技术领域,尤其涉及一种磁盘快照建立方法及装置。
背景技术
快照是一种基于时间点的数据拷贝技术,是数据备份领域的一个重要概念。建立快照的目的在于保存磁盘在某一时刻的数据信息,如果日后磁盘发生故障可以通过快照将磁盘数据恢复到快照建立时的状态。
现有技术中快照的建立方法包括两种,一种是物理拷贝,一种是逻辑拷贝。物理拷贝是指对磁盘中的原始数据进行完全拷贝,占用和原始数据相等的存储空间,所需存储空间过大。逻辑拷贝是指只针对发生过改变的数据进行拷贝,现有技术中通过写时拷贝(CopyOn Write,简称COW)技术进行逻辑拷贝。具体方法如下:
COW技术采用两级表(一级表L1和二级表L2)的存储管理机制,其中一级表L1包括多个表项,每个表项记录一个二级表L2的地址信息,通过一级表L1可以查找到二级表L2;二级表L2包括多个表项,每个表项记录一个数据块的地址映射关系,该地址映射关系为该数据块中元数据与物理地址的映射关系。
在快照建立时,拷贝整个磁盘的当前一级表L1和当前二级表L2作为快照一级表L1和快照二级表L2,遍历快照一级表L1和所有快照二级表L2,接收快照二级表L2所指向的所有数据块的引用计数,其中引用计数大于1时表示该数据块已发生写时拷贝的次数。当发生数据写操作时,首先判断该写操作所对应的数据块的引用计数是否大于1。若大于1则将存储该数据块改写前的地址映射关系的二级表L2的地址信息写入快照一级表L1中,将存储该数据块改写后的地址映射关系的二级表L2的地址信息写入该磁盘的源一级表L1中。
由于现有快照技术在创建时需要遍历整个磁盘的快照一级表L1和快照二级表L2,因此耗时时间长。
发明内容
本发明的目的在于提供一种磁盘快照建立方法及装置,从而解决现有技术中存在的前述问题。
为了实现上述目的,本发明采用的技术方案如下:
一种磁盘快照建立方法,包括:
设立全局快照号作为全局变量,所述全局快照号根据快照建立的次数进行取值,对当前二级表管理的每个数据块设立局部编号,所述局部编号根据所述全局快照号的取值进行取值;
接收快照建立命令,根据所述快照建立命令拷贝所述当前一级表和所述当前二级表作为快照一级表和快照二级表;
接收写操作命令,根据所述写操作命令获取所述写操作命令指向的待操作数据块;
对比所述待操作数据块在所述当前二级表中的局部编号是否等于所述全局快照号,根据比对结果判断是否需要进行写时拷贝。
在另一种实施例中,所述设立全局快照号作为全局变量之前,还包括:
设定针对所述元数据进行写操作时,保存所述元数据在原数据块中,拷贝所述元数据至另一目标数据块,并将所述元数据的存储地址改为指向所述目标数据块。
在另一种实施例中,所述对比所述待操作数据块在所述当前二级表中的局部编号是否等于所述全局快照号,根据比对结果判断是否需要进行写时拷贝,包括:
若所述待操作数据块在所述当前二级表中的局部编号等于所述全局快照号,则直接执行所述写操作命令;
若所述待操作数据块在所述当前二级表中的局部编号不等于所述全局快照号,则进行写时拷贝操作。
在另一种实施例中,所述局部编号根据所述全局快照号的取值进行取值,还包括:
新申请数据块的局部编号根据引用计数进行取值。
在另一种实施例中,所述对比所述待操作数据块在所述当前二级表中的局部编号是否等于所述全局快照号,根据比对结果判断是否需要进行写时拷贝,包括:
若所述待操作数据块在所述当前二级表中的局部编号等于所述全局快照号,则进行写时拷贝;
若所述待操作数据块在所述当前二级表中的局部编号不等于所述全局快照号,则直接执行所述写操作命令。
本发明的有益效果是:通过采用本发明公开的上述技术方案,得到了如下有益的效果:通过设立全局快照号和对存储对象数据块设立局部编号,来记录快照的版本。当发生写操作时,通过对比存储该对象数据块的局部编号和全局快照号,来判断该写操作是对原有数据的改写操作还是对新申请数据块的写操作。若是对原有数据的改写操作,则需要进行写时拷贝。由于本技术方案中建立快照时仅对当前一级表和当前二级表进行了拷贝操作,没有遍历所有当前二级表对每个数据块的引用计数进行获取,因此建立快照的时间大大缩短。
一种磁盘快照建立装置,包括:
变量设立模块,用于设立全局快照号作为全局变量,所述全局快照号根据快照建立的次数进行取值,对当前二级表管理的每个数据块设立局部编号,所述局部编号根据所述全局快照号的取值进行取值;
快照建立模块,用于接收快照建立命令,根据所述快照建立命令拷贝所述当前一级表和所述当前二级表作为快照一级表和快照二级表;
接收模块,用于接收写操作命令,根据所述写操作命令获取所述写操作命令指向的待操作数据块;
执行模块,用于对比所述待操作数据块在所述当前二级表中的局部编号是否等于所述全局快照号,根据比对结果判断是否需要进行写时拷贝。
在另一种实施例中,所述装置还包括:
指针修改模块,用于设定针对所述元数据进行写操作时,保存所述元数据在原数据块中,拷贝所述元数据至另一目标数据块,并将所述元数据的存储地址 改为指向所述目标数据块。
在另一种实施例中,所述执行模块包括:
第一判断单元,用于对比所述待操作数据块在所述当前二级表中的局部编号是否等于所述全局快照号;
第一执行单元,用于若所述待操作数据块在所述当前二级表中的局部编号等于所述全局快照号,则直接执行所述写操作命令;
第二执行单元,用于若所述待操作数据块在所述当前二级表中的局部编号不等于所述全局快照号,则进行写时拷贝操作。
在另一种实施例中,所述变量设立模块还用于:新申请数据块的局部编号根据引用计数进行取值。
在另一种实施例中,所述执行模块包括:
第二判断单元,用于对比所述待操作数据块在所述当前二级表中的局部编号是否等于所述全局快照号;
第三执行单元,用于若所述待操作数据块在所述当前二级表中的局部编号等于所述全局快照号,则进行写时拷贝;
第四执行单元,用于若所述待操作数据块在所述当前二级表中的局部编号不等于所述全局快照号,则直接执行所述写操作命令。
本发明的有益效果是:通过采用本发明公开的上述技术方案,得到了如下有益的效果:通过设立全局快照号和对存储对象数据块设立局部编号,来记录快照的版本。当发生写操作时,通过对比存储该对象数据块的局部编号和全局快照号,来判断该写操作是对原有数据的改写操作还是对新申请数据块的写操作。若是对原有数据的改写操作,则需要进行写时拷贝。由于本技术方案中建立快照时仅对当前一级表和当前二级表进行了拷贝操作,没有遍历所有当前二级表对每个数据块的引用计数进行获取,因此建立快照的时间大大缩短。
附图说明
图1是本发明磁盘快照建立方法第一实施例流程图;
图2是本发明磁盘快照建立方法第二实施例流程图;
图3是本发明磁盘快照建立方法第三实施例流程图;
图4是本发明磁盘快照建立装置第一实施例结构图;
图5是本发明磁盘快照建立装置第二实施例结构图;
图6是本发明磁盘快照建立装置第三实施例结构图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施方式仅仅用以解释本发明,并不用于限定本发明。
图1是本发明磁盘快照建立方法第一实施例流程图,如图1所示,本发明实施例所提供的磁盘快照建立方法由磁盘快照建立装置执行,磁盘快照建立装置可以由软件/硬件实现。其中当磁盘快照建立装置采用软件实现时,可以集成于虚拟机中。该方法包括:
步骤S100,设立全局快照号作为全局变量,全局快照号根据快照建立的次数进行取值,对当前二级表管理的每个数据块设立局部编号,局部编号根据全局快照号的取值进行取值;
具体地,通过两级表的方式对磁盘中的数据进行管理,一个磁盘包括一张一级表和多张二级表。其中一级表L1中包括多个条目,每个条目存储一个二级表L2的地址信息。每个二级表L2中也包括多个条目,每个条目存储一个映射关系,该映射关系为元数据与该元数据存储地址之间的映射关系。
设立全局快照号为全局变量,其中全局快照号用于标记快照的版本。优选地,全局快照号初始值为1,当磁盘建立第一次快照时,全局快照号取值为1;当磁盘建立第二次快照时,全局快照号取值为2,以此类推。当然可以理解的是,本发明不限于前述取值方式,还可以使用其他能够标记版本的取值方式,例如1.0、1.1、1.2,或英文字母a、b、c等。
同时对每个二级表L2管理的每个数据块设立局部编号,该局部编号根据全局快照号的取值进行取值。优选地,未建立快照时,磁盘所有数据块的局部编号取初始化值0,磁盘建立第一次快照后,全局快照号取值为1,则当前二级表所 管理的数据块的局部编号取值也为1;磁盘建立第二次快照后,全局快照号取值为2,则当前二级表所管理的数据块的局部编号取值也为2。
步骤S102,接收快照建立命令,根据快照建立命令拷贝当前一级表和当前二级表作为快照一级表和快照二级表;
接收快照建立命令,拷贝当前一级表和当前二级表作为快照一级表和快照二级表。具体地,未建立快照时,磁盘所有数据块的局部编号取初始化值0,磁盘建立第一次快照后,全局快照号取值为1,则当前二级表所管理的数据块的局部编号取值也为1,第一个快照二级表所管理的数据块的局部编号取值也为1;磁盘建立第二次快照后,全局快照号取值为2,则当前二级表所管理的数据块的局部编号取值也为2,此时第一个快照二级表所管理的数据块的局部编号取值仍为1,第二个快照二级表所管理的数据块的局部编号取值为2。即快照二级表中数据块的局部编号为建立快照时当前二级表中数据块的局部编号,不会随着全局快照号的改变而改变。
步骤S104,接收写操作命令,根据写操作命令获取写操作命令指向的待操作数据块;
具体地,接收写操作命令,其中写操作命令中携带被操作的元数据对象。获取该元数据,通过当前一级表和当前二级表查找该元数据对应数据块的局部编号。
步骤S106,对比待操作数据块在所述当前二级表中的局部编号是否等于全局快照号,根据比对结果判断是否需要进行写时拷贝。
通过采用本发明公开的上述技术方案,得到了如下有益的效果:通过设立全局快照号和对存储对象数据块设立局部编号,来记录快照的版本。当发生写操作时,通过对比存储该对象数据块的局部编号和全局快照号,来判断该写操作是对原有数据的改写操作还是对新申请数据块的写操作。若是对原有数据的改写操作,则需要进行写时拷贝。由于本技术方案中建立快照时仅对当前一级表和当前二级表进行了拷贝操作,没有遍历所有当前二级表对每个数据块的引用计数进行获取,因此建立快照的时间大大缩短。
图2是本发明磁盘快照建立方法第二实施例流程图,如图2所示,本发明实施例所提供的磁盘快照建立方法由磁盘快照建立装置执行,磁盘快照建立装置可以由软件/硬件实现。其中当磁盘快照建立装置采用软件实现时,可以集成于虚拟机中。该方法包括:
步骤S200,设定针对所述元数据进行写操作时,保存所述元数据在原数据块中,拷贝所述元数据至另一目标数据块,并将所述元数据的存储地址改为指向所述目标数据块;
步骤S202,设立全局快照号作为全局变量,全局快照号根据快照建立的次数进行取值,对当前二级表管理的每个数据块设立局部编号,局部编号根据全局快照号的取值进行取值;
步骤S204,接收快照建立命令,根据快照建立命令拷贝当前一级表和当前二级表作为快照一级表和快照二级表;
步骤S206,接收写操作命令,根据写操作命令获取写操作命令指向的待操作数据块;
步骤S208,对比待操作数据块在所述当前二级表中的局部编号是否等于全局快照号;若是则进入步骤S210,若否则进入步骤S212;
步骤S210,直接执行所述写操作命令;
步骤S212,进行写时拷贝操作。
具体地,设立全局快照号作为全局变量,初始值为1。当磁盘建立第一次快照时,全局快照号取值为1;当磁盘建立第二次快照时,全局快照号取值为2,以此类推。对每个当前二级表所管理的数据块设立局部编号,初始值为0。当磁盘建立第一次快照时,全局快照号取值为1,当前二级表所管理的数据块的局部编号为1;当磁盘建立第二次快照时,全局快照号取值为2,当前二级表所管理的数据块的局部编号为2。同时,建立快照时,拷贝当前一级表和所有当前二级表作为快照一级表和快照二级表,其中快照二级表所管理的数据块的局部编号与建立快照时的当前二级表所管理的数据块的局部编号相同。即当磁盘建立第一次快照时,第一个快照二级表所管理的数据块的局部编号为1;当磁盘建立第二次快照时,第一个快照二级表所管理的数据块的局部编号仍为1,第二个快照 二级表所管理的数据块的局部编号为2。
接收写操作命令,获取写操作命令中携带待操作数据块的地址。从当前一级表和当前二级表中查找该待操作数据块的局部编号。
由于预先设定针对磁盘中元数据进行写操作时,保存该元数据在原数据块中,然后拷贝该元数据至另一目标数据块,并将该元数据的存储地址改为指向该目标数据块。建立快照后,如果发生写操作,由于预先设定的磁盘读写机制中,会直接对元数据在原来的数据块中进行保存,因此可以直接对该元数据进行改写,无需进行写时拷贝。即假设某一数据块中如果原本存有数据,对该数据块建立快照后,该数据块在当前二级表中的局部编号应该等于全局快照号。现要对该数据块进行写操作,根据预先设定的磁盘读写机制,对该数据块进行写操作后,会自动保存该数据块中的数据内容,而将修改后的数据内容拷贝到新的数据块中,因此可以直接执行写操作而无需进行写时拷贝。
在磁盘使用过程中,磁盘中的数据会不断发生变化,即对磁盘数据块会不断执行写操作命令。如果此时接收到快照建立命令,则全局快照号会加1,而当前二级表所管理的数据块的局部编号仍然是快照建立之前的取值。此时当前二级表所管理的数据块的局部编号和全局快照号会不相等。因此此时需要进行写时拷贝。
通过采用本发明公开的上述技术方案,得到了如下有益的效果:通过设立全局快照号和对存储对象数据块设立局部编号,来记录快照的版本。当发生写操作时,通过对比存储该对象数据块的局部编号和全局快照号,来判断该写操作是对原有数据的改写操作还是对新申请数据块的写操作。若是对原有数据的改写操作,则需要进行写时拷贝。由于本技术方案中建立快照时仅对当前一级表和当前二级表进行了拷贝操作,没有遍历所有当前二级表对每个数据块的引用计数进行获取,因此建立快照的时间大大缩短。而且在快照建立期间,无需挂起虚拟机,用户仍然可以对虚拟机执行写操作。
图3是本发明磁盘快照建立方法第三实施例流程图,如图3所示,本发明实施例所提供的磁盘快照建立方法由磁盘快照建立装置执行,磁盘快照建立装置可 以由软件/硬件实现。其中当磁盘快照建立装置采用软件实现时,可以集成于虚拟机中。该方法包括:
步骤S300,设立全局快照号作为全局变量,全局快照号根据快照建立的次数进行取值,对当前二级表管理的每个数据块设立局部编号,局部编号根据全局快照号的取值进行取值,其中新申请数据块的局部编号根据引用计数进行取值;
步骤S302,接收快照建立命令,根据快照建立命令拷贝当前一级表和当前二级表作为快照一级表和快照二级表;
步骤S304,接收写操作命令,根据写操作命令获取写操作命令指向的待操作数据块;
步骤S306,对比待操作数据块在所述当前二级表中的局部编号是否等于全局快照号;若是则进入步骤S308,若否则进入步骤S310;
步骤S308,进行写时拷贝操作;
步骤S310,直接执行所述写操作命令。
具体地,设立全局快照号作为全局变量,初始值为1。当磁盘建立第一次快照时,全局快照号取值为1;当磁盘建立第二次快照时,全局快照号取值为2,以此类推。对每个当前二级表所管理的数据块设立局部编号,初始值为0。当磁盘建立第一次快照时,全局快照号取值为1,当前二级表所管理的数据块的局部编号为1;当磁盘建立第二次快照时,全局快照号取值为2,当前二级表所管理的数据块的局部编号为2。同时,建立快照时,拷贝当前一级表和所有当前二级表作为快照一级表和快照二级表,其中快照二级表所管理的数据块的局部编号与建立快照时的当前二级表所管理的数据块的局部编号相同。即当磁盘建立第一次快照时,第一个快照二级表所管理的数据块的局部编号为1;当磁盘建立第二次快照时,第一个快照二级表所管理的数据块的局部编号仍为1,第二个快照二级表所管理的数据块的局部编号为2。
接收写操作命令,获取写操作命令中携带待操作数据块的地址。从当前一级表和当前二级表中查找该待操作数据块的局部编号。
由于现有针对磁盘中元数据进行写操作时,会直接覆盖元数据原来的数据信息,而改写为新的数据,且执行快照建立命令时,磁盘的虚拟机挂起不允许执 行写操作。因此建立快照后,如果待操作数据块中原本存储了数据信息,该写操作为针对待操作数据块中原本存储的数据进行改写,则需要进行写时拷贝,将改写前的数据信息进行备份,并将备份信息写入快照二级表中,而将改写后的数据信息写入当前二级表中。如果待操作数据块中原本没有存储数据信息,即该待操作数据块为新申请的数据块,则无需进行写时拷贝,直接执行写操作命令即可。因此,建立快照后,如果待操作数据块中原本存储了数据信息,则该待操作数据块在当前二级表中的局部编号应该等于全局快照号。如果待操作数据块中原本没有存储数据信息,而是对新申请数据块执行写操作命令,则该新申请数据块在当前二级表中的局部编号根据引用计数取值,不等于全局快照号。优选地,由于新申请数据块的引用计数为0,因此,获取如果待操作数据块的引用计数为0,则说明待操作数据块为新申请数据块,令该待操作数据块的局部编号为初始值0。
由此可知,当待操作数据块在当前二级表中的局部编号等于全局快照号时,需要进行写时拷贝;当待操作数据块在当前二级表中的局部编号不等于全局快照号,直接执行写操作命令。
通过采用本发明公开的上述技术方案,得到了如下有益的效果:通过设立全局快照号和对存储对象数据块设立局部编号,来记录快照的版本。当发生写操作时,通过对比存储该对象数据块的局部编号和全局快照号,来判断该写操作是对原有数据的改写操作还是对新申请数据块的写操作。若是对原有数据的改写操作,则需要进行写时拷贝。由于本技术方案中建立快照时仅对当前一级表和当前二级表进行了拷贝操作,没有遍历所有当前二级表对每个数据块的引用计数进行获取,因此建立快照的时间大大缩短。
图4是本发明磁盘快照建立装置第一实施例结构图,如图4所示,本发明实施例所提供的磁盘快照建立装置可以由软件/硬件实现。其中当磁盘快照建立装置采用软件实现时,可以集成于虚拟机中。该装置包括:
变量设立模块10,用于设立全局快照号作为全局变量,所述全局快照号根据快照建立的次数进行取值,对当前二级表管理的每个数据块设立局部编号,所 述局部编号根据所述全局快照号的取值进行取值;
快照建立模块12,用于接收快照建立命令,根据所述快照建立命令拷贝所述当前一级表和所述当前二级表作为快照一级表和快照二级表;
接收模块14,用于接收写操作命令,根据所述写操作命令获取所述写操作命令指向的待操作数据块;
执行模块16,用于对比所述待操作数据块在所述当前二级表中的局部编号是否等于所述全局快照号,根据比对结果判断是否需要进行写时拷贝。
本实施例中磁盘快照建立装置用于执行上述磁盘快照建立方法,具有相同的功能模块,在此不再赘述。
通过采用本发明公开的上述技术方案,得到了如下有益的效果:通过设立全局快照号和对存储对象数据块设立局部编号,来记录快照的版本。当发生写操作时,通过对比存储该对象数据块的局部编号和全局快照号,来判断该写操作是对原有数据的改写操作还是对新申请数据块的写操作。若是对原有数据的改写操作,则需要进行写时拷贝。由于本技术方案中建立快照时仅对当前一级表和当前二级表进行了拷贝操作,没有遍历所有当前二级表对每个数据块的引用计数进行获取,因此建立快照的时间大大缩短。
图5是本发明磁盘快照建立装置第二实施例结构图,如图5所示,本发明实施例所提供的磁盘快照建立装置可以由软件/硬件实现。其中当磁盘快照建立装置采用软件实现时,可以集成于虚拟机中。该装置包括变量设立模块20、快照建立模块22、接收模块24、及执行模块26,其中变量设立模块20、快照建立模块22、接收模块24与上述实施例中相应的功能模块功能相同,该装置还包括指针修改模块28:
指针修改模块28,用于设定针对所述元数据进行写操作时,保存所述元数据在原数据块中,拷贝所述元数据至另一目标数据块,并将所述元数据的存储地址改为指向所述目标数据块。
执行模块26包括:
第一判断单元261,用于对比所述待操作数据块在所述当前二级表中的局部编号是否等于所述全局快照号;
第一执行单元262,用于若所述待操作数据块在所述当前二级表中的局部编号等于所述全局快照号,则直接执行所述写操作命令;
第二执行单元263,用于若所述待操作数据块在所述当前二级表中的局部编号不等于所述全局快照号,则进行写时拷贝操作。
本实施例中磁盘快照建立装置用于执行上述磁盘快照建立方法,具有相同的功能模块,在此不再赘述。
通过采用本发明公开的上述技术方案,得到了如下有益的效果:通过设立全局快照号和对存储对象数据块设立局部编号,来记录快照的版本。当发生写操作时,通过对比存储该对象数据块的局部编号和全局快照号,来判断该写操作是对原有数据的改写操作还是对新申请数据块的写操作。若是对原有数据的改写操作,则需要进行写时拷贝。由于本技术方案中建立快照时仅对当前一级表和当前二级表进行了拷贝操作,没有遍历所有当前二级表对每个数据块的引用计数进行获取,因此建立快照的时间大大缩短。而且在快照建立期间,无需挂起虚拟机,用户仍然可以对虚拟机执行写操作。
图6是本发明磁盘快照建立装置第三实施例结构图,如图6所示,本发明实施例所提供的磁盘快照建立装置可以由软件/硬件实现。其中当磁盘快照建立装置采用软件实现时,可以集成于虚拟机中。该装置包括变量设立模块30、快照建立模块32、接收模块34、及执行模块36,其中快照建立模块32、接收模块34与上述实施例中相应的功能模块功能相同。
其中,变量设立模块30还用于:新申请数据块的局部编号根据引用计数进行取值。
执行模块36包括:
第二判断单元361,用于对比所述待操作数据块在所述当前二级表中的局部编号是否等于所述全局快照号;
第三执行单元362,用于若所述待操作数据块在所述当前二级表中的局部编号等于所述全局快照号,则进行写时拷贝;
第四执行单元363,用于若所述待操作数据块在所述当前二级表中的局部编号不等于所述全局快照号,则直接执行所述写操作命令。
本实施例中磁盘快照建立装置用于执行上述磁盘快照建立方法,具有相同的功能模块,在此不再赘述。
通过采用本发明公开的上述技术方案,得到了如下有益的效果:通过设立全局快照号和对存储对象数据块设立局部编号,来记录快照的版本。当发生写操作时,通过对比存储该对象数据块的局部编号和全局快照号,来判断该写操作是对原有数据的改写操作还是对新申请数据块的写操作。若是对原有数据的改写操作,则需要进行写时拷贝。由于本技术方案中建立快照时仅对当前一级表和当前二级表进行了拷贝操作,没有遍历所有当前二级表对每个数据块的引用计数进行获取,因此建立快照的时间大大缩短。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (10)

1.一种磁盘快照建立方法,其特征在于,包括:
设立全局快照号作为全局变量,所述全局快照号根据快照建立的次数进行取值,对当前二级表管理的每个数据块设立局部编号,所述局部编号根据所述全局快照号的取值进行取值;
接收快照建立命令,根据所述快照建立命令拷贝当前一级表和所述当前二级表作为快照一级表和快照二级表;
接收写操作命令,根据所述写操作命令获取所述写操作命令指向的待操作数据块;
对比所述待操作数据块在所述当前二级表中的局部编号是否等于所述全局快照号,根据比对结果判断是否需要进行写时拷贝。
2.根据权利要求1所述的磁盘快照建立方法,其特征在于,所述设立全局快照号作为全局变量之前,还包括:
设定针对元数据进行写操作时,保存所述元数据在原数据块中,拷贝所述元数据至另一目标数据块,并将所述元数据的存储地址改为指向所述目标数据块。
3.根据权利要求2所述的磁盘快照建立方法,其特征在于,所述对比所述待操作数据块在所述当前二级表中的局部编号是否等于所述全局快照号,根据比对结果判断是否需要进行写时拷贝,包括:
若所述待操作数据块在所述当前二级表中的局部编号等于所述全局快照号,则直接执行所述写操作命令;
若所述待操作数据块在所述当前二级表中的局部编号不等于所述全局快照号,则进行写时拷贝操作。
4.根据权利要求1所述的磁盘快照建立方法,其特征在于,所述局部编号根据所述全局快照号的取值进行取值,还包括:
新申请数据块的局部编号根据引用计数进行取值。
5.根据权利要求4所述的磁盘快照建立方法,其特征在于,所述对比所述待操作数据块在所述当前二级表中的局部编号是否等于所述全局快照号,根据比对结果判断是否需要进行写时拷贝,包括:
若所述待操作数据块在所述当前二级表中的局部编号等于所述全局快照号,则进行写时拷贝;
若所述待操作数据块在所述当前二级表中的局部编号不等于所述全局快照号,则直接执行所述写操作命令。
6.一种磁盘快照建立装置,其特征在于,包括:
变量设立模块,用于设立全局快照号作为全局变量,所述全局快照号根据快照建立的次数进行取值,对当前二级表管理的每个数据块设立局部编号,所述局部编号根据所述全局快照号的取值进行取值;
快照建立模块,用于接收快照建立命令,根据所述快照建立命令拷贝当前一级表和所述当前二级表作为快照一级表和快照二级表;
接收模块,用于接收写操作命令,根据所述写操作命令获取所述写操作命令指向的待操作数据块;
执行模块,用于对比所述待操作数据块在所述当前二级表中的局部编号是否等于所述全局快照号,根据比对结果判断是否需要进行写时拷贝。
7.根据权利要求6所述的磁盘快照建立装置,其特征在于,所述装置还包括:
指针修改模块,用于设定针对元数据进行写操作时,保存所述元数据在原数据块中,拷贝所述元数据至另一目标数据块,并将所述元数据的存储地址改为指向所述目标数据块。
8.根据权利要求7所述的磁盘快照建立装置,其特征在于,所述执行模块包括:
第一判断单元,用于对比所述待操作数据块在所述当前二级表中的局部编号是否等于所述全局快照号;
第一执行单元,用于若所述待操作数据块在所述当前二级表中的局部编号等于所述全局快照号,则直接执行所述写操作命令;
第二执行单元,用于若所述待操作数据块在所述当前二级表中的局部编号不等于所述全局快照号,则进行写时拷贝操作。
9.根据权利要求6所述的磁盘快照建立装置,其特征在于,所述变量设立模块还用于:新申请数据块的局部编号根据引用计数进行取值。
10.根据权利要求9所述的磁盘快照建立装置,其特征在于,所述执行模块包括:
第二判断单元,用于对比所述待操作数据块在所述当前二级表中的局部编号是否等于所述全局快照号;
第三执行单元,用于若所述待操作数据块在所述当前二级表中的局部编号等于所述全局快照号,则进行写时拷贝;
第四执行单元,用于若所述待操作数据块在所述当前二级表中的局部编号不等于所述全局快照号,则直接执行所述写操作命令。
CN201410201043.6A 2014-05-13 2014-05-13 一种磁盘快照的建立方法及装置 Expired - Fee Related CN105095015B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410201043.6A CN105095015B (zh) 2014-05-13 2014-05-13 一种磁盘快照的建立方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410201043.6A CN105095015B (zh) 2014-05-13 2014-05-13 一种磁盘快照的建立方法及装置

Publications (2)

Publication Number Publication Date
CN105095015A CN105095015A (zh) 2015-11-25
CN105095015B true CN105095015B (zh) 2018-02-23

Family

ID=54575516

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410201043.6A Expired - Fee Related CN105095015B (zh) 2014-05-13 2014-05-13 一种磁盘快照的建立方法及装置

Country Status (1)

Country Link
CN (1) CN105095015B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109324929B (zh) * 2018-09-17 2021-11-09 郑州云海信息技术有限公司 一种快照创建方法、装置、设备及可读存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1877540A (zh) * 2005-06-10 2006-12-13 北京艾德斯科技有限公司 网络存储中的快照系统与方法
CN101178677A (zh) * 2007-11-09 2008-05-14 中国科学院计算技术研究所 一种计算机文件系统的快照方法
CN101840362A (zh) * 2009-10-28 2010-09-22 创新科存储技术有限公司 一种改进的写时拷贝快照的实现方法和装置
CN102971698A (zh) * 2012-06-29 2013-03-13 华为技术有限公司 快照数据处理方法及系统、存储系统、快照代理

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7072915B2 (en) * 2002-01-22 2006-07-04 International Business Machines Corporation Copy method supplementing outboard data copy with previously instituted copy-on-write logical snapshot to create duplicate consistent with source data as of designated time

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1877540A (zh) * 2005-06-10 2006-12-13 北京艾德斯科技有限公司 网络存储中的快照系统与方法
CN101178677A (zh) * 2007-11-09 2008-05-14 中国科学院计算技术研究所 一种计算机文件系统的快照方法
CN101840362A (zh) * 2009-10-28 2010-09-22 创新科存储技术有限公司 一种改进的写时拷贝快照的实现方法和装置
CN102971698A (zh) * 2012-06-29 2013-03-13 华为技术有限公司 快照数据处理方法及系统、存储系统、快照代理

Also Published As

Publication number Publication date
CN105095015A (zh) 2015-11-25

Similar Documents

Publication Publication Date Title
US10248356B2 (en) Using scratch extents to facilitate copying operations in an append-only storage system
CA3154919A1 (en) Data object identification generating method, device, computer equipment and storage medium
WO2019019769A1 (zh) 业务功能实现的方法、装置、计算机设备及存储介质
WO2016050112A1 (zh) 一种数据存储方法、存储装置及存储系统
US10310904B2 (en) Distributed technique for allocating long-lived jobs among worker processes
CN106201861A (zh) 一种代码质量的检测方法及装置
CN106528071A (zh) 目标代码的选取方法及装置
JP2014515858A (ja) 実行中の命令を再結合する方法および装置
CN106020735A (zh) 一种数据存储方法及数据存储装置
CN107733982A (zh) 一种数据同步方法、终端设备、云端服务器及系统
CN112000426B (zh) 一种数据处理方法及装置
CN106648679A (zh) 一种结构化数据的版本管理方法
CN105095016A (zh) 一种磁盘快照回滚方法及装置
CN103543901B (zh) 生成菜单的方法和装置
CN106383826A (zh) 数据库查询方法和装置
CN111046106A (zh) 缓存数据同步方法、装置、设备及介质
CN107148612B (zh) 一种扩展用户分区的方法和装置
CN107784055A (zh) 基于非关系型数据库的事务处理方法和装置
CN105095015B (zh) 一种磁盘快照的建立方法及装置
WO2022223038A1 (zh) 一种键名称生成方法、装置和计算机可读存储介质
CN106959906A (zh) 信息处理方法、信息处理装置及电子设备
CN107544894A (zh) 一种日志处理的方法、装置及服务器
CN112749147A (zh) 一种将数据库中数据表合并迁移的方法和装置
CN109918439A (zh) 数据同步方法及其应用的环路检测方法和相关装置
CN109325005A (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
CB03 Change of inventor or designer information

Inventor after: Wang Zongheng

Inventor after: Yang Yaomin

Inventor after: Dong Shining

Inventor after: Ma Longfei

Inventor after: Yang Xiaozhen

Inventor before: Yang Yaomin

Inventor before: Dong Shining

Inventor before: Ma Longfei

Inventor before: Yang Xiaozhen

CB03 Change of inventor or designer information
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20180223

Termination date: 20180513

CF01 Termination of patent right due to non-payment of annual fee