CN114860380A - 数据同步的方法、装置、电子设备及计算机可读存储介质 - Google Patents

数据同步的方法、装置、电子设备及计算机可读存储介质 Download PDF

Info

Publication number
CN114860380A
CN114860380A CN202210483603.6A CN202210483603A CN114860380A CN 114860380 A CN114860380 A CN 114860380A CN 202210483603 A CN202210483603 A CN 202210483603A CN 114860380 A CN114860380 A CN 114860380A
Authority
CN
China
Prior art keywords
memory
data
memory page
storage device
page
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
CN202210483603.6A
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 CN202210483603.6A priority Critical patent/CN114860380A/zh
Publication of CN114860380A publication Critical patent/CN114860380A/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
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • 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
    • 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/45583Memory management, e.g. access or allocation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请属于数据处理技术领域,公开了数据同步的方法、装置、电子设备及计算机可读存储介质,该方法包括,获取所述主终端设备中的主虚拟机当前的内存更新数据;在状态同步空间的各内存页中,确定用于同步所述内存更新数据的目标内存页;所述状态同步空间中包含多个用于同步所述主虚拟机的内存数据的内存页;确定所述目标内存页对应设置的目标存储设备,所述目标存储设备是根据所述目标内存页的数据更新频率从存储性能不同的多个存储设备中选取的设备;根据所述内存更新数据,更新所述目标内存页在所述目标存储设备中对应的内存数据,以实现对所述目标内存页的数据更新。这样,可以在同步虚拟机的内存数据时,降低数据同步的成本。

Description

数据同步的方法、装置、电子设备及计算机可读存储介质
技术领域
本申请涉及数据处理技术领域,具体而言,涉及数据同步的方法、装置、电子设备及计算机可读存储介质。
背景技术
随着虚拟化技术运用于服务器中,越来越多的企业选择在虚拟化服务器上运行关键业务,以提高关键业务运行效率。人们在广泛使用虚拟机的同时,开始对虚拟机提出更高的要求,高可靠性正是其中一个重要要求,虚拟机容错技术目前得到了广泛的应用。
现有技术下,将两台虚拟机形成主从关系(即主备关系),主终端设备将主虚拟机的内存数据同步到存储设备,并将存储设备中的内存数据同步到从终端设备中的从虚拟机,以便主虚拟机出现故障时,进行主从虚拟机切换。
由于内存数据的读写速度要求通常较高,因此,通常部署存储性能(如,数据读写速度)较高的多个存储设备存储内存数据,但是,由于存储性能高的存储设备的价格通常较为昂贵,因此,虚拟机的内存数据同步的成本较高。
发明内容
本申请实施例的目的在于提供数据同步的方法、装置、电子设备及计算机可读存储介质,用以在同步虚拟机的内存数据时,降低数据同步的成本。
一方面,提供一种数据同步的方法,应用于主终端设备,包括:
获取主终端设备中的主虚拟机当前的内存更新数据;
在状态同步空间的各内存页中,确定用于同步内存更新数据的目标内存页;状态同步空间中包含多个用于同步主虚拟机的内存数据的内存页;
确定目标内存页对应设置的目标存储设备,目标存储设备是根据目标内存页的数据更新频率从存储性能不同的多个存储设备中选取的设备;目标存储设备用于提供目标内存页的物理存储空间;
根据内存更新数据,更新目标内存页在目标存储设备中对应的内存数据,以实现对目标内存页的数据更新。
在上述实现过程中,根据内存页的数据更新频率,针对不同内存页设置不同存储性能的存储设备,而不是均采用高存储性能的存储设备以存储内存数据,降低了系统成本。
一种实施方式中,确定目标内存页对应设置的目标存储设备,包括:
从第一页索引中,获取目标内存页的目标内存页索引信息,第一页索引中包含状态同步空间中的各内存页的内存页索引信息;
根据目标内存页索引信息中的设备标识信息,确定目标内存页对应设置的目标存储设备。
在上述实现过程中,可以通过第一页索引,获取用于为目标内存页提供物理存储空间的目标存储设备。
一种实施方式中,根据内存更新数据,更新目标内存页在目标存储设备中对应的内存数据,包括:
获取目标内存页索引信息中还包含的存储地址信息,存储地址信息用于指示内存页的内存数据在存储设备中的存储地址;
按照存储地址信息,基于内存更新数据,更新目标存储设备中相应的内存数据。
在上述实现过程中,可以按照目标存储设备中的存储地址信息,对目标存储设备中的相应内存数据进行更新。
一种实施方式中,方法还包括:
若确定目标内存页数据更新完成,则将目标内存页索引信息中的数据更新频率加一;
若确定目标内存页中存储的内存数据被同步至从终端设备中的从虚拟机,则将目标内存页索引信息中的数据更新频率清零。
在上述实现过程中,统计内存页中未同步的内存数据的修改频率(即数据更新频率),以便后续的设备切换。
一种实施方式中,基于数据迁移设备的设备标识信息,更新目标内存页索引信息,包括:
获取基于第一页索引创建的第二页索引,第二页索引中包含状态同步空间中的各内存页的内存页索引信息,第一页索引用于针对数据迁移完成前的内存页的内存访问,第二页索引用于针对数据迁移完成后的内存页的内存访问;
针对各内存页的待处理内存页,获取待处理内存页在第一页索引中的内存页索引信息中的数据更新频率,待处理内存页为各内存页中的任意一个;
若确定待处理内存页的数据更新频率符合数据迁移条件,则根据各存储设备的存储性能,将待处理内存页的内存数据进行设备迁移;
确定待处理内存页的内存数据迁移完成后,更新待处理内存页在第二页索引中的内存页索引信息。
在上述实现过程中,通过两个页索引,实现了各内存页的渐进式数据迁移,避免了采用锁的方式进行数据迁移造成的时间成本,提高了内存数据处理的效率。
一种实施方式中,若确定待处理内存页的数据更新频率符合数据迁移条件,则根据各存储设备的存储性能,将待处理内存页的内存数据进行设备迁移,包括:
若确定待处理内存页对应设置的存储设备为第一存储设备,且待处理内存页的数据更新频率低于第一频率阈值,则将待处理内存页的内存数据从第一存储设备迁移至第二存储设备,并将待处理内存页对应设置的存储设备切换为第二存储设备,第一存储设备的存储性能高于第二存储性能;
若确定待处理内存页对应设置的存储设备为第二存储设备,且待处理内存页的数据更新频率高于第二频率阈值,则将待处理内存页的内存数据从第二存储设备迁移至第一存储设备,并将待处理内存页对应设置的存储设备切换为第一存储设备。
在上述实现过程中,通过设备迁移,可以通过存储性能高的存储设备为数据更新频率高的内存页提供物理存储空间,并通过存储性能低的存储设备为数据更新频率低的内存页提供物理存储空间,从而减少了存储性能高的存储设备的硬件部署,降低了系统成本。
一种实施方式中,将待处理内存页的内存数据从第一存储设备迁移至第二存储设备,包括:
将待处理内存页的内存数据从第一存储设备复制到第二存储设备;
确定数据复制完成后,从第一存储设备中删除待处理内存页的内存数据。
在上述实现过程中,采用复制数据的方式,以避免影响内存页的访问,提高了访问效率。
一种实施方式中,将待处理内存页的内存数据从第二存储设备迁移至第一存储设备,包括:
将待处理内存页的内存数据从第二存储设备复制到第一存储设备;
确定数据复制完成后,从第二存储设备中删除待处理内存页的内存数据。
在上述实现过程中,采用复制数据的方式,以避免影响内存页的访问,提高了访问效率。
一方面,提供一种数据同步的装置,包括:
获取单元,用于获取主终端设备中的主虚拟机当前的内存更新数据;第一确定单元,用于在状态同步空间的各内存页中,确定用于同步内存更新数据的目标内存页;状态同步空间中包含多个用于同步主虚拟机的内存数据的内存页;第二确定单元,用于确定目标内存页对应设置的目标存储设备,目标存储设备是根据目标内存页的数据更新频率从存储性能不同的多个存储设备中选取的设备;目标存储设备用于提供目标内存页的物理存储空间;更新单元,用于根据内存更新数据,更新目标内存页在目标存储设备中对应的内存数据,以实现对目标内存页的数据更新。
一种实施方式中,第二确定单元用于:从第一页索引中,获取目标内存页的目标内存页索引信息,第一页索引中包含状态同步空间中的各内存页的内存页索引信息;根据目标内存页索引信息中的设备标识信息,确定目标内存页对应设置的目标存储设备。
一种实施方式中,更新单元用于:获取目标内存页索引信息中还包含的存储地址信息,存储地址信息用于指示内存页的内存数据在存储设备中的存储地址;按照存储地址信息,基于内存更新数据,更新目标存储设备中相应的内存数据。
一种实施方式中,更新单元还用于:若确定目标内存页数据更新完成,则将目标内存页索引信息中的数据更新频率加一;若确定目标内存页中存储的内存数据被同步至从终端设备中的从虚拟机,则将目标内存页索引信息中的数据更新频率清零。
一种实施方式中,更新单元还用于:获取基于第一页索引创建的第二页索引,第二页索引中包含状态同步空间中的各内存页的内存页索引信息,第一页索引用于针对数据迁移完成前的内存页的内存访问,第二页索引用于针对数据迁移完成后的内存页的内存访问;针对各内存页的待处理内存页,获取待处理内存页在第一页索引中的内存页索引信息中的数据更新频率,待处理内存页为各内存页中的任意一个;若确定待处理内存页的数据更新频率符合数据迁移条件,则根据各存储设备的存储性能,将待处理内存页的内存数据进行设备迁移;确定待处理内存页的内存数据迁移完成后,更新待处理内存页在第二页索引中的内存页索引信息。
一种实施方式中,更新单元还用于:若确定待处理内存页对应设置的存储设备为第一存储设备,且待处理内存页的数据更新频率低于第一频率阈值,则将待处理内存页的内存数据从第一存储设备迁移至第二存储设备,并将待处理内存页对应设置的存储设备切换为第二存储设备,第一存储设备的存储性能高于第二存储性能;若确定待处理内存页对应设置的存储设备为第二存储设备,且待处理内存页的数据更新频率高于第二频率阈值,则将待处理内存页的内存数据从第二存储设备迁移至第一存储设备,并将待处理内存页对应设置的存储设备切换为第一存储设备。
一种实施方式中,更新单元还用于:将待处理内存页的内存数据从第一存储设备复制到第二存储设备;确定数据复制完成后,从第一存储设备中删除待处理内存页的内存数据。
一种实施方式中,更新单元还用于:将待处理内存页的内存数据从第二存储设备复制到第一存储设备;确定数据复制完成后,从第二存储设备中删除待处理内存页的内存数据。
一方面,提供了一种电子设备,包括处理器以及存储器,存储器存储有计算机可读取指令,当计算机可读取指令由处理器执行时,运行如上述任一种数据同步的各种可选实现方式中提供的方法的步骤。
一方面,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时运行如上述任一种数据同步的各种可选实现方式中提供的方法的步骤。
一方面,提供了一种计算机程序产品,计算机程序产品在计算机上运行时,使得计算机执行如上述任一种数据同步的各种可选实现方式中提供的方法的步骤。
本申请的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。本申请的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的一种虚拟机容错系统的架构示意图;
图2为本申请实施例提供的一种数据同步的方法的流程图;
图3为本申请实施例提供的一种状态同步空间结构的示意图;
图4为本申请实施例提供的一种内存页索引关系的示意图;
图5为本申请实施例提供的一种数据迁移的方法的实施流程图;
图6为本申请实施例提供的一种数据迁移的示意图;
图7为本申请实施例提供的另一种数据迁移的方法的实施流程图;
图8为本申请实施例提供的一种数据同步的装置的结构框图;
图9为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
为了同步虚拟机的内存数据时,降低数据同步的成本,本申请实施例提供了数据同步的方法、装置、电子设备及计算机可读存储介质。本申请实施例提供了数据同步的方法、装置、电子设备及计算机可读存储介质,可以但不限于应用到以下任一应用场景:云计算环境中主从虚拟机切换,以及重要的单机业务中的主从虚拟机切换。如,办公自动化(Office Automation,OA)业务以及企业资源计划(Enterprise Resource Planning,ERP)业务等。
参阅图1所示,为本申请实施例提供的一种虚拟机容错系统的架构示意图。虚拟机容错系统包括主终端设备和从终端设备。主终端设备设置有主虚拟机。从终端设备设置有从虚拟机。主终端设备和从终端设备均为电子设备,可选的,电子设备可以为服务器,也可以为终端设备。虚拟机容错系统是基于超融合架构构建的。超融合架构将计算、存储以及网络等基础能力进行融合。
一种实施方式中,主终端设备将主虚拟机的内存数据同步到状态同步空间,以便后续将状态同步空间中的数据同步到从终端设备中的从虚拟机。状态同步空间中包含多个用于同步主虚拟机的内存数据的内存页,并分别针对每一内存页设置存储设备,从而可以内存页对应设置的存储设备,为内存页提供物理存储空间。需要说明的是,不同内存页对应设置的存储设备可以相同,也可以不同,不同存储设备的存储性能不同,作为一种示例,确定达到迁移扫描条件时(如,确定接收到迁移扫描指令时,或者,周期性),根据该内存页的数据更新频率,切换内存页对应设置的存储设备。
作为一个示例,主终端设备创建状态同步空间,并建立状态同步空间与存储设备3之间的映射关系,以及通过存储设备3为状态同步空间提供实际的物理存储空间。图1中,采用虚线表示主终端设备内的状态同步空间,以说明状态同步空间与存储设备3之间的映射关系,即主终端设备内的状态同步空间的实际存储空间是由从终端设备内的存储设备提供的。
一种实施方式中,针对状态同步空间的各内存页中的每一内存页,执行以下步骤:根据内存页的数据更新频率,从存储性能不同的各存储设备中选取为该内存页提供物理存储空间的目标存储设备。
可选的,存储设备(如,存储设备1、存储设备2、存储设备3以及存储设备4)可以为以下设备中的任意一种或组合:持久化内存设备,以及非易失性内存(Non VolatileMemory Express,NVME)固态硬盘(Solid State Drives,SDD)。实际应用中,存储设备可以根据实际应用场景进行设置,在此不作限制。
可选的,存储设备可以与虚拟机位于同一终端设备,也可以位于不同终端设备。实际应用中,各存储设备的部署,可以根据实际应用场景进行设置。一种实施方式中,部分存储设备位于主终端设备内,一部分存储设备位于从终端设备内,且主终端设备内设置有第一存储网卡,从终端设备内设置有第二存储网卡,以及主终端设备中的存储设备与从终端设备内的存储设备之间通过第一存储网卡、存储交换机和第二存储网卡进行数据传输。
一种实施方式中,各存储设备为分布式存储系统中的设备。主终端设备和从终端设备均与同一分布式存储系统连接。分布式存储提供的存储空间,可以在集群任意一台服务器访问,减少了数据的移动。需要说明的是,分布式存储系统为分布式的多个存储设备的集群,用于对集群中各存储设备进行统一抽象管理,为主终端设备和从终端设备提供存储空间。
一种实施方式中,采用25GE网络或者100GE网络,将各存储设备(即采用持久化内存的高速存储设备,如,持久化内存设备)通过存储网卡以及存储交换机进行组网,生成分布式存储系统的存储网络。由于25GE网络每秒能传输3GB数据,100GE网络每秒能传输12GB数据,因此,分布式存储系统内的各存储设备之间的网络传输速率较高,以及持久化内存设备的存储速率较高,从而可以实现分布式存储系统内各存储设备的快速读写以及各存储设备之间的快速传输,避免网路造成的系统瓶颈。
一种实施方式中,主虚拟机包括中央处理器(Central Processing Unit,CPU)、内存、主虚拟磁盘以及输入输出(Input Output,IO)设备。从虚拟机包括CPU、内存、从虚拟磁盘以及IO设备。
作为一个示例,图1中,将主虚拟机中的主虚拟磁盘采用虚线表示,是说明主虚拟磁盘的实际存储空间是由分布式存储系统的存储设备提供的。实际应用中,可以通过一个或多个存储设备为主虚拟磁盘提供实际存储空间,以及上述多个存储设备可以位于主终端设备内,也可以位于主终端设备外,在此不作限制。同理,通过分布式存储系统的一个或多个存储设备为从虚拟磁盘提供实际存储空间,在此不做赘述。
参阅图2所示,为本申请实施例提供的一种数据同步的方法的流程图,结合图2对图1中的主终端设备执行的数据同步的方法进行具体说明,该方法的具体实施流程如下:
步骤200:获取主终端设备中的主虚拟机当前的内存更新数据。
具体的,在执行步骤200之前,先获取主虚拟机初始的内存数据,并将获取的内存数据存储到状态同步空间的各内存页中。
其中,获取内存更新数据时,可以采用以下步骤:基于ioctl函数以及输入参数KVM_MEM_LOG_DIRTY_PAGES,开启内存脏页记录,从而可以在主虚拟机写内存时进行记录,以及基于ioctl函数以及输入参数KVM_GET_DIRTY_LOG,获取主虚拟机的脏页位图,即内存更新数据。
这样,就可以获取主虚拟机的内存数据。
步骤201:在状态同步空间的各内存页中,确定用于同步内存更新数据的目标内存页。
具体的,状态同步空间中包含多个用于同步主虚拟机的内存数据的内存页。
步骤202:确定目标内存页对应设置的目标存储设备。
具体的,执行步骤202时,可以采用以下步骤:
S2021:从第一页索引中,获取目标内存页的目标内存页索引信息。
具体的,获取状态同步空间中针对各内存页设置的第一页索引,并从第一页索引中获取目标内存页的目标内存页索引信息。
其中,第一页索引中包含状态同步空间中的各内存页的内存页索引信息。
S2022:根据目标内存页索引信息中的设备标识信息,确定目标内存页对应设置的目标存储设备。
具体的,目标内存页索引信息中包含目标内存页对应设置的目标存储设备的设备标识信息。目标存储设备是根据目标内存页的数据更新频率从存储性能不同的多个存储设备中选取的设备。目标存储设备用于提供目标内存页的物理存储空间。
步骤203:根据内存更新数据,更新目标内存页在目标存储设备中对应的内存数据,以实现对目标内存页的数据更新。
具体的,执行步骤203时,可以采用以下步骤:
S2031:获取目标内存页索引信息中还包含的存储地址信息。
具体的,目标内存页索引信息中还可以包含存储地址信息,存储地址信息用于指示内存页的内存数据在存储设备中的存储地址。
作为一种示例,存储地址信息为内存页在存储设备中的内存页标识信息(如,编号)。
S2032:按照存储地址信息,基于内存更新数据,更新目标存储设备中相应的内存数据。
具体的,基于内存更新数据,更新目标内存页,即基于内存更新数据,更新目标内存页在目标存储设备中该存储地址信息指示的存储空间的内存数据。
进一步的,内存页索引信息中还包含内存页中的内存数据的数据更新频率。
一种应用场景中,若确定目标内存页数据更新完成,则将目标内存页索引信息中的数据更新频率加一。
另一种应用场景中,若确定目标内存页中存储的内存数据被同步至从终端设备中的从虚拟机,则将目标内存页索引信息中的数据更新频率清零。
需要说明的是,主终端设备基于主虚拟机的内存更新数据,将主虚拟机的内存数据同步到状态同步空间后,从终端设备确定满足虚拟机同步条件时,将状态同步空间中的内存数据同步到从虚拟机。
作为一种示例,从终端设备按照第一设定时长,周期性的将状态同步空间中第一存储设备对应的内存页的内存数据同步到从虚拟机,并按照第二设定时长,周期性的将状态同步空间中第二存储设备对应的内存页的内存数据同步到从虚拟机。其中,第一设定时长小于第二设定时长,内存页提供物理存储空间的存储设备包括第一存储设备和第二存储设备,第一存储设备的存储性能高于第二存储设备。
下面对状态同步空间的状态同步空间结构进行说明。参阅图3所示,为一种状态同步空间结构的示意图。图3为状态同步空间的状态同步空间结构。状态同步空间结构可以包括多个字段,依次为:页索引以及内存页,还可以包括中央处理器信息、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设备信息。
虚拟机状态为虚拟机的保活状态,可以包括运行状态以及静默状态。
IO操作日志为针对系统盘(即主系统盘或从系统盘)的修改操作的日志,还可以称为系统盘重定向。其中,虚拟磁盘包括系统盘和数据盘。虚拟磁盘的物理存储空间通常由机械硬盘或SATA/SAS固态硬盘提供的,因此,内存数据全部存储在NVME SSD中,不会造成性能瓶颈。
一种实施方式中,由于页索引、中央处理器信息、IO设备信息、虚拟机状态以及IO操作日志都是容量固定且占用存储空间较小的字段,因此,根据内存页和存储设备之间的映射关系,将存储页索引、中央处理器信息、IO设备信息、虚拟机状态以及IO操作日志存储到第一存储设备(如,持久化内存设备等高存储性能的存储设备)中。以及,根据内存页中内存数据的数据更新频率,切换内存页对应的存储设备,以根据数据更新频率,将内存数据存储到第一存储设备或第二存储设备(即第存储性能的存储设备)。
参阅图4所示,为一种内存页索引关系的示意图。图4中,页索引包含各内存页(如,内存页0、内存页1、内存页2……)的内存页索引信息(如,内存页索引信息0、内存页索引信息1、内存页索引信息2……)。作为一种示例,各内存页从0开始编号。每一内存页均设置有一个内存页索引信息。内存页索引信息可以包括以下多个字段:设备标识信息、存储地址信息以及数据更新频率,还可以包含装载状态以及同步状态。每一内存页对应设置的存储设备为第一存储设备或第二存储设备。
设备标识信息(Did):用于指示内存页对应设置的存储设备。预先设置内存页和存储设备之间的映射关系,并通过该映射关系,将内存页的内存数据存储到对应的存储设备中。作为一种示例,设备标识信息占用4bit,最大支持16个存储设备。
存储地址信息(Mapped id):用于指示内存页的内存数据在存储设备中的存储地址。作为一种示例,存储地址信息为内存页在存储设备中的内存页编号,内存页占用的物理存储空间的大小为4KB,存储地址信息占用的存储空间为32bit,最大支持的存储设备的存储空间为16TB。
同步状态(Sync):用于指示内存页中的内存数据是否同步到从虚拟机。作为一种示例,同步状态占用的存储空间大小为2bit。
数据更新频率(Hits):用于内存页中的内存数据的更新频率(即内存修改次数),作为一种示例,内存页处于未同步状态时,从KVM中获取到虚拟机内存的脏页位图,并根据脏页位图,对数据更新频率进行自增(如,加一)。数据更新频率占用的存储空间大小为24bit,最大支持记录16777216次修改。需要说明的是,内存页中的内存数据同步到从虚拟机之后,数据更新频率清零。
装载状态(Load):用于指示内存页中是否存储有内存数据,作为一种示例,装载状态占用的存储空间大小为2bit。
一种应用场景中,若虚拟机的内存大小为128GB,内存页的大小为4KB,内存页索引信息占用的存储空间大小为64bit,则页索引占用的存储空间大小为:128GB/4KB*64bit/8=256MB。显然,仅需要耗费256MB就可以对状态同步空间的数据同步进行管理,极大地降低了管理成本。
进一步地,还可以根据数据更新频率,将内存页对应的存储设备切换,以将内存数据在不同存储性能的存储设备之间迁移。
参阅图5所示,为一种数据迁移的方法的实施流程图。下面结合图5对图1中的数据迁移的方法进行阐述说明。该方法的具体流程如下:
步骤500:获取基于第一页索引创建的第二页索引。
具体的,在执行步骤500之前,从状态同步空间获取索引页,作为第一索引页,并将第一索引页作为初始的第二索引页。
需要说明的是,第一页索引中包含状态同步空间中的各内存页的内存页索引信息。第二页索引中包含状态同步空间中的各内存页的内存页索引信息,且第二页索引中的内存页索引信息会随数据迁移而实时更新。第一页索引用于针对数据迁移完成前的内存页的内存访问。第二页索引用于针对数据迁移完成后的内存页的内存访问。
步骤501:针对各内存页中的待处理内存页,获取待处理内存页在第一页索引中的内存页索引信息中的数据更新频率。
步骤502:若确定待处理内存页的数据更新频率符合数据迁移条件,则根据各存储设备的存储性能,将待处理内存页的内存数据进行设备迁移。
具体的,待处理内存页为各内存页中的任意一个。可选的,可以实时或者周期性地将符合数据迁移条件的内存页的内存数据进行数据迁移。
其中,数据迁移时,可以采用以下任一方式:
方式1:若确定待处理内存页对应设置的存储设备为第一存储设备,且待处理内存页的数据更新频率低于第一频率阈值,则将待处理内存页的内存数据从第一存储设备迁移至第二存储设备,并将待处理内存页对应设置的存储设备切换为第二存储设备。
方式2:若确定待处理内存页对应设置的存储设备为第二存储设备,且待处理内存页的数据更新频率高于第二频率阈值,则将待处理内存页的内存数据从第二存储设备迁移至第一存储设备,并将待处理内存页对应设置的存储设备切换为第一存储设备。
实际应用中,数据迁移条件、第一频率阈值以及第二频率阈值,均可以根据实际应用场景进行设置,在此不作限制。
其中,将待处理内存页的内存数据从第一存储设备迁移至第二存储设备,包括:将待处理内存页的内存数据从第一存储设备复制到第二存储设备;确定数据复制完成后,从第一存储设备中删除待处理内存页的内存数据。
其中,将待处理内存页的内存数据从第二存储设备迁移至第一存储设备,包括:将待处理内存页的内存数据从第二存储设备复制到第一存储设备;确定数据复制完成后,从第二存储设备中删除待处理内存页的内存数据。
步骤503:确定待处理内存页的内存数据迁移完成后,更新待处理内存页在第二页索引中的内存页索引信息。
需要说明的是,在访问状态同步空间时,通过第二索引页访问已经数据迁移完成的内存页,通过第一索引页访问数据迁移未完成的内存页。
参阅图6所示,为一种数据迁移的示意图。图6中包含第一索引页和第二索引页、状态同步空间内的各内存页、第一存储设备以及第二存储设备。
下面采用一个具体的应用场景,对上述实施例进行举例说明。参阅图7所示,为另一种数据迁移的方法的实施流程图。
步骤700:确定接收到数据扫描迁移指令时,基于第一页索引创建第二页索引。
步骤701:判断内存页n的数据更新频率是否符合数据迁移条件,若是,则执行步骤702,否则,执行步骤704。
其中,n为正整数,n的初始值为0。如,n可以为3。
作为一种示例,若确定内存页3对应设置的存储设备为持久化内存设备(即第一存储设备),且内存页3的数据更新频率低于第一频率阈值,即内存页3中的内存数据由热数据(即数据更新频率高于第二频率阈值)变成了冷数据(即数据更新频率低于第一频率阈值),则将内存页3的内存数据从持久化内存设备迁移至NVME SSD(即第二存储设备),并将内存页3对应设置的存储设备切换为NVME SSD。
步骤702:根据各存储设备的存储性能,将内存页n的内存数据进行设备迁移。
步骤703:确定内存页n中的内存数据迁移完成后,更新第二页索引中内存页n的内存页索引信息。
进一步的,确定接收到内存访问请求时,判断访问的内存页编号是否低于n+1,若是,基于第二页索引,对内存页进行读写操作,否则,基于第一页索引,对内存页进行读写操作。
步骤704:将n加一,获得更新后的n。
步骤705:判断更新后的n是否高于内存页总数量,若是,则执行步骤706,否则,执行步骤701。
步骤706:结束数据扫描迁移。
这是由于内存修改是非常快的,页索引会频繁更新。当经过数据迁移扫描,冷热数据(数据更新频率低的内存数据)需要调整时,内存页需要在持久化内存和NVME SSD中迁移,在迁移的过程,需要保证页索引和内存页能正常访问,因此,本申请提出采用图5或图7中的渐进式的数据迁移的方法,避免了采用锁的方法进行数据迁移造成的性能瓶颈。
传统技术下,由于内存的数据读写的速度要求较高,因此,存储内存数据的各存储设备通常均为高存储性能的存储设备,系统成本较高。而本申请实施例中,针对各内存页部署多个不同存储性能的存储设备,并根据内存页的数据更新频率,为不同内存页分配不同存储性能的存储设备,即可以为数据更新频率高的内存页分配高存储性能的存储设备,为数据更新频率低的内存页分配低存储性能的存储设备,实现了性能不同的存储设备的分层管理能力,对于内存冷热数据进行分层,实现了最大的成本优化,从而极大地减少了耗费的系统成本。再者,采用两个页索引对内存页的内存数据进行设备迁移,避免了传统方式中采用锁机制带来的性能瓶颈,提高了数据处理效率。进一步的,采用冷热数据分层的方式,可以加大将数据更新频率高的内存页中的内部数据同步到从虚拟机的频率,而降低将数据更新频率低的内存页中的内部数据同步到从虚拟机的频率,减少了内存扫描次数以及数据写入量,以及Windows系统中通常会踩内存(即操作系统运行后把分配的内存全部提前占用),以及Linux系统的内存通常会不能及时释放,从而存在内存访问效率低的问题,而通过冷热数据分层的方式,提高了内存访问。
基于同一发明构思,本申请实施例中还提供了一种数据同步的装置,由于上述装置及设备解决问题的原理与一种数据同步的方法相似,因此,上述装置的实施可以参见方法的实施,重复之处不再赘述。
如图8所示,其为本申请实施例提供的一种数据同步的装置的结构示意图,包括:
获取单元801,用于获取主终端设备中的主虚拟机当前的内存更新数据;第一确定单元802,用于在状态同步空间的各内存页中,确定用于同步内存更新数据的目标内存页;状态同步空间中包含多个用于同步主虚拟机的内存数据的内存页;第二确定单元803,用于确定目标内存页对应设置的目标存储设备,目标存储设备是根据目标内存页的数据更新频率从存储性能不同的多个存储设备中选取的设备;目标存储设备用于提供目标内存页的物理存储空间;更新单元804,用于根据内存更新数据,更新目标内存页在目标存储设备中对应的内存数据,以实现对目标内存页的数据更新。
一种实施方式中,第二确定单元803用于:从第一页索引中,获取目标内存页的目标内存页索引信息,第一页索引中包含状态同步空间中的各内存页的内存页索引信息;根据目标内存页索引信息中的设备标识信息,确定目标内存页对应设置的目标存储设备。
一种实施方式中,更新单元804用于:获取目标内存页索引信息中还包含的存储地址信息,存储地址信息用于指示内存页的内存数据在存储设备中的存储地址;按照存储地址信息,基于内存更新数据,更新目标存储设备中相应的内存数据。
一种实施方式中,更新单元804还用于:若确定目标内存页数据更新完成,则将目标内存页索引信息中的数据更新频率加一;若确定目标内存页中存储的内存数据被同步至从终端设备中的从虚拟机,则将目标内存页索引信息中的数据更新频率清零。
一种实施方式中,更新单元804还用于:获取基于第一页索引创建的第二页索引,第二页索引中包含状态同步空间中的各内存页的内存页索引信息,第一页索引用于针对数据迁移完成前的内存页的内存访问,第二页索引用于针对数据迁移完成后的内存页的内存访问;针对各内存页的待处理内存页,获取待处理内存页在第一页索引中的内存页索引信息中的数据更新频率,待处理内存页为各内存页中的任意一个;若确定待处理内存页的数据更新频率符合数据迁移条件,则根据各存储设备的存储性能,将待处理内存页的内存数据进行设备迁移;确定待处理内存页的内存数据迁移完成后,更新待处理内存页在第二页索引中的内存页索引信息。
一种实施方式中,更新单元804还用于:若确定待处理内存页对应设置的存储设备为第一存储设备,且待处理内存页的数据更新频率低于第一频率阈值,则将待处理内存页的内存数据从第一存储设备迁移至第二存储设备,并将待处理内存页对应设置的存储设备切换为第二存储设备,第一存储设备的存储性能高于第二存储性能;若确定待处理内存页对应设置的存储设备为第二存储设备,且待处理内存页的数据更新频率高于第二频率阈值,则将待处理内存页的内存数据从第二存储设备迁移至第一存储设备,并将待处理内存页对应设置的存储设备切换为第一存储设备。
一种实施方式中,更新单元804还用于:将待处理内存页的内存数据从第一存储设备复制到第二存储设备;确定数据复制完成后,从第一存储设备中删除待处理内存页的内存数据。
一种实施方式中,更新单元804还用于:将待处理内存页的内存数据从第二存储设备复制到第一存储设备;确定数据复制完成后,从第二存储设备中删除待处理内存页的内存数据。
图9示出了一种电子设备9000的结构示意图。参阅图9所示,电子设备9000包括:处理器9010以及存储器9020,可选的,还可以包括电源9030、显示单元9040、输入单元9050。
处理器9010是电子设备9000的控制中心,利用各种接口和线路连接各个部件,通过运行或执行存储在存储器9020内的软件程序和/或数据,执行电子设备9000的各种功能,从而对电子设备9000进行整体监控。
本申请实施例中,处理器9010调用存储器9020中存储的计算机程序时执行上述实施例中的各个步骤。
可选的,处理器9010可包括一个或多个处理单元;优选的,处理器9010可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器9010中。在一些实施例中,处理器、存储器、可以在单一芯片上实现,在一些实施例中,它们也可以在独立的芯片上分别实现。
存储器9020可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、各种应用等;存储数据区可存储根据电子设备9000的使用所创建的数据等。此外,存储器9020可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件等。
电子设备9000还包括给各个部件供电的电源9030(比如电池),电源可以通过电源管理系统与处理器9010逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗等功能。
显示单元9040可用于显示由用户输入的信息或提供给用户的信息以及电子设备9000的各种菜单等,本发明实施例中主要用于显示电子设备9000中各应用的显示界面以及显示界面中显示的文本、图片等对象。显示单元9040可以包括显示面板9041。显示面板9041可以采用液晶显示屏(Liquid Crystal Display,LCD)、有机发光二极管(Organic Light-Emitting Diode,OLED)等形式来配置。
输入单元9050可用于接收用户输入的数字或字符等信息。输入单元9050可包括触控面板9051以及其他输入设备9052。其中,触控面板9051,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触摸笔等任何适合的物体或附件在触控面板9051上或在触控面板9051附近的操作)。
具体的,触控面板9051可以检测用户的触摸操作,并检测触摸操作带来的信号,将这些信号转换成触点坐标,发送给处理器9010,并接收处理器9010发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板9051。其他输入设备9052可以包括但不限于物理键盘、功能键(比如音量控制按键、开关机按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
当然,触控面板9051可覆盖显示面板9041,当触控面板9051检测到在其上或附近的触摸操作后,传送给处理器9010以确定触摸事件的类型,随后处理器9010根据触摸事件的类型在显示面板9041上提供相应的视觉输出。虽然在图9中,触控面板9051与显示面板9041是作为两个独立的部件来实现电子设备9000的输入和输出功能,但是在某些实施例中,可以将触控面板9051与显示面板9041集成而实现电子设备9000的输入和输出功能。
电子设备9000还可包括一个或多个传感器,例如压力传感器、重力加速度传感器、接近光传感器等。当然,根据具体应用中的需要,上述电子设备9000还可以包括摄像头等其它部件,由于这些部件不是本申请实施例中重点使用的部件,因此,在图9中没有示出,且不再详述。
本领域技术人员可以理解,图9仅仅是电子设备的举例,并不构成对电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件。
本申请实施例中,一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时,使得通信设备可以执行上述实施例中的各个步骤。
为了描述的方便,以上各部分按照功能划分为各模块(或单元)分别描述。当然,在实施本申请时可以把各模块(或单元)的功能在同一个或多个软件或硬件中实现。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (18)

1.一种数据同步方法,其特征在于,应用于主终端设备,包括:
获取所述主终端设备中的主虚拟机当前的内存更新数据;
在状态同步空间的各内存页中,确定用于同步所述内存更新数据的目标内存页;所述状态同步空间中包含多个用于同步所述主虚拟机的内存数据的内存页;
确定所述目标内存页对应设置的目标存储设备,所述目标存储设备是根据所述目标内存页的数据更新频率从存储性能不同的多个存储设备中选取的设备;所述目标存储设备用于提供所述目标内存页的物理存储空间;
根据所述内存更新数据,更新所述目标内存页在所述目标存储设备中对应的内存数据,以实现对所述目标内存页的数据更新。
2.如权利要求1所述的方法,其特征在于,所述确定所述目标内存页对应设置的目标存储设备,包括:
从第一页索引中,获取所述目标内存页的目标内存页索引信息,所述第一页索引中包含所述状态同步空间中的各内存页的内存页索引信息;
根据所述目标内存页索引信息中的设备标识信息,确定所述目标内存页对应设置的目标存储设备。
3.如权利要求2所述的方法,其特征在于,所述根据所述内存更新数据,更新所述目标内存页在所述目标存储设备中对应的内存数据,包括:
获取所述目标内存页索引信息中还包含的存储地址信息,所述存储地址信息用于指示内存页的内存数据在存储设备中的存储地址;
按照所述存储地址信息,基于所述内存更新数据,更新所述目标存储设备中相应的内存数据。
4.如权利要求2所述的方法,其特征在于,所述方法还包括:
若确定所述目标内存页数据更新完成,则将所述目标内存页索引信息中的所述数据更新频率加一;
若确定所述目标内存页中存储的内存数据被同步至从终端设备中的从虚拟机,则将所述目标内存页索引信息中的所述数据更新频率清零。
5.如权利要求2-4任一项所述的方法,其特征在于,所述方法还包括:
获取基于所述第一页索引创建的第二页索引,所述第二页索引中包含所述状态同步空间中的各内存页的内存页索引信息,所述第一页索引用于针对数据迁移完成前的内存页的内存访问,所述第二页索引用于针对数据迁移完成后的内存页的内存访问;
针对各内存页的待处理内存页,获取所述待处理内存页在所述第一页索引中的内存页索引信息中的数据更新频率,所述待处理内存页为各内存页中的任意一个;
若确定所述待处理内存页的数据更新频率符合数据迁移条件,则根据各存储设备的存储性能,将所述待处理内存页的内存数据进行设备迁移;
确定所述待处理内存页的内存数据迁移完成后,更新所述待处理内存页在所述第二页索引中的内存页索引信息。
6.如权利要求5所述的方法,其特征在于,所述若确定所述待处理内存页的数据更新频率符合数据迁移条件,则根据各存储设备的存储性能,将所述待处理内存页的内存数据进行设备迁移,包括:
若确定所述待处理内存页对应设置的存储设备为第一存储设备,且所述待处理内存页的数据更新频率低于第一频率阈值,则将所述待处理内存页的内存数据从所述第一存储设备迁移至第二存储设备,并将所述待处理内存页对应设置的存储设备切换为所述第二存储设备,所述第一存储设备的存储性能高于第二存储性能;
若确定所述待处理内存页对应设置的存储设备为所述第二存储设备,且所述待处理内存页的数据更新频率高于第二频率阈值,则将所述待处理内存页的内存数据从所述第二存储设备迁移至所述第一存储设备,并将所述待处理内存页对应设置的存储设备切换为所述第一存储设备。
7.如权利要求6所述的方法,其特征在于,所述将所述待处理内存页的内存数据从所述第一存储设备迁移至所述第二存储设备,包括:
将所述待处理内存页的内存数据从所述第一存储设备复制到所述第二存储设备;
确定数据复制完成后,从所述第一存储设备中删除所述待处理内存页的内存数据。
8.如权利要求6所述的方法,其特征在于,所述将所述待处理内存页的内存数据从所述第二存储设备迁移至所述第一存储设备,包括:
将所述待处理内存页的内存数据从所述第二存储设备复制到所述第一存储设备;
确定数据复制完成后,从所述第二存储设备中删除所述待处理内存页的内存数据。
9.一种数据同步的装置,其特征在于,包括:
获取单元,用于获取主终端设备中的主虚拟机当前的内存更新数据;
第一确定单元,用于在状态同步空间的各内存页中,确定用于同步所述内存更新数据的目标内存页;所述状态同步空间中包含多个用于同步所述主虚拟机的内存数据的内存页;
第二确定单元,用于确定所述目标内存页对应设置的目标存储设备,所述目标存储设备是根据所述目标内存页的数据更新频率从存储性能不同的多个存储设备中选取的设备;所述目标存储设备用于提供所述目标内存页的物理存储空间;
更新单元,用于根据所述内存更新数据,更新所述目标内存页在所述目标存储设备中对应的内存数据,以实现对所述目标内存页的数据更新。
10.如权利要求9所述的装置,其特征在于,所述第二确定单元用于:
从第一页索引中,获取所述目标内存页的目标内存页索引信息,所述第一页索引中包含所述状态同步空间中的各内存页的内存页索引信息;
根据所述目标内存页索引信息中的设备标识信息,确定所述目标内存页对应设置的目标存储设备。
11.如权利要求10所述的装置,其特征在于,所述更新单元用于:
获取所述目标内存页索引信息中还包含的存储地址信息,所述存储地址信息用于指示内存页的内存数据在存储设备中的存储地址;
按照所述存储地址信息,基于所述内存更新数据,更新所述目标存储设备中相应的内存数据。
12.如权利要求10所述的装置,其特征在于,所述更新单元还用于:
若确定所述目标内存页数据更新完成,则将所述目标内存页索引信息中的所述数据更新频率加一;
若确定所述目标内存页中存储的内存数据被同步至从终端设备中的从虚拟机,则将所述目标内存页索引信息中的所述数据更新频率清零。
13.如权利要求10-12任一项所述的装置,其特征在于,所述更新单元还用于:
获取基于所述第一页索引创建的第二页索引,所述第二页索引中包含所述状态同步空间中的各内存页的内存页索引信息,所述第一页索引用于针对数据迁移完成前的内存页的内存访问,所述第二页索引用于针对数据迁移完成后的内存页的内存访问;
针对各内存页的待处理内存页,获取所述待处理内存页在所述第一页索引中的内存页索引信息中的数据更新频率,所述待处理内存页为各内存页中的任意一个;
若确定所述待处理内存页的数据更新频率符合数据迁移条件,则根据各存储设备的存储性能,将所述待处理内存页的内存数据进行设备迁移;
确定所述待处理内存页的内存数据迁移完成后,更新所述待处理内存页在所述第二页索引中的内存页索引信息。
14.如权利要求13所述的装置,其特征在于,所述更新单元还用于:
若确定所述待处理内存页对应设置的存储设备为第一存储设备,且所述待处理内存页的数据更新频率低于第一频率阈值,则将所述待处理内存页的内存数据从所述第一存储设备迁移至第二存储设备,并将所述待处理内存页对应设置的存储设备切换为所述第二存储设备,所述第一存储设备的存储性能高于第二存储性能;
若确定所述待处理内存页对应设置的存储设备为所述第二存储设备,且所述待处理内存页的数据更新频率高于第二频率阈值,则将所述待处理内存页的内存数据从所述第二存储设备迁移至所述第一存储设备,并将所述待处理内存页对应设置的存储设备切换为所述第一存储设备。
15.如权利要求14所述的装置,其特征在于,所述更新单元还用于:
将所述待处理内存页的内存数据从所述第一存储设备复制到所述第二存储设备;
确定数据复制完成后,从所述第一存储设备中删除所述待处理内存页的内存数据。
16.如权利要求14所述的装置,其特征在于,所述更新单元还用于:
将所述待处理内存页的内存数据从所述第二存储设备复制到所述第一存储设备;
确定数据复制完成后,从所述第二存储设备中删除所述待处理内存页的内存数据。
17.一种电子设备,其特征在于,包括处理器以及存储器,所述存储器存储有计算机可读取指令,当所述计算机可读取指令由所述处理器执行时,运行如权利要求1-8任一所述方法。
18.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时运行如权利要求1-8任一所述方法。
CN202210483603.6A 2022-05-05 2022-05-05 数据同步的方法、装置、电子设备及计算机可读存储介质 Pending CN114860380A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210483603.6A CN114860380A (zh) 2022-05-05 2022-05-05 数据同步的方法、装置、电子设备及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210483603.6A CN114860380A (zh) 2022-05-05 2022-05-05 数据同步的方法、装置、电子设备及计算机可读存储介质

Publications (1)

Publication Number Publication Date
CN114860380A true CN114860380A (zh) 2022-08-05

Family

ID=82636245

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210483603.6A Pending CN114860380A (zh) 2022-05-05 2022-05-05 数据同步的方法、装置、电子设备及计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN114860380A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116700904A (zh) * 2023-08-08 2023-09-05 苏州浪潮智能科技有限公司 内存快照生成方法、装置、计算机设备及存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116700904A (zh) * 2023-08-08 2023-09-05 苏州浪潮智能科技有限公司 内存快照生成方法、装置、计算机设备及存储介质
CN116700904B (zh) * 2023-08-08 2023-11-03 苏州浪潮智能科技有限公司 内存快照生成方法、装置、计算机设备及存储介质

Similar Documents

Publication Publication Date Title
US9671967B2 (en) Method and system for implementing a distributed operations log
US20180276233A1 (en) Techniques for implementing hybrid flash/hdd-based virtual disk files
US8533419B2 (en) Method for controlling data write to virtual logical volume conforming to thin provisioning, and storage apparatus
US9286344B1 (en) Method and system for maintaining consistency for I/O operations on metadata distributed amongst nodes in a ring structure
US9772784B2 (en) Method and system for maintaining consistency for I/O operations on metadata distributed amongst nodes in a ring structure
CN102299904B (zh) 一种实现业务数据备份的系统及方法
US9417794B2 (en) Including performance-related hints in requests to composite memory
US9489396B2 (en) Intermediation of hypervisor file system and storage device models
US9952782B1 (en) Method and system for accessing data between different virtual disk formats in a virtualization environment
US9424137B1 (en) Block-level backup of selected files
US20200174671A1 (en) Bucket views
CN104572656B (zh) 一种磁盘镜像空间回收的方法及装置
US20150006788A1 (en) Techniques for Implementing Hybrid Flash/HDD-based Virtual Disk Files
CN109902255B (zh) 页面混合浏览记录生成方法、装置、设备和存储介质
CN110427284A (zh) 数据处理方法、分布式系统、计算机系统和介质
US9792075B1 (en) Systems and methods for synthesizing virtual hard drives
CN104182508A (zh) 一种数据处理方法和数据处理装置
CN103412822A (zh) 操作非易失性内存和数据操作的方法和相关装置
CN112256676A (zh) 一种数据库迁移的方法、装置、设备和介质
CN100454241C (zh) 一种在共享内存中存储c++对象的方法及装置
US10579419B2 (en) Data analysis in storage system
WO2016058560A1 (zh) 一种基于服务端与外部缓存系统的外接式计算设备加速方法与实现该方法的设备
CN114860380A (zh) 数据同步的方法、装置、电子设备及计算机可读存储介质
CN103729166A (zh) 程序的线程关系确定方法、设备及系统
US20180232172A1 (en) Region-integrated data deduplication

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