数据备份、恢复方法、虚拟机快照删除、回滚方法及装置的制作方法

文档序号:7556901阅读:516来源:国知局
专利名称:数据备份、恢复方法、虚拟机快照删除、回滚方法及装置的制作方法
技术领域
本申请涉及弾性计算云技术领域和块设备存储服务技术领域,尤其是涉及ー种基于块设备存储的数据备份方法及其装置、数据恢复方法及其装置,以及ー种虚拟机快照的创建、删除、回滚方法及其装置。
背景技术
弾性计算云(Elastic Computing Cloud)是ー种云计算服务,即基于虚拟化技术, 将本地的物理机虚拟化成多个虚拟机来使用,以此来提高资源的使用率,压缩成本。其中, 基于弹性计算云技术虚拟出来的虚拟机的存储服务一般都是基于块设备的存储服务,业界称之为弹性块存储服务(Elastic Block Storage)。块设备存储服务,是基于块设备驱动(Block Device Driver)提供的ー种块级别的存储服务。本地的物理机和/或虚拟机可以将物理机的数据基于块的方式存储到远程的存储资源池中,从而节约本地的存储资源。简言之,块设备存储服务提供了一个类似物理裸硬盘的服务来存储本地的物理机和/或虚拟机的数据,且对数据的格式、文件系统的格式没有任何限制。随着弹性计算云技术的快速发展,弾性块存储服务对远程存储服务的数据安全性提出了更高的要求。这些要求包括当存储的数据出现异常吋,块存储服务应当能够实现将出现异常的数据恢复到过去的某个安全的状态下。而数据恢复方式一般分为两种,ー种是对针对整个块设备存储的数据进行全部恢复,即将对应某个块设备的存储数据恢复到过去的某个状态;一种是目录级别的恢复,即只将对应某个块设备的存储数据中的某个或某些数据文件恢复到过去的某个状态。现有技术中,对于目录级的数据恢复方案,为了实现数据的安全存储,通常会在远程的存储资源池中设置主集群存储服务器,用于存储各个块设备对应的数据,并设置备份集群存储服务器,用于对主集群存储服务器中存储的数据进行备份存储,当主集群存储服务器中存储的数据出现异常时,可以将备份集群存储服务器中存储的数据恢复到主集群存储服务器中,从而实现数据的安全恢复。但是,上述为了实现数据的安全恢复,在远程的存储资源池中需要同时设置主集群存储服务器和备份集群存储服务器,并需要将主集群存储服务器中存储的数据同步到备份集群存储服务器中以实现数据的备份处理,这导致数据备份和恢复的效率比较低下。此外,在远程的存储资源池中设置多台存储服务器分别作为主集群存储服务器和备份集群存储服务器,需要投入的硬件成本也比较高。此外,当弾性计算云系统中的虚拟机出现宕机吋,能够在虚拟机重启后,正确恢复对应其存储的镜像文件(即对应该虚拟机存储的原始数据),就需要对虚拟机的镜像文件进行备份存储,这样当虚拟机出现宕机并重启吋,就能够将为该宕机的虚拟机备份存储的镜像文件恢复到原来的某个状态。目前对于虚拟机的镜像文件备份方式通常可以分为全镜像文件备份方式和増量文件备份方式。其中,全镜像文件备份方式是指,在毎次备份时,将虚拟机的镜像文件作为ー个整体全部进行备份;而増量文件备份方式是指,在每次备份时, 仅将相对于原始镜像文件修改的増量部分进行备份。现有技术中,对于全镜像文件备份方式,如果物理机中的所有虚拟机同时都采用备份软件对镜像文件进行全部备份存储,势必会占用物理机的大量CPU资源、内存资源和输入输出IO处理资源等,导致备份效率比较低下。而对于増量文件备份方式,其实施通常是基于网络附加存储(NAS,Network AttachedStorage)环境的,这样就需要配置大量的网络附加存储设备,导致成本较高。

发明内容
本申请实施例提供一种基于块设备存储的数据备份方法及其装置、数据恢复方法及其装置,以在节约硬件成本的同时提高数据备份、恢复的效率。本申请实施例还提供一种虚拟机快照的创建、删除、回滚方法及其装置,以在节约硬件成本的同时提高镜像文件备份的效率。为此,本申请实施例提供一种基于块设备存储的数据备份方法,包括接收写数据请求和请求写入的数据;根据所述写数据请求中包含的用于确定扇区号的參数,确定用于存储请求写入的数据的各扇区分别对应的扇区号;并确定当前的时间信息;将确定的作为键值的扇区号、请求写入的数据和确定的时间信息对应存储到远程Key-Value存储资源池中。本申请实施例还提供一种基于上述数据备份方法的虚拟机快照创建方法,包括每次在接收到创建快照的指令后,对远程Key-Value存储资源池中存储的数据进行快照处理,创建本次快照及其对应的快照文件;并将本次创建快照的时间点至下一次创建快照的时间点之间的所有新存储到远程Key-Value存储资源池中的数据存储到所述快照文件中; 将本次创建的快照与快照文件对应存储。本申请实施例还提供一种基于上述快照创建方法的虚拟机快照删除方法,包括确定要删除的快照、及要删除的快照的前一快照;针对与确定的要删除的快照对应存储的快照文件和与确定的前一快照对应存储的快照文件中包含的与同一键值对应的数据中,保留离当前时间点最近的一个时间信息及其对应的数据,并删除其他时间信息及其分别对应的数据;删除确定出的要删除的快照。本申请实施例还提供一种基于上述快照创建方法的虚拟机快照回滚方法,包括确定要回滚到的快照、及要回滚到的快照之后的每ー快照;将确定出的回滚到的快照之后的每ー快照及其分别对应存储的快照文件删除;将确定出的要回滚到的快照激活成当前快照。本申请实施例还提供一种基于上述快照创建方法的基于块设备存储的数据恢复方法,包括确定需要将远程Key-Value存储资源池存储的数据恢复到的快照;按照存储的各快照文件和快照的对应关系,查询确定的要恢复到的快照对应的快照文件;将查询到的快照文件中的数据由可读可写形式设置为只读形式,并保持其他快照文件中的数据为可读可写形式;基于设置为只读形式的快照文件进行数据恢复。本申请实施例还提供一种基于块设备存储的数据备份装置,包括数据接收単元, 用于接收写数据请求和请求写入的数据;扇区号确定单元,用于根据数据接收単元接收到的所述写数据请求中包含的用于确定扇区号的參数,确定用于存储请求写入的数据的各扇区分别对应的扇区号;和当前时间确定单元,用于确定当前的时间信息;存储単元,用于将扇区号确定单元确定的作为键值的扇区号、数据接收単元接收到的请求写入的数据和当前时间确定单元确定的时间信息对应存储到远程Key-Value存储资源池中。本申请实施例还提供一种基于上述数据备份装置的虚拟机快照创建装置,包括快照文件创建单元,用于在每次在接收到创建快照的指令后,对远程Key-Value存储资源池中存储的数据进行快照处理,创建本次快照对应的快照文件;数据存储単元,用于将本次创建快照的时间点至下一次创建快照的时间点之间的所有新存储到远程Key-Value存储资源池中的数据存储到快照文件创建单元创建的所述快照文件中;对应存储单元,用于将快照文件创建单元本次处理得到的快照与得到的该快照文件对应存储。本申请实施例还提供一种基于上述快照创建装置的虚拟机快照删除装置,包括删除快照确定单元,用于确定要删除的快照、及要删除的快照的前一快照;数据删除单元,用于针对与删除快照确定单元确定的要删除的快照对应存储的快照文件和与确定的前一快照对应存储的快照文件中包含的与同一键值对应的数据中,保留离当前时间点最近的ー个时间信息及其对应的数据,并删除其他时间信息及其分别对应的数据;快照删除单元,用于删除删除快照确定单元确定出的要删除的快照。本申请实施例还提供一种基于上述快照创建装置的虚拟机快照回滚装置,包括回滚快照确定单元,用于确定要回滚到的快照、及要回滚到的快照之后的每ー快照;快照及快照文件删除单元,用于将回滚快照确定单元确定出的要回滚到的快照之后的每ー快照及其分别对应存储的快照文件删除;激活単元,用于将回滚快照确定单元确定出的要回滚到的快照激活成当前快照。本申请实施例还提供一种基于上述快照创建装置的数据恢复装置,包括恢复快照确定单元,用于确定需要将远程Key-Value存储资源池存储的数据恢复到的快照;快照文件查询单元,用于按照对应存储单元存储的各快照文件和快照的对应关系,查询恢复快照确定单元确定的要恢复到的快照对应的快照文件;只读形式设置单元,用于将快照文件查询单元查询到的快照文件中的数据由可读可写形式设置为只读形式;数据恢复単元,用于基于只读形式设置单元设置后的只读形式的快照文件进行数据恢复。本申请实施例通过在远程Key-Value存储资源池中,将存储的数据基于Key值、存储数据Value值和时间信息三者进行对应存储备份,并进而基于该数据存储备份方式,提出新的虚拟机快照创建处理方式,使得后续的数据恢复过程不必再依赖于设置主备存储服务器集群的方式进行数据备份和恢复,这解决了现有技术中数据备份恢复效率比较低及其成本较高的问题,在节约硬件成本的同时提高了数据备份、恢复的效率。相应地,本申请实施例提出新的虚拟机快照删除及其回滚方式,也解决了现有技术必须依赖于NAS环境进行全镜像文件备份及其恢复和目录级别数据备份及其恢复,所帯来的效率低下和成本较高的问题,在节约硬件成本的同时提高了镜像文件备份的效率。


图1为本申请实施例提出的技术方案所应用在的基于块设备存储服务实现数据存储的弾性计算云系统的拓扑结构图2为本申请实施例所应用在的远程网络存储服务的架构示意图;图3为基于本申请实施例提供的数据备份方案中,同一扇区中不同时间点对应的不同Value值的示意图;图4为本申请实施例提出的快照删除方案的一个实施例示意图;图5为本申请实施例提供的基于块设备存储的数据备份装置的具体組成结构框图;图6为本申请实施例提供的虚拟机快照创建装置的具体组成结构框图;图7为本申请实施例提出的快照删除方案的一个实施例示意图;图8为本申请实施例提供的虚拟机快照删除装置的具体组成结构框图;图9为本申请实施例提出的快照回滚方案的一个实施例示意图;图10为本申请实施例提供的虚拟机快照回滚装置的具体组成结构框图;图11为本申请实施例提出的目录级别的数据恢复方案的一个实施例示意图;图12为本申请实施例提出的基于块设备存储的数据恢复装置的具体組成结构框图。
具体实施例方式如图1所示,为本申请实施例提出的技术方案所应用在的基于块设备存储服务实现数据存储的弾性计算云系统的拓扑结构图。其中,弾性计算云系统中包括若干基于弹性计算云技术将本地的物理机虚拟出来的虚拟机(图中所示为虚拟机1、虚拟机2、虚拟机
3.......虚拟机η),各个虚拟机会将本地提供的数据存储服务基于块设备存储服务技术
使用远程的存储资源池或本地的存储资源池来实现,即各个虚拟机会将本地需要保存的数据存储到远程的存储资源池或本地设置的存储资源池中存储,并在后续有读取数据的需求吋,从远程的存储资源池或本地设置的存储资源池中读取相关数据。这样各个虚拟机就可以共享远程或本地设置的存储资源池,而无需占用本地物理机本身的存储资源,从而较好地提高了弾性计算云系统的资源利用率。如图2所示,为本申请实施例所应用在的远程网络存储服务的架构示意图,具体包括内核态的块设备驱动20、至少ー个服务端21、以及远程Key-Value存储资源池22,其中内核态的块设备驱动20,其接收来自物理服务器底层的读写(R/W,Reading/ Writing)调度层的读写请求,并将读写请求通过与用户态的服务端22之间预先定义的协议(例如TCP协议)等转发到用户态的服务端22。块设备驱动20在接收到的相应的读写请求后,先对接收到的读写请求进行封装,再将封装后的读写请求发送给用户态的服务端22。块设备驱动20接收到的读写请求和封装后的读写请求有两个重要的信息,ー个是请求数据的起始地址偏移量(offset),表示请求的数据占用磁盘的起始位置相对于数据读写请求中包含的块设备标识标志的块设备起始位置的偏移量,一个是请求数据的长度值 (length)ο用户态的服务端21,其通过与内核态的块设备驱动20预先约定的协议(例如TCP 协议)等接收来自内核态的块设备驱动20转发过来的读写请求。收到读写请求后,先对读写请求进行解析,解析过程包括验证读写请求是否合法、具体是读请求还是写请求,请求数据的起始地址偏移量offset和请求数据的长度值length等,并根据解析结果向远程 Key-Value存储资源池进行数据的读写操作。具体地,根据解析得到的offset值和length 值计算出本次请求对应的扇区号信息,如果是读请求,则从远程Key-Value存储资源池22 的分布式Key-Value存储系统中将计算出的扇区号标志的扇区中存储的数据读取出来,并将读取到的数据及其处理结果通过TCP协议等返回给内核态的块设备驱动20 ;如果是写请求,则将请求写入的数据存储到远程Key-Value存储资源池22的分布式Key-Value存储系统中与计算出的扇区号对应的扇区中,并通过TCP协议等将写请求的处理结果返回给内核态的块设备驱动20。远程Key-Value存储资源池22,其具体为远程分布式键值对(Key-Value)存储系统,其通常包括多台作为存储服务器的PC机,且每个数据都会有若干个备份(默认为3个备份),且每个备份分别存储在不同的存储服务器上。在基于分布式的键值对(Key-Value) 存储系统中,通常将磁盘扇区号作为键Key的值,磁盘扇区中的数据内容作为值Value的值,这样当给定ー个Key值时,就可以在磁盘空间中读取该Key值对应的Value值或者将对应的Value值存储到该Key值对应的扇区中。从上面对本申请实施例所应用在的远程网络存储服务的架构进行介绍后可以看出,本申请实施例中的远程Key-Value存储资源池为远程分布式键值对(Key-Value) 存储系统,针对不同块设备的数据都是以key-value的键值对形式存储在远程分布式 key-value存储系统中的,其中key用于标识与其对应存储的数据具体是属于哪个块设备的哪个扇区,value则是指具体存储的数据内容。下面将给出本申请实施例中根据数据读写请求,确定对应数据读写请求的各个扇区号的具体实现方式基于上面已经介绍的本申请实施例所应用在的远程网络存储服务的架构,内核态的块设备驱动20将物理服务器底层发来的数据读写请求转发给用户态的一个服务端21 吋,数据读写请求中会包含两个重要的信息,一个是偏移量offset,即请求数据在磁盘的起始位置相对于对应块设备起始位置的偏移量;另一个是请求数据的长度值length。具体地,根据数据读写请求中包含的offset信息,按照下述公式就可以计算出请求数据在对应块设备占用的磁盘空间中的起始扇区号start_sector_id start_sector_ia = offset/sector_size ;其中sect0r_siZe为单位扇区的存储容量大小值,一般默认情况下是512字节;具体地,再根据length信息,按照下述公式就可以计算出本次请求数据在对应块设备占用的磁盘空间中所连续占用的扇区个数SeCt0r_num sector_num = length/sector_size ;根据上述已经计算出的start_sector_id与sector_num,就可以计算出本次请求数据在对应块设备占用的磁盘空间中所连续占用的扇区对应的扇区号集合SeCt0r_Set, 即sector—set = tstart—sector—ια,......,start—sector—id+sector—num_l_} 0进而将计算出的扇区号集合SeCt0r_Set中包含的各个扇区号分別作为对应相应扇区的Key值。从上面对图2所示的网络存储服务的架构进行介绍后可以看出,在块设备的数据存储过程中,存储的粒度是扇区级别的。块设备驱动20将物理机底层发来的数据读写请求转发到服务端21后,服务端21就会根据读写请求中包含的相关信息计算出若干个扇区号, 如果是写请求,则将这些计算得到的扇区号分别作为Key,要写入的数据作为Value,然后以键值对的形式一一保存到远程的分布式Key-Value存储系统中。实施例一,结合上述介绍,下面给出本申请实施例提出的基于块设备存储服务的数据备份方案的具体处理过程通过上述分析可见,在块设备存储服务中进行数据备份就可以是增量备份,即只备份被修改的数据。因此,为了实现块设备存储服务中的基于扇区级别的増量备份,就需要像上述介绍的数据存储过程ー样将不同的key和对应的value映射存储到Key Value系统中。进ー步地,为了实现基于扇区级别的増加备份,本申请实施例这里提出对应每个Key都赋予时间戳timestamp属性。即在远程的Key Value系统中是以Key、存储数据和时间戳 timestamp来对应存储数据的。如图3所示,为本申请实施例提出的基于块设备存储服务的数据备份方法的处理流程图,其中具体过程包括步骤30,块设备驱动接收物理机底层发来的写数据请求和请求写入的数据,然后转发给服务端;步骤31,服务端按照上述介绍的计算的扇区号集合SeCt0r_Set的方式,根据接收到的写数据请求中包含的用于确定扇区号的參数offset值和length值,确定用于存储请求写入的数据的各扇区分别对应的扇区号;步骤32,服务端确定当前写入数据的时间信息;步骤33,服务端将上述确定出的作为键值Key的扇区号、请求写入的数据和确定的时间信息对应地存储到远程Key-Value存储资源池中。当从远程Key-Value存储资源池中读取各个Key中对应存储的数据时,可以将离当前时刻最近的时间戳timestamp对应的Value值读取出来;当更新ー个Key对应存储的 Value值时,先将与该Key对应的时间戳timestamp属性信息设置为当前时刻,然后将该 Key、更新的Value值和重新设置的时间戳timestamp对应保存到存储系统中。这样就实现了将任意时刻对任一扇区的修改数据都存储到存储系统中,相应地,也就能够读取到任意时刻任一扇区的Value值。如图4所示,为基于本申请实施例提供的数据备份方案中,同一扇区中不同时间点对应的不同Value值的示意图,可见ー个给定的Key值对应的扇区中存储的Value值在时间轴上是分段连续的,这样当给定ー个扇区号(Key值)和时间戳信息吋,就可以读取到相应的Value值。相应地,本申请实施例还提供了一种基于块设备存储的数据备份装置,具体組成结构如图5所示,包括数据接收単元51,用于接收写数据请求和请求写入的数据;扇区号确定单元52,用于根据数据接收単元51接收到的写数据请求中包含的用于确定扇区号的參数,确定用于存储请求写入的数据的各扇区分别对应的扇区号;当前时间确定单元53,用于确定当前的时间信息;存储単元54,用于将扇区号确定单元52确定的作为键值的扇区号、数据接收単元51接收到的请求写入的数据和当前时间确定单元53确定的时间信息对应存储到远程Key-Value存储资源池中。进而,本申请实施例为了实现基于块设备存储服务的备份数据的恢复处理,需要使用到快照技木,其中快照的定义是关于指定数据集合的ー个完全可用的拷贝,该拷贝包括相应数据在某个时间点(拷贝开始的时间点)的映像。由此可见,快照是将磁盘中某个时间点的数据全部原封不动地保存下来,就如给数据照相一祥。快照可以是其所表示的数据的ー个副本,也可以是数据的ー个复制品。快照的目的是为数据创建ー个在特定时间点的状态视图,而通过该状态视图可以看到该数据在快照创建时刻的数据,这样当存储在块设备中的数据丢失或者错乱吋,可以通过快照将最近安全可靠的数据恢复出来,将用户数据丢失的风险降低到最小。基于上述介绍的虚拟机中的数据都是以扇区为单位,基于Key-Value的形式存储在远程的分布式Key-Value存储系统中的,其中Key为扇区号,Value为扇区中存储的数据, 而且每个扇区中存储相应数据的时刻值(若该扇区中存储的数据值被修改过)都会保存在存储系统中。基于这个数据存储备份方案,本申请实施例提出下述新的快照创建方案、快照删除方案及其快照回滚方案。实施例ニ,虚拟机快照的创建快照的创建基本上是零开销的,是ー个轻量级的操作,快照的创建需要在快照列表中増加一个新的快照,并对照这个快照生成新的快照文件,并将增加的快照和生成的新的快照文件映射存储,其中快照中通常包含快照名称、快照创建的时间信息、以及所包含的快照文件的标识信息等。具体实施过程为毎次在接收到创建快照的指令后,对远程Key-Value存储资源池中存储的数据进行快照处理,创建本次快照及其对应的快照文件;并将本次创建快照的时间点至下一次创建快照的时间点之间的所有新存储到远程Key-Value存储资源池中的数据均存储到这个创建的快照文件中;然后将本次创建的快照与该快照文件对应存储。相应的,本申请实施例还提供了一种虚拟机快照创建装置,具体組成结构如图6所示,包括快照文件创建单元61,用于在每次在接收到创建快照的指令后,对远程 Key-Value存储资源池中存储的数据进行快照处理,创建本次快照对应的快照文件;数据存储单元62,用于将本次创建快照的时间点至下一次创建快照的时间点之间的所有新存储到远程Key-Value存储资源池中的数据存储到快照文件创建单元61创建的快照文件中;对应存储単元63,用于将快照文件创建单元61本次处理得到的快照与得到的该快照文件对应存储。实施例三,虚拟机快照的删除快照的删除相对于快照的创建则是ー个重量级的操作,因为删除快照不仅要将该快照从已有的快照列表中删除,此外,为了节省存储各个快照文件的空间,还需要将快照文件中具有相同Key值的存储数据进行合并(Merge)处理。具体实施过程为确定要删除的快照、及要删除的快照的前一快照;针对与确定的要删除的快照对应存储的快照文件和与确定的前一快照对应存储的快照文件中包含的与同一 Key值对应的数据中,保留离当前时间点最近的ー个时间戳timestamp及其对应的数据,并删除其他时间戳timestamp及其分别对应的数据;然后删除确定出的要删除的快照即可。如图7所示,为本申请实施例提出的快照删除方案的一个实施例示意图,图中按照时间顺序创建了 3个快照,即Tl时间创建的snapsh0tl、T2时间创建的snapsh0t2、以及 T3时间创建的snapshot3,若确定将在T2时刻创建的snapshot2删除,需要将snapshot2
10对应的快照文件中和snapshotl对应的快照文件中包含的与同一 Key值对应的数据中, 保留离当前时间点最近的ー个时间戳timestamp及其对应的数据,并删除其他时间戳 timestamp及其分别对应的数据,即要将Tl至T2之间的时间段内的快照文件中的有相同Key值的Value值进行合并处理,也就是针对ー个Key而言,只需要保留最新时间戳 timestamp对应的Value值,其他时间戳timestamp及其对应的Value值均删除即可,这样不仅可以较好的节约存储空间,而且也可以提高读取Key的速度。相应的,本申请实施例还提供了一种虚拟机快照删除装置,具体组成结构如图8 所示,包括删除快照确定单元81,用于确定要删除的快照、及要删除的快照的前一快照;数据删除単元82,用于针对与删除快照确定单元81确定的要删除的快照对应存储的快照文件和与确定的前一快照对应存储的快照文件中包含的与同一键值对应的数据中,保留离当前时间点最近的一个时间信息及其对应的数据,并删除其他时间信息及其分别对应的数据;快照删除单元83,用于删除删除快照确定单元81确定出的要删除的快照。实施例四,虚拟机快照的回滚虚拟机快照的回滚即虚拟机快照的恢复,快照回滚只需要将要回滚到的快照之后的各个快照及其分别对应的快照文件一一删除,并将要回滚到的快照作为当前最新且有效的快照即可。具体实施过程为在已经创建的各个快照中,确定要回滚到的快照、及要回滚到的快照之后的每ー 快照;将确定出的之后的每ー快照及其分别对应存储的快照文件一一删除;并将确定出的要回滚到的快照激活成当前最新且有效的快照。如图9所示,为本申请实施例提出的快照回滚方案的一个实施例示意图,图中假设虚拟机已经在Tl、T2(T1时刻早于Τ2时刻)时刻分别创建了快照Snapshotl和 Snapshot〗。现需要将虚拟机存储的数据回滚到快照snapshot〗状态,按照本申请实施例提出的方案,则先将快照snapshot〗以后创建的所有快照及其分别对应的快照文件都删除, 然后再设置成对该虚拟机数据的读取都从T2时刻开始向前捜索。基于上述介绍的数据存储备份方案和快照创建方案,本申请实施例提出下述新的基于块设备存储服务的数据恢复方案。相应的,本申请实施例还提供了一种虚拟机快照回滚装置,具体组成结构如图10 所示,包括回滚快照确定单元101,用于确定要回滚到的快照、及要回滚到的快照之后的每一快照;快照及快照文件删除单元102,用于将回滚快照确定单元101确定出的要回滚到的快照之后的每ー快照及其分别对应存储的快照文件删除;激活単元103,用于将回滚快照确定单元101确定出的要回滚到的快照激活成当前快照。实施例五,虚拟机数据恢复数据恢复分为两种情況,一种是目录级别的数据恢复,ー种是全镜像文件的数据恢复,其中对于全镜像文件的数据恢复过程,需要将对应该虚拟机的所有数据都回滚到过去的某个快照状态,具体实现同上述已经介绍的快照回滚处理方式,这里不再赘述。而目录级别的数据恢复,则需要在恢复数据的同时不能对其他数据产生任何影响,即只能对需要恢复的数据进行恢复。为了支持目录级别的数据恢复,并避免先将数据备份到备份存储服务器集群,恢复时再从备份存储服务器集群中将数据恢复出来,本申请实施例提出基于只读快照的方式进行数据的恢复处理。所谓只读快照,即快照是只读的,只能对只读快照对应的快照文件中的数据进行只读,不能进行修改,而一般的快照对应的快照文件是可读写的快照,既能对快照文件中的数据进行读取,也能对快照文件中的数据进行修改。具体实施过程为在已经创建的各个快照中,确定需要将远程Key-Value存储资源池对应某个虚拟机存储的数据恢复到的快照;按照上述在创建快照时所存储的各快照文件和快照的对应关系,查询确定的要恢复到的快照对应的快照文件;将查询到的快照文件中的数据由可读可写形式设置为只读形式,并保持其他快照文件中的数据为可读可写形式;然后基于设置为只读形式的快照文件进行数据恢复处理。基于设置为只读形式的快照文件进行数据恢复处理,在从只读形式的快照文件中读取数据时,需要指定待读取数据所在的Key值和需要从哪个只读快照对应的快照文件中读取数据,为此,可以将只读快照的接ロ消息定义成如下形式reaaoniy—snapshot (Snapshotld,KeySet, ValueResponse;其中,该接ロ消息中包含三个參数,第一个參数为Snap shot I d,指定需要从哪个快照进行只读;第二个參数为Ke於et,指定要对哪些Key进行只读;第三个參数为 ValueResponse,它是保存在SnapshotId标识的快照文件中的KeySet对应的扇区中存储的数据value值。有了上述介绍的快照只读功能,就可以实现目录级别的数据恢复,如图11所示, 为本申请实施例提出的目录级别的数据恢复方案的一个实施例示意图,假设针对一个块设
备已经创建了若干个快照,分别为snapshot 1,snapshot2,snapshot3,......,等等。现在
假设需要将针对该块设备存储的a. txt文件恢复到snapshotl时的数据状态。具体流程如下将snapshotl设置成只读快照,将设置成只读形式的snapshotl挂载到hostl服
务器中的块设备VBD2上;并将其他快照snapsh0t2,snapsh0t3......等等保持为可读写形
式,并将这些可读写形式的快照挂载到hostl服务器中的块设备VBDl上;这样,同一个host就可以实现以可读写方式和只读方式这两种方式同时读取相应快照对应的快照文件中的数据,当其中的VBD2从snapshotl对应的快照文件中以只读方式读取到对应snapshotl状态的a. txt文件后,进而拷贝给其中的VBD1,这样就实现了将 a. txt文件恢复到snapshotl时的数据状态,同时又不影响VBDl对其他snapshot对应的快照文件进行可读可写操作,通过上述只读挂载快照的方式实现了目录级别的数据恢复。相应的,本申请实施例还提供了一种基于块设备存储的数据恢复装置,具体組成结构如图12所示,包括恢复快照确定单元121,用于确定需要将远程Key-Value存储资源池存储的数据恢复到的快照;快照文件查询单元122,用于按照对应存储单元存储的各快照文件和快照的对应关系,查询恢复快照确定单元121确定的要恢复到的快照对应的快照文件;只读形式设置单元123,用于将快照文件查询单元122查询到的快照文件中的数据由可读可写形式设置为只读形式;数据恢复単元124,用于基于只读形式设置单元123设置后的只读形式的快照文件进行数据恢复。综上论述可见,本申请实施例通过在远程Key-Value存储资源池中,将存储的数据基于Key值、存储数据Value值和时间戳Timestamp三者进行对应存储备份,并进而基于该数据存储备份方式,提出新的虚拟机快照创建处理方式,使得后续的数据恢复过程不必再依赖于设置主备存储服务器集群的方式进行数据备份和恢复,进而也就避免了现有技术中数据备份恢复效率比较低及其成本较高的问题。相应地,本申请实施例提出的新的虚拟机快照删除及其回滚方式,也避免了现有技术必须依赖于NAS环境进行全镜像文件备份及其恢复和目录级别数据备份及其恢复,所帯来的效率低下和成本较高的问题。本领域的技术人员应明白,本申请的实施例可提供为方法、装置(设备)、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。本申请是參照根据本申请实施例的方法、装置(设备)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每ー 流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生ー个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图ー个流程或多个流程和/或方框图ー个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图ー个流程或多个流程和/或方框图ー个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图ー个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
权利要求
1.一种基于块设备存储的数据备份方法,其特征在干,包括 接收写数据请求和请求写入的数据;根据所述写数据请求中包含的用于确定扇区号的參数,确定用于存储请求写入的数据的各扇区分别对应的扇区号;并确定当前的时间信息;将确定的作为键值的扇区号、请求写入的数据和确定的时间信息对应存储到远程 Key-Value存储资源池中。
2.如权利要求1所述的方法,其特征在干,根据所述写数据请求中包含的用于确定扇区号的參数,确定用于存储请求写入的数据的各扇区分别对应的扇区号,包括;根据所述写数据请求中包含的偏移量,以及单位磁盘扇区的存储容量值,确定用于存储请求写入的数据的起始扇区号,其中,所述偏移量为请求写入的数据将写入磁盘的起始位置相对于所述写数据请求中包含的块设备标识标志的块设备起始位置的偏移量;根据所述请求写入的数据的长度值和单位磁盘扇区的存储容量值,确定存储请求写入的数据将连续占用扇区的数目;根据确定出的起始扇区号和连续占用扇区的数目,确定用于存储请求写入的数据的各扇区分别对应的扇区号。
3.ー种基于权利要求1的数据备份方法的虚拟机快照创建方法,其特征在干,包括 毎次在接收到创建快照的指令后,对远程Key-Value存储资源池中存储的数据进行快照处理,创建本次快照及其对应的快照文件;并将本次创建快照的时间点至下一次创建快照的时间点之间的所有新存储到远程 Key-Value存储资源池中的数据存储到所述快照文件中; 将本次创建的快照与快照文件对应存储。
4.ー种基于权利要求3的快照创建方法的虚拟机快照删除方法,其特征在干,包括 确定要删除的快照、及要删除的快照的前一快照;针对与确定的要删除的快照对应存储的快照文件和与确定的前一快照对应存储的快照文件中包含的与同一键值对应的数据中,保留离当前时间点最近的一个时间信息及其对应的数据,并删除其他时间信息及其分别对应的数据; 删除确定出的要删除的快照。
5.ー种基于权利要求3的快照创建方法的虚拟机快照回滚方法,其特征在干,包括 确定要回滚到的快照、及要回滚到的快照之后的每ー快照;将确定出的回滚到的快照之后的每ー快照及其分别对应存储的快照文件删除; 将确定出的要回滚到的快照激活成当前快照。
6.ー种基于权利要求3的快照创建方法的基于块设备存储的数据恢复方法,其特征在干,包括确定需要将远程Key-Value存储资源池存储的数据恢复到的快照;按照存储的各快照文件和快照的对应关系,查询确定的要恢复到的快照对应的快照文件;将查询到的快照文件中的数据由可读可写形式设置为只读形式,并保持其他快照文件中的数据为可读可写形式;基于设置为只读形式的快照文件进行数据恢复。
7.一种基于块设备存储的数据备份装置,其特征在干,包括 数据接收単元,用于接收写数据请求和请求写入的数据;扇区号确定单元,用于根据数据接收単元接收到的所述写数据请求中包含的用于确定扇区号的參数,确定用于存储请求写入的数据的各扇区分别对应的扇区号;和当前时间确定单元,用于确定当前的时间信息;存储单元,用于将扇区号确定单元确定的作为键值的扇区号、数据接收単元接收到的请求写入的数据和当前时间确定单元确定的时间信息对应存储到远程Key-Value存储资源池中。
8.ー种基于权利要求7的数据备份装置的虚拟机快照创建装置,其特征在干,包括 快照文件创建单元,用于在每次在接收到创建快照的指令后,对远程Key-Value存储资源池中存储的数据进行快照处理,创建本次快照对应的快照文件;数据存储単元,用于将本次创建快照的时间点至下一次创建快照的时间点之间的所有新存储到远程Key-Value存储资源池中的数据存储到快照文件创建单元创建的所述快照文件中;对应存储单元,用于将快照文件创建单元本次处理得到的快照与得到的该快照文件对应存储。
9.ー种基于权利要求8的快照创建装置的虚拟机快照删除装置,其特征在干,包括 删除快照确定单元,用于确定要删除的快照、及要删除的快照的前一快照;数据删除単元,用于针对与删除快照确定单元确定的要删除的快照对应存储的快照文件和与确定的前一快照对应存储的快照文件中包含的与同一键值对应的数据中,保留离当前时间点最近的一个时间信息及其对应的数据,并删除其他时间信息及其分别对应的数据;快照删除单元,用于删除删除快照确定单元确定出的要删除的快照。
10.ー种基于权利要求8的快照创建装置的虚拟机快照回滚装置,其特征在干,包括 回滚快照确定单元,用于确定要回滚到的快照、及要回滚到的快照之后的每ー快照; 快照及快照文件删除单元,用于将回滚快照确定单元确定出的要回滚到的快照之后的每ー快照及其分别对应存储的快照文件删除;激活单元,用于将回滚快照确定单元确定出的要回滚到的快照激活成当前快照。
11.ー种基于权利要求8的快照创建装置的基于块设备存储的数据恢复装置,其特征在干,包括恢复快照确定单元,用于确定需要将远程Key-Value存储资源池存储的数据恢复到的快照;快照文件查询单元,用于按照对应存储单元存储的各快照文件和快照的对应关系,查询恢复快照确定单元确定的要恢复到的快照对应的快照文件;只读形式设置单元,用于将快照文件查询单元查询到的快照文件中的数据由可读可写形式设置为只读形式;数据恢复単元,用于基于只读形式设置单元设置后的只读形式的快照文件进行数据恢复ο
全文摘要
本申请公开了一种基于块设备存储的数据备份方法,包括接收写数据请求和请求写入的数据;根据所述写数据请求中包含的用于确定扇区号的参数,确定用于存储请求写入的数据的各扇区分别对应的扇区号;并确定当前的时间信息;将确定的作为键值的扇区号、请求写入的数据和确定的时间信息对应存储到远程Key-Value存储资源池中。本申请还公开了基于该数据备份方法的虚拟机快照创建、删除、回滚以及相应的数据恢复方法。本申请可以在节约硬件成本的同时提高数据备份、恢复的效率。
文档编号H04L29/08GK102594849SQ201110001879
公开日2012年7月18日 申请日期2011年1月6日 优先权日2011年1月6日
发明者吴峥涛, 孔祥云, 陈伟才, 陈波 申请人:阿里巴巴集团控股有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1