CN110928494B - 一种虚拟磁盘数据同步服务器、客户端及系统 - Google Patents

一种虚拟磁盘数据同步服务器、客户端及系统 Download PDF

Info

Publication number
CN110928494B
CN110928494B CN201911059042.1A CN201911059042A CN110928494B CN 110928494 B CN110928494 B CN 110928494B CN 201911059042 A CN201911059042 A CN 201911059042A CN 110928494 B CN110928494 B CN 110928494B
Authority
CN
China
Prior art keywords
data
disk
virtual disk
virtual
synchronized
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
Application number
CN201911059042.1A
Other languages
English (en)
Other versions
CN110928494A (zh
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.)
Xi'an Leifeng Electronic Technology Co ltd
Original Assignee
Xi'an Leifeng Electronic 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 Xi'an Leifeng Electronic Technology Co ltd filed Critical Xi'an Leifeng Electronic Technology Co ltd
Priority to CN201911059042.1A priority Critical patent/CN110928494B/zh
Publication of CN110928494A publication Critical patent/CN110928494A/zh
Application granted granted Critical
Publication of CN110928494B publication Critical patent/CN110928494B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation 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/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/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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种虚拟磁盘数据同步服务器、客户端及系统,基于差分虚拟磁盘创建次级差分虚拟磁盘,以减小每次需要同步的数据;每次虚拟机关机后提交次级差分虚拟磁盘数据,并在源端提交时输出数据提交特征文件;源端将需要同步的次级差分虚拟磁盘及数据提交特征文件一起同步发送到需要同步的目的端,在目的端使用次级差分虚拟磁盘数据及数据提交特征文件,完成数据同步到本地差分虚拟磁盘,最终时需要同步的两边的差分虚拟磁盘数据完全一致。

Description

一种虚拟磁盘数据同步服务器、客户端及系统
技术领域
本发明涉及数据同步系统,具体涉及一种虚拟磁盘数据同步服务器、客户端及系统。
背景技术
现有常用虚拟磁盘并且支持差分链接的有VHD,VHDX,QCOW,QCOW2,VMDK,VDI等格式,虚拟磁盘技术在虚拟化应用上,为了便于部署和管理,都会利用虚拟磁盘的可以创建多级差分虚拟磁盘的技术。所谓差分虚拟磁盘是指以某个虚拟磁盘数据为母盘,创建出差分虚拟磁盘,通过为每个虚拟机分配一个新创建差分虚拟磁盘,就可以实现每个虚拟机共享同一个母盘数据,比如母盘安装最基本操作系统,而差分虚拟磁盘用于安装特定软件、保存操作系统运行中产生差异数据,这样便于虚拟机的批量创建、差异化应用。同时,在某些应用场景下,也差分虚拟磁盘数据和母盘数据合并,生成新的母盘,这样便于母盘的更新,这个叫差分虚拟磁盘数据提交。由于虚拟磁盘为了数据分布均衡等原因,每次提交新数据时,对于新增数据保存位置引入随机数来选择保存位置,这样导致同一个差分虚拟磁盘,每次提交合并后的母盘并不完全一样。
基于差分虚拟磁盘运行的虚拟机,在某些应用场景下,需要进行虚拟机的迁移,也就是迁移差分虚拟磁盘数据,以便在故障时快速恢复,或者异地运行。而差分虚拟磁盘运行过程中,通常都会逐步变成比较大,少则几十GB,多则100GB以上,基于一般的数据同步方式,比如rsync工具,会对数据进行分片校验后再同步差异化数据,但是由于数据量较大,分片校验也需要读取全部数据,导致同步的源端和目的端都需要进行大量的读操作,对系统的IO负担太大,影响同步效果。
发明内容
本发明的目的在于提供一种虚拟磁盘数据同步服务器、客户端及系统,用以解决现有技术中虚拟磁盘数据同步系统存在的IO消耗大,导致同步数据过多,影响同步效果的问题。
为了实现上述任务,本发明采用以下技术方案:
一种虚拟磁盘数据同步服务器,所述的服务器中存储有第一计算机程序,所述的第一计算机程序被处理器执行时实现以下步骤:
步骤1、创建第一虚拟磁盘,所述的第一虚拟磁盘包括母盘以及一级差分磁盘;
步骤2、获得第一虚拟磁盘副本,所述的第一虚拟磁盘副本与所述的第一虚拟磁盘相同;
步骤3、将所述的第一虚拟磁盘副本发送给客户端;
步骤4、获得客户端发送的数据提交特征文件以及多个待同步数据;所述的数据提交特征文件用于提供每个待同步数据同步至所述第一虚拟磁盘的一级差分磁盘中的位置;
步骤5、根据所述的数据提交特征文件将所述的多个待同步数据同步至所述的第一虚拟磁盘中,获得同步后的第一虚拟磁盘。
一种虚拟磁盘数据同步客户端,在所述的客户端中存储有第二计算机程序,所述的第二计算机程序被处理器执行时实现以下步骤:
步骤A、获得第一虚拟磁盘副本后,对所述的第一虚拟磁盘副本创建次级差分磁盘,获得第二虚拟磁盘,所述的第二虚拟磁盘包括所述的第一虚拟磁盘副本以及二级差分磁盘;
步骤B、在所述的第二虚拟磁盘中运行虚拟机,将运行产生的数据保存在所述的二级差分磁盘中,获得第三虚拟磁盘,所述的第三虚拟磁盘包括所述的第一虚拟磁盘副本以及存有数据的二级差分磁盘;
步骤C、等待所述的虚拟机关机后,将所述的存有数据的二级差分磁盘提交至所述的第一虚拟磁盘副本的一级差分磁盘中,获得多个待同步数据以及数据提交特征文件;
所述的多个待同步数据为存有数据的二级差分磁盘内的所有数据;
所述的数据提交特征文件包括每个待同步数据在所述的第一虚拟磁盘副本的一级差分磁盘中的位置;
步骤D、将所述的多个待同步数据以及数据提交特征文件发送给服务器。
进一步地,在所述的数据提交特征文件中以字典索引的方式记录每个待同步数据在所述的第一虚拟磁盘副本的一级差分磁盘中的位置;
所述的字典索引中key为每一个待同步数据在存有数据的二级差分磁盘中位置;
所述的字典索引中value为待同步数据提交至所述的第一虚拟磁盘副本的一级差分磁盘中的位置。
一种虚拟磁盘数据同步系统,用于将客户端的磁盘数据同步至服务器中,所述的系统包括服务器和客户端,所述的服务器中存储有第一计算机程序,在所述的客户端中存储有第二计算机程序,所述的第一计算机程序被处理器执行时实现以下步骤:
步骤1、创建第一虚拟磁盘,所述的第一虚拟磁盘包括母盘以及一级差分磁盘;
步骤2、获得第一虚拟磁盘副本,所述的第一虚拟磁盘副本与所述的第一虚拟磁盘相同;
步骤3、将所述的第一虚拟磁盘副本发送给客户端;
步骤4、获得客户端发送的数据提交特征文件以及多个待同步数据;所述的数据提交特征文件用于提供每个待同步数据同步至所述第一虚拟磁盘的一级差分磁盘中的位置;
步骤5、根据所述的数据提交特征文件将所述的多个待同步数据同步至所述的第一虚拟磁盘中,获得同步后的第一虚拟磁盘;
所述的第二计算机程序被处理器执行时实现以下步骤:
步骤A、获得第一虚拟磁盘副本后,对所述的第一虚拟磁盘副本创建次级差分磁盘,获得第二虚拟磁盘,所述的第二虚拟磁盘包括所述的第一虚拟磁盘副本以及二级差分磁盘;
步骤B、在所述的第二虚拟磁盘中运行虚拟机,将运行产生的数据保存在所述的二级差分磁盘中,获得第三虚拟磁盘,所述的第三虚拟磁盘包括所述的第一虚拟磁盘副本以及存有数据的二级差分磁盘;
步骤C、等待所述的虚拟机关机后,将所述的存有数据的二级差分磁盘提交至所述的第一虚拟磁盘副本的一级差分磁盘中,获得多个待同步数据以及数据提交特征文件;
所述的多个待同步数据为存有数据的二级差分磁盘内的所有数据;
所述的数据提交特征文件包括每个待同步数据在所述的第一虚拟磁盘副本的一级差分磁盘中的位置;
步骤D、将所述的多个待同步数据以及数据提交特征文件发送给服务器。
进一步地,在所述的数据提交特征文件中以字典索引的方式记录每个待同步数据在所述的第一虚拟磁盘副本的一级差分磁盘中的位置;
所述的字典索引中key为每一个待同步数据在存有数据的二级差分磁盘中位置;
所述的字典索引中value为待同步数据提交至所述的第一虚拟磁盘副本的一级差分磁盘中的位置。
本发明与现有技术相比具有以下技术效果:
本发明提供的一种虚拟磁盘数据同步服务器、客户端及系统利用创建次级差分的方式,减少了同步需要传输和校验的数据,提高了同步的效果,通过特征文件保证数据的同步的一致性,从而保证了同步的准确性。
附图说明
图1为虚拟磁盘及差分虚拟磁盘关系示意图。
图2为本发明的虚拟磁盘数据同步方案示意图。
具体实施方式
下面结合附图和实施例对本发明进行详细说明。以便本领域的技术人员更好的理解本发明。需要特别提醒注意的是,在以下的描述中,当已知功能和设计的详细描述也许会淡化本发明的主要内容时,这些描述在这里将被忽略。
以下对本发明涉及的定义或概念内涵做以说明:
虚拟磁盘:一种虚拟化技术,在特定驱动程序支持下,一个文件模拟一个虚拟磁盘,在虚拟机操作系统当做物理磁盘进行系统安装,数据存储的技术。
差分虚拟磁盘:基于公共的原始虚拟磁盘创建的虚拟机专用存储的虚拟磁盘。
提交:是将差分虚拟磁盘数据合并到其上一级差分虚拟磁盘的过程。
字典索引:用于记录数据保存两个关联数据的记录方式,以便于提升搜索速度。
实施例一
在本实施例中公开了一种虚拟磁盘数据同步服务器,服务器中存储有第一计算机程序,第一计算机程序被处理器执行时实现以下步骤:
步骤1、创建第一虚拟磁盘,第一虚拟磁盘包括母盘以及一级差分磁盘;
步骤2、获得第一虚拟磁盘副本,第一虚拟磁盘副本与第一虚拟磁盘相同;
步骤3、将第一虚拟磁盘副本发送给客户端;
步骤4、获得客户端发送的数据提交特征文件以及多个待同步数据;数据提交特征文件用于提供每个待同步数据同步至所述第一虚拟磁盘的一级差分磁盘中的位置;
步骤5、根据数据提交特征文件将多个待同步数据同步至第一虚拟磁盘中,获得同步后的第一虚拟磁盘。
本实施例中提供的方法的使用场景为本地办公和远程办公统一,作为个人云桌面的虚拟机运行在本地PC机上,虚拟机使用的虚拟磁盘及差分虚拟磁盘都保存在本地PC机硬盘上,但是为了实现个人桌面可远程接入,比如在家办公,需要将个人云桌面的虚拟机使用的差分虚拟磁盘在每次关机后同步到云桌面服务器上,便于在家连接服务器办公。
在本实施例中,使用虚拟磁盘管理工具(例如Linux系统的qemu-img程序)进行虚拟磁盘的创建,创建虚拟磁盘输入主要参数是大小、保存位置、磁盘文件名称。
第一虚拟磁盘副本下发时通过文件传输工具,服务器端为文件传输的服务器,需要下载虚拟磁盘文件的终端启动文件传输工具客户端,下载需要运行的文件。
在本实施例中,步骤1-5的方法采用以下的代码进行实现:
创建虚拟磁盘的方法:
qemu-img create-f qcow2 win7.qcow2 200G
以上述创建的win7.qcow2作为母盘,创建一级差分磁盘:
qemu-img create-f qcow2-b win7.qcow2 win7_diff1.qcow2
在服务器端根据数据提交特征文件将多个待同步数据同步至第一虚拟磁盘中的命令,需要增加--input-mapfile=win7.mapfile参数:
qemu-img commit win7_diff2.qcow2--input-mapfile=win7.mapfile
实施例二
一种虚拟磁盘数据同步客户端,在所述的客户端中存储有第二计算机程序。
本实施例中提供的方法的使用场景为本地办公和远程办公统一,作为个人云桌面的虚拟机运行在本地PC机上,虚拟机使用的虚拟磁盘及差分虚拟磁盘都保存在本地PC机硬盘上,但是为了实现个人桌面可远程接入,比如在家办公,需要将个人云桌面的虚拟机使用的差分虚拟磁盘在每次关机后同步到云桌面服务器上,便于在家连接服务器办公。
所述的第二计算机程序被处理器执行时实现以下步骤:
步骤A、获得第一虚拟磁盘副本后,对所述的第一虚拟磁盘副本创建次级差分磁盘,获得第二虚拟磁盘,所述的第二虚拟磁盘包括所述的第一虚拟磁盘副本以及二级差分磁盘;
在本实施例中,使用虚拟磁盘管理工具(例如Linux系统的qemu-img程序)进行虚拟磁盘的创建,创建二级虚拟磁盘输入主要参数是大小、保存位置、磁盘文件名称、上一级磁盘文件(在本步骤中为第一级虚拟机磁盘差分文件)。
在本实施例中,采用以下方式实现基于一级差分虚拟磁盘创建二级差分虚拟磁盘:
qemu-img create-f qcow2-b win7_diff1.qcow2 win7_diff2.qcow2
在本步骤中,为了提供虚拟机运行时的系统盘创建次级差分。
步骤B、在所述的第二虚拟磁盘中运行虚拟机,将运行产生的数据保存在所述的二级差分磁盘中,获得第三虚拟磁盘,所述的第三虚拟磁盘包括所述的第一虚拟磁盘副本以及存有数据的二级差分磁盘;
步骤C、等待所述的虚拟机关机后,将所述的存有数据的二级差分磁盘提交至所述的第一虚拟磁盘副本的一级差分磁盘中,获得多个待同步数据以及数据提交特征文件;
所述的多个待同步数据为存有数据的二级差分磁盘内的所有数据;
所述的数据提交特征文件包括每个待同步数据在所述的第一虚拟磁盘副本的一级差分磁盘中的位置;
在本实施例中,将所述的存有数据的二级差分磁盘提交至所述的第一虚拟磁盘副本的一级差分磁盘中,获得第四虚拟磁盘,获得的第四虚拟磁盘相当于就是用户操作完成获得的虚拟磁盘,例如在公司中的计算机与家里的计算机进行办公室,用户从家中登录虚拟机,并进行了一系列操作关机后,此时获得的就是第四虚拟磁盘,而现在的目的在于将第四虚拟磁盘中经过用户一系列操作产生的数据同步至服务器上,使得服务器上存储的一直都是最新的虚拟磁盘,用户再去公司中的计算机中登录虚拟机时,可以直接看到在家中办公时进行的各项操作产生的数据。
在本实施例中,通过以下方式实现客户端的数据提交:
在客户端提交(合并)二级差分虚拟磁盘到一级差分虚拟磁盘的命令,增加--output-mapfile=win7.mapfile参数,输出特征文件win7.mapfile:
qemu-img commit win7_diff2.qcow2--output-mapfile=win7.mapfile
在本实施例中,获得的第四虚拟磁盘相当于与第一虚拟磁盘的格式完全相同,因为第四虚拟磁盘中的数据可以直接同步至第一虚拟磁盘中。
在本实施例中,当服务器中的一级差分磁盘为空的时,可以直接将存有数据的一级差分磁盘同步至空的一级差分磁盘中,获得同步后的第一虚拟磁盘;
但是当服务器中的一级差分磁盘不为空时,如果直接将存有数据的一级差分磁盘与服务器中的一级差分磁盘同步,可能会出现数据存入位置出现错误的情况。
为了同步后的第一虚拟磁盘中的数据与第四虚拟磁盘中的数据完全一致,本发明提供了数据校验的同步方法,主要是通过数据提交特征文件指导数据进行合并。
为了同步后的第一虚拟磁盘中的数据与第四虚拟磁盘中的数据完全一致,本发明提供了数据校验的同步方法,在本实施例中,数据提交特征文件中数据索引的方式可以是字典查询,也可以是映射表查询。
为了提高查询搜索的速度,作为一种优选的实施方式,在数据提交特征文件中以字典索引的方式记录每个待同步数据在第一虚拟磁盘副本的一级差分磁盘中的位置;
字典索引中key为每一个待同步数据在存有数据的二级差分磁盘中位置;
字典索引中value为待同步数据提交至第一虚拟磁盘副本的一级差分磁盘中的位置。
在本发明中,采用了字典索引的方式实现了数据的查询,提高了数据合并操作时的查询效率,从而提高了同步的效果。
在本实施例中,为了解决次级差分虚拟磁盘数据在客户端和服务器分别提交后可能导致的数据不一致,服务器提交次级差分虚拟磁盘数据到本地差分虚拟磁盘时,同时输出数据提交特征文件,数据提交特征文件记录的内容是,次级差分虚拟磁盘数据合并到差分虚拟磁盘时,在差分虚拟磁盘中每个新增数据的保存位置,这个记录方式是以字典方式记录,其中以需要同步的次级差分虚拟磁盘中源数据的地址为key,以合并在在差分虚拟磁盘中记录的地址为value。将记录同步数据的次级差分虚拟磁盘及数据提交特征文件一起发送到需要同步的服务器,待服务器获取次级差分虚拟磁盘后,连同数据提交特征文件一起进行数据提交,提交数据时,如果有数据提交特征文件,则每个根据需要合并的源数据地址在数据提交特征文件中查找key对应的地址,然后将在差分虚拟磁盘对应的地址进行数据的保存,确保服务器数据合并后差分虚拟磁盘数据与客户端差分虚拟磁盘数据完全一致。
步骤D、将所述的多个待同步数据以及数据提交特征文件发送给服务器。
实施例三
一种虚拟磁盘数据同步系统,用于将客户端的磁盘数据同步至服务器中,系统包括服务器和客户端,服务器中存储有第一计算机程序,在客户端中存储有第二计算机程序,第一计算机程序被处理器执行时实现以下步骤:
步骤1、创建第一虚拟磁盘,第一虚拟磁盘包括母盘以及一级差分磁盘;
步骤2、获得第一虚拟磁盘副本,第一虚拟磁盘副本与第一虚拟磁盘相同;
步骤3、将第一虚拟磁盘副本发送给客户端;
步骤4、获得客户端发送的数据提交特征文件以及多个待同步数据;数据提交特征文件用于提供每个待同步数据同步至所述第一虚拟磁盘的一级差分磁盘中的位置;
步骤5、根据数据提交特征文件将多个待同步数据同步至第一虚拟磁盘中,获得同步后的第一虚拟磁盘;
第二计算机程序被处理器执行时实现以下步骤:
步骤A、获得第一虚拟磁盘副本后,对第一虚拟磁盘副本创建次级差分磁盘,获得第二虚拟磁盘,第二虚拟磁盘包括第一虚拟磁盘副本以及二级差分磁盘;
步骤B、在第二虚拟磁盘中运行虚拟机,将运行产生的数据保存在二级差分磁盘中,获得第三虚拟磁盘,第三虚拟磁盘包括第一虚拟磁盘副本以及存有数据的二级差分磁盘;
步骤C、等待虚拟机关机后,将存有数据的二级差分磁盘提交至第一虚拟磁盘副本的一级差分磁盘中,获得多个待同步数据以及数据提交特征文件;
多个待同步数据为存有数据的二级差分磁盘内的所有数据;
数据提交特征文件包括每个待同步数据在第一虚拟磁盘副本的一级差分磁盘中的位置;
步骤D、将所述的多个待同步数据以及数据提交特征文件发送给服务器。
可选地,在数据提交特征文件中以字典索引的方式记录每个待同步数据在第一虚拟磁盘副本的一级差分磁盘中的位置;
字典索引中key为每一个待同步数据在存有数据的二级差分磁盘中位置;
字典索引中value为待同步数据提交至第一虚拟磁盘副本的一级差分磁盘中的位置。
本实施例中提供的方法的使用场景为本地办公和远程办公统一,作为个人云桌面的虚拟机运行在本地PC机上,虚拟机使用的虚拟磁盘及差分虚拟磁盘都保存在本地PC机硬盘上,但是为了实现个人桌面可远程接入,比如在家办公,需要将个人云桌面的虚拟机使用的差分虚拟磁盘在每次关机后同步到云桌面服务器上,便于在家连接服务器办公。
如图1、2所示,本方案包括以下步骤:
使用虚拟磁盘管理工具(例如Linux系统的qemu-img程序)进行虚拟磁盘的创建,创建二级虚拟磁盘输入主要参数是大小、保存位置、磁盘文件名称、上一级磁盘文件(在本步骤中为第一级虚拟机磁盘差分文件)。
在本实施例中,采用以下方式实现基于一级差分虚拟磁盘创建二级差分虚拟磁盘:
qemu-img create-f qcow2-b win7_diff1.qcow2 win7_diff2.qcow2
在本步骤中,为了提供虚拟机运行时的系统盘创建次级差分。
在本实施例中,以二级差分磁盘作为虚拟机系统运行的系统盘,这个虚拟机运行中产生数据就会写入二级差分磁盘中。
在本实施例中,将所述的存有数据的二级差分磁盘提交至所述的第一虚拟磁盘副本的一级差分磁盘中,获得第四虚拟磁盘,获得的第四虚拟磁盘相当于就是用户操作完成获得的虚拟磁盘,例如在公司中的计算机与家里的计算机进行办公室,用户从家中登录虚拟机,并进行了一系列操作关机后,此时获得的就是第四虚拟磁盘,而现在的目的在于将第四虚拟磁盘中经过用户一系列操作产生的数据同步至服务器上,使得服务器上存储的一直都是最新的虚拟磁盘,用户再去公司中的计算机中登录虚拟机时,可以直接看到在家中办公时进行的各项操作产生的数据。
在本实施例中,获得的第四虚拟磁盘相当于与第一虚拟磁盘的格式完全相同,因为第四虚拟磁盘中的数据可以直接同步至第一虚拟磁盘中。
在本实施例中,当服务器中的一级差分磁盘为空的时,可以直接将存有数据的一级差分磁盘同步至空的一级差分磁盘中,获得同步后的第一虚拟磁盘;
但是当服务器中的一级差分磁盘不为空时,如果直接将存有数据的一级差分磁盘与服务器中的一级差分磁盘同步,可能会出现数据存入位置出现错误的情况。
为了同步后的第一虚拟磁盘中的数据与第四虚拟磁盘中的数据完全一致,本发明提供了数据校验的同步方法,在本实施例中,数据提交特征文件中数据索引的方式可以是字典查询,也可以是映射表查询。
为了提高查询搜索的速度,作为一种优选的实施方式,在数据提交特征文件中以字典索引的方式记录每个待同步数据在第一虚拟磁盘副本的一级差分磁盘中的位置;
字典索引中key为每一个待同步数据在存有数据的二级差分磁盘中位置;
字典索引中value为待同步数据提交至第一虚拟磁盘副本的一级差分磁盘中的位置。
在本实施例中,为了解决次级差分虚拟磁盘数据在客户端和服务器分别提交后可能导致的数据不一致,服务器提交次级差分虚拟磁盘数据到本地差分虚拟磁盘时,同时输出数据提交特征文件,数据提交特征文件记录的内容是,次级差分虚拟磁盘数据合并到差分虚拟磁盘时,在差分虚拟磁盘中每个新增数据的保存位置,这个记录方式是以字典方式记录,其中以需要同步的次级差分虚拟磁盘中源数据的地址为key,以合并在在差分虚拟磁盘中记录的地址为value。将记录同步数据的次级差分虚拟磁盘及数据提交特征文件一起发送到需要同步的服务器,待服务器获取次级差分虚拟磁盘后,连同数据提交特征文件一起进行数据提交,提交数据时,如果有数据提交特征文件,则每个根据需要合并的源数据地址在数据提交特征文件中查找key对应的地址,然后将在差分虚拟磁盘对应的地址进行数据的保存,确保服务器数据合并后差分虚拟磁盘数据与客户端差分虚拟磁盘数据完全一致。
在本实施例中,采用以下的方式实现数据同步:
创建虚拟磁盘的方法:
qemu-img create-f qcow2 win7.qcow2 200G
以上述创建的win7.qcow2作为母盘,创建一级差分磁盘:
qemu-img create-f qcow2-b win7.qcow2 win7_diff1.qcow2
基于一级差分虚拟磁盘创建二级差分虚拟磁盘:
qemu-img create-f qcow2-b win7_diff1.qcow2 win7_diff2.qcow2
在客户端提交(合并)二级差分虚拟磁盘到第一虚拟磁盘副本中一级差分虚拟磁盘的命令,增加--output-mapfile=win7.mapfile参数,输出特征文件win7.mapfile:
qemu-img commit win7_diff2.qcow2--output-mapfile=win7.mapfile
在服务器端提交(合并)二级差分到服务器端第一虚拟磁盘中一级差分虚拟磁盘时的命令,需要增加--input-mapfile=win7.mapfile参数:
qemu-img commit win7_diff2.qcow2--input-mapfile=win7.mapfile
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

Claims (4)

1.一种虚拟磁盘数据同步客户端,在所述的客户端中存储有第二计算机程序,其特征在于,所述的第二计算机程序被处理器执行时实现以下步骤:
步骤A、获得第一虚拟磁盘副本后,对所述的第一虚拟磁盘副本创建次级差分磁盘,获得第二虚拟磁盘,所述的第二虚拟磁盘包括所述的第一虚拟磁盘副本以及二级差分磁盘;
步骤B、在所述的第二虚拟磁盘中运行虚拟机,将运行产生的数据保存在所述的二级差分磁盘中,获得第三虚拟磁盘,所述的第三虚拟磁盘包括所述的第一虚拟磁盘副本以及存有数据的二级差分磁盘;
步骤C、等待所述的虚拟机关机后,将所述的存有数据的二级差分磁盘提交至所述的第一虚拟磁盘副本的一级差分磁盘中,获得多个待同步数据以及数据提交特征文件;
所述的多个待同步数据为存有数据的二级差分磁盘内的所有数据;
所述的数据提交特征文件包括每个待同步数据在所述的第一虚拟磁盘副本的一级差分磁盘中的位置;
步骤D、将所述的多个待同步数据以及数据提交特征文件发送给服务器。
2.如权利要求1所述的虚拟磁盘数据同步客户端,其特征在于,在所述的数据提交特征文件中以字典索引的方式记录每个待同步数据在所述的第一虚拟磁盘副本的一级差分磁盘中的位置;
所述的字典索引中key为每一个待同步数据在存有数据的二级差分磁盘中位置;
所述的字典索引中value为待同步数据提交至所述的第一虚拟磁盘副本的一级差分磁盘中的位置。
3.一种虚拟磁盘数据同步系统,用于将客户端的磁盘数据同步至服务器中,所述的系统包括服务器和客户端,所述的服务器中存储有第一计算机程序,在所述的客户端中存储有第二计算机程序,其特征在于,所述的第一计算机程序被处理器执行时实现以下步骤:
步骤1、创建第一虚拟磁盘,所述的第一虚拟磁盘包括母盘以及一级差分磁盘;
步骤2、获得第一虚拟磁盘副本,所述的第一虚拟磁盘副本与所述的第一虚拟磁盘相同;
步骤3、将所述的第一虚拟磁盘副本发送给客户端;
步骤4、获得客户端发送的数据提交特征文件以及多个待同步数据;所述的数据提交特征文件用于提供每个待同步数据同步至所述第一虚拟磁盘的一级差分磁盘中的位置;
步骤5、根据所述的数据提交特征文件将所述的多个待同步数据同步至所述的第一虚拟磁盘中,获得同步后的第一虚拟磁盘;
所述的第二计算机程序被处理器执行时实现以下步骤:
步骤A、获得第一虚拟磁盘副本后,对所述的第一虚拟磁盘副本创建次级差分磁盘,获得第二虚拟磁盘,所述的第二虚拟磁盘包括所述的第一虚拟磁盘副本以及二级差分磁盘;
步骤B、在所述的第二虚拟磁盘中运行虚拟机,将运行产生的数据保存在所述的二级差分磁盘中,获得第三虚拟磁盘,所述的第三虚拟磁盘包括所述的第一虚拟磁盘副本以及存有数据的二级差分磁盘;
步骤C、等待所述的虚拟机关机后,将所述的存有数据的二级差分磁盘提交至所述的第一虚拟磁盘副本的一级差分磁盘中,获得多个待同步数据以及数据提交特征文件;
所述的多个待同步数据为存有数据的二级差分磁盘内的所有数据;
所述的数据提交特征文件包括每个待同步数据在所述的第一虚拟磁盘副本的一级差分磁盘中的位置;
步骤D、将所述的多个待同步数据以及数据提交特征文件发送给服务器。
4.如权利要求3所述的虚拟磁盘数据同步方法,其特征在于,在所述的数据提交特征文件中以字典索引的方式记录每个待同步数据在所述的第一虚拟磁盘副本的一级差分磁盘中的位置;
所述的字典索引中key为每一个待同步数据在存有数据的二级差分磁盘中位置;
所述的字典索引中value为待同步数据提交至所述的第一虚拟磁盘副本的一级差分磁盘中的位置。
CN201911059042.1A 2019-11-01 2019-11-01 一种虚拟磁盘数据同步服务器、客户端及系统 Active CN110928494B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911059042.1A CN110928494B (zh) 2019-11-01 2019-11-01 一种虚拟磁盘数据同步服务器、客户端及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911059042.1A CN110928494B (zh) 2019-11-01 2019-11-01 一种虚拟磁盘数据同步服务器、客户端及系统

Publications (2)

Publication Number Publication Date
CN110928494A CN110928494A (zh) 2020-03-27
CN110928494B true CN110928494B (zh) 2024-02-02

Family

ID=69850006

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911059042.1A Active CN110928494B (zh) 2019-11-01 2019-11-01 一种虚拟磁盘数据同步服务器、客户端及系统

Country Status (1)

Country Link
CN (1) CN110928494B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116257277B (zh) * 2023-05-12 2023-08-01 天津卓朗昆仑云软件技术有限公司 镜像文件的更新方法、装置及voi系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5692829B1 (ja) * 2013-07-11 2015-04-01 株式会社東芝 仮想ディスクイメージを処理するシステム、クライアント端末、及び方法
CN107995318A (zh) * 2018-01-04 2018-05-04 西安雷风电子科技有限公司 一种网络云盘的高可用系统
CN108228108A (zh) * 2018-01-04 2018-06-29 西安雷风电子科技有限公司 一种差分虚拟磁盘链接方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8046550B2 (en) * 2008-07-14 2011-10-25 Quest Software, Inc. Systems and methods for performing backup operations of virtual machine files

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5692829B1 (ja) * 2013-07-11 2015-04-01 株式会社東芝 仮想ディスクイメージを処理するシステム、クライアント端末、及び方法
CN107995318A (zh) * 2018-01-04 2018-05-04 西安雷风电子科技有限公司 一种网络云盘的高可用系统
CN108228108A (zh) * 2018-01-04 2018-06-29 西安雷风电子科技有限公司 一种差分虚拟磁盘链接方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
陈春媛 ; .基于qcow2镜像格式的快照技术.信息与电脑(理论版).2017,(01),全文. *

Also Published As

Publication number Publication date
CN110928494A (zh) 2020-03-27

Similar Documents

Publication Publication Date Title
US20200356448A1 (en) Manifest-based snapshots in distributed computing environments
EP2494456B1 (en) Backup using metadata virtual hard drive and differential virtual hard drive
CN103970585B (zh) 创建虚拟机的方法及装置
US9471590B2 (en) Method and apparatus for replicating virtual machine images using deduplication metadata
RU2500023C2 (ru) Синхронизация документа по протоколу, не использующему информацию о состоянии
US8090917B2 (en) Managing storage and migration of backup data
EP2429134B1 (en) Method and apparatus for checking and synchronizing data block in distributed file system
JP2008009809A (ja) データベース同期処理プログラム
US10353872B2 (en) Method and apparatus for conversion of virtual machine formats utilizing deduplication metadata
CN111324610A (zh) 一种数据同步的方法及装置
US11436042B2 (en) Migrating the runtime state of a container between two nodes
CN102272751B (zh) 在数据库环境通过背景同步的数据完整性
JP6987340B2 (ja) データベースのデータ変更要求処理方法及び装置
CN114641977B (zh) 用于在双活架构中进行跨区域数据管理的系统和方法
CN106445643B (zh) 克隆、升级虚拟机的方法及设备
US8732427B2 (en) Systems and methods for collapsing a derivative version of a primary storage volume
CN110781197A (zh) 一种hive离线同步校验方法、装置及电子设备
CN112328365A (zh) 一种虚拟机迁移方法、装置、设备及存储介质
CN110928494B (zh) 一种虚拟磁盘数据同步服务器、客户端及系统
JP2016514393A (ja) 差分符号化のためのシリアライゼーション
US10169343B2 (en) Deferring the cost of virtual storage
US20150286696A1 (en) System and method for processing long relation chain data of user
US20190050455A1 (en) Adaptive page rendering for a data management system
CN113986878A (zh) 一种数据写入方法、数据迁移方法、装置及电子设备
CN103425550A (zh) 一种系统克隆方法和装置

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