CN107888430B - 虚拟机管理操作同步方法及装置 - Google Patents
虚拟机管理操作同步方法及装置 Download PDFInfo
- Publication number
- CN107888430B CN107888430B CN201711352469.1A CN201711352469A CN107888430B CN 107888430 B CN107888430 B CN 107888430B CN 201711352469 A CN201711352469 A CN 201711352469A CN 107888430 B CN107888430 B CN 107888430B
- Authority
- CN
- China
- Prior art keywords
- virtual machine
- operation instruction
- machine management
- management operation
- pseudo
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0654—Management of faults, events, alarms or notifications using network fault recovery
- H04L41/0668—Management of faults, events, alarms or notifications using network fault recovery by dynamic selection of recovery network elements, e.g. replacement by the most appropriate element after failure
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0654—Management of faults, events, alarms or notifications using network fault recovery
- H04L41/0663—Performing the actions predefined by failover planning, e.g. switching to standby network elements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Hardware Redundancy (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及虚拟化技术领域,提供一种虚拟机管理操作同步方法及装置。所述方法包括:接收客户端发送的虚拟机管理操作指令;当虚拟机管理操作指令为写操作指令时,将虚拟机管理操作指令同步至从服务端,以使从服务端执行虚拟机管理操作指令;接收从服务端响应虚拟机管理操作指令反馈的响应信息,依据响应信息执行虚拟机管理操作指令并向客户端发送执行结果。本发明通过对虚拟机的操作自动进行读写分离,在应用操作层面进行操作同步,实现了服务器虚拟化管理平台上的热备同步,在不依赖数据库自带的同步机制的情况下,提高了服务器虚拟化管理平台的可靠性。
Description
技术领域
本发明涉及虚拟化技术领域,具体而言,涉及一种虚拟机管理操作同步方法及装置。
背景技术
虚拟机技术可以在一台主机上模拟出多个独立、完整的计算机***,因此各大公司、企业机构都已经开始削减他们所需要的物理机的数量,并通过这样的方式来达到降低成本、减少能耗和空间的目的需求。然而,一台主机上运行的虚拟机数量越多,则虚拟机出故障的概率就越大。为了实现虚拟机的高可用性,现有虚拟机管理技术往往采用双机热备的方式即用户创建的一个虚拟机,对应到主、从服务端各创建一个,当主服务端上的虚拟机出现故障时,从服务端上的虚拟机可以马上接管主服务端上虚拟机的业务,以减少故障响应时间。双机热备的方式天然存在“脑裂”问题,即当主、从服务端通信连接发生故障的时候,主、从服务端就会各自以为对方出现了故障,从而出现共享数据访问冲突,导致数据损坏。现有技术双机热备依赖数据库自带的主、从复制功能实现主、从服务端数据在运行过程中实时同步,避免“脑裂”引发的共享数据访问冲突。如果数据库本身同步的效率和稳定性有限,则主、从服务端数据的同步也会受限,如果没有数据库或者数据库本身不带有主、从复制功能则主、从服务端数据就无法同步。
发明内容
本发明实施例的目的在于提供一种虚拟机管理操作同步方法及装置,用以改善上述问题。
为了实现上述目的,本发明实施例采用的技术方案如下:
第一方面,本发明实施例提供了一种虚拟机管理操作同步方法,应用于主服务端,主服务端与客户端和从服务端通信连接。所述方法包括:接收客户端发送的虚拟机管理操作指令;当虚拟机管理操作指令为写操作指令时,将虚拟机管理操作指令同步至从服务端,以使从服务端执行虚拟机管理操作指令;接收从服务端响应虚拟机管理操作指令反馈的响应信息,依据响应信息执行虚拟机管理操作指令并向客户端发送执行结果。
第二方面,本发明实施例还提供了一种虚拟机管理操作同步装置,应用于主服务端。所述装置包括操作指令接收模块、操作指令同步模块和响应信息接收模块。其中,操作指令接收模块用于接收客户端发送的虚拟机管理操作指令;操作指令同步模块用于当虚拟机管理操作指令为写操作指令时,将虚拟机管理操作指令同步至从服务端,以使从服务端执行虚拟机管理操作指令;响应信息接收模块用于接收从服务端响应虚拟机管理操作指令反馈的响应信息,依据响应信息执行虚拟机管理操作指令并向客户端发送执行结果。
相对现有技术,本发明实施例提供的一种虚拟机管理操作同步方法及装置,首先,接收客户端发送的虚拟机管理操作指令;然后,当虚拟机管理操作指令为写操作指令时,将虚拟机管理操作指令同步至从服务端,以使从服务端执行虚拟机管理操作指令;最后,接收从服务端响应虚拟机管理操作指令反馈的响应信息,依据响应信息执行虚拟机管理操作指令并向客户端发送执行结果。与现有技术相比,本发明实施例可以在不受限于自带主、从复制功能的数据库的情况下实现主、从服务端操作的实时同步,实现了多种应用场景下虚拟机的高可用性。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本发明实施例提供的虚拟机管理操作同步方法应用场景示意图。
图2示出了本发明实施例提供的主服务端的方框示意图。
图3示出了本发明实施例提供的从服务端的方框示意图。
图4示出了本发明实施例提供的应用于主服务端的虚拟机管理操作同步方法流程图。
图5示出了本发明实施例提供的应用于从服务端的虚拟机管理操作同步方法流程图。
图6示出了本发明实施例提供的第一虚拟机管理操作同步装置的模块图。
图7示出了本发明实施例提供的第二虚拟机管理操作同步装置的模块图。
图标:10-客户端;20-主服务端;30-从服务端;201-第一处理器;202-第一存储器;203-第一总线;204-第一通信接口;301-第二处理器;302-第二存储器;303-第二总线;304-第二通信接口;200-第一虚拟机管理操作同步装置;2001-操作指令接收模块;2002-操作指令转换模块;2003-写操作指令判定模块;2004-操作指令同步模块;2005-响应信息接收模块;2006-操作指令同步失败次数统计模块;2007-从服务端故障判定模块;2008-从服务端故障事件处理模块;300-第二虚拟机管理操作同步装置;3001-同步操作指令接收模块;3002-同步操作指令执行模块;3003-主服务端故障判定模块;3004-主服务端故障事件处理模块。
具体实施方式
下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本发明的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
请参照图1,图1示出了本发明实施例提供客户端10、主服务端20、从服务端30进行交互的示意图。客户端10可通过网络与主服务端20和从服务端30均进行通信,以实现主服务端20可以接收客户端10发送的虚拟机管理操作命令,且当主服务端20出现故障时,从服务端30可以接收客户端10发送的虚拟机管理操作命令。主服务端20可以通过网络和从服务端30进行通信,以实现将虚拟机管理操作指令从主服务端20同步到从服务端30,且当主服务端20故障恢复后将虚拟机管理操作指令从从服务端30同步到主服务端20,当从服务端30故障恢复后将虚拟机管理操作指令从主服务端20同步到从服务端30。
在本发明实施例中,主服务端20和从服务端30均可以是,但不限于,实体服务器、实体服务器上的虚拟机等能提供与所述服务器或者虚拟机有相同功能的实体或者虚拟的服务端。客户端10可以是,但不限于智能手机、平板电脑、个人电脑(personal computer,PC)、服务器等等。客户端10的操作***可以是,但不限于,安卓(Android)***、IOS(iPhoneoperating system)***、Windows phone***、Windows***、Linux***等。
请参照图2,图2示出了本发明实施例提供的主服务端20的方框示意图。该主服务端20包括第一处理器201、第一存储器202、第一总线203以及第一通信接口204。第一处理器201、第一存储器202和第一通信接口204通过第一总线203连接;第一处理器201用于执行第一存储器202中存储的可执行模块,例如计算机程序。
其中,第一存储器202可能包含高速随机存取存储器(RAM:Random AccessMemory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个第一通信接口204(可以是有线或者无线)实现该***网元与至少一个其他网元之间的通信连接。
第一总线203可以是ISA总线、PCI总线或EISA总线等。图2中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
其中,第一存储器202用于存储程序,如图6所示的应用于主服务端20的第一虚拟机管理操作同步装置200。该第一虚拟机管理操作同步装置200包括至少一个可以软件或固件(firmware)的形式存储于所述第一存储器202中或固化在所述主服务端20的操作***(operating system,OS)中的软件功能模块。所述第一处理器201在接收到执行指令后,执行所述程序以实现本发明第一实施例揭示的应用于主服务端20的虚拟机管理操作同步方法。
第一处理器201可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过第一处理器201中的硬件的集成逻辑电路或者软件形式的指令完成。上述的第一处理器201可以是通用处理器,包括中央处理器(Central ProcessingUnit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。该存储介质位于第一存储器202,第一处理器201读取第一存储器202中的信息,结合其硬件完成上述方法的步骤。
请参照图3,图3示出了本发明实施例提供的从服务端30的方框示意图。该从服务端30包括第二处理器301、第二存储器302、第二总线303以及第二通信接口304。第二处理器301、第二存储器302和第二通信接口304通过第二总线303连接;第二处理器301用于执行第二存储器302中存储的可执行模块,例如计算机程序。
其中,第二存储器302可能包含高速随机存取存储器(RAM:Random AccessMemory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个第二通信接口304(可以是有线或者无线)实现该***网元与至少一个其他网元之间的通信连接。
第二总线303可以是ISA总线、PCI总线或EISA总线等。图3中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
其中,第二存储器302用于存储程序,如图7所示的应用于从服务端30的第二虚拟机管理操作同步装置300。该第二虚拟机管理操作同步装置300包括至少一个可以软件或固件(firmware)的形式存储于所述第二存储器302中或固化在所述从服务端30的操作***(operating system,OS)中的软件功能模块。所述第二处理器301在接收到执行指令后,执行所述程序以实现本发明第二实施例揭示的应用于从服务端30的虚拟机管理操作同步方法。
第二处理器301可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过第二处理器301中的硬件的集成逻辑电路或者软件形式的指令完成。上述的第二处理器301可以是通用处理器,包括中央处理器(Central ProcessingUnit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。该存储介质位于第二存储器302,第二处理器301读取第二存储器302中的信息,结合其硬件完成上述方法的步骤。
第一实施例
请参照图4,图4示出了本发明实施例提供的应用于主服务端20的虚拟机管理操作同步方法流程图。其方法包括以下步骤:
步骤S101,接收客户端发送的虚拟机管理操作指令。
在本发明实施例中,虚拟机管理操作指令包括对虚拟机进行创建、删除、查询、修改、克隆、迁移等虚拟机管理操作指令,该指令内容包含了操作命令字、主机的名字、虚拟机的名字、操作命令的内容。其中,操作命令字包括创建、删除、查询、修改、克隆、迁移等。主机指虚拟机所在的主机,一个主机上可以创建一个或者多个虚拟机。操作命令的内容指虚拟机管理操作命令执行时需要指定的虚拟机的属性信息的值,所述属性信息是表征虚拟机软硬件配置和虚拟机特征的信息,属性信息由操作命令字决定,不同的操作命令字需要指定的虚拟机的属性信息也可能不相同。例如,创建虚拟机管理操作指令的操作命令字是create,主机的名字是testHost,虚拟机的名字是virmachineA,操作命令的内容包括操作***的类型、内存大小、硬盘容量这3个属性信息的值,对应的值分别是Linux,4GB,500GB。该创建虚拟机管理操作指令的含义是在主机testHost上创建一个名为virmachineA的虚拟机,并且创建的虚拟机的操作***的类型是Linux、内存大小是4GB、硬盘容量是500GB。
步骤S102,将所述虚拟机管理操作指令转换为伪虚拟机管理操作指令。
在本发明实施例中,伪虚拟机管理操作指令和虚拟机管理操作指令是一一对应的,伪虚拟机管理操作指令和虚拟机管理操作指令除了虚拟机名字之外的其他信息均保持一致。例如,创建虚拟机管理操作指令的操作命令字是create,主机的名字是testHost,虚拟机的名字是virmachineA,操作命令的内容包括操作***的类型、内存大小、硬盘容量这3个属性信息的值,对应的值分别是Linux,4GB,500GB。转换成伪虚拟机管理操作指令后,操作命令字是create,主机的名字是testHost,虚拟机的名字是virmachineX,操作命令的内容包括操作***的类型、内存大小、硬盘容量这3个属性信息的值,对应的值分别是Linux,4GB,500GB。
步骤S103,判断所述伪虚拟机管理操作指令是否为写操作指令。该步骤S103至少可以通过如下两种情形的任一种实现,即子步骤S1031和S1032。
在本发明实施例中,主机在创建虚拟机时,会针对每一伪虚拟机管理操作指令生成一条伪虚拟机管理数据,这些伪虚拟机管理数据构成了伪虚拟机管理数据文件。也就是说,伪虚拟机管理数据文件是指保存了伪虚拟机管理数据的文件,如果伪虚拟机管理数据以非数据库形式存放,则伪虚拟机的管理文件就是普通的数据文件,可以是,但不限于是文本文件。如果伪虚拟机管理数据以数据库形式存放,则伪虚拟机管理数据文件就是数据库文件。
其中对于子步骤S1031,若伪虚拟机管理数据以非数据库的形式存放时,可通过判断伪虚拟机管理数据文件所属目录的目录属性是否发生变化来确定所述伪虚拟机管理操作指令是否为写操作指令,从而确定对应的虚拟机管理操作指令是否为写操作指令。目录属性用来表征目录特征信息,目录属性包括目录路径、目录类型、权限类型、所归属的用户或者用户组、修改时间等。
在本发明实施例中,步骤S102将接收到的虚拟机管理操作指令转换成伪虚拟机管理操作指令后,伪虚拟机管理操作指令需要访问伪虚拟机管理数据文件,如果判定伪虚拟机管理数据文件所属目录的目录属性发生变化,则该伪虚拟机管理操作指令为写操作指令,从而判定出对应的虚拟机管理操作指令为写操作指令并执行步骤S104,如果判定伪虚拟机管理文件所属目录的目录属性没有发生变化,则该伪虚拟机管理操作指令为读操作指令,从而判定出对应的虚拟机管理操作指令为读操作指令,应用于主服务端20的虚拟机管理操作同步方法流程结束。
作为一种实施方式,判断伪虚拟机管理数据文件所属目录的目录属性是否发生变化的方法可以包括:根据所述目录属性的修改时间,判断伪虚拟机管理数据文件所属目录的目录属性是否发生变化。
另外对于子步骤S1032,若伪虚拟机管理数据以数据库的形式存放时,可通过判断数据库中的数据记录是否发生变化来确定所述伪虚拟机管理操作指令是否为写操作指令,从而确定对应的虚拟机管理操作指令是否为写操作指令。如果数据库中的数据记录发生变化则判定伪虚拟机管理操作指令为写指令,从而判定对应的虚拟机管理操作指令为写指令并执行步骤S104,如果数据库中的数据记录没有发生变化则判定该伪虚拟机管理操作指令为读操作指令,从而判定对应的虚拟机管理操作指令为读指令,应用于主服务端20的虚拟机管理操作同步方法流程结束。
还需要说明的是,在本发明实施例中,如果伪虚拟机管理数据以数据库的形式存放,则在该数据库建立触发器,根据数据库中的数据记录是否发生变化判断对应的伪虚拟机管理操作指令是否为写指令,从而判断对应的虚拟机管理操作指令是否为写指令。
步骤S104,当虚拟机管理操作指令为写操作指令时,将虚拟机管理操作指令同步至从服务端,以使从服务端执行虚拟机管理操作指令;
在本发明实施例中,根据步骤S103的判定结果,当虚拟机管理操作指令为写操作指令时,除了将该虚拟机管理操作指令同步至从服务端30,同时还会将同步时的主服务端20的本地时间一起同步至从服务端30,以使从服务端30按照所述同步的主服务端20的本地时间依次执行对应的虚拟机管理操作指令。例如,10:30同步了一条创建虚拟机管理操作指令至从服务端30,10:31同步了一条修改虚拟机管理操作指令至从服务端30,则从服务端30按照时间的先后顺序,先执行10:30同步的创建虚拟机管理操作指令,再执行10:31同步的修改虚拟机管理操作指令。
步骤S105,接收从服务端响应虚拟机管理操作指令反馈的响应信息,依据响应信息执行虚拟机管理操作指令并向客户端发送执行结果;
在本发明实施例中,主服务端20将虚拟机管理操作指令同步至所述从服务端30后,在预设的时长内接收到从服务端30响应虚拟机管理操作指令反馈的响应信息,响应信息中包括了所述操作指令的执行结果,如果响应信息中的操作指令执行结果成功,则将虚拟机管理操作指令通过网络传送到主机上执行,当收到该主机响应虚拟机管理操作指令的执行结果后向客户端10发送执行成功的执行结果,如果响应信息中的操作指令执行结果失败则向客户端10发送执行失败的执行结果。
步骤S106,若未接收到从服务端反馈的响应信息,则判定虚拟机管理操作指令同步失败并记录失败次数;
在本发明实施例中,主服务端20将虚拟机管理操作指令同步至所述从服务端30后,若在预设的时长内未接收到从服务端30反馈的响应信息,则判定为本次同步失败。本次同步失败后,首先,统计同步失败的次数,然后,再一次重新同步该虚拟机管理操作指令。
步骤S107,若失败次数超过预设阈值,则判定从服务端发生故障;
在本发明实施例中,预设阈值是同一条虚拟机管理操作命令在同步失败后最多还可以重新同步的次数。如果同一条虚拟机管理操作指令同步失败的次数超过预设阈值,则判定从服务端30发生故障。例如,预设阈值为5,主服务端20同步一条创建虚拟机管理操作指令至从服务端30失败的次数为6次时,则判定从服务端30发生故障。主服务端20在判定从服务端30故障后就不再同步虚拟机管理操作指令至从服务端30。
步骤S108,记录从服务端发生故障期间待同步的虚拟机管理操作指令,以在从服务端故障恢复后进行同步。
在本发明实施例中,当主服务端20判定从服务端30发生故障后,在从服务端30未恢复正常前,主服务端20记录此期间待同步的虚拟机管理操作指令,当接收到从服务端30发送的恢复正常的通知后,主服务端20将记录的所有待同步的虚拟机管理操作指令同步到从服务端30执行。
在本发明实施例中,首先,接收客户端10发送的虚拟机管理操作指令;然后,判断虚拟机管理数据文件的目录属性是否发生变化;第三,当虚拟机管理操作指令为写操作指令时,将虚拟机管理操作指令同步至从服务端30,以使从服务端30执行虚拟机管理操作指令;第四,接收从服务端30响应虚拟机管理操作指令反馈的响应信息,依据响应信息执行虚拟机管理操作指令并向客户端10发送执行结果。最后,若未接收到从服务端30反馈的响应信息,则判定虚拟机管理操作指令同步失败并记录失败次数,若失败次数超过预设阈值,则判定从服务端30发生故障,记录从服务端30发生故障期间待同步的虚拟机管理操作指令,以在从服务端30故障恢复后进行同步。与现有技术相比,一方面,本发明实施例对虚拟机的操作自动进行读写分离,只同步写操作,减少同步的操作量;另一方面,本发明实施例可以在不受限于自带主、从复制功能的数据库的情况下实现主服务端20和从服务端30之间操作的实时同步,并能够处理主服务端20和从服务端30中任一端发生故障的场景,实现了主服务端20和从服务端30之间的热备。
第二实施例
请参照图5,图5示出了本发明实施例提供的应用于从服务端30的虚拟机管理操作同步方法流程图。其方法包括以下步骤:
步骤S201,接收主服务端发送的虚拟机管理操作指令,其中,虚拟机管理操作指令是由客户端发送至主服务端的;
在本发明实施例中,从服务端30接收到的虚拟机管理操作指令都属于写操作指令,且该虚拟机管理操作指令是由客户端10发送至主服务端20。
步骤S202,执行虚拟机管理操作指令,并依据虚拟机管理操作指令发送响应信息至主服务端,以使主服务端根据响应信息执行虚拟机管理操作指令;
在本发明实施例中,虚拟机管理操作指令通过网络传送到主机上执行,当收到该主机响应虚拟机管理操作指令的执行结果后向主服务端20发送响应信息,该响应信息包括了所述执行结果。
步骤S203,当检测到与主服务端之间的通信连接断开时,判定主服务端发生故障;
在本发明实施例中,从服务端30和主服务端20之间的通信连接可以是,但不限于是“心跳线”连接,“心跳线”是可以在从服务端30和主服务端20之间传送“心跳”信号的连接线,通过周期性地判断是否能够接收到对方发来的“心跳”信号,从而判定对方是否故障。
需要说明的是,在本发明实施例中,步骤S203不一定必须在S202步骤之后执行,S203可以在应用于从服务端30的虚拟机管理操作同步方法流程中任意一个步骤之前或者之后执行。
步骤S204,在主服务端发生故障期间,接收并执行客户端发送的虚拟机管理操作指令,并在主服务端故障恢复后将该虚拟机管理操作指令同步至主服务端。
在本发明实施例中,当从服务端30判定主服务端20发生故障后,在主服务端20未恢复正常前,从服务端30直接接收并执行此期间客户端10发送的虚拟机管理操作指令,记录此期间待发送到主服务端20的虚拟机管理操作指令,当接收到主服务端20发送的恢复正常的通知后,从服务端30将记录的待同步的虚拟机管理操作指令同步到主服务端20执行。
本发明实施例中,首先,接收主服务端20发送的虚拟机管理操作指令,其中,虚拟机管理操作指令是由客户端10发送至主服务端20的;其次,执行虚拟机管理操作指令,并依据虚拟机管理操作指令发送响应信息至主服务端20,以使主服务端20根据响应信息执行虚拟机管理操作指令;最后,当检测到与主服务端20之间的通信连接断开时,判定主服务端20发生故障,在主服务端20发生故障期间,接收并执行客户端10发送的虚拟机管理操作指令,并在主服务端20故障恢复后将该虚拟机管理操作指令同步至主服务端20。与现有技术相比,本发明实施例可以在不受限于自带主、从复制功能的数据库的情况下实现主、从服务端30操作的实时同步,并能够在主服务端20发生故障的场景下接管主服务端20的业务,实现了主服务端20和从服务端30之间的热备,缩短了故障处理响应时间。
第三实施例
请参照图6,图6示出了本发明实施例提供的应用于主服务端20的第一虚拟机管理操作同步装置200的模块图。应用于主服务端20的第一虚拟机管理操作同步装置200包括操作指令接收模块2001、操作指令转换模块2002、写操作指令判定模块2003、操作指令同步模块2004、响应信息接收模块2005、操作指令同步失败次数统计模块2006、从服务端故障判定模块2007、从服务端故障事件处理模块2008。
操作指令接收模块2001,用于接收客户端发送的虚拟机管理操作指令。
在本发明实施例中,操作指令接收模块2001可以用于执行步骤S101。
操作指令转换模块2002,用于将客户端发送的虚拟机管理操作指令转换成伪虚拟机管理操作指令。
在本发明实施例中,操作指令转换模块2002可以用于执行步骤S102。
写操作指令判定模块2003,用于判断虚拟机管理操作指令是否是写操作指令。当所述伪虚拟机管理操作指令是写操作指令,则所述虚拟机管理操作指令为写操作指令;当所述伪虚拟机管理操作指令是读操作指令,则所述虚拟机管理操作指令为读操作指令。
其中,若伪虚拟机管理数据以非数据库的形式存放,如果所述伪虚拟机管理数据文件所属目录的目录属性发生变化,则写操作指令判定模块2003判定所述伪虚拟机管理操作指令为写操作指令。
若伪虚拟机管理数据以数据库的形式存放,如果数据库中的数据记录发生变化,则写操作指令判定模块2003判定所述伪虚拟机管理操作指令为写操作指令。
在本发明实施例中,写操作指令判定模块2003可以用于执行步骤S103及步骤S103的子步骤S1031和子步骤S1032。
操作指令同步模块2004,用于当虚拟机管理操作指令为写操作指令时,将虚拟机管理操作指令同步至从服务端,以使从服务端执行虚拟机管理操作指令。
在本发明实施例中,操作指令同步模块2004可以用于执行步骤S104。
响应信息接收模块2005,用于接收从服务端响应虚拟机管理操作指令反馈的响应信息,依据响应信息执行虚拟机管理操作指令并向客户端发送执行结果。
在本发明实施例中,响应信息接收模块2005可以用于执行步骤S105。
操作指令同步失败次数统计模块2006,用于若未接收到从服务端反馈的响应信息,则判定虚拟机管理操作指令同步失败并记录失败次数。
在本发明实施例中,操作指令同步失败次数统计模块2006可以用于执行步骤S106。
从服务端故障判定模块2007,用于若所述失败次数超过预设阈值,则判定所述从服务端发生故障。
在本发明实施例中,从服务端故障判定模块2007可以用于执行步骤S107。
从服务端故障事件处理模块2008,用于记录从服务端发生故障期间待同步的虚拟机管理操作指令,以在从服务端故障恢复后进行同步。
在本发明实施例中,从服务端故障事件处理模块2008可以用于执行步骤S108。
第四实施例
请参照图7,图7示出了本发明实施例提供的应用于从服务端30的第二虚拟机管理操作同步装置300的模块图。应用于从服务端30的第二虚拟机管理操作同步装置300包括同步操作指令接收模块3001、同步操作指令执行模块3002、主服务端故障判定模块3003、主服务端故障事件处理模块3004。
同步操作指令接收模块3001,用于接收主服务端发送的虚拟机管理操作指令,其中,所述虚拟机管理操作指令是由客户端发送至主服务端的。
在本发明实施例中,同步操作指令接收模块3001可以用于执行步骤S201。
同步操作指令执行模块3002,用于执行虚拟机管理操作指令,并依据虚拟机管理操作指令发送响应信息至主服务端,以使主服务端根据响应信息执行虚拟机管理操作指令。
在本发明实施例中,同步操作指令执行模块3002可以用于执行步骤S202。
主服务端故障判定模块3003,用于当检测到与主服务端之间的通信连接断开时,判定主服务端发生故障。
在本发明实施例中,主服务端故障判定模块3003可以用于执行步骤S203。
主服务端故障事件处理模块3004,用于在主服务端发生故障期间,接收并执行客户端发送的虚拟机管理操作指令,并在主服务端故障恢复后将该虚拟机管理操作指令同步至主服务端。
在本发明实施例中,主服务端故障事件处理模块3004可以用于执行步骤S204。
本实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被第一处理器201执行时实现本发明第一实施例揭示的应用于主服务端20的虚拟机管理操作同步方法。
综上所述,本发明提供的一种虚拟机管理操作同步方法及装置,所述方法包括:接收客户端发送的虚拟机管理操作指令;当虚拟机管理操作指令为写操作指令时,将虚拟机管理操作指令同步至从服务端,以使从服务端执行虚拟机管理操作指令;接收从服务端响应虚拟机管理操作指令反馈的响应信息,依据响应信息执行虚拟机管理操作指令并向客户端发送执行结果。与现有技术相比,一方面,本发明通过对虚拟机的操作自动进行读写分离,在应用操作层面进行操作同步,另一方面,本发明不受限于自带主、从复制功能的数据库的情况下实现主、从服务端操作的实时同步,实现了多种应用场景下虚拟机的高可用性。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
Claims (8)
1.一种虚拟机管理操作同步方法,其特征在于,应用于主服务端,所述主服务端与客户端和从服务端通信连接,所述方法包括:
接收客户端发送的虚拟机管理操作指令;
将所述虚拟机管理操作指令转换为伪虚拟机管理操作指令;
判断所述伪虚拟机管理操作指令是否为写操作指令,当所述伪虚拟机管理操作指令是写操作指令,则所述虚拟机管理操作指令为写操作指令;当所述伪虚拟机管理操作指令是读操作指令,则所述虚拟机管理操作指令为读操作指令;
当所述虚拟机管理操作指令为写操作指令时,将所述虚拟机管理操作指令同步至所述从服务端,以使所述从服务端执行所述虚拟机管理操作指令;
接收所述从服务端响应所述虚拟机管理操作指令反馈的响应信息,依据所述响应信息执行所述虚拟机管理操作指令并向客户端发送执行结果。
2.如权利要求1所述的方法,其特征在于,所述主服务端包括伪虚拟机管理数据文件,所述判断所述伪虚拟机管理操作指令是否为写操作指令的步骤包括:
若伪虚拟机管理数据以非数据库的形式存放,如果所述伪虚拟机管理数据文件所属目录的目录属性发生变化,则判定所述伪虚拟机管理操作指令为写操作指令。
3.如权利要求1所述的方法,其特征在于,所述判断所述伪虚拟机管理操作指令是否为写操作指令的步骤包括:
若伪虚拟机管理数据以数据库的形式存放,如果数据库中的数据记录发生变化,则判定所述伪虚拟机管理操作指令为写操作指令。
4.如权利要求1所述的方法,其特征在于,所述方法还包括:
若未接收到所述从服务端反馈的响应信息,则判定所述虚拟机管理操作指令同步失败并记录失败次数;
若所述失败次数超过预设阈值,则判定所述从服务端发生故障;
记录所述从服务端发生故障期间待同步的虚拟机管理操作指令,以在所述从服务端故障恢复后进行同步。
5.一种虚拟机管理操作同步装置,其特征在于,应用于主服务端,所述主服务端与客户端和从服务端通信连接,所述装置包括:
操作指令接收模块,用于接收客户端发送的虚拟机管理操作指令;
操作指令转换模块,用于将所述虚拟机管理操作指令转换为伪虚拟机管理操作指令;
写操作指令判断模块,用于判断所述伪虚拟机管理操作指令是否为写操作指令,当所述伪虚拟机管理操作指令是写操作指令,则所述虚拟机管理操作指令为写操作指令;当所述伪虚拟机管理操作指令是读操作指令,则所述虚拟机管理操作指令为读操作指令;
操作指令同步模块,用于当所述虚拟机管理操作指令为写操作指令时,将所述虚拟机管理操作指令同步至所述从服务端,以使所述从服务端执行所述虚拟机管理操作指令;
响应信息接收模块,用于接收所述从服务端响应所述虚拟机管理操作指令反馈的响应信息,依据所述响应信息执行所述虚拟机管理操作指令并向客户端发送执行结果。
6.如权利要求5所述的虚拟机管理操作同步装置,其特征在于,所述写操作指令判断模块具体用于:
若伪虚拟机管理数据以非数据库的形式存放,如果所述伪虚拟机管理数据文件所属目录的目录属性发生变化,则判定所述伪虚拟机管理操作指令为写操作指令。
7.如权利要求5所述的虚拟机管理操作同步装置,其特征在于,所述写操作指令判断模块具体用于:
若伪虚拟机管理数据以数据库的形式存放,如果数据库中的数据记录发生变化,则判定所述伪虚拟机管理操作指令为写操作指令。
8.如权利要求5所述的虚拟机管理操作同步装置,其特征在于,所述装置还包括:
操作指令同步失败次数统计模块,用于若未接收到从服务端反馈的响应信息,则判定虚拟机管理操作指令同步失败并记录失败次数;
从服务端故障判定模块,用于若所述失败次数超过预设阈值,则判定所述从服务端发生故障;
从服务端故障事件处理模块,用于记录从服务端发生故障期间待同步的虚拟机管理操作指令,以在从服务端故障恢复后进行同步。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711352469.1A CN107888430B (zh) | 2017-12-15 | 2017-12-15 | 虚拟机管理操作同步方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711352469.1A CN107888430B (zh) | 2017-12-15 | 2017-12-15 | 虚拟机管理操作同步方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107888430A CN107888430A (zh) | 2018-04-06 |
CN107888430B true CN107888430B (zh) | 2020-01-14 |
Family
ID=61770759
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711352469.1A Active CN107888430B (zh) | 2017-12-15 | 2017-12-15 | 虚拟机管理操作同步方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107888430B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108804147B (zh) * | 2018-05-28 | 2022-05-10 | 新华三云计算技术有限公司 | 联动关机方法、装置及客户端 |
CN110968568B (zh) * | 2019-12-04 | 2023-08-18 | 常熟理工学院 | 一种数据库管理*** |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103312814A (zh) * | 2013-06-28 | 2013-09-18 | 武汉大学 | 云管理平台和虚拟机终端用户间vnc隐通道的建立方法 |
CN105323233A (zh) * | 2014-08-05 | 2016-02-10 | 腾讯科技(深圳)有限公司 | 业务同步方法、业务同步装置及业务同步*** |
CN105407117A (zh) * | 2014-09-10 | 2016-03-16 | 腾讯科技(深圳)有限公司 | 分布式备份数据的方法、装置和*** |
CN107153569A (zh) * | 2017-03-23 | 2017-09-12 | 深信服科技股份有限公司 | 虚拟机读写失败的处理方法及装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5068056B2 (ja) * | 2006-10-11 | 2012-11-07 | 株式会社日立製作所 | 障害回復方法、計算機システム及び管理サーバ |
CN106940699B (zh) * | 2016-01-05 | 2021-02-05 | 创新先进技术有限公司 | 一种内存数据的同步处理方法、装置、服务器及*** |
-
2017
- 2017-12-15 CN CN201711352469.1A patent/CN107888430B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103312814A (zh) * | 2013-06-28 | 2013-09-18 | 武汉大学 | 云管理平台和虚拟机终端用户间vnc隐通道的建立方法 |
CN105323233A (zh) * | 2014-08-05 | 2016-02-10 | 腾讯科技(深圳)有限公司 | 业务同步方法、业务同步装置及业务同步*** |
CN105407117A (zh) * | 2014-09-10 | 2016-03-16 | 腾讯科技(深圳)有限公司 | 分布式备份数据的方法、装置和*** |
CN107153569A (zh) * | 2017-03-23 | 2017-09-12 | 深信服科技股份有限公司 | 虚拟机读写失败的处理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN107888430A (zh) | 2018-04-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11397648B2 (en) | Virtual machine recovery method and virtual machine management device | |
CN106776130B (zh) | 一种日志恢复方法、存储装置和存储节点 | |
CN103814360B (zh) | 数据复制方法及存储*** | |
US20150213100A1 (en) | Data synchronization method and system | |
US20150286432A1 (en) | Efficient flashcopy backup target volume allocation from a shared resource pool | |
WO2020063600A1 (zh) | 数据容灾方法与站点 | |
US10860447B2 (en) | Database cluster architecture based on dual port solid state disk | |
US8438353B1 (en) | Method, system, and computer readable medium for asynchronously processing write operations for a data storage volume having a copy-on-write snapshot | |
CN107506266B (zh) | 一种数据恢复方法及*** | |
CN107315659B (zh) | 一种元数据的冗余备份方法及装置 | |
CN104794119B (zh) | 用于中间件消息的存储与传输方法及*** | |
US20180121531A1 (en) | Data Updating Method, Device, and Related System | |
CN107888430B (zh) | 虚拟机管理操作同步方法及装置 | |
CN103973727A (zh) | 数据同步方法及装置 | |
EP3696658A1 (en) | Log management method, server and database system | |
US20240143456A1 (en) | Log replay methods and apparatuses, data recovery methods and apparatuses, and electronic devices | |
WO2021082925A1 (zh) | 一种交易处理的方法及装置 | |
CN109857519B (zh) | 虚拟磁盘的处理方法及相关装置 | |
CN105159790A (zh) | 一种数据抢救方法及文件服务器 | |
CN114564458B (zh) | 集群间数据同步的方法、装置、设备和存储介质 | |
US9600188B2 (en) | Collision avoidance using dynamic target volume allocation from a shared resource pool | |
US9672118B2 (en) | Collision avoidance using dynamic target volume allocation | |
CN104809033A (zh) | 一种备份方法及*** | |
CN112966046B (zh) | 数据同步方法和装置、电子设备和存储介质 | |
CN104281500A (zh) | 数据任意时刻恢复点(rpo)构建技术 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |