CN114791789A - 一种虚拟机容错系统、方法及装置 - Google Patents

一种虚拟机容错系统、方法及装置 Download PDF

Info

Publication number
CN114791789A
CN114791789A CN202210482130.8A CN202210482130A CN114791789A CN 114791789 A CN114791789 A CN 114791789A CN 202210482130 A CN202210482130 A CN 202210482130A CN 114791789 A CN114791789 A CN 114791789A
Authority
CN
China
Prior art keywords
virtual machine
data
slave
primary
state
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
CN202210482130.8A
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 Topsec Technology Co Ltd
Beijing Topsec Network Security Technology Co Ltd
Beijing Topsec Software Co Ltd
Original Assignee
Beijing Topsec Technology Co Ltd
Beijing Topsec Network Security Technology Co Ltd
Beijing Topsec Software 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 Topsec Technology Co Ltd, Beijing Topsec Network Security Technology Co Ltd, Beijing Topsec Software Co Ltd filed Critical Beijing Topsec Technology Co Ltd
Priority to CN202210482130.8A priority Critical patent/CN114791789A/zh
Publication of CN114791789A publication Critical patent/CN114791789A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0664Virtualisation aspects at device level, e.g. emulation of a storage device or system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0667Virtualisation aspects at data level, e.g. file, record or object virtualisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Hardware Redundancy (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请属于通信技术领域,公开了一种虚拟机容错系统、方法及装置,该方法包括,通过主终端设备将主虚拟机当前的虚拟机数据写入至分布式存储系统;通过从终端设备基于分布式存储系统中的虚拟机数据确定主虚拟机状态异常时,基于分布式存储系统中的虚拟机数据,对从虚拟机进行文件系统级重放,以及控制更新后的从虚拟机从静默状态切换为运行状态;这样,通过分布式存储系统实现主虚拟机和从虚拟机之间的数据同步,并通过分布式存储系统中的同步数据,对从虚拟机进行文件系统级重放,以解决虚拟机容错时从虚拟机容易崩溃的问题。

Description

一种虚拟机容错系统、方法及装置
技术领域
本申请涉及通信技术领域,具体而言,涉及一种虚拟机容错系统、方法及装置。
背景技术
随着虚拟化技术运用于服务器中,越来越多的企业选择在虚拟化服务器上运行关键业务,以提高关键业务运行效率。人们在广泛使用虚拟机的同时,开始对虚拟机提出更高的要求,高可靠性正是其中一个重要要求,虚拟机容错技术目前得到了广泛的应用。
现有技术下,将两台虚拟机形成主从关系(即主备关系),控制主虚拟机处于运行状态,从虚拟机处于静默状态,并将主虚拟机和从虚拟机进行数据同步,以及当主虚拟机出现故障时,暂停主虚拟机,并将从虚拟机从静默状态切换至运行状态。
但是,现有技术下为避免数据拷贝,主虚拟机和从虚拟机通常共用同一虚拟磁盘。由于主虚拟机向虚拟磁盘写入数据时,从虚拟机的文件系统是无法感知到的,因此,这通常会导致从虚拟机崩溃。
发明内容
本申请实施例的目的在于提供一种虚拟机容错系统、方法及装置,用以解决虚拟机容错时从虚拟机容易崩溃的问题。
一方面,提供一种虚拟机容错方法,包括主终端设备和从终端设备,主终端设备和从终端设备均与同一分布式存储系统连接,分布式存储系统为分布式的多个存储设备的集群,用于为主终端设备和从终端设备提供存储空间;主终端设备设置有主虚拟机,从终端设备设置有从虚拟机,主虚拟机当前处于运行状态;
主终端设备,用于将主虚拟机当前的虚拟机数据写入至分布式存储系统,虚拟机数据为主虚拟机运行相关的数据;
从终端设备,用于基于分布式存储系统中的虚拟机数据确定主虚拟机状态异常时,基于分布式存储系统中的虚拟机数据,对从虚拟机进行文件系统级重放,以及控制更新后的从虚拟机从静默状态切换为运行状态。
一种实施方式中,虚拟机数据中至少包括输入输出操作日志,分布式存储系统包括主虚拟机的主系统盘、从虚拟机的从系统盘以及主状态同步空间,主状态同步空间的存储空间是由分布式存储系统在从终端设备内的存储设备提供的;
主终端设备用于:基于对主系统盘的修改操作,生成输入输出操作日志,以及将输入输出操作日志写入主状态同步空间;
从终端设备用于:读取主状态同步空间中的输入输出操作日志,并基于输入输出操作日志,对从虚拟机的从系统盘进行文件系统级重放。
一种实施方式中,分布式存储系统还包括数据盘;
主终端设备用于:在加载数据盘后,基于接收的数据修改指令,针对数据盘执行修改操作;
从终端设备用于:在加载数据盘后,确定主虚拟机状态异常时,卸载数据盘和文件系统,并重新加载数据盘和文件系统。
一种实施方式中,主虚拟机的虚拟机数据还包括设备运行数据和虚拟机状态;
主终端设备还用于:将主虚拟机的设备运行数据和主虚拟机的虚拟机状态写入主状态同步空间;
从终端设备还用于:确定达到虚拟机更新条件时,基于主状态同步空间中的设备运行数据,更新从虚拟机的设备运行数据。
一种实施方式中,设备运行数据包括以下参数中的至少一种:中央处理器信息、输入输出设备信息以及内存数据;
分布式存储系统中的各存储设备之间通过存储网络进行数据传输,分布式存储系统中的至少一个存储设备为持久化内存设备。
一方面,提供一种虚拟机容错方法,包括:
通过主终端设备,将主虚拟机当前的虚拟机数据写入至分布式存储系统,主虚拟机当前处于运行状态,虚拟机数据为主虚拟机运行相关的数据;
通过从终端设备,基于分布式存储系统中的虚拟机数据确定主虚拟机状态异常时,基于分布式存储系统中的虚拟机数据,对从虚拟机进行文件系统级重放,以及控制更新后的从虚拟机从静默状态切换为运行状态;
其中,分布式存储系统为分布式的多个存储设备的集群,用于为主终端设备和从终端设备提供存储空间;主终端设备设置有主虚拟机,从终端设备设置有从虚拟机。
在上述实现过程中,通过分布式存储系统实现主虚拟机和从虚拟机之间的数据同步,并通过分布式存储系统中的同步数据,对从虚拟机进行文件系统级重放,以解决虚拟机容错时从虚拟机容易崩溃的问题。
一种实施方式中,主虚拟机的虚拟机数据包括输入输出操作日志,分布式存储系统包括主虚拟机的主系统盘、从虚拟机的从系统盘以及主状态同步空间,主状态同步空间的存储空间是由分布式存储系统在从终端设备内的存储设备提供的;将主虚拟机当前的虚拟机数据写入至分布式存储系统包括:
基于对主系统盘的修改操作,生成输入输出操作日志,以及将输入输出操作日志写入主状态同步空间;
基于分布式存储系统中的虚拟机数据,对从虚拟机进行文件系统级重放,包括:
读取主状态同步空间中的输入输出操作日志,并基于输入输出操作日志,对从虚拟机的从系统盘进行文件系统级重放。
在上述实现过程中,主终端设备可以将数据直接写入从终端设备内的主状态同步空间,提高了数据同步效率,以及通过主状态同步空间中的同步数据,对从虚拟机的从系统盘进行文件系统级重放,解决了虚拟机容错时从虚拟机容易崩溃的问题。
一种实施方式中,分布式存储系统还包括数据盘,方法还包括:
通过主终端设备,在加载数据盘后,基于接收的数据修改指令,针对数据盘执行修改操作;
通过从终端设备,在加载数据盘后,确定主虚拟机状态异常时,卸载数据盘和文件系统,并重新加载数据盘和文件系统。
在上述实现过程中,在主从虚拟机切换时,将数据盘重新加载,解决了虚拟机容错时从虚拟机容易崩溃的问题。
一种实施方式中,主虚拟机的虚拟机数据还包括设备运行数据和虚拟机状态,方法还包括:
通过主终端设备,将主虚拟机的设备运行数据和主虚拟机的虚拟机状态写入主状态同步空间;
通过从终端设备,确定达到虚拟机更新条件时,基于主状态同步空间中的设备运行数据,更新从虚拟机的设备运行数据。
在上述实现过程中,通过主状态同步空间同步设备运行数据和虚拟机状态,提高了数据同步效率,实现了主虚拟机和从虚拟机之间的运行参数同步。
一种实施方式中,设备运行数据包括以下参数中的至少一种:中央处理器信息、输入输出设备信息以及内存数据;分布式存储系统中的各存储设备之间通过存储网络进行数据传输,分布式存储系统中的至少一个存储设备为持久化内存设备。
在上述实现过程中,采用持久化内存设备组成分布式存储系统,提高了数据读写效率。
一方面,提供一种虚拟机容错装置,包括:
写入单元,用于通过主终端设备,将主虚拟机当前的虚拟机数据写入至分布式存储系统,主虚拟机当前处于运行状态,虚拟机数据为主虚拟机运行相关的数据;
切换单元,用于通过从终端设备,基于分布式存储系统中的虚拟机数据确定主虚拟机状态异常时,基于分布式存储系统中的虚拟机数据,对从虚拟机进行文件系统级重放,以及控制更新后的从虚拟机从静默状态切换为运行状态;
其中,分布式存储系统为分布式的多个存储设备的集群,用于为主终端设备和从终端设备提供存储空间;主终端设备设置有主虚拟机,从终端设备设置有从虚拟机。
一种实施方式中,主虚拟机的虚拟机数据包括输入输出操作日志,分布式存储系统包括主虚拟机的主系统盘、从虚拟机的从系统盘以及主状态同步空间,主状态同步空间的存储空间是由分布式存储系统在从终端设备内的存储设备提供的;写入单元用于:
基于对主系统盘的修改操作,生成输入输出操作日志,以及将输入输出操作日志写入主状态同步空间;
基于分布式存储系统中的虚拟机数据,对从虚拟机进行文件系统级重放,包括:
读取主状态同步空间中的输入输出操作日志,并基于输入输出操作日志,对从虚拟机的从系统盘进行文件系统级重放。
一种实施方式中,分布式存储系统还包括数据盘,切换单元还用于:
通过主终端设备,在加载数据盘后,基于接收的数据修改指令,针对数据盘执行修改操作;
通过从终端设备,在加载数据盘后,确定主虚拟机状态异常时,卸载数据盘和文件系统,并重新加载数据盘和文件系统。
一种实施方式中,主虚拟机的虚拟机数据还包括设备运行数据和虚拟机状态,写入单元还用于:
通过主终端设备,将主虚拟机的设备运行数据和主虚拟机的虚拟机状态写入主状态同步空间;
通过从终端设备,确定达到虚拟机更新条件时,基于主状态同步空间中的设备运行数据,更新从虚拟机的设备运行数据。
一种实施方式中,设备运行数据包括以下参数中的至少一种:中央处理器信息、输入输出设备信息以及内存数据;分布式存储系统中的各存储设备之间通过存储网络进行数据传输,分布式存储系统中的至少一个存储设备为持久化内存设备。
一方面,提供了一种电子设备,包括处理器以及存储器,存储器存储有计算机可读取指令,当计算机可读取指令由处理器执行时,运行如上述任一种虚拟机容错各种可选实现方式中提供的方法的步骤。
一方面,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时运行如上述任一种虚拟机容错各种可选实现方式中提供的方法的步骤。
一方面,提供了一种计算机程序产品,计算机程序产品在计算机上运行时,使得计算机执行如上述任一种虚拟机容错各种可选实现方式中提供的方法的步骤。
本申请实施例提供的一种虚拟机容错系统、方法及装置中,通过主终端设备,将主虚拟机当前的虚拟机数据写入至分布式存储系统,主虚拟机当前处于运行状态,虚拟机数据为主虚拟机运行相关的数据;通过从终端设备,基于分布式存储系统中的虚拟机数据确定主虚拟机状态异常时,基于分布式存储系统中的虚拟机数据,对从虚拟机进行文件系统级重放,以及控制更新后的从虚拟机从静默状态切换为运行状态;其中,分布式存储系统为分布式的多个存储设备的集群,用于为主终端设备和从终端设备提供存储空间;主终端设备设置有主虚拟机,从终端设备设置有从虚拟机。在上述实现过程中,通过分布式存储系统实现主虚拟机和从虚拟机之间的数据同步,并通过分布式存储系统中的同步数据,对从虚拟机进行文件系统级重放,以解决虚拟机容错时从虚拟机容易崩溃的问题。
本申请的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。本申请的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的一种虚拟机容错系统的架构示意图;
图2为本申请实施例提供的一种虚拟机容错方法的实施流程图;
图3为本申请实施例提供的一种状态同步空间结构的示意图;
图4为本申请实施例提供的另一种虚拟机容错系统的架构示意图;
图5为本申请实施例提供的另一种虚拟机容错方法的实施流程图;
图6为本申请实施例提供的一种虚拟机容错装置的结构框图;
图7为本申请实施方式中一种电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
首先对本申请实施例中涉及的部分用语进行说明,以便于本领域技术人员理解。
终端设备:可以是移动终端、固定终端或便携式终端,例如移动手机、站点、单元、设备、多媒体计算机、多媒体平板、互联网节点、通信器、台式计算机、膝上型计算机、笔记本计算机、上网本计算机、平板计算机、个人通信系统设备、个人导航设备、个人数字助理、音频/视频播放器、数码相机/摄像机、定位设备、电视接收器、无线电广播接收器、电子书设备、游戏设备或者其任意组合,包括这些设备的配件和外设或者其任意组合。还可预见到的是,终端设备能够支持任意类型的针对用户的接口(例如可穿戴设备)等。
服务器:可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务以及大数据和人工智能平台等基础云计算服务的云服务器。
为了解决虚拟机容错时从虚拟机容易崩溃的问题,本申请实施例提供了一种虚拟机容错系统、方法及装置。本申请实施例提供的一种虚拟机容错系统、方法及装置可以但不限于应用到以下任一应用场景:云计算环境中主从虚拟机切换,以及重要的单机业务中的主从虚拟机切换。如,办公自动化(Office Automation,OA)业务以及企业资源计划(Enterprise Resource Planning,ERP)业务等。
参阅图1所示,为本申请实施例提供的一种虚拟机容错系统的架构示意图。虚拟机容错系统包括主终端设备和从终端设备。主终端设备和从终端设备均与同一分布式存储系统连接。主终端设备设置有主虚拟机。从终端设备设置有从虚拟机,主终端设备和从终端设备均为电子设备,可选的,电子设备可以为服务器,也可以为终端设备。虚拟机容错系统是基于超融合架构构建的。超融合架构将计算、存储以及网络等基础能力进行融合。分布式存储是超融合架构的重要组成部分,分布式存储提供的存储空间,可以在集群任意一台服务器访问,减少了数据的移动。
需要说明的是,分布式存储系统为分布式的多个存储设备(如,存储设备1、存储设备2、存储设备3以及存储设备4)的集群,用于对集群中各存储设备进行统一抽象管理,为主终端设备和从终端设备提供存储空间。可选的,分布式存储系统中的存储设备可以为以下设备中的任意一种或任意组合:持久化内存设备、硬盘驱动器(Hard Disk Drive,HDD),以及固态硬盘(Solid State Drives,SDD)。实际应用中,分布式存储系统中的存储设备可以根据实际应用场景进行设置,在此不作限制。
可选的,分布式存储系统中的存储设备可以与虚拟机位于同一终端设备,也可以位于不同终端设备。实际应用中,分布式存储系统中各存储设备的部署,可以根据实际应用场景进行设置。一种实施方式中,分布式存储系统中的部分存储设备位于主终端设备内,一部分存储设备位于从终端设备内,且主终端设备内设置有第一存储网卡,从终端设备内设置有第二存储网卡,以及主终端设备中的存储设备与从终端设备内的存储设备之间通过第一存储网卡、存储交换机和第二存储网卡进行数据传输。
一种实施方式中,采用25GE网络或者100GE网络,将各存储设备(即采用持久化内存的高速存储设备,如,持久化内存设备)通过存储网卡以及存储交换机进行组网,生成分布式存储系统的存储网络。由于25GE网络每秒能传输3GB数据,100GE网络每秒能传输12GB数据,因此,分布式存储系统内的各存储设备之间的网络传输速率较高,以及持久化内存设备的存储速率较高,从而可以实现分布式存储系统内各存储设备的快速读写以及各存储设备之间的快速传输,避免网路造成的系统瓶颈。
一种实施例中,主终端设备包括主虚拟机和主状态同步空间。从终端设备内包括从虚拟机和从状态同步空间。
需要说明的是,处于运行状态的虚拟机为主虚拟机,包含主虚拟机的终端设备为主终端设备。处于静默状态的虚拟机为从虚拟机,包含从虚拟机的终端设备为从终端设备。其中,处于静默状态的虚拟机与挂起状态类似,禁止修改系统,不提供任何服务,仅允许特定的进程修改系统。
一种实施例中,主状态同步空间是基于分布式存储系统创建的。主终端设备将主虚拟机的数据同步到主状态同步空间,以便可以将主状态同步空间的数据同步到从终端设备中的从虚拟机。从状态同步空间是基于分布式存储系统创建的。从终端设备将从虚拟机的数据同步到从状态同步空间,以便可以将从状态同步空间的数据同步到主虚拟机。
作为一个示例,主终端设备创建主状态同步空间,并建立主状态同步空间与存储设备3之间的映射关系,以及通过存储设备3为主状态同步空间提供实际的物理存储空间。图1中,采用虚线表示主终端设备内的主状态同步空间,采用实线表示从终端设备3内的主状态同步空间,以说明主状态同步空间与存储设备3之间的映射关系,即主终端设备内的主状态同步空间的实际存储空间是由从终端设备内的存储设备提供的。
图1中,仅以从终端设备内的一个存储设备为主状态同步空间提供实际存储空间为例进行说明,实际应用中,为主状态同步空间提供实际存储空间的存储设备可以为一个,也可以为多个,以及为主状态同步空间提供实际存储空间的存储设备可以位于从终端设备内,也可以位于从终端设备内,在此不作限制。同理,可以通过分布式存储系统的一个或多个存储设备为从状态同步空间提供实际存储空间,在此不做赘述。
一种实施方式中,主虚拟机包括中央处理器(Central Processing Unit,CPU)、内存、主虚拟磁盘以及输入输出(Input Output,IO)设备。从虚拟机包括CPU、内存、从虚拟磁盘以及IO设备。
需要说明的是,图1中,将主虚拟机中的主虚拟磁盘采用虚线表示,是说明主虚拟磁盘的实际存储空间(即图1中实线表示的主虚拟磁盘)是由分布式存储系统的存储设备提供的。图1中,仅以通过主终端设备中的一个存储设备为主虚拟磁盘提供实际存储空间为例进行说明,实际应用中,可以通过多个存储设备为主虚拟磁盘提供实际存储空间,以及上述多个存储设备可以位于主终端设备内,也可以位于主终端设备外,在此不作限制。同理,通过分布式存储系统的一个或多个存储设备为从虚拟磁盘提供实际存储空间,在此不做赘述。
其中,主虚拟磁盘包括主系统盘和主数据盘。从虚拟磁盘包括从系统盘和从数据盘。主数据盘和从数据盘可以为同一数据盘,也可以为不同数据盘,在此不作限制。
一种实施方式中,主虚拟磁盘包括主系统盘和数据盘。从虚拟磁盘包括从系统盘和上述数据盘。也就是说,主虚拟磁盘和从虚拟磁盘共用同一数据盘。
一种实施方式中,将分布式存储系统中各存储设备提供的存储空间分别划分为主虚拟磁盘、从状态同步空间、从虚拟磁盘和主状态同步空间。
一种实施方式中,主虚拟机当前处于运行状态,从虚拟机当前处于静默状态;主终端设备,用于将主虚拟机当前的虚拟机数据写入至分布式存储系统,虚拟机数据为主虚拟机运行相关的数据;从终端设备,用于基于分布式存储系统中的虚拟机数据确定主虚拟机状态异常时,基于分布式存储系统中的虚拟机数据,对从虚拟机进行文件系统级重放,以及控制更新后的从虚拟机从静默状态切换为运行状态。
一种实施方式中,虚拟机数据中至少包括输入输出操作日志,主终端设备用于:基于对主系统盘的修改操作,生成输入输出操作日志,以及将输入输出操作日志写入主状态同步空间;从终端设备用于:读取主状态同步空间中的输入输出操作日志,并基于输入输出操作日志,对从虚拟机的从系统盘进行文件系统级重放。
一种实施方式中,主终端设备用于:在加载数据盘后,基于接收的数据修改指令,针对数据盘执行修改操作;从终端设备用于:在加载数据盘后,确定主虚拟机状态异常时,卸载数据盘和文件系统,并重新加载数据盘和文件系统。
一种实施方式中,主虚拟机的虚拟机数据还包括设备运行数据和虚拟机状态;主终端设备还用于:将主虚拟机的设备运行数据和主虚拟机的虚拟机状态写入主状态同步空间;从终端设备还用于:确定达到虚拟机更新条件时,基于主状态同步空间中的设备运行数据,更新从虚拟机的设备运行数据。
可选的,设备运行数据可以包括但不限于以下参数中的至少一种:中央处理器信息、输入输出设备信息以及内存数据。
参阅图2所示,为本申请实施例提供的一种虚拟机容错方法的实施流程图,结合图2对图1中的虚拟机容错系统执行的虚拟机容错方法进行具体说明。主虚拟机为当前处于运行状态的虚拟机,从虚拟机为当前处于静默状态的虚拟机。该方法的具体实施流程如下:
步骤200:通过主终端设备,将主虚拟机当前的虚拟机数据写入至分布式存储系统。
具体的,虚拟机数据为主虚拟机运行相关的数据。主虚拟机当前的虚拟机数据可以包括IO操作日志。主虚拟机的主虚拟磁盘包括主系统盘和数据盘。从虚拟机的从虚拟磁盘包括从系统盘和上述数据盘,则执行步骤200时,可以采用以下步骤:
S2001:主终端设备确定接收到系统盘修改指令时,针对主系统盘执行修改操作。
S2002:基于对主系统盘的修改操作,生成输入输出操作日志。
S2003:将输入输出操作日志写入主状态同步空间。
这样,虚拟机可以通过虚拟磁盘快速访问分布式存储系统中的各存储设备,以及当主虚拟机对主虚拟磁盘写入数据时,从虚拟机可以感知到主虚拟磁盘的更新,进而可以针对从虚拟磁盘进行文件系统更新。
进一步的,主终端设备还可以修改数据盘。
一种实施方式中,主终端设备在加载数据盘后,基于接收的数据修改指令,针对数据盘执行修改操作。
需要说明的是,虚拟磁盘是终端设备为虚拟机创建的虚拟的存储设备。也就是说,虚拟磁盘并不是一个实体的硬盘,而是建立了虚拟磁盘和分布式存储系统的多个存储设备之间的映射关系,虚拟机对虚拟磁盘进行数据读写时,实际是对分布式存储系统的存储设备进行读写。
一种实施方式中,分布式存储系统通常将写入虚拟磁盘(包括主虚拟磁盘和从虚拟磁盘)的数据切分成多个数据块,并将各数据块写入多个存储设备中。
一种实施方式中,按照调度规则,将各数据块调度到各终端设备内的存储设备。
可选的,调度规则可以根据以下参数中的至少一个进行调度:系统负载和存储设备剩余空间。
实际应用中,调度规则也可以根据实际应用场景进行设置,在此不作限制。
进一步的,分布式存储系统还可以提供副本或纠删码等冗余方式。
进一步的,主虚拟机的虚拟机数据还可以包括设备运行数据和虚拟机状态。设备运行数据包括以下参数中的至少一种:中央处理器信息、输入输出设备信息以及内存数据。
一种实施方式中,主终端设备将主虚拟机的设备运行数据和虚拟机状态写入主状态同步空间。
一种实施方式中,由于持久化内存设备的性能与正常内存接近,可以提供用于存储数据的高速存储空间,因此,从分布式存储系统在从终端设备中的持久化内存设备(即存储设备)中划分出主状态同步空间,并建立主终端设备与主状态同步空间之间的连接。进一步的,还可以从分布式存储系统在主终端设备中的持久化内存设备中划分出从状态同步空间,并建立从终端设备与从状态同步空间之间的连接。
这样,只要主终端设备将数据写入到主状态同步空间,即表示该数据同步完成。主终端设备和从终端设备之间不需要建立额外的网络连接,也不需要特定的网络传输协议,即可实现数据同步,可以在主虚拟机负载高(即内存修改频繁)时,将主虚拟机的IO操作日志、设备运行数据以及虚拟机状态实时或周期性的同步到主状态同步空间,从而可以在后续步骤中确定主虚拟机出现故障(即异常)时迅速实现主从虚拟机切换,提高了主从虚拟机切换的效率。
参阅图3所示,为一种状态同步空间结构的示意图。图3中,状态同步空间结构包括5个字段、依次为:中央处理器信息、IO设备信息、内存数据、虚拟机状态以及IO操作日志。
可选的,中央处理器信息为CPU上下文数据,可以包括但不限于以下参数中的至少一种:CPU运行状态、寄存器信息以及PC指针。
一种实施方式中,终端设备(包括主终端设备和从终端设备)中的开源模拟器(Qemu)通过基于内核的虚拟机(Kernel-based Virtual Machine,KVM))模块实现CPU虚拟化,并通过Qemu中的CPU状态(CPUState)数据结构记录主虚拟机的CPU上下文数据,即中央处理器信息。
IO设备信息为IO设备上下文数据,可以包括但不限于以下参数中的至少一种:IO设备寄存器以及直接内存存取(Direct Memory Access,DMA)信息。
其中,IO设备可以包括但不限于以下设备中的至少一种:磁盘、网卡、显示器、键盘、鼠标、声卡以及光驱。
一种实施方式中,终端设备中的Qemu模拟IO设备,并采用专门的IO设备数据结构存储IO设备上下文数据,即IO设备信息。
内存数据为虚拟机的全量内存数据。
一种实施方式中,终端设备基于ioctl函数以及输入参数KVM_MEM_LOG_DIRTY_PAGES,开启内存脏页记录,从而可以在虚拟机写内存时进行记录,以及基于ioctl函数以及输入参数KVM_GET_DIRTY_LOG,获取虚拟机的脏页位图,即内存数据。
虚拟机状态为虚拟机的保活状态,可以包括运行状态以及静默状态。
IO操作日志为针对系统盘(即主系统盘或从系统盘)的修改操作的日志,还可以称为系统盘重定向。
步骤201:通过从终端设备,基于分布式存储系统中的虚拟机数据确定主虚拟机状态异常时,基于分布式存储系统中的虚拟机数据,对从虚拟机进行文件系统级重放。
具体的,从终端设备从主状态同步空间中获取虚拟机状态,若该虚拟机状态表征主虚拟机状态异常,则从主状态同步空间中获取IO操作日志,并基于主状态同步空间中的IO操作日志,对从虚拟机的从系统盘进行文件系统级重放。
进一步的,还可以基于主状态同步空间中的IO操作日志,周期性对从虚拟机的从系统盘进行文件系统级重放。
需要说明的是,文件系统级重放是指在文件系统层面进行重放日志(redo log)。redo log是在数据库发生意外时用来进行数据恢复的,记录的是事务执行过程中的修改情况,redo log主要保证事务的持久性。当数据库对数据做修改的时候,需要把数据页从磁盘读到缓冲池(buffer pool)中,然后在buffer pool中进行修改,那么这个时候buffer pool中的数据页就与磁盘上的数据页内容不一致,称buffer pool的数据页为dirty page脏数据,如果这个时候发生非正常的数据库(data base,DB)服务重启,那么这些数据还没在内存,并没有同步到磁盘文件中,也就是会发生数据丢失,如果这个时候,能够在有一个文件,当buffer pool中的数据页变更结束后,把相应修改记录记录到这个文件,那么当DB服务发生崩溃(crash),进行恢复DB的时候,可以根据这个文件的记录内容,重新持久化刷新到磁盘文件,保持数据的一致性。这个文件其实就是redo log,用于记录数据修改后的记录,顺序记录,主要用于数据的持久化操作。
一种实施方式中,在建立主虚拟机和从虚拟机之间的主从关系后,通过分布式存储系统的快照能力,对主系统盘和从系统盘进行快照,以使得主虚拟磁盘和从虚拟磁盘两者数据一致,然后,主终端设备确定主虚拟机对主系统盘进行修改后,通过文件系统级别的IO操作日志记录针对主系统盘的修改操作,并将记录的IO操作日志(实时或周期性地)写入主状态同步空间。从终端设备可以(实时或周期性地)根据主状态同步空间的IO操作日志对从虚拟机的从系统盘进行文件系统级重放。
这样,由于从终端设备会对主状态同步空间的IO操作日志进行实时或周期性处理,因此,避免了未处理的IO操作日志的累积,进而使得主虚拟机出现状态异常时,仅需要处理少量的IO操作日志即可完成从系统盘的文件系统级重放,提高了主从虚拟机切换的效率。
进一步的,从终端设备还可以根据主虚拟机的设备运行数据更新从虚拟机的设备运行数据。
一种实施方式中,通过从终端设备,确定达到虚拟机更新条件时,基于主状态同步空间中的设备运行数据,更新从虚拟机的设备运行数据。
一种实施方式中,确定达到数据更新间隔时长时,基于主状态同步空间中的设备运行数据,更新从虚拟机的设备运行数据。
一种实施方式中,确定主虚拟机状态异常时,基于主状态同步空间中的设备运行数据,更新从虚拟机的设备运行数据。
实际应用中,虚拟机更新条件以及数据更新间隔时长(如,5s,)均可以根据实际应用场景进行设置,在此不作限制。
步骤203:从终端设备控制更新后的从虚拟机从静默状态切换为运行状态。
进一步的,在从虚拟机从静默状态切换为运行状态的过程之前,或者,在从虚拟机从静默状态切换为运行状态的过程中,从终端设备可以重新加载数据盘。
一种实施方式中,从终端设备启动时加载数据盘,以及确定主虚拟机状态异常时,卸载数据盘和文件系统,并重新加载数据盘和文件系统。
一种实施方式中,从终端设备启动时加载数据盘,以及在确定主虚拟机状态异常后,在将从虚拟机从静默状态切换为运行状态并唤醒从虚拟机的用户态进程之前,通过从虚拟机的操作系统执行数据盘的下线(即卸载)和上线(即加载)的操作,从而实现数据盘和文件系统的重新加载,保持从虚拟机与主虚拟机的一致。
本申请实施例中,根据系统盘和数据盘各自的特点,将系统盘和数据盘分别处理。由于从系统盘不能采用重新加载的方式进行更新,因此,通过IO操作日志对从系统盘进行文件系统级重放,以及对数据盘进行重新加载,使得从虚拟机可以感知到主虚拟机对主虚拟磁盘(即主系统盘和数据盘)的修改,从而避免了传统技术中的系统崩溃问题。
参阅图4所示,为另一种虚拟机容错系统的架构示意图。图4中,虚拟机容错系统包括主终端设备和从终端设备。主终端设备中包括:主虚拟机、监听模块、同步模块、主保活模块。从终端设备中包括:从虚拟机、从保活模块、执行模块以及主状态同步空间。
监听模块:用于实时或者周期性获取主虚拟机(如,qemu-kvm进程)的虚拟机状态以及系统负载,并将主虚拟机的虚拟机状态发送至保活模块,以及根据系统负载调整数据同步周期(或用于数据同步的时钟周期频率),并基于虚拟机状态确定主虚拟机状态正常时,向同步模块发送包含数据同步周期的同步通知。
同步模块:用于基于同步通知,获取主虚拟机的设备运行数据(即CPU信息、IO设备信息以及内存数据),并按照数据同步周期,将主虚拟机的设备运行数据写入主状态同步空间。
执行模块:用于确定主状态同步空间中存在更新数据时,基于主状态同步空间中的设备运行数据,对从虚拟机进行更新,以及确定接收到主从切换指令时,执行主从切换操作。
需要说明的是,将设备运行数据写入到主状态同步空间(即从虚拟机的存储设备)后,仅是将数据进行了存储,而从虚拟机本身的运行参数是没有被改变的,因此,还需要基于主状态同步空间的设备运行数据更新从虚拟机(如,更新从虚拟机的运行参数以及设备参数)。
主保活模块:用于将主虚拟机的虚拟机状态写入主状态同步空间。
从保活模块:用于通过主状态同步空间,获取主虚拟机的虚拟机状态,以及根据主虚拟机的虚拟机状态确定主虚拟机状态异常时,向执行模块发送主从切换指令,以触发执行模块执行主从切换操作(即将从虚拟机从静默状态切换为运行状态)。
需要说明的是,在确定主虚拟机状态异常时,可以通过人工或者状态切换指令等方式,控制主虚拟机切换为静默状态,还可以将主虚拟机暂停或关机,以便对主虚拟机进行修复。
参阅图5所示,为另一种虚拟机容错方法的实施流程图。下面结合图4和图5,对图2中虚拟机容错方法进行举例说明。该方法的具体实施流程如下:
步骤500:监听模块检测主虚拟机的虚拟机状态以及系统负载,并将主虚拟机的虚拟机状态发送至主保活模块。
步骤501:若基于主虚拟机的虚拟机状态确定主虚拟机状态正常,则监听模块根据系统负载确定数据同步周期,并向同步模块发送包含数据同步周期的同步通知。
步骤502:主保活模块将主虚拟机的虚拟机状态发送至主状态同步空间。
步骤503:同步模块基于同步通知获取主虚拟机的设备运行数据和IO操作日志,并按照同步通知中的数据同步周期,将主虚拟机的设备运行数据和IO操作日志发送至主状态同步空间。
步骤504:执行模块采用轮询的方式,获取主状态同步空间的数据更新状态。
步骤505:执行模块根据数据更新状态,确定主状态同步空间中存在更新数据时,基于主状态同步空间中的设备运行数据和IO操作日志对从虚拟机进行更新。
步骤506:从保活模块基于主状态同步空间中的虚拟机状态,确定主虚拟机状态异常时,向执行模块发送主从切换指令。
步骤507:执行模块确定接收到主从切换指令时,基于主状态同步空间中的基于主状态同步空间中的设备运行数据和IO操作日志更新从虚拟机,并将从虚拟机从静默状态切换到运行状态。
需要说明的是,在将从虚拟机从静默状态切换到运行状态的过程中,执行模块将从虚拟机的数据盘和文件系统卸载以及重新加载,以及从虚拟机的互联网协议(InternetProtocol,IP)地址以及建立的传输控制协议(TCP,Transmission Control Protocol)与主虚拟机的IP地址和TCP连接是相同的,以及在从虚拟机接管主虚拟机的业务完成时,发送地址解析协议(Address Resolution Protocol,ARP)广播,以通知局域网内的设备(如,交换机)更新网络信息。
本申请实施例中,采用秒级快照以及IO操作日志重定向技术对虚拟磁盘进行同步,即通过主虚拟机的IO操作日志,实时或者周期性地对从虚拟机的从系统盘进行文件系统级重放,使得主虚拟机的主系统盘和从虚拟机的从系统盘保持一致,实现了实时在线的系统盘的数据容错,以及在主从虚拟机切换时,将主虚拟机和从虚拟机的数据盘以及从虚拟机的文件系统重新加载,解决了从虚拟机无法识别主虚拟机写入虚拟磁盘数据的问题,避免了传统技术下两个虚拟机操作同一虚拟磁盘带来的数据不一致以及虚拟机崩溃的风险。
再者,基于高性能网络以及高速存储设备组成分布式存储系统,分布式存储系统对集群内所配置的存储资源(即分布式存储系统中的各存储设备)进行统一抽象管理,向上为主虚拟磁盘和从虚拟磁盘提供逻辑存储空间,为主虚拟机和从虚拟机提供存储部件,主虚拟机和从虚拟机之间的数据可以通过分布式存储系统的存储网络在分布式存储系统中的不同存储设备之间同步,由于数据同步只占用存储网络,而不需要使用业务网络,对业务不造成负担,解决了虚拟机容错机制需要传输大量内存数据,导致网络资源占用高,成功率低的问题,无需额外设置网络相关信息,管理方便,极大地降低了系统的复杂程度和管理成本,进一步的,提高了主从虚拟机切换的效率,如,可以将业务停机时间降低到1秒以内。
基于同一发明构思,本申请实施例中还提供了一种虚拟机容错装置,由于上述装置及设备解决问题的原理与一种虚拟机容错方法相似,因此,上述装置的实施可以参见方法的实施,重复之处不再赘述。
如图6所示,其为本申请实施例提供的一种虚拟机容错装置的结构示意图,包括:
写入单元601,用于通过主终端设备,将主虚拟机当前的虚拟机数据写入至分布式存储系统,主虚拟机当前处于运行状态,虚拟机数据为主虚拟机运行相关的数据;
切换单元602,用于通过从终端设备,基于分布式存储系统中的虚拟机数据确定主虚拟机状态异常时,基于分布式存储系统中的虚拟机数据,对从虚拟机进行文件系统级重放,以及控制更新后的从虚拟机从静默状态切换为运行状态;
其中,分布式存储系统为分布式的多个存储设备的集群,用于为主终端设备和从终端设备提供存储空间;主终端设备设置有主虚拟机,从终端设备设置有从虚拟机。
一种实施方式中,主虚拟机的虚拟机数据包括输入输出操作日志,分布式存储系统包括主虚拟机的主系统盘、从虚拟机的从系统盘以及主状态同步空间,主状态同步空间的存储空间是由分布式存储系统在从终端设备内的存储设备提供的;写入单元601用于:
基于对主系统盘的修改操作,生成输入输出操作日志,以及将输入输出操作日志写入主状态同步空间;
基于分布式存储系统中的虚拟机数据,对从虚拟机进行文件系统级重放,包括:
读取主状态同步空间中的输入输出操作日志,并基于输入输出操作日志,对从虚拟机的从系统盘进行文件系统级重放。
一种实施方式中,分布式存储系统还包括数据盘,切换单元602还用于:
通过主终端设备,在加载数据盘后,基于接收的数据修改指令,针对数据盘执行修改操作;
通过从终端设备,在加载数据盘后,确定主虚拟机状态异常时,卸载数据盘和文件系统,并重新加载数据盘和文件系统。
一种实施方式中,主虚拟机的虚拟机数据还包括设备运行数据和虚拟机状态,写入单元601还用于:
通过主终端设备,将主虚拟机的设备运行数据和主虚拟机的虚拟机状态写入主状态同步空间;
通过从终端设备,确定达到虚拟机更新条件时,基于主状态同步空间中的设备运行数据,更新从虚拟机的设备运行数据。
一种实施方式中,设备运行数据包括以下参数中的至少一种:中央处理器信息、输入输出设备信息以及内存数据;分布式存储系统中的各存储设备之间通过存储网络进行数据传输,分布式存储系统中的至少一个存储设备为持久化内存设备。
本申请实施例提供的一种虚拟机容错系统、方法及装置中,通过主终端设备,将主虚拟机当前的虚拟机数据写入至分布式存储系统,主虚拟机当前处于运行状态,虚拟机数据为主虚拟机运行相关的数据;通过从终端设备,基于分布式存储系统中的虚拟机数据确定主虚拟机状态异常时,基于分布式存储系统中的虚拟机数据,对从虚拟机进行文件系统级重放,以及控制更新后的从虚拟机从静默状态切换为运行状态;其中,分布式存储系统为分布式的多个存储设备的集群,用于为主终端设备和从终端设备提供存储空间;主终端设备设置有主虚拟机,从终端设备设置有从虚拟机。在上述实现过程中,通过分布式存储系统实现主虚拟机和从虚拟机之间的数据同步,并通过分布式存储系统中的同步数据,对从虚拟机进行文件系统级重放,以解决虚拟机容错时从虚拟机容易崩溃的问题。
图7示出了一种电子设备7000的结构示意图。参阅图7所示,电子设备7000包括:处理器7010以及存储器7020,可选的,还可以包括电源7030、显示单元7040、输入单元7050。
处理器7010是电子设备7000的控制中心,利用各种接口和线路连接各个部件,通过运行或执行存储在存储器7020内的软件程序和/或数据,执行电子设备7000的各种功能,从而对电子设备7000进行整体监控。
本申请实施例中,处理器7010调用存储器7020中存储的计算机程序时执行上述实施例中的各个步骤。
可选的,处理器7010可包括一个或多个处理单元;优选的,处理器7010可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器7010中。在一些实施例中,处理器、存储器、可以在单一芯片上实现,在一些实施例中,它们也可以在独立的芯片上分别实现。
存储器7020可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、各种应用等;存储数据区可存储根据电子设备7000的使用所创建的数据等。此外,存储器7020可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件等。
电子设备7000还包括给各个部件供电的电源7030(比如电池),电源可以通过电源管理系统与处理器7010逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗等功能。
显示单元7040可用于显示由用户输入的信息或提供给用户的信息以及电子设备7000的各种菜单等,本发明实施例中主要用于显示电子设备7000中各应用的显示界面以及显示界面中显示的文本、图片等对象。显示单元7040可以包括显示面板7041。显示面板7041可以采用液晶显示屏(Liquid Crystal Display,LCD)、有机发光二极管(Organic Light-Emitting Diode,OLED)等形式来配置。
输入单元7050可用于接收用户输入的数字或字符等信息。输入单元7050可包括触控面板7051以及其他输入设备7052。其中,触控面板7051,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触摸笔等任何适合的物体或附件在触控面板7051上或在触控面板7051附近的操作)。
具体的,触控面板7051可以检测用户的触摸操作,并检测触摸操作带来的信号,将这些信号转换成触点坐标,发送给处理器7010,并接收处理器7010发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板7051。其他输入设备7052可以包括但不限于物理键盘、功能键(比如音量控制按键、开关机按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
当然,触控面板7051可覆盖显示面板7041,当触控面板7051检测到在其上或附近的触摸操作后,传送给处理器7010以确定触摸事件的类型,随后处理器7010根据触摸事件的类型在显示面板7041上提供相应的视觉输出。虽然在图7中,触控面板7051与显示面板7041是作为两个独立的部件来实现电子设备7000的输入和输出功能,但是在某些实施例中,可以将触控面板7051与显示面板7041集成而实现电子设备7000的输入和输出功能。
电子设备7000还可包括一个或多个传感器,例如压力传感器、重力加速度传感器、接近光传感器等。当然,根据具体应用中的需要,上述电子设备7000还可以包括摄像头等其它部件,由于这些部件不是本申请实施例中重点使用的部件,因此,在图7中没有示出,且不再详述。
本领域技术人员可以理解,图7仅仅是电子设备的举例,并不构成对电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件。
本申请实施例中,一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时,使得通信设备可以执行上述实施例中的各个步骤。
为了描述的方便,以上各部分按照功能划分为各模块(或单元)分别描述。当然,在实施本申请时可以把各模块(或单元)的功能在同一个或多个软件或硬件中实现。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (15)

1.一种虚拟机容错系统,其特征在于,包括主终端设备和从终端设备,所述主终端设备和所述从终端设备均与同一分布式存储系统连接,所述分布式存储系统为分布式的多个存储设备的集群,用于为所述主终端设备和所述从终端设备提供存储空间;所述主终端设备设置有主虚拟机,所述从终端设备设置有从虚拟机,所述主虚拟机当前处于运行状态;
所述主终端设备,用于将所述主虚拟机当前的虚拟机数据写入至所述分布式存储系统,所述虚拟机数据为所述主虚拟机运行相关的数据;
所述从终端设备,用于基于所述分布式存储系统中的虚拟机数据确定所述主虚拟机状态异常时,基于所述分布式存储系统中的虚拟机数据,对所述从虚拟机进行文件系统级重放,以及控制更新后的从虚拟机从静默状态切换为运行状态。
2.如权利要求1所述的系统,其特征在于,所述虚拟机数据中至少包括输入输出操作日志,所述分布式存储系统包括所述主虚拟机的主系统盘、所述从虚拟机的从系统盘以及主状态同步空间,所述主状态同步空间的存储空间是由所述分布式存储系统在所述从终端设备内的存储设备提供的;
所述主终端设备用于:基于对所述主系统盘的修改操作,生成输入输出操作日志,以及将所述输入输出操作日志写入所述主状态同步空间;
所述从终端设备用于:读取所述主状态同步空间中的所述输入输出操作日志,并基于所述输入输出操作日志,对所述从虚拟机的从系统盘进行文件系统级重放。
3.如权利要求2所述的系统,其特征在于,所述分布式存储系统还包括数据盘;
所述主终端设备用于:在加载所述数据盘后,基于接收的数据修改指令,针对所述数据盘执行修改操作;
所述从终端设备用于:在加载所述数据盘后,确定所述主虚拟机状态异常时,卸载所述数据盘和文件系统,并重新加载所述数据盘和所述文件系统。
4.如权利要求2或3所述的系统,其特征在于,所述主虚拟机的虚拟机数据还包括设备运行数据和虚拟机状态;
所述主终端设备还用于:将所述主虚拟机的设备运行数据和所述主虚拟机的虚拟机状态写入所述主状态同步空间;
所述从终端设备还用于:确定达到虚拟机更新条件时,基于所述主状态同步空间中的设备运行数据,更新所述从虚拟机的设备运行数据。
5.如权利要求4所述的系统,其特征在于,所述设备运行数据包括以下参数中的至少一种:中央处理器信息、输入输出设备信息以及内存数据;
所述分布式存储系统中的各存储设备之间通过存储网络进行数据传输,所述分布式存储系统中的至少一个存储设备为持久化内存设备。
6.一种虚拟机容错方法,其特征在于,包括:
通过主终端设备,将主虚拟机当前的虚拟机数据写入至分布式存储系统,所述主虚拟机当前处于运行状态,所述虚拟机数据为所述主虚拟机运行相关的数据;
通过从终端设备,基于所述分布式存储系统中的虚拟机数据确定所述主虚拟机状态异常时,基于所述分布式存储系统中的虚拟机数据,对从虚拟机进行文件系统级重放,以及控制更新后的从虚拟机从静默状态切换为运行状态;
其中,所述分布式存储系统为分布式的多个存储设备的集群,用于为所述主终端设备和所述从终端设备提供存储空间;所述主终端设备设置有所述主虚拟机,所述从终端设备设置有所述从虚拟机。
7.如权利要求6所述的方法,其特征在于,所述主虚拟机的虚拟机数据包括输入输出操作日志,所述分布式存储系统包括所述主虚拟机的主系统盘、所述从虚拟机的从系统盘以及主状态同步空间,所述主状态同步空间的存储空间是由所述分布式存储系统在所述从终端设备内的存储设备提供的;所述将主虚拟机当前的虚拟机数据写入至所述分布式存储系统包括:
基于对所述主系统盘的修改操作,生成输入输出操作日志,以及将所述输入输出操作日志写入所述主状态同步空间;
所述基于所述分布式存储系统中的虚拟机数据,对所述从虚拟机进行文件系统级重放,包括:
读取所述主状态同步空间中的所述输入输出操作日志,并基于所述输入输出操作日志,对所述从虚拟机的从系统盘进行文件系统级重放。
8.如权利要求7所述的方法,其特征在于,所述分布式存储系统还包括数据盘,所述方法还包括:
通过所述主终端设备,在加载所述数据盘后,基于接收的数据修改指令,针对所述数据盘执行修改操作;
通过所述从终端设备,在加载所述数据盘后,确定所述主虚拟机状态异常时,卸载所述数据盘和文件系统,并重新加载所述数据盘和所述文件系统。
9.如权利要求7或8所述的方法,其特征在于,所述主虚拟机的虚拟机数据还包括设备运行数据和虚拟机状态,所述方法还包括:
通过所述主终端设备,将所述主虚拟机的设备运行数据和所述主虚拟机的虚拟机状态写入所述主状态同步空间;
通过所述从终端设备,确定达到虚拟机更新条件时,基于所述主状态同步空间中的设备运行数据,更新所述从虚拟机的设备运行数据。
10.如权利要求9所述的方法,其特征在于,所述设备运行数据包括以下参数中的至少一种:中央处理器信息、输入输出设备信息以及内存数据;所述分布式存储系统中的各存储设备之间通过存储网络进行数据传输,所述分布式存储系统中的至少一个存储设备为持久化内存设备。
11.一种虚拟机容错装置,其特征在于,包括:
写入单元,用于通过主终端设备,将主虚拟机当前的虚拟机数据写入至分布式存储系统,所述主虚拟机当前处于运行状态,所述虚拟机数据为所述主虚拟机运行相关的数据;
切换单元,用于通过从终端设备,基于所述分布式存储系统中的虚拟机数据确定所述主虚拟机状态异常时,基于所述分布式存储系统中的虚拟机数据,对从虚拟机进行文件系统级重放,以及控制更新后的从虚拟机从静默状态切换为运行状态;
其中,所述分布式存储系统为分布式的多个存储设备的集群,用于为所述主终端设备和所述从终端设备提供存储空间;所述主终端设备设置有所述主虚拟机,所述从终端设备设置有所述从虚拟机。
12.如权利要求11所述的装置,其特征在于,所述主虚拟机的虚拟机数据包括输入输出操作日志,所述分布式存储系统包括所述主虚拟机的主系统盘、所述从虚拟机的从系统盘以及主状态同步空间,所述主状态同步空间的存储空间是由所述分布式存储系统在所述从终端设备内的存储设备提供的;所述写入单元用于:
基于对所述主系统盘的修改操作,生成输入输出操作日志,以及将所述输入输出操作日志写入所述主状态同步空间;
所述基于所述分布式存储系统中的虚拟机数据,对所述从虚拟机进行文件系统级重放,包括:
读取所述主状态同步空间中的所述输入输出操作日志,并基于所述输入输出操作日志,对所述从虚拟机的从系统盘进行文件系统级重放。
13.如权利要求12所述的装置,其特征在于,所述分布式存储系统还包括数据盘,所述切换单元还用于:
通过所述主终端设备,在加载所述数据盘后,基于接收的数据修改指令,针对所述数据盘执行修改操作;
通过所述从终端设备,在加载所述数据盘后,确定所述主虚拟机状态异常时,卸载所述数据盘和文件系统,并重新加载所述数据盘和所述文件系统。
14.如权利要求12或13所述的装置,其特征在于,所述主虚拟机的虚拟机数据还包括设备运行数据和虚拟机状态,所述写入单元还用于:
通过所述主终端设备,将所述主虚拟机的设备运行数据和所述主虚拟机的虚拟机状态写入所述主状态同步空间;
通过所述从终端设备,确定达到虚拟机更新条件时,基于所述主状态同步空间中的设备运行数据,更新所述从虚拟机的设备运行数据。
15.如权利要求14所述的装置,其特征在于,所述设备运行数据包括以下参数中的至少一种:中央处理器信息、输入输出设备信息以及内存数据;所述分布式存储系统中的各存储设备之间通过存储网络进行数据传输,所述分布式存储系统中的至少一个存储设备为持久化内存设备。
CN202210482130.8A 2022-05-05 2022-05-05 一种虚拟机容错系统、方法及装置 Pending CN114791789A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210482130.8A CN114791789A (zh) 2022-05-05 2022-05-05 一种虚拟机容错系统、方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210482130.8A CN114791789A (zh) 2022-05-05 2022-05-05 一种虚拟机容错系统、方法及装置

Publications (1)

Publication Number Publication Date
CN114791789A true CN114791789A (zh) 2022-07-26

Family

ID=82461482

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210482130.8A Pending CN114791789A (zh) 2022-05-05 2022-05-05 一种虚拟机容错系统、方法及装置

Country Status (1)

Country Link
CN (1) CN114791789A (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090300414A1 (en) * 2008-05-30 2009-12-03 Jian Huang Method and computer system for making a computer have high availability
US20100107158A1 (en) * 2008-10-28 2010-04-29 Vmware, Inc. Low overhead fault tolerance through hybrid checkpointing and replay
CN104049912A (zh) * 2014-05-23 2014-09-17 上海爱数软件有限公司 基于虚拟化平台的分布式存储管理方法
CN109324927A (zh) * 2018-09-06 2019-02-12 郑州云海信息技术有限公司 一种基于分布式存储系统的虚拟机备份方法及系统
JP2020205121A (ja) * 2019-05-29 2020-12-24 Necプラットフォームズ株式会社 フォールトトレラントシステム、サーバ、それらの運用方法、及びプログラム

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090300414A1 (en) * 2008-05-30 2009-12-03 Jian Huang Method and computer system for making a computer have high availability
US20100107158A1 (en) * 2008-10-28 2010-04-29 Vmware, Inc. Low overhead fault tolerance through hybrid checkpointing and replay
CN104049912A (zh) * 2014-05-23 2014-09-17 上海爱数软件有限公司 基于虚拟化平台的分布式存储管理方法
CN109324927A (zh) * 2018-09-06 2019-02-12 郑州云海信息技术有限公司 一种基于分布式存储系统的虚拟机备份方法及系统
JP2020205121A (ja) * 2019-05-29 2020-12-24 Necプラットフォームズ株式会社 フォールトトレラントシステム、サーバ、それらの運用方法、及びプログラム

Similar Documents

Publication Publication Date Title
US11513926B2 (en) Systems and methods for instantiation of virtual machines from backups
US9671967B2 (en) Method and system for implementing a distributed operations log
US8341365B2 (en) Data backup system and method for virtual infrastructure
US20190347029A1 (en) Lossless data restore using multiple levels of lightweight snapshots
US20150213100A1 (en) Data synchronization method and system
US10747465B2 (en) Preserving replication to a storage object on a storage node
CN104216801B (zh) 一种面向虚拟化环境的数据复制方法及系统
US11604761B2 (en) Utilizing a tablespace to export from a foreign database recovery environment
CN103516549B (zh) 一种基于共享对象存储的文件系统元数据日志机制
US10402264B2 (en) Packet-aware fault-tolerance method and system of virtual machines applied to cloud service, computer readable record medium and computer program product
US20210240582A1 (en) Extended recovery of a database exported to a native database recovery environment
US20210073082A1 (en) Systems and methods for marking application-consistent points-in-time
US11360860B2 (en) Exporting a database from a foreign database recovery environment
US20230018235A1 (en) Utilizing a tablespace to export to a native database recovery environment
US11194761B2 (en) Optimizing utilization of a tablespace for exporting from a foreign database recovery environment
CA3155227A1 (en) Page simulation system
US11467925B2 (en) Exporting a database to a native database recovery environment
CN110531925A (zh) 数据读取方法、装置、电子设备及机器可读存储介质
CN114860380A (zh) 数据同步的方法、装置、电子设备及计算机可读存储介质
CN114791789A (zh) 一种虚拟机容错系统、方法及装置
WO2019104351A1 (en) Making and using snapshots
US11372732B2 (en) Systems and methods for agentless and accelerated backup of a database
CN110688195B (zh) Hyper-v vm的即时恢复和即时访问和使用数据域boostfs在vm内部运行的应用程序
CN115167763A (zh) 数据存储的方法、装置、电子设备及可读存储介质
US11720551B1 (en) Method and system for streaming data from portable storage devices

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