CN110750325A - 虚拟机的镜像备份方法、故障恢复方法、装置和电子设备 - Google Patents

虚拟机的镜像备份方法、故障恢复方法、装置和电子设备 Download PDF

Info

Publication number
CN110750325A
CN110750325A CN201910139170.0A CN201910139170A CN110750325A CN 110750325 A CN110750325 A CN 110750325A CN 201910139170 A CN201910139170 A CN 201910139170A CN 110750325 A CN110750325 A CN 110750325A
Authority
CN
China
Prior art keywords
virtual machine
data
mirror image
block device
image data
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.)
Pending
Application number
CN201910139170.0A
Other languages
English (en)
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 Didi Infinity Technology and Development Co Ltd
Original Assignee
Beijing Didi Infinity Technology and Development Co 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 Didi Infinity Technology and Development Co Ltd filed Critical Beijing Didi Infinity Technology and Development Co Ltd
Priority to CN201910139170.0A priority Critical patent/CN110750325A/zh
Publication of CN110750325A publication Critical patent/CN110750325A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • G06F11/1451Management of the data involved in backup or backup restore by selection of backup contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请提供了一种虚拟机的镜像备份方法、故障恢复方法、装置和电子设备,其中,该虚拟机的镜像备份方法包括:如果所述宿主机上创建的虚拟机为在线状态,获取所述虚拟机需要备份的镜像数据;将所述镜像数据备份至所述分布式存储集群中所述虚拟机对应的块设备上。本申请中,如果宿主机上创建的虚拟机为在线状态,则获取该虚拟机需要备份的镜像数据,将镜像数据备份至分布式存储集群中该虚拟机对应的块设备上。由于镜像数据的备份不保存在宿主机本地,不仅可以节省宿主机本地的存储空间,而且可以提高虚拟机镜像的备份数据的可靠性。

Description

虚拟机的镜像备份方法、故障恢复方法、装置和电子设备
技术领域
本申请涉及计算机虚拟化技术领域,具体而言,涉及一种虚拟机的镜像备份方法、故障恢复方法、装置和电子设备。
背景技术
虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。实际运行虚拟机的物理机称为宿主机,一台宿主机上可以运行一个或多个虚拟机。每个虚拟机可以有一个或多个镜像,为了提高虚拟机镜像的可靠性,通常需要对虚拟机的镜像数据进行备份。
现有的虚拟机镜像的备份数据一般保存在宿主机本地。一方面,虚拟机镜像的数据可靠性与宿主机磁盘的使用方式高度相关。数据可靠性可以通过宿主机磁盘的数据冗余来改善,但同时会衰减磁盘读写性能,且浪费存储空间。另一方面,虚拟机镜像的数据可靠性与宿主机自身的可靠性也高度相关。如果宿主机的硬件或软件发生故障,致使物理机磁盘数据不可读,例如宕机之后无法再开机,磁盘故障等等,将导致虚拟机镜像的备份数据丢失,给用户造成损失。
发明内容
有鉴于此,本申请实施例的目的在于提供一种虚拟机的镜像备份方法、故障恢复方法、装置和电子设备,可以节省宿主机本地的存储空间,同时提高虚拟机镜像的备份数据的可靠性。
根据本申请的一个方面,提供一种虚拟机的镜像备份方法,应用于宿主机,所述宿主机与分布式存储集群通信连接,所述方法包括:如果所述宿主机上创建的虚拟机为在线状态,获取所述虚拟机需要备份的镜像数据;将所述镜像数据备份至所述分布式存储集群中所述虚拟机对应的块设备上。
在一些实施例中,所述方法还包括:当在所述宿主机上创建完虚拟机时,在所述分布式存储集群中选取所述虚拟机对应的块设备。
在一些实施例中,在所述分布式存储集群中选取所述虚拟机对应的块设备的步骤,包括:
如果所述虚拟机有多个镜像需要备份,在所述分布式存储集群中选取与多个所述镜像分别一一对应的块设备。
在一些实施例中,在所述分布式存储集群中选取所述虚拟机对应的块设备的步骤,包括:
在所述宿主机上创建所述虚拟机对应的虚拟设备;
在所述分布式存储集群中创建与所述虚拟设备对应的块设备;
保存所述虚拟设备与所述块设备间的映射关系。
在一些实施例中,获取所述虚拟机需要备份的镜像数据的步骤,包括:
当完成所述虚拟机创建时,或者,当完成所述虚拟机创建且持续指定时长时,获取所述虚拟机需要备份的镜像的全量数据;
将所述全量数据作为当前需要备份的镜像数据。
在一些实施例中,获取所述虚拟机需要备份的镜像数据的步骤,包括:
按照设定的时间间隔获取所述虚拟机需要备份的镜像的增量数据;
将所述增量数据作为当前需要备份的镜像数据。
在一些实施例中,将所述镜像数据备份至所述分布式存储集群中所述虚拟机对应的块设备上的步骤,包括:
查找所述虚拟机在所述分布式存储集群中对应的块设备;
将所述镜像数据备份至所述块设备上。
在一些实施例中,查找所述虚拟机在所述分布式存储集群中对应的块设备的步骤,包括:
在本地预存的虚拟设备与块设备的映射关系中,查找所述虚拟机在所述分布式存储集群中对应的块设备。
在一些实施例中,将所述镜像数据备份至所述块设备上的步骤,包括:
如果所述镜像数据为增量数据,向所述块设备发送快照指令;以使所述块设备生成当前存储的镜像数据的快照;
当接收到所述块设备返回的快照完成通知时,将所述增量数据备份至所述块设备;
当所述增量数据备份完成时,向所述块设备发送删除快照指令,以使所述块设备删除所述快照。
根据本申请的另一方面,提供一种虚拟机的故障恢复方法,应用于服务器,所述方法包括:
如果虚拟机所在的宿主机发生故障,查找所述虚拟机在分布式存储集群中对应的块设备;
从所述块设备下载所述虚拟机的镜像数据;
应用所述镜像数据在新主机上恢复所述虚拟机。
在一些实施例中,从所述块设备下载所述虚拟机的镜像数据的步骤,包括:
检查所述块设备上是否保存有快照;
如果是,将所述块设备回滚至所述快照对应的镜像数据;
下载回滚得到的所述镜像数据。
在一些实施例中,应用所述镜像数据在新主机上恢复所述虚拟机的步骤,包括:
将所述镜像数据存储至新主机;
在所述新主机上运行所述镜像数据,得到恢复后的所述虚拟机。
根据本申请的另一方面,提供一种虚拟机的镜像备份装置,应用于宿主机,所述宿主机与分布式存储集群通信连接,所述装置包括:
数据获取模块,用于如果所述宿主机上创建的虚拟机为在线状态,获取所述虚拟机需要备份的镜像数据;
数据备份模块,用于将所述镜像数据备份至所述分布式存储集群中所述虚拟机对应的块设备上。
在一些实施例中,所述装置还包括:
设备关联模块,用于当在所述宿主机上创建完虚拟机时,在所述分布式存储集群中选取所述虚拟机对应的块设备。
在一些实施例中,所述设备关联模块还用于:
如果所述虚拟机有多个镜像需要备份,在所述分布式存储集群中选取与多个所述镜像分别一一对应的块设备。
在一些实施例中,所述设备关联模块还用于:
在所述宿主机上创建所述虚拟机对应的虚拟设备;
在所述分布式存储集群中创建与所述虚拟设备对应的块设备;
保存所述虚拟设备与所述块设备间的映射关系。
在一些实施例中,所述数据获取模块还用于:
当完成所述虚拟机创建时,或者,当完成所述虚拟机创建且持续指定时长时,获取所述虚拟机需要备份的镜像的全量数据;
将所述全量数据作为当前需要备份的镜像数据。
在一些实施例中,所述数据获取模块还用于:
按照设定的时间间隔获取所述虚拟机需要备份的镜像的增量数据;
将所述增量数据作为当前需要备份的镜像数据。
在一些实施例中,所述数据备份模块还用于:
查找所述虚拟机在所述分布式存储集群中对应的块设备;
将所述镜像数据备份至所述块设备上。
在一些实施例中,所述数据备份模块还用于:
在本地预存的虚拟设备与块设备的映射关系中,查找所述虚拟机在所述分布式存储集群中对应的块设备。
在一些实施例中,所述数据备份模块还用于:
如果所述镜像数据为增量数据,向所述块设备发送快照指令;以使所述块设备生成当前存储的镜像数据的快照;
当接收到所述块设备返回的快照完成通知时,将所述增量数据备份至所述块设备;
当所述增量数据备份完成时,向所述块设备发送删除快照指令,以使所述块设备删除所述快照。
根据本申请的另一方面,提供一种虚拟机的故障恢复装置,应用于服务器,所述装置包括:
设备查找模块,用于如果虚拟机所在的宿主机发生故障,查找所述虚拟机在分布式存储集群中对应的块设备上;
数据下载模块,用于从所述块设备下载所述虚拟机的镜像数据;
虚拟机恢复模块,用于应用所述镜像数据在新主机上恢复所述虚拟机。
在一些实施例中,所述数据下载模块还用于:
检查所述块设备上是否保存有快照;
如果是,将所述块设备回滚至所述快照对应的镜像数据;
下载回滚得到的所述镜像数据。
在一些实施例中,所述虚拟机恢复模块还用于:
将所述镜像数据存储至新主机;
在所述新主机上运行所述镜像数据,得到恢复后的所述虚拟机。
根据本申请的另一方面,提供一种电子设备,可以包括一个或多个存储介质和一个或多个与存储介质通信的处理器。一个或多个存储介质存储有处理器可执行的机器可读指令。当电子设备运行时,处理器与存储介质之间通过总线通信,处理器执行所述机器可读指令,以执行如上述一个或多个虚拟机的镜像备份方法的步骤,或者执行如上述一个或多个虚拟机的故障恢复方法的步骤。
根据本申请的另一方面,提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如上述一个或多个虚拟机的镜像备份方法的步骤,或者执行如上述一个或多个虚拟机的故障恢复方法的步骤。
本申请所提供的虚拟机的镜像备份方法、故障恢复方法、装置和电子设备,如果宿主机上创建的虚拟机为在线状态,则获取该虚拟机需要备份的镜像数据,将镜像数据备份至分布式存储集群中该虚拟机对应的块设备上。由于镜像数据的备份不保存在宿主机本地,不仅可以节省宿主机本地的存储空间,而且可以提高虚拟机镜像的备份数据的可靠性。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本申请实施例所提供的一种虚拟机的镜像备份方法的流程图;
图2示出了本申请实施例所提供的一种虚拟机镜像备份的示意图;
图3示出了本申请实施例所提供的另一种虚拟机镜像备份的示意图;
图4示出了本申请实施例所提供的一种虚拟机的故障恢复方法的流程图;
图5示出了本申请实施例所提供的一种虚拟机的故障恢复方法的示意图;
图6示出了本申请实施例所提供的一种虚拟机的镜像备份装置的结构示意图;
图7示出了本申请实施例所提供的另一种虚拟机的镜像备份装置的结构示意图;
图8示出了本申请实施例所提供的一种虚拟机的故障恢复装置的结构示意图;
图9示出了本申请实施例所提供的一种电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,应当理解,本申请中附图仅起到说明和描述的目的,并不用于限定本申请的保护范围。另外,应当理解,示意性的附图并未按实物比例绘制。本申请中使用的流程图示出了根据本申请的一些实施例实现的操作。应该理解,流程图的操作可以不按顺序实现,没有逻辑的上下文关系的步骤可以反转顺序或者同时实施。此外,本领域技术人员在本申请内容的指引下,可以向流程图添加一个或多个其他操作,也可以从流程图中移除一个或多个操作。
另外,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
为了使得本领域技术人员能够使用本申请内容,结合特定应用场景,给出以下实施方式。本申请的一个方面涉及一种虚拟机的镜像备份方法,将虚拟机需要备份的镜像数据备份至分布式存储集群中该虚拟机对应的块设备上,不仅可以节省宿主机本地的存储空间,而且可以提高虚拟机镜像的备份数据的可靠性。本申请的另一个方面涉及一种虚拟机的故障恢复方法,当虚拟机所在的宿主机发生故障时,服务器可以查找该虚拟机在分布式存储集群中对应的块设备,从块设备下载虚拟机的镜像数据,应用镜像数据在新主机上恢复该虚拟机,可以保证虚拟机继续可用。
值得注意的是,在本申请提出申请之前,现有的虚拟机镜像的备份数据一般保存在宿主机本地,设置宿主机数据冗余机制,虽然提高了虚拟机本地镜像数据的可靠性,但数据冗余一方面导致宿主机磁盘的读写性能衰减,且浪费宿主机的存储空间;另一方面,如果宿主机发生故障,将导致虚拟机镜像的备份数据丢失,给用户造成损失。一些虚拟机厂商不承诺镜像数据的可靠性,要求用户自己完成数据备份工作。这样做需要用户自己承担数据备份工作带来的各方面负担,在用户体验层面十分不友好。然而,本申请提供的虚拟机的镜像备份方法、故障恢复方法、装置和电子设备,可以节省宿主机本地的存储空间,同时提高虚拟机镜像的备份数据的可靠性。
图1示出了本申请实施例所提供的虚拟机的镜像备份方法的流程图。该方法可以由虚拟机的宿主机执行。所述宿主机与分布式存储集群通信连接,分布式存储集群中可以包括多个存储设备。在一些实施例中,宿主机可以是单个的物理机,也可以是物理机组。在一些实施例中,宿主机相对于用户而言,可以是远程的。例如,用户可以通过终端设备经由网络访问宿主机和运行在宿主机上的虚拟机。在一些实施例中,宿主机可以在云平台上实现。在一些实施例中,宿主机可以在本申请中图9所示的一个或多个组件的电子设备900上实现。
所述宿主机上可以运行一个或多个虚拟机,每个虚拟机可以有一个或多个镜像,虚拟机镜像的备份数据可以保存在分布式存储集群中的存储设备上。分布式存储集群可以采用Ceph存储系统,Ceph是一种由软件实现的开源分布式存储解决方案。分布式存储集群可以在云平台上实现。仅作为示例,云平台可以包括私有云、公有云、混合云、社区云、分布式云、跨云、多云或者其它类似的等,或其任意组合。如图1所示,该方法包括如下步骤:
步骤S102,如果宿主机上创建的虚拟机为在线状态,获取虚拟机需要备份的镜像数据。
在本申请实施例中,用户可以直接在宿主机上创建虚拟机,或者通过终端设备向宿主机发送创建虚拟机的请求,在宿主机上创建虚拟机。宿主机在创建虚拟机时,可以获取创建虚拟机所需的镜像文件,镜像文件可以预先存储在宿主机或分布式存储集群中。宿主机获取镜像文件,利用镜像文件创建虚拟机。
当在宿主机上创建的虚拟机处于在线状态时,宿主机可以获取虚拟机需要备份的镜像数据。虚拟机需要备份的镜像数据可能包括全量数据或增量数据。例如,虚拟机创建完成后初次备份时,需要备份的镜像数据可以是全量数据,之后定期进行数据备份时,需要备份的镜像数据可以是增量数据。所述增量数据可以理解为从上一次备份至这一次备份之间的时段内生成的差异数据。
无论是全量数据的备份,还是增量数据的备份,均在虚拟机处于在线状态时进行,备份过程中不影响用户的任何操作,可以做到在用户无感的状态下完成备份。
步骤S104,将镜像数据备份至分布式存储集群中虚拟机对应的块设备上。
分布式存储集群中设置有与虚拟机对应的块设备,用于存储该虚拟机的镜像数据的备份。
本申请所提供的虚拟机的镜像备份方法,如果宿主机上创建的虚拟机为在线状态,则获取该虚拟机需要备份的镜像数据,将镜像数据备份至分布式存储集群中该虚拟机对应的块设备上。由于镜像数据的备份不保存在宿主机本地,不仅可以节省宿主机本地的存储空间,而且可以提高虚拟机镜像的备份数据的可靠性。
当在宿主机上创建完虚拟机时,可以在分布式存储集群中选取所述虚拟机对应的块设备,用于存储该虚拟机的镜像数据的备份,易于后续的数据备份操作。每个虚拟机可以有一个或多个镜像,如果虚拟机有多个镜像需要备份,可以在分布式存储集群中选取与多个所述镜像分别一一对应的块设备,每个块设备用于存储与其对应的镜像的备份数据,能够使备份数据的过程更简单,避免出现备份数据混乱的情况。
在分布式存储集群中选取虚拟机对应的块设备时,可以先在宿主机上创建虚拟机对应的虚拟设备nbd,然后在分布式存储集群中创建与虚拟设备nbd对应的块设备rbd,保存虚拟设备nbd与块设备rbd之间的映射关系。例如,可以将虚拟设备nbd与块设备rbd之间的映射关系保存在宿主机上,也可以存储在服务器上或分布式存储集群中。上述过程可以理解为,每个虚拟机的每个镜像对应一个虚拟设备nbd,每虚拟设备nbd都映射一个分布式存储集群中的块设备rbd。
例如,在一台宿主机上创建了虚拟机A,虚拟机A的本地镜像所在位置为nbd1,则可以在分布式存储集群中创建虚拟机A对应的一个块设备rbd1,将该rbd1与nbd1建立关联,保存虚拟设备nbd1与块设备rbd1之间的映射关系。通过建立虚拟设备nbd与块设备rbd之间的映射关系,在后续数据备份的过程中,易于查找备份数据对应的块设备,简单高效地进行数据备份。
在对虚拟机的镜像数据进行备份时,初次备份可以进行全量备份,之后每次备份可以进行增量备份。在一种可选的实施例中,当完成虚拟机创建时,可以获取虚拟机需要备份的镜像的全量数据,将全量数据作为当前需要备份的镜像数据,查找所述虚拟机在分布式存储集群中对应的块设备,将镜像数据备份至分布式存储集群中虚拟机对应的块设备上。例如,在本地预存的虚拟设备与块设备的映射关系中,查找所述虚拟机在分布式存储集群中对应的块设备,将镜像数据备份至块设备上。
示例性地,如图2所示,备份虚拟机的全量数据时,利用block-backup机制,将全量数据保存至宿主机本地的虚拟设备,然后在本地预存的虚拟设备与块设备的映射关系中,查找所述虚拟机在分布式存储集群中对应的块设备,将镜像数据备份至块设备上。其中,block-backup机制为qemu-kvm支持的功能之一,可以实现对虚拟机镜像的在线备份功能,不受虚拟机开关机和热迁移的影响。qemu-kvm是由软件实现的开源虚拟化解决方案。在宿主机上,每个虚拟机对应一个qemu-kvm进程。
在另一种可选的实施例中,不必在刚完成虚拟机创建时就进行全量数据备份,可以在完成虚拟机创建且持续指定时长时,获取虚拟机需要备份的镜像的全量数据,将全量数据作为当前需要备份的镜像数据,将镜像数据备份至分布式存储集群中虚拟机对应的块设备上。在实际应用中,上述指定时长可以是分钟级别的,也可以是小时级别的,例如10~30分钟之间的任一时长,或者1~3小时之间的任一时长。全量数据可以在创建完虚拟机时备份,也可以在使用一段时间后备份,可以根据用户的需要进行设置,增加了虚拟机的镜像备份方法的灵活性。
为了避免在虚拟机使用过程中,因宿主机宕机导致大量数据或信息丢失,可以在虚拟机在线时,周期性地进行增量数据的备份。按照设定的时间间隔获取所述虚拟机需要备份的镜像的增量数据,将增量数据作为当前需要备份的镜像数据,查找所述虚拟机在分布式存储集群中对应的块设备,将镜像数据备份至块设备上。示例性地,所述设定的时间间隔可以是5分钟。例如,可以在本地预存的虚拟设备与块设备的映射关系中,快速便捷地查找所述虚拟机在分布式存储集群中对应的块设备,将增量数据备份至块设备上。
qemu-kvm内部有bitmap机制,bitmap会记录增量数据,每次备份结束后,bitmap会重新发生变化的数据,bitmap记录的数据就是下次要备份的增量数据。
本申请实施例提供的虚拟机的镜像备份方法,利用qemu-kvm的block-backup机制,在虚拟机被创建后对镜像数据进行一次在线全量备份,此后周期性地对镜像数据进行在线增量备份,备份数据存储在分布式存储集群中的块设备上。这种方式相比于在在宿主机本地保存虚拟机镜像的备份数据的方式,提高了虚拟机镜像数据的可靠性,节约了宿主机的存储空间;另外,如果宿主机发生故障,也不会导致虚拟机镜像的备份数据丢失。
在虚拟机建立之初,用户对磁盘的写入操作很少,因此做在线全量备份时,需要备份的数据量很小,备份速度很快,不会影响用户任何操作,用户无感。之后周期性地对镜像数据进行在线增量备份,每次的增量数据直接从镜像数据中读出并写入到分布式存储集群中的块设备上,镜像每次增量备份仅对虚拟机本身有一步操作,不会影响用户任何操作,用户无感。当宿主机发生故障导致数据无法读出的时候,可以在其他宿主机用备份的镜像数据恢复虚拟机,最多只丢失一个周期的数据。
如果增量备份过程中宿主机出现宕机等故障,那么本次备份得到的数据无法保证完整性,不能被当做虚拟机镜像的数据备份,如图3所示,上述方法中,在将镜像数据备份至所述块设备上的过程,可以具体包括如下步骤:(1)如果镜像数据为增量数据,向上述块设备发送快照指令;以使该块设备生成当前存储的镜像数据的快照;(2)当接收到所述块设备返回的快照完成通知时,将所述增量数据备份至所述块设备;(3)当增量数据备份完成时,向所述块设备发送删除快照指令,以使所述块设备删除所述快照。通过每次备份之前在分布式存储集群的块设备上对当时的数据打一个快照作为增量备份过程中的备份状态,保存该虚拟机上一次增量备份的配置信息或状态信息,避免增量备份过程中发生异常而导致备份数据被损坏,最大可能保障了镜像数据的完整性,进而利于增量备份操作过程中出现异常时的状态恢复。
与上述虚拟机的镜像备份方法相对应地,本申请实施例还提供了一种虚拟机的故障恢复方法,该方法应用于服务器。所述服务器与宿主机连接,可以监测宿主机及宿主机上的虚拟机的运行状态,当监测到宿主机发生故障时,可以及时恢复在宿主机的运行的虚拟机,避免因宿主机故障而导致虚拟机无法使用。
在一些实施例中,服务器可以是单个服务器,也可以是服务器组。服务器组可以是集中式的,也可以是分布式的(例如,服务器可以是分布式系统)。在一些实施例中,服务器可以通过网络与宿主机或块设备连接。例如,服务器可以经由网络访问宿主机及在宿主机上运行的虚拟机,服务器还可以经由网络访问存储在分布式存储集群中的块设备上的备份数据。在一些实施例中,服务器可以在云平台上实现;仅作为示例,云平台可以包括私有云、公有云、混合云、社区云(community cloud)、分布式云、跨云(inter-cloud)、多云(multi-cloud)等,或者它们的任意组合。在一些实施例中,服务器可以在本申请中图9所示的一个或多个组件的电子设备900上实现。
图4示出了本申请实施例提供的虚拟机的故障恢复方法的流程图,如图4所示,该方法包括如下步骤:
步骤S402,如果虚拟机所在的宿主机发生故障,查找虚拟机在分布式存储集群中对应的块设备。
如果服务器监测到虚拟机所在的宿主机发生故障,需要恢复虚拟机时,可以根据预存的虚拟机与块设备的映射关系,查找虚拟机在分布式存储集群中对应的块设备。
步骤S404,从块设备下载所述虚拟机的镜像数据。
步骤S406,应用镜像数据在新主机上恢复所述虚拟机。
示例性地,如图5所示,将块设备上的镜像数据存储至新主机,在新主机上运行镜像数据,得到恢复后的所述虚拟机。
本申请所提供的虚拟机的故障恢复方法,当虚拟机的宿主机发送故障时,可以利用分布式存储集群中存储的镜像数据在新主机上恢复所述虚拟机,保证用户可以正常使用虚拟机,提高虚拟机的可靠性。
在从块设备上下载镜像数据时,可以先检查块设备上是否保存有快照,如果否,可以直接将块设备上备份的镜像数据下载至新主机;如果是,说明宿主机发生故障时,有一次备份操作正在进行,块设备上备份的镜像数据可能是不完整的,此时,可以将块设备回滚至快照对应的镜像数据,下载回滚得到的镜像数据,保证镜像数据的完整性和可用性。
与上述方法实施例记载的虚拟机的镜像备份方法相对应地,本申请的另一方面还提供了一种虚拟机的镜像备份装置,图6示出了本申请的一些实施例的虚拟机的镜像备份装置的结构框图,该虚拟机的镜像备份装置实现的功能对应上述方法执行的步骤。该装置可以理解为上述宿主机,或宿主机的处理器,也可以理解为独立于上述宿主机或处理器之外的在宿主机控制下实现本申请功能的组件,如图6所示,该装置包括:
数据获取模块61,用于如果所述宿主机上创建的虚拟机为在线状态,获取所述虚拟机需要备份的镜像数据;
数据备份模块62,用于将所述镜像数据备份至所述分布式存储集群中所述虚拟机对应的块设备上。
本申请所提供的虚拟机的镜像备份装置,如果宿主机上创建的虚拟机为在线状态,则获取该虚拟机需要备份的镜像数据,将镜像数据备份至分布式存储集群中该虚拟机对应的块设备上。由于镜像数据的备份不保存在宿主机本地,不仅可以节省宿主机本地的存储空间,而且可以提高虚拟机镜像的备份数据的可靠性。
在一种可选的实施例中,如图7所示,上述装置还可以包括:
设备关联模块71,用于当在所述宿主机上创建完虚拟机时,在所述分布式存储集群中选取所述虚拟机对应的块设备。
在本申请实施例中,用户可以直接在宿主机上创建虚拟机,或者通过终端设备向宿主机发送创建虚拟机的请求,在宿主机上创建虚拟机。宿主机在创建虚拟机时,可以获取创建虚拟机所需的镜像文件,镜像文件可以预先存储在宿主机或分布式存储集群中。宿主机获取镜像文件,利用镜像文件创建虚拟机。
当在宿主机上创建完虚拟机时,可以在分布式存储集群中选取所述虚拟机对应的块设备,用于存储该虚拟机的镜像数据的备份,易于后续的数据备份操作。
设备关联模块71还可以用于:如果所述虚拟机有多个镜像需要备份,在所述分布式存储集群中选取与多个所述镜像分别一一对应的块设备。
每个虚拟机可以有一个或多个镜像,如果虚拟机有多个镜像需要备份,可以在分布式存储集群中选取与多个所述镜像分别一一对应的块设备,每个块设备用于存储与其对应的镜像的备份数据,能够使备份数据的过程更简单,避免出现备份数据混乱的情况。
设备关联模块71还可以用于:在所述宿主机上创建所述虚拟机对应的虚拟设备;在所述分布式存储集群中创建与所述虚拟设备对应的块设备;保存所述虚拟设备与所述块设备间的映射关系。
在分布式存储集群中选取虚拟机对应的块设备时,可以先在宿主机上创建虚拟机对应的虚拟设备nbd,然后在分布式存储集群中创建与虚拟设备nbd对应的块设备rbd,保存虚拟设备nbd与块设备rbd之间的映射关系。例如,可以将虚拟设备nbd与块设备rbd之间的映射关系保存在宿主机上,也可以存储在服务器上或分布式存储集群中。上述过程可以理解为,每个虚拟机的每个镜像对应一个虚拟设备nbd,每虚拟设备nbd都映射一个分布式存储集群中的块设备rbd。通过建立虚拟设备nbd与块设备rbd之间的映射关系,在后续数据备份的过程中,易于查找备份数据对应的块设备,简单高效地进行数据备份。
数据获取模块61还可以用于:当完成所述虚拟机创建时,或者,当完成所述虚拟机创建且持续指定时长时,获取所述虚拟机需要备份的镜像的全量数据;将所述全量数据作为当前需要备份的镜像数据。
数据获取模块61还可以用于:按照设定的时间间隔获取所述虚拟机需要备份的镜像的增量数据;将所述增量数据作为当前需要备份的镜像数据。
数据备份模块62还可以用于:查找所述虚拟机在所述分布式存储集群中对应的块设备;将所述镜像数据备份至所述块设备上。
在对虚拟机的镜像数据进行备份时,初次备份可以进行全量备份,之后每次备份可以进行增量备份。在一种可选的实施例中,当完成虚拟机创建时,可以获取虚拟机需要备份的镜像的全量数据,将全量数据作为当前需要备份的镜像数据,查找所述虚拟机在分布式存储集群中对应的块设备,将镜像数据备份至分布式存储集群中虚拟机对应的块设备上。例如,在本地预存的虚拟设备与块设备的映射关系中,查找所述虚拟机在分布式存储集群中对应的块设备,将镜像数据备份至块设备上。
在另一种可选的实施例中,不必在刚完成虚拟机创建时就进行全量数据备份,可以在完成虚拟机创建且持续指定时长时,获取虚拟机需要备份的镜像的全量数据,将全量数据作为当前需要备份的镜像数据,将镜像数据备份至分布式存储集群中虚拟机对应的块设备上。在实际应用中,上述指定时长可以是预先设定的任一时长。全量数据可以在创建完虚拟机时备份,也可以在使用一段时间后备份,可以根据用户的需要进行设置,增加了虚拟机的镜像备份方法的灵活性。
为了避免在虚拟机使用过程中,因宿主机宕机导致大量数据或信息丢失,可以在虚拟机在线时,周期性地进行增量数据的备份。按照设定的时间间隔获取所述虚拟机需要备份的镜像的增量数据,将增量数据作为当前需要备份的镜像数据,查找所述虚拟机在分布式存储集群中对应的块设备,将镜像数据备份至块设备上。示例性地,所述设定的时间间隔可以是5分钟。例如,可以在本地预存的虚拟设备与块设备的映射关系中,快速便捷地查找所述虚拟机在分布式存储集群中对应的块设备,将增量数据备份至块设备上。
数据备份模块62还可以用于:在本地预存的虚拟设备与块设备的映射关系中,查找所述虚拟机在所述分布式存储集群中对应的块设备。
数据备份模块62还可以用于:如果所述镜像数据为增量数据,向所述块设备发送快照指令;以使所述块设备生成当前存储的镜像数据的快照;当接收到所述块设备返回的快照完成通知时,将所述增量数据备份至所述块设备;当所述增量数据备份完成时,向所述块设备发送删除快照指令,以使所述块设备删除所述快照。
如果增量备份过程中宿主机出现宕机等故障,那么本次备份得到的数据无法保证完整性,不能被当作虚拟机镜像的数据备份,所以需要每次备份之前在分布式存储集群的块设备上对当时的数据打一个快照作为增量备份过程中的备份状态,保存该虚拟机上一次增量备份的配置信息或状态信息,确保增量备份操作过程中出现异常时的状态恢复。即如果需要备份的镜像数据为增量数据,可以向块设备发送快照指令,以使块设备生成当前存储的镜像数据的快照。当接收到块设备返回的快照完成通知时,将增量数据备份至块设备。当增量数据备份完成时,向块设备发送删除快照指令,以使块设备删除快照。在进行增量数据备份时,先令块设备进行快照然后再备份,避免增量备份过程中发生异常而导致备份数据被损坏。
现有的虚拟机镜像的备份数据一般保存在宿主机本地,设置宿主机数据冗余机制,虽然提高了虚拟机本地镜像数据的可靠性,但数据冗余一方面导致宿主机磁盘的读写性能衰减,且浪费宿主机的存储空间;另一方面,如果宿主机发生故障,将导致虚拟机镜像的备份数据丢失,给用户造成损失。一些虚拟机厂商不承诺镜像数据的可靠性,要求用户自己完成数据备份工作。这样做需要用户自己承担数据备份工作带来的各方面负担,在用户体验层面十分不友好。
本申请实施例提供的虚拟机的镜像备份装置,在虚拟机被创建后对镜像数据进行一次在线全量备份,此后周期性地对镜像数据进行在线增量备份,备份数据存储在分布式存储集群中的块设备上。在虚拟机建立之初,用户对磁盘的写入操作很少,因此做在线全量备份时,需要备份的数据量很小,备份速度很快,不会影响用户任何操作,用户无感。之后周期性地对镜像数据进行在线增量备份,每次的增量数据直接从镜像数据中读出并写入到分布式存储集群中的块设备上,镜像每次增量备份仅对虚拟机本身有一步操作,不会影响用户任何操作,用户无感。当宿主机发生故障导致数据无法读出的时候,可以在其他宿主机用备份的镜像数据恢复虚拟机,最多只丢失一个周期的数据。
与上述方法实施例记载的虚拟机的故障恢复方法相对应地,本申请的另一方面还提供了一种虚拟机的故障恢复装置,图8示出了本申请的一些实施例的虚拟机的故障恢复装置的结构框图,该虚拟机的故障恢复装置实现的功能对应上述方法执行的步骤。该装置可以理解为上述服务器,或服务器的处理器,也可以理解为独立于上述服务器或处理器之外的在服务器控制下实现本申请功能的组件,如图8所示,该装置包括:
设备查找模块81,用于如果虚拟机所在的宿主机发生故障,查找所述虚拟机在分布式存储集群中对应的块设备上;
数据下载模块82,用于从所述块设备下载所述虚拟机的镜像数据;
虚拟机恢复模块83,用于应用所述镜像数据在新主机上恢复所述虚拟机。
在一些实施例中,数据下载模块82还可以用于:检查所述块设备上是否保存有快照;如果是,将所述块设备回滚至所述快照对应的镜像数据;下载回滚得到的所述镜像数据。
虚拟机恢复模块83还可以用于:将所述镜像数据存储至新主机;在所述新主机上运行所述镜像数据,得到恢复后的所述虚拟机。
如果服务器监测到虚拟机所在的宿主机发生故障,需要恢复虚拟机时,可以根据预存的虚拟机与块设备的映射关系,查找虚拟机在分布式存储集群中对应的块设备。从块设备下载所述虚拟机的镜像数据,将块设备上的镜像数据存储至新主机,在新主机上运行镜像数据,得到恢复后的所述虚拟机。在从块设备上下载镜像数据时,可以先检查块设备上是否保存有快照,如果否,可以直接将块设备上备份的镜像数据下载至新主机;如果是,说明宿主机发生故障时,有一次备份操作正在进行,块设备上备份的镜像数据可能是不完整的,此时,可以将块设备回滚至快照对应的镜像数据,下载回滚得到的镜像数据,保证镜像数据的完整性和可用性。
本申请所提供的虚拟机的故障恢复装置,当虚拟机的宿主机发送故障时,可以利用分布式存储集群中存储的镜像数据在新主机上恢复所述虚拟机,保证用户可以正常使用虚拟机,提高虚拟机的可靠性。
根据本申请的另一方面,提供一种电子设备,该电子设备可以是上述的宿主机,也可以是服务器。图9示出根据本申请的一些实施例的可以实现本申请思想的电子设备900的示例性硬件和软件组件的示意图。如图9所示,该电子设备可以包括一个或多个存储介质940和一个或多个与存储介质通信的处理器920。一个或多个存储介质940中存储有处理器可执行的机器可读指令。处理器920可以用于电子设备900上,当电子设备运行时,处理器920与存储介质940之间通过总线通信,处理器920执行所述机器可读指令,以执行上述路线偏移检测的方法中的一个或多个方法的步骤。
上述存储介质可以经由有线连接或无线连接彼此连接或通信。有线连接可以包括金属线缆、光缆、混合线缆等,或其任意组合。无线连接可以包括通过LAN、WAN、蓝牙、ZigBee、或NFC等形式的连接,或其任意组合。两个或更多个存储单元可以组合为单个存储单元,并且任何一个模块可以分成两个或更多个单元。
存储介质940可以是大容量存储器、可移动存储器,也可以是易失性读写存储器或其任意组合。作为举例,大容量存储器可以包括磁盘、光盘、固态驱动器等;可移动存储器可包括闪存驱动器、软盘、光盘、存储卡、zip磁盘、磁带等;易失性读写存储器可以包括随机存取存储器(Random Access Memory,RAM);RAM可以包括动态RAM(Dynamic Random AccessMemory,DRAM),双倍数据速率同步动态RAM(Double Date-Rate Synchronous RAM,DDRSDRAM);静态RAM(Static Random-Access Memory,SRAM),晶闸管RAM(Thyristor-BasedRandom Access Memory,T-RAM)和零电容器RAM(Zero-RAM)等。作为举例,ROM可以包括掩模ROM(Mask Read-Only Memory,MROM)、可编程ROM(Programmable Read-Only Memory,PROM)、可擦除可编程ROM(Programmable Erasable Read-only Memory,PEROM)、电可擦除可编程ROM(Electrically Erasable Programmable read only memory,EEPROM)、光盘ROM(CD-ROM)、以及数字通用磁盘ROM等。存储介质940中至少存储有程序指令。根据这些程序指令可以实现本申请的方法。
存储介质940可以存储数据和/或指令。在一些实施例中,存储介质940可以存储虚拟设备与块设备的映射关系等数据。在一些实施例中,存储介质940可以包括大容量存储器、可移动存储器、易失性读写存储器、或只读存储器(Read-Only Memory,ROM)等,或其任意组合。在一些实施例中,存储介质940可以在云平台上实现。仅作为示例,云平台可以包括私有云、公有云、混合云、社区云、分布式云、跨云、多云或者其它类似的等,或其任意组合。
处理器920可以处理与服务请求有关的信息和/或数据,以执行本申请中描述的一个或多个功能。在一些实施例中,处理器920可以包括一个或多个处理核(例如,单核处理器(S)或多核处理器(S))。仅作为举例,处理器920可以包括中央处理单元(CentralProcessing Unit,CPU)、专用集成电路(Application Specific Integrated Circuit,ASIC)、专用指令集处理器(Application Specific Instruction-set Processor,ASIP)、图形处理单元(Graphics Processing Unit,GPU)、物理处理单元(Physics ProcessingUnit,PPU)、数字信号处理器(Digital Signal Processor,DSP)、现场可编程门阵列(FieldProgrammable Gate Array,FPGA)、可编程逻辑器件(Programmable Logic Device,PLD)、控制器、微控制器单元、简化指令集计算机(Reduced Instruction Set Computing,RISC)、或微处理器等,或其任意组合。
为了便于说明,在电子设备900中仅描述了一个处理器920。然而,应当注意,本申请中的电子设备900还可以包括多个处理器,因此本申请中描述的一个处理器执行的步骤也可以由多个处理器联合执行或单独执行。例如,若电子设备900的处理器执行步骤A和步骤B,则应该理解,步骤A和步骤B也可以由两个不同的处理器共同执行或者在一个处理器中单独执行。例如,第一处理器执行步骤A,第二处理器执行步骤B,或者第一处理器和第二处理器共同执行步骤A和B。
如果电子设备900为宿主机,则处理器920可以执行如下方法的步骤:如果所述宿主机上创建的虚拟机为在线状态,获取所述虚拟机需要备份的镜像数据;将所述镜像数据备份至所述分布式存储集群中所述虚拟机对应的块设备上。
其中,所述块设备为在宿主机上创建完虚拟机时,在分布式存储集群中选取的虚拟机对应的块设备。过程可以如下:在所述宿主机上创建所述虚拟机对应的虚拟设备;在所述分布式存储集群中创建与所述虚拟设备对应的块设备;保存所述虚拟设备与所述块设备间的映射关系。如果所述虚拟机有多个镜像需要备份,在所述分布式存储集群中选取与多个所述镜像分别一一对应的块设备。
当完成所述虚拟机创建时,或者,当完成所述虚拟机创建且持续指定时长时,获取所述虚拟机需要备份的镜像的全量数据;将所述全量数据作为当前需要备份的镜像数据。按照设定的时间间隔获取所述虚拟机需要备份的镜像的增量数据;将所述增量数据作为当前需要备份的镜像数据。在本地预存的虚拟设备与块设备的映射关系中,查找所述虚拟机在所述分布式存储集群中对应的块设备;将所述镜像数据备份至所述块设备上。
如果所述镜像数据为增量数据,向所述块设备发送快照指令;以使所述块设备生成当前存储的镜像数据的快照;当接收到所述块设备返回的快照完成通知时,将所述增量数据备份至所述块设备;当所述增量数据备份完成时,向所述块设备发送删除快照指令,以使所述块设备删除所述快照。
电子设备900可以是通用计算机或特殊用途的计算机,两者都可以用于实现本申请的虚拟机的镜像备份方法。本申请尽管仅示出了一个计算机,但是为了方便起见,可以在多个类似平台上以分布式方式实现本申请描述的功能,以均衡处理负载。
如果电子设备900为服务器,则处理器920可以执行如下方法的步骤:如果虚拟机所在的宿主机发生故障,查找所述虚拟机在分布式存储集群中对应的块设备;从所述块设备下载所述虚拟机的镜像数据;应用所述镜像数据在新主机上恢复所述虚拟机。在从所述块设备下载所述虚拟机的镜像数据时,可以检查所述块设备上是否保存有快照;如果是,将所述块设备回滚至所述快照对应的镜像数据;下载回滚得到的所述镜像数据。将所述镜像数据存储至新主机;在所述新主机上运行所述镜像数据,得到恢复后的所述虚拟机。
电子设备900还可以包括连接到网络的网络端口910、通信总线930。电子设备900还包括计算机与其他输入输出设备(例如键盘、显示屏)之间的输入/输出(Input/Output,I/O)接口950。
网络端口910可以通过网络连接其它网络单元。网络可以用于信息和/或数据的交换。在一些实施例中,电子设备可以通过网络可以向其他组件发送信息和/或数据。例如,服务器可以经由网络监测宿主机的运行状态,访问块设备上的备份数据等。在一些实施例中,网络可以是任何类型的有线或者无线网络,或者是他们的结合。仅作为示例,网络可以包括有线网络、无线网络、光纤网络、远程通信网络、内联网、因特网、局域网(Local AreaNetwork,LAN)、广域网(Wide Area Network,WAN)、无线局域网(Wireless Local AreaNetworks,WLAN)、城域网(Metropolitan Area Network,MAN)、广域网(Wide AreaNetwork,WAN)、公共电话交换网(Public Switched Telephone Network,PSTN)、蓝牙网络、ZigBee网络、或近场通信(Near Field Communication,NFC)网络等,或其任意组合。在一些实施例中,网络120可以包括一个或多个网络接入点。例如,网络可以包括有线或无线网络接入点,例如基站和/或网络交换节点,分布式存储集群的一个或多个组件可以通过该接入点连接到网络以交换数据和/或信息。
根据本申请的另一方面,提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如上述一个或多个虚拟机的镜像备份方法的步骤,或者执行如上述一个或多个虚拟机的故障恢复方法的步骤。
本申请所提供的虚拟机的镜像备份方法、故障恢复方法、装置和电子设备,如果宿主机上创建的虚拟机为在线状态,则获取该虚拟机需要备份的镜像数据,将镜像数据备份至分布式存储集群中该虚拟机对应的块设备上。由于镜像数据的备份不保存在宿主机本地,不仅可以节省宿主机本地的存储空间,而且可以提高虚拟机镜像的备份数据的可靠性。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考方法实施例中的对应过程,本申请中不再赘述。在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。

Claims (26)

1.一种虚拟机的镜像备份方法,其特征在于,应用于宿主机,所述宿主机与分布式存储集群通信连接,所述方法包括:
如果所述宿主机上创建的虚拟机为在线状态,获取所述虚拟机需要备份的镜像数据;
将所述镜像数据备份至所述分布式存储集群中所述虚拟机对应的块设备上。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当在所述宿主机上创建完虚拟机时,在所述分布式存储集群中选取所述虚拟机对应的块设备。
3.根据权利要求2所述的方法,其特征在于,在所述分布式存储集群中选取所述虚拟机对应的块设备的步骤,包括:
如果所述虚拟机有多个镜像需要备份,在所述分布式存储集群中选取与多个所述镜像分别一一对应的块设备。
4.根据权利要求2所述的方法,其特征在于,在所述分布式存储集群中选取所述虚拟机对应的块设备的步骤,包括:
在所述宿主机上创建所述虚拟机对应的虚拟设备;
在所述分布式存储集群中创建与所述虚拟设备对应的块设备;
保存所述虚拟设备与所述块设备间的映射关系。
5.根据权利要求1所述的方法,其特征在于,获取所述虚拟机需要备份的镜像数据的步骤,包括:
当完成所述虚拟机创建时,或者,当完成所述虚拟机创建且持续指定时长时,获取所述虚拟机需要备份的镜像的全量数据;
将所述全量数据作为当前需要备份的镜像数据。
6.根据权利要求1所述的方法,其特征在于,获取所述虚拟机需要备份的镜像数据的步骤,包括:
按照设定的时间间隔获取所述虚拟机需要备份的镜像的增量数据;
将所述增量数据作为当前需要备份的镜像数据。
7.根据权利要求1所述的方法,其特征在于,将所述镜像数据备份至所述分布式存储集群中所述虚拟机对应的块设备上的步骤,包括:
查找所述虚拟机在所述分布式存储集群中对应的块设备;
将所述镜像数据备份至所述块设备上。
8.根据权利要求7所述的方法,其特征在于,查找所述虚拟机在所述分布式存储集群中对应的块设备的步骤,包括:
在本地预存的虚拟设备与块设备的映射关系中,查找所述虚拟机在所述分布式存储集群中对应的块设备。
9.根据权利要求7所述的方法,其特征在于,将所述镜像数据备份至所述块设备上的步骤,包括:
如果所述镜像数据为增量数据,向所述块设备发送快照指令;以使所述块设备生成当前存储的镜像数据的快照;
当接收到所述块设备返回的快照完成通知时,将所述增量数据备份至所述块设备;
当所述增量数据备份完成时,向所述块设备发送删除快照指令,以使所述块设备删除所述快照。
10.一种虚拟机的故障恢复方法,其特征在于,应用于服务器,所述方法包括:
如果虚拟机所在的宿主机发生故障,查找所述虚拟机在分布式存储集群中对应的块设备;
从所述块设备下载所述虚拟机的镜像数据;
应用所述镜像数据在新主机上恢复所述虚拟机。
11.根据权利要求10所述的方法,其特征在于,从所述块设备下载所述虚拟机的镜像数据的步骤,包括:
检查所述块设备上是否保存有快照;
如果是,将所述块设备回滚至所述快照对应的镜像数据;
下载回滚得到的所述镜像数据。
12.根据权利要求10所述的方法,其特征在于,应用所述镜像数据在新主机上恢复所述虚拟机的步骤,包括:
将所述镜像数据存储至新主机;
在所述新主机上运行所述镜像数据,得到恢复后的所述虚拟机。
13.一种虚拟机的镜像备份装置,其特征在于,应用于宿主机,所述宿主机与分布式存储集群通信连接,所述装置包括:
数据获取模块,用于如果所述宿主机上创建的虚拟机为在线状态,获取所述虚拟机需要备份的镜像数据;
数据备份模块,用于将所述镜像数据备份至所述分布式存储集群中所述虚拟机对应的块设备上。
14.根据权利要求13所述的装置,其特征在于,所述装置还包括:
设备关联模块,用于当在所述宿主机上创建完虚拟机时,在所述分布式存储集群中选取所述虚拟机对应的块设备。
15.根据权利要求14所述的装置,其特征在于,所述设备关联模块还用于:
如果所述虚拟机有多个镜像需要备份,在所述分布式存储集群中选取与多个所述镜像分别一一对应的块设备。
16.根据权利要求14所述的装置,其特征在于,所述设备关联模块还用于:
在所述宿主机上创建所述虚拟机对应的虚拟设备;
在所述分布式存储集群中创建与所述虚拟设备对应的块设备;
保存所述虚拟设备与所述块设备间的映射关系。
17.根据权利要求13所述的装置,其特征在于,所述数据获取模块还用于:
当完成所述虚拟机创建时,或者,当完成所述虚拟机创建且持续指定时长时,获取所述虚拟机需要备份的镜像的全量数据;
将所述全量数据作为当前需要备份的镜像数据。
18.根据权利要求13所述的装置,其特征在于,所述数据获取模块还用于:
按照设定的时间间隔获取所述虚拟机需要备份的镜像的增量数据;
将所述增量数据作为当前需要备份的镜像数据。
19.根据权利要求13所述的装置,其特征在于,所述数据备份模块还用于:
查找所述虚拟机在所述分布式存储集群中对应的块设备;
将所述镜像数据备份至所述块设备上。
20.根据权利要求19所述的装置,其特征在于,所述数据备份模块还用于:
在本地预存的虚拟设备与块设备的映射关系中,查找所述虚拟机在所述分布式存储集群中对应的块设备。
21.根据权利要求19所述的装置,其特征在于,所述数据备份模块还用于:
如果所述镜像数据为增量数据,向所述块设备发送快照指令;以使所述块设备生成当前存储的镜像数据的快照;
当接收到所述块设备返回的快照完成通知时,将所述增量数据备份至所述块设备;
当所述增量数据备份完成时,向所述块设备发送删除快照指令,以使所述块设备删除所述快照。
22.一种虚拟机的故障恢复装置,其特征在于,应用于服务器,所述装置包括:
设备查找模块,用于如果虚拟机所在的宿主机发生故障,查找所述虚拟机在分布式存储集群中对应的块设备上;
数据下载模块,用于从所述块设备下载所述虚拟机的镜像数据;
虚拟机恢复模块,用于应用所述镜像数据在新主机上恢复所述虚拟机。
23.根据权利要求22所述的装置,其特征在于,所述数据下载模块还用于:
检查所述块设备上是否保存有快照;
如果是,将所述块设备回滚至所述快照对应的镜像数据;
下载回滚得到的所述镜像数据。
24.根据权利要求22所述的装置,其特征在于,所述虚拟机恢复模块还用于:
将所述镜像数据存储至新主机;
在所述新主机上运行所述镜像数据,得到恢复后的所述虚拟机。
25.一种电子设备,其特征在于,包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述机器可读指令,以执行如权利要求1至9中任一项所述的虚拟机的镜像备份方法的步骤,或者执行如权利要求10至12中任一项所述的虚拟机的故障恢复方法的步骤。
26.一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如权利要求1至9中任一项所述的虚拟机的镜像备份方法的步骤,或者执行如权利要求10至12中任一项所述的虚拟机的故障恢复方法的步骤。
CN201910139170.0A 2019-02-25 2019-02-25 虚拟机的镜像备份方法、故障恢复方法、装置和电子设备 Pending CN110750325A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910139170.0A CN110750325A (zh) 2019-02-25 2019-02-25 虚拟机的镜像备份方法、故障恢复方法、装置和电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910139170.0A CN110750325A (zh) 2019-02-25 2019-02-25 虚拟机的镜像备份方法、故障恢复方法、装置和电子设备

Publications (1)

Publication Number Publication Date
CN110750325A true CN110750325A (zh) 2020-02-04

Family

ID=69275676

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910139170.0A Pending CN110750325A (zh) 2019-02-25 2019-02-25 虚拟机的镜像备份方法、故障恢复方法、装置和电子设备

Country Status (1)

Country Link
CN (1) CN110750325A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113051108A (zh) * 2021-03-26 2021-06-29 北京明略昭辉科技有限公司 一种数据备份方法及系统
CN113535479A (zh) * 2021-07-15 2021-10-22 广西电网有限责任公司电力科学研究院 一种基于时间线的数字镜像检修方法
CN113722157A (zh) * 2021-11-03 2021-11-30 苏州浪潮智能科技有限公司 一种虚拟机数据管理方法、装置、设备及介质
CN114564456A (zh) * 2022-03-03 2022-05-31 北京天融信网络安全技术有限公司 分布式存储文件的恢复方法及装置
CN114661232A (zh) * 2022-02-18 2022-06-24 阿里巴巴(中国)有限公司 快照数据的读取方法、装置、系统、设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8924358B1 (en) * 2010-05-06 2014-12-30 Symantec Corporation Change tracking of individual virtual disk files
CN105843704A (zh) * 2016-03-15 2016-08-10 上海爱数信息技术股份有限公司 一种结合分布式块存储的快照功能的数据保护方法及系统
CN107197022A (zh) * 2017-06-02 2017-09-22 华南理工大学 OpenStack存储优化方法及系统
CN109324927A (zh) * 2018-09-06 2019-02-12 郑州云海信息技术有限公司 一种基于分布式存储系统的虚拟机备份方法及系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8924358B1 (en) * 2010-05-06 2014-12-30 Symantec Corporation Change tracking of individual virtual disk files
CN105843704A (zh) * 2016-03-15 2016-08-10 上海爱数信息技术股份有限公司 一种结合分布式块存储的快照功能的数据保护方法及系统
CN107197022A (zh) * 2017-06-02 2017-09-22 华南理工大学 OpenStack存储优化方法及系统
CN109324927A (zh) * 2018-09-06 2019-02-12 郑州云海信息技术有限公司 一种基于分布式存储系统的虚拟机备份方法及系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
李宜: "OpenStack存储优化与负载均衡的研究与实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *
杨皓森: "面向OpenStack_Ceph的虚拟机备份系统研究", 《计算机系统应用》 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113051108A (zh) * 2021-03-26 2021-06-29 北京明略昭辉科技有限公司 一种数据备份方法及系统
CN113535479A (zh) * 2021-07-15 2021-10-22 广西电网有限责任公司电力科学研究院 一种基于时间线的数字镜像检修方法
CN113722157A (zh) * 2021-11-03 2021-11-30 苏州浪潮智能科技有限公司 一种虚拟机数据管理方法、装置、设备及介质
CN113722157B (zh) * 2021-11-03 2022-03-08 苏州浪潮智能科技有限公司 一种虚拟机数据管理方法、装置、设备及介质
CN114661232A (zh) * 2022-02-18 2022-06-24 阿里巴巴(中国)有限公司 快照数据的读取方法、装置、系统、设备及存储介质
CN114564456A (zh) * 2022-03-03 2022-05-31 北京天融信网络安全技术有限公司 分布式存储文件的恢复方法及装置

Similar Documents

Publication Publication Date Title
CN110750325A (zh) 虚拟机的镜像备份方法、故障恢复方法、装置和电子设备
US20210011817A1 (en) Virtual Machine Recovery Method and Virtual Machine Management Device
CN107256182B (zh) 一种数据库还原的方法及设备
CN113626256B (zh) 一种虚拟机磁盘数据备份方法、装置、终端及存储介质
CN105242990A (zh) 基于云平台的数据备份方法和装置
CN103176831A (zh) 一种虚拟机系统及其管理方法
CN111309524A (zh) 分布式存储系统故障恢复方法、装置、终端及存储介质
CN110825562B (zh) 数据备份方法、装置、系统和存储介质
CN111352700A (zh) 一种虚拟机跨云在线迁移方法、系统、终端及存储介质
CN104035837A (zh) 一种在线备份同/异构UNIX/Linux主机的方法
CN112596951A (zh) 一种nas数据容灾方法、装置、设备及存储介质
CN109976949A (zh) 一种bmc故障镜像回滚刷新方法、装置、终端及存储介质
CN111666266A (zh) 一种数据迁移方法及相关设备
CN115098299A (zh) 一种虚拟机的备份方法、容灾方法、装置及设备
CN113986450A (zh) 一种虚拟机备份方法及装置
CN116701518A (zh) 数据库集群部署方法、装置、计算机设备及存储介质
US20150269237A1 (en) Disaster Recovery of Converged Infrastructure Platforms
CN112540873B (zh) 容灾方法、装置、电子设备及容灾系统
CN114443060A (zh) 一种操作系统部署方法及系统
CN112148532A (zh) 硬盘数据的批量恢复方法、装置、存储介质及电子设备
CN113127137A (zh) 使用自托管虚拟机的云计算管理平台及其创建实现方法
CN113467717B (zh) 一种双机卷镜像管理方法、装置、设备及可读存储介质
CN108196990B (zh) 一种自检方法和服务器
CN111176886A (zh) 一种数据库模式的切换方法、装置及电子设备
CN117435395A (zh) 基于工厂io测点对象结构的数据备份与还原方法和系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20200204