CN105824689A - 一种虚拟机存储同步方法 - Google Patents

一种虚拟机存储同步方法 Download PDF

Info

Publication number
CN105824689A
CN105824689A CN201610196623.XA CN201610196623A CN105824689A CN 105824689 A CN105824689 A CN 105824689A CN 201610196623 A CN201610196623 A CN 201610196623A CN 105824689 A CN105824689 A CN 105824689A
Authority
CN
China
Prior art keywords
virtual machine
address
memory
machine
internal memory
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.)
Withdrawn
Application number
CN201610196623.XA
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.)
G Cloud Technology Co Ltd
Original Assignee
G Cloud Technology 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 G Cloud Technology Co Ltd filed Critical G Cloud Technology Co Ltd
Priority to CN201610196623.XA priority Critical patent/CN105824689A/zh
Publication of CN105824689A publication Critical patent/CN105824689A/zh
Withdrawn legal-status Critical Current

Links

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
    • 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/0608Saving storage space on 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • 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/45579I/O management, e.g. providing access to device drivers or storage

Landscapes

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

Abstract

本发明涉及一种基于共享虚拟磁盘的虚拟机存储同步方法。本发明首先把虚拟磁盘镜像存储于共享存储中,采用快照的方式运行虚拟机;然后,获取内存脏页位图,获取脏页位图在虚拟机逻辑空间中的地址;得到该页面在物理机内存空间中的真实地址,将这些内存脏页封装成数据包发送至备虚拟机;将该页面映射到虚拟机的逻辑空间的相同地址;最后,备虚拟机向主虚拟机返回信息,完成此次同步。本发明提出的基于虚拟磁盘的虚拟机存储同步方法,解决了目前虚拟机容错时存储同步过程中发生的拷贝时间长、系统开销大的问题;可以应用在虚拟机容错技术中。

Description

一种虚拟机存储同步方法
技术领域
本发明涉及云计算技术领域,特别是一种基于共享虚拟磁盘的虚拟机存储同步方法。
背景技术
随着虚拟化技术运用于服务器中,越来越多的企业选择在虚拟化服务器上运行关键业务,以提高关键业务运行效率。人们在广泛使用虚拟机的同时,开始对虚拟机提出更高的要求,高可靠性正是其中一个重要要求,虚拟机容错技术目前得到了广泛的应用。在虚拟机容错过程中对内存和存储的同步是两个最主要的方面。内存同步目前多采用定时内存脏页数据拷贝的方式,是一种比较成熟的技术。存储的同步由于双机热备方法要求主虚拟机和备虚拟机各自拥有独立的虚拟磁盘,因此备份时两块磁盘通过网络不断进行同步,保持内容的一致性。由于虚拟磁盘文件通常比较大,拷贝磁盘文件无疑要花费大量时间,这就增加了虚拟机容错的时间代价与空间代价,影响了系统的正常运行。
发明内容
本发明解决的技术问题在于一种基于共享虚拟磁盘的虚拟机存储同步方法;解决目前虚拟机容错时存储同步过程中发生的拷贝时间长、系统开销大的问题。
本发明解决上述技术问题的技术方案是,所述的方法包括以下步骤:
步骤1:把虚拟磁盘镜像存储于共享存储中,将此磁盘镜像文件作为母镜像;采用快照的方式运行虚拟机,子镜像数据保存在内存中;
步骤2:主虚拟机获取上一次同步后到这次同步时刻的虚拟机内存发生改变的内存脏页位图;
步骤3:获取步骤2中内存脏页位图在虚拟机逻辑空间中的地址;
步骤4:根据逻辑地址与物理机实际地址的对应表得到该页面在物理机内存空间中的真实地址,通过地址在物理机的内存空间中读出这些页面的数据后,将这些内存脏页封装成数据包发送至备虚拟机;
步骤5:备虚拟机收到主虚拟机传来的内存脏页数据包,保存在物理机的内存空间中,通过填写物理机实际地址与逻辑地址对应表,将该页面映射到虚拟机的逻辑空间的相同地址;
步骤6:备虚拟机向主虚拟机返回信息,完成此次同步。
所述内存脏页指的是相对于备虚拟机的内存来说,在主虚拟机上由于程序运行而导致的数据被重写过的内存页;
所述内存脏页位图指的是保存内存页面开始地址在虚拟机内存中偏移的数据结构;
所述获取内存脏页位图指的是通过对写内存的操作进行记录,得到每次写入的内存页的相对偏移并进行记录。
所述逻辑地址与物理机实际地址对应表指的是虚拟机内存地址到物理机内存地址的对照表,通过查询逻辑地址与物理机实际地址对应表可以把虚拟机内存地址转换成实际的物理机内存地址;
所述物理机实际地址与逻辑地址对应表指的是物理机内存地址到虚拟机内存地址的对照表,通过查询物理机实际地址与逻辑地址对应表可以把实际的物理机内存地址转换成虚拟机内存地址。
本发明采用共享虚拟磁盘的方式,对内存脏页进行拷贝;解决了虚拟机容错的时间与空间需求大,容易影响系统正常运行的问题。
附图说明
下面结合附图对本发明进一步说明:
图1是本发明的流程图;
图2是本发明内存的增量拷贝原理图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本实现在双机热备工具remus的基础上基于Xen虚拟机实现虚拟机磁盘数据的同步。
首先仿照xc_domain_save()函数实现一个新的内存拷贝函数remus_domain_save()函数。到达某一同步时刻,双机开始进行同步,主虚拟机调用remus_domain_save(),备虚拟机仍调用xc_domain_restore()函数。为了减少内存同步花费的时间代价,remus_domain_save()采用增量拷贝的方式,获取上一次同步后到这次同步时刻的虚拟机内存发生改变的内存脏页,将这些脏页封装成ckpt包发送至备虚拟机;备虚拟机接收ckpt包,并调用xc_domain_restore()函数将这些内存页面映射到自己的内存空间中,向主虚拟机返回信息,完成这次同步。内存的增量拷贝充分降低了为了同步的内存页面传输的时间代价。
内存的增量拷贝的实现主要用到Xen虚拟机的影子页表技术,原理见图2。
影子页表对于DomU是只读的,当DomU对内存页内容进行修改时,页表脏位将会改变,影子页表也要进行相应的改变,但DomU无权修改影子页表,所以会触发页错误。XenHypervisor检测到页错误,对页表进行检查,DomU是否有权对相应页表项对应的内存页面进行修改。如果允许DomU对页面进行修改,则将影子页表中对应页表项对DomU的权限改为可写,同时在影子页表的脏页位图中记录被修改的内存脏页。DomU才可以对相应内存页面进行修改。通过影子页表的机制,Xen虚拟机将所有修改过的内存脏页都进行了记录。并且提供了xc_shadow_control()函数对脏页位图进行读取和清空操作。使用参数Xen_DOMCTL_SHADOW_OP_CLEAN调用xc_shadow_control()函数时将会把脏页位图读取到指定的位图结构中,同时清空影子页表的脏页位图。通过影子页表机制和xc_shadow_control()函数可以获得两次同步时刻之间的内存脏页,在进行内存的每次同步时不需拷贝全部内存页面,只要拷贝两次同步时刻之间改变的内存脏页即可,这种内存拷贝方法就是内存的增量拷贝。
得到脏页位图后根据位图中的位置可以得到被修改的内存页面在虚拟机逻辑空间中的地址。然后查询Xen虚拟机提供的p2m表,即逻辑地址与物理机实际地址的对应表,通过查询p2m表可得到该页面在物理机内存空间中的真实地址,可以进行该页面的传输。备虚拟机收到主虚拟机传来的内存页面,保存在物理机的内存空间中,通过填写m2p表,将该页面映射到虚拟机的逻辑空间的相同地址,以后当备份虚拟机开始运行时即可被正常使用。

Claims (3)

1.一种虚拟机存储同步方法,其特征在于,所述的方法包括以下步骤:
步骤1:把虚拟磁盘镜像存储于共享存储中,将此磁盘镜像文件作为母镜像;采用快照的方式运行虚拟机,子镜像数据保存在内存中;
步骤2:主虚拟机获取上一次同步后到这次同步时刻的虚拟机内存发生改变的内存脏页位图;
步骤3:获取步骤2中内存脏页位图在虚拟机逻辑空间中的地址;
步骤4:根据逻辑地址与物理机实际地址的对应表得到该页面在物理机内存空间中的真实地址,通过地址在物理机的内存空间中读出这些页面的数据后,将这些内存脏页封装成数据包发送至备虚拟机;
步骤5:备虚拟机收到主虚拟机传来的内存脏页数据包,保存在物理机的内存空间中,通过填写物理机实际地址与逻辑地址对应表,将该页面映射到虚拟机的逻辑空间的相同地址;
步骤6:备虚拟机向主虚拟机返回信息,完成此次同步。
2.根据权利要求1所述的虚拟机存储同步方法,其特征在于,所述内存脏页指的是相对于备虚拟机的内存来说,在主虚拟机上由于程序运行而导致的数据被重写过的内存页;
所述内存脏页位图指的是保存内存页面开始地址在虚拟机内存中偏移的数据结构;
所述获取内存脏页位图指的是通过对写内存的操作进行记录,得到每次写入的内存页的相对偏移并进行记录。
3.根据权利要求1或2所述的虚拟机存储同步方法,其特征在于,所述逻辑地址与物理机实际地址对应表指的是虚拟机内存地址到物理机内存地址的对照表,通过查询逻辑地址与物理机实际地址对应表可以把虚拟机内存地址转换成实际的物理机内存地址;
所述物理机实际地址与逻辑地址对应表指的是物理机内存地址到虚拟机内存地址的对照表,通过查询物理机实际地址与逻辑地址对应表可以把实际的物理机内存地址转换成虚拟机内存地址。
CN201610196623.XA 2016-03-30 2016-03-30 一种虚拟机存储同步方法 Withdrawn CN105824689A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610196623.XA CN105824689A (zh) 2016-03-30 2016-03-30 一种虚拟机存储同步方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610196623.XA CN105824689A (zh) 2016-03-30 2016-03-30 一种虚拟机存储同步方法

Publications (1)

Publication Number Publication Date
CN105824689A true CN105824689A (zh) 2016-08-03

Family

ID=56526518

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610196623.XA Withdrawn CN105824689A (zh) 2016-03-30 2016-03-30 一种虚拟机存储同步方法

Country Status (1)

Country Link
CN (1) CN105824689A (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106445732A (zh) * 2016-08-30 2017-02-22 华中科技大学附属中学 一种基于版本控制的在线快照管理方法和系统
CN106790477A (zh) * 2016-12-12 2017-05-31 广州杰赛科技股份有限公司 实现云教室集群的系统及方法
CN107562650A (zh) * 2017-08-24 2018-01-09 郑州云海信息技术有限公司 一种物理主机映射到存储系统的方法及系统
CN109597671A (zh) * 2018-12-11 2019-04-09 国云科技股份有限公司 一种兼容集中式和分布式运行的桌面云实现方法
CN110968361A (zh) * 2019-11-04 2020-04-07 上海交通大学 隔离沙箱加载方法
CN112099905A (zh) * 2020-08-26 2020-12-18 海光信息技术股份有限公司 虚拟机脏页获取方法、装置、电子设备及可读存储介质
CN112415907A (zh) * 2020-11-26 2021-02-26 珠海格力电器股份有限公司 楼宇设备的异地调试控制方法、装置和计算机设备
CN114785807A (zh) * 2022-03-16 2022-07-22 深信服科技股份有限公司 一种数据处理方法、装置、电子设备及存储介质
CN117591345A (zh) * 2024-01-18 2024-02-23 柏科数据技术(深圳)股份有限公司 针对Ceph的数据同步方法、装置、设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102436410A (zh) * 2011-12-12 2012-05-02 华中科技大学 虚拟机检查点的在线保存方法
US8413145B2 (en) * 2010-09-30 2013-04-02 Avaya Inc. Method and apparatus for efficient memory replication for high availability (HA) protection of a virtual machine (VM)
CN103246561A (zh) * 2012-11-16 2013-08-14 佳都新太科技股份有限公司 一种基于xen的虚拟机实时迁移技术
CN104407931A (zh) * 2014-10-28 2015-03-11 国云科技股份有限公司 一种获取虚拟机损坏系统盘镜像的方法
CN104468734A (zh) * 2014-11-18 2015-03-25 国云科技股份有限公司 一种基于克隆的虚拟集群扩展方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8413145B2 (en) * 2010-09-30 2013-04-02 Avaya Inc. Method and apparatus for efficient memory replication for high availability (HA) protection of a virtual machine (VM)
CN102436410A (zh) * 2011-12-12 2012-05-02 华中科技大学 虚拟机检查点的在线保存方法
CN103246561A (zh) * 2012-11-16 2013-08-14 佳都新太科技股份有限公司 一种基于xen的虚拟机实时迁移技术
CN104407931A (zh) * 2014-10-28 2015-03-11 国云科技股份有限公司 一种获取虚拟机损坏系统盘镜像的方法
CN104468734A (zh) * 2014-11-18 2015-03-25 国云科技股份有限公司 一种基于克隆的虚拟集群扩展方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
向军: "基于Remus的双机热备份优化机制研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106445732A (zh) * 2016-08-30 2017-02-22 华中科技大学附属中学 一种基于版本控制的在线快照管理方法和系统
CN106790477A (zh) * 2016-12-12 2017-05-31 广州杰赛科技股份有限公司 实现云教室集群的系统及方法
CN107562650A (zh) * 2017-08-24 2018-01-09 郑州云海信息技术有限公司 一种物理主机映射到存储系统的方法及系统
CN107562650B (zh) * 2017-08-24 2020-11-20 苏州浪潮智能科技有限公司 一种物理主机映射到存储系统的方法及系统
CN109597671B (zh) * 2018-12-11 2022-06-10 国云科技股份有限公司 一种兼容集中式和分布式运行的桌面云实现方法
CN109597671A (zh) * 2018-12-11 2019-04-09 国云科技股份有限公司 一种兼容集中式和分布式运行的桌面云实现方法
CN110968361A (zh) * 2019-11-04 2020-04-07 上海交通大学 隔离沙箱加载方法
CN112099905A (zh) * 2020-08-26 2020-12-18 海光信息技术股份有限公司 虚拟机脏页获取方法、装置、电子设备及可读存储介质
CN112099905B (zh) * 2020-08-26 2024-01-26 海光信息技术股份有限公司 虚拟机脏页获取方法、装置、电子设备及可读存储介质
CN112415907A (zh) * 2020-11-26 2021-02-26 珠海格力电器股份有限公司 楼宇设备的异地调试控制方法、装置和计算机设备
CN114785807A (zh) * 2022-03-16 2022-07-22 深信服科技股份有限公司 一种数据处理方法、装置、电子设备及存储介质
CN117591345A (zh) * 2024-01-18 2024-02-23 柏科数据技术(深圳)股份有限公司 针对Ceph的数据同步方法、装置、设备及存储介质
CN117591345B (zh) * 2024-01-18 2024-05-14 柏科数据技术(深圳)股份有限公司 针对Ceph的数据同步方法、装置、设备及存储介质

Similar Documents

Publication Publication Date Title
CN105824689A (zh) 一种虚拟机存储同步方法
US10191677B1 (en) Asynchronous splitting
US9959061B1 (en) Data synchronization
US10503616B2 (en) Periodic data replication
US9672117B1 (en) Method and system for star replication using multiple replication technologies
US10120925B1 (en) Data synchronization
US9875042B1 (en) Asynchronous replication
US9235632B1 (en) Synchronization of replication
US9405481B1 (en) Replicating using volume multiplexing with consistency group file
US10067694B1 (en) Replication ordering
US9135120B1 (en) Consistency group moving
US9965306B1 (en) Snapshot replication
US9619256B1 (en) Multi site and multi tenancy
CN102012852B (zh) 一种增量写快照的实现方法
US11080148B2 (en) Method and system for star replication using multiple replication technologies
US10042579B1 (en) Crash consistent snapshot
US9910739B1 (en) Inverse star replication
US20140208012A1 (en) Virtual disk replication using log files
US10191755B1 (en) Virtual replication
US9639383B1 (en) Volume moving
US20160283329A1 (en) Virtual point in time access between snapshots
US9659074B1 (en) VFA statistics
US9619264B1 (en) AntiAfinity
CN104216801B (zh) 一种面向虚拟化环境的数据复制方法及系统
US9619255B1 (en) Remote live motion

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
WW01 Invention patent application withdrawn after publication
WW01 Invention patent application withdrawn after publication

Application publication date: 20160803