本发明专利技术公开了一种在线快照的方法和设备,该方法包括:虚拟机接收在线快照命令;虚拟机在完成在线快照之前,如果需要修改第一内存块中的数据,则复制第一内存块,以得到与第一内存块相同的第二内存块;虚拟机将第二级索引表的第一指针指向第一内存块,并将第二级索引表的第二指针指向第二内存块;虚拟机利用当前待写入数据的地址查询第二级索引表,并对第二级索引表的第二指针指向的第二内存块中的数据进行修改;虚拟机利用当前待快照数据的地址查询第二级索引表,对第二级索引表的第一指针指向的第一内存块中的数据进行快照处理。本发明专利技术实施例中,当虚拟机接收到在线快照命令时,不需要暂停虚拟机的读写操作,不会导致虚拟机的业务中断。
【技术实现步骤摘要】
一种在线快照的方法和设备
本专利技术涉及通信
,尤其是涉及一种在线快照的方法和设备。
技术介绍
随着硬件速度的不断提高,物理服务器的性能大大提升,数据中心中的部分物理服务器的使用率有所下降,为了提高物理服务器的硬件利用率,降低数据中心的运维成本,虚拟化技术得到了很大发展。通过虚拟机软件,可以在物理服务器上模拟出一台或多台虚拟机,这些虚拟机完全就像真正的计算机那样进行工作,例如可以安装操作系统、安装应用程序、访问网络资源等。从用户的角度来看,它只是运行在物理服务器上的一个应用程序,但是对于在虚拟机中运行的应用程序而言,它就像是在真正的计算机中进行工作。在虚拟机快照技术中,虚拟机快照分为离线快照和在线快照,离线快照是虚拟机的磁盘文件在某个时间点的复本,在线快照是虚拟机的磁盘文件和运行时所使用内存在某个时间点的复本。虚拟机快照产生的复本保存在磁盘文件中,当虚拟机系统崩溃或系统异常时,通过虚拟机快照产生的复本可以恢复相应的数据,从而有效保护磁盘上的文件系统和虚拟机的内存数据。现有技术中,当正在运行的虚拟机接收到在线快照命令时,暂停本虚拟机的读写操作,并对虚拟机的磁盘文件和运行时所使用内存进行快照处理,在快照处理完成后,恢复本虚拟机的读写操作,继续对外提供读写服务。由于在线快照会暂停虚拟机的读写操作,因此会导致虚拟机的业务中断,而且业务中断的时间与虚拟机使用的内存成正比,如果虚拟机使用的内存过大,则会导致虚拟机业务中断的时间过长,严重影响用户的使用感受。
技术实现思路
本专利技术实施例提供一种在线快照的方法,所述方法包括以下步骤:虚拟机接收在线快照命令;所述虚拟机在完成在线快照之前,如果需要修改第一内存块中的数据,则复制所述第一内存块,以得到与所述第一内存块相同的第二内存块;所述虚拟机将第二级索引表的第一指针指向所述第一内存块,并将所述第二级索引表的第二指针指向所述第二内存块;其中,所述第一指针用于指向能够进行在线快照处理的内存块,所述第二指针用于指向能够进行数据写入处理的内存块;所述第一内存块中的数据具体用于进行在线快照处理,所述第二内存块中的数据具体用于进行数据写入处理;所述虚拟机利用当前待写入数据的地址查询所述第二级索引表,并对所述第二级索引表的第二指针指向的第二内存块中的数据进行修改;所述虚拟机利用当前待快照数据的地址查询所述第二级索引表,并对所述第二级索引表的第一指针指向的第一内存块中的数据进行快照处理。所述虚拟机对所述第二级索引表的第一指针指向的第一内存块中的数据进行快照处理,之后还包括:所述虚拟机在完成在线快照之后,所述虚拟机删除所述第一内存块中的数据,并将所述第二级索引表的第一指针指向所述第二内存块。所述方法进一步包括:所述虚拟机生成数据地址对应的内存地址结构,所述内存地址结构包括第一级索引表、第二级索引表和第三级内存块地址表;所述第一级索引表的第三指针指向第二级索引表,所述第二级索引表的第一指针和第二指针指向第三级内存块地址表,所述第三级内存块地址表的每个地址对应一个内存块。所述方法进一步包括:所述虚拟机利用当前待写入数据的地址查询所述第二级索引表的过程中,所述虚拟机确定当前待写入数据的地址对应的第一级索引,并通过第一级索引在所述第一级索引表中对应的第三指针查询所述第二级索引表;所述虚拟机利用当前待快照数据的地址查询所述第二级索引表的过程中,所述虚拟机确定当前待快照数据的地址对应的第一级索引,并通过第一级索引在所述第一级索引表中对应的第三指针查询所述第二级索引表。本专利技术实施例提供一种虚拟机,所述虚拟机具体包括:接收模块,用于接收在线快照命令;获得模块,用于在完成在线快照之前,如果需要修改第一内存块中的数据,则复制所述第一内存块,以得到与所述第一内存块相同的第二内存块;表项管理模块,用于将第二级索引表的第一指针指向所述第一内存块,并将所述第二级索引表的第二指针指向所述第二内存块;其中,所述第一指针用于指向能够进行在线快照处理的内存块,所述第二指针用于指向能够进行数据写入处理的内存块;所述第一内存块中的数据具体用于进行在线快照处理,所述第二内存块中的数据具体用于进行数据写入处理;处理模块,用于利用当前待写入数据的地址查询所述第二级索引表,并对所述第二级索引表的第二指针指向的第二内存块中的数据进行修改;利用当前待快照数据的地址查询所述第二级索引表,并对第二级索引表的第一指针指向的第一内存块中的数据进行快照处理。所述表项管理模块,进一步用于在对所述第二级索引表的第一指针指向的第一内存块中的数据进行快照处理之后,在完成在线快照后,删除所述第一内存块中的数据,并将所述第二级索引表的第一指针指向所述第二内存块。所述表项管理模块,还用于生成数据地址对应的内存地址结构,所述内存地址结构包括第一级索引表、第二级索引表和第三级内存块地址表;所述第一级索引表的第三指针指向第二级索引表,所述第二级索引表的第一指针和第二指针指向第三级内存块地址表,所述第三级内存块地址表的每个地址对应一个内存块。所述处理模块,具体用于在利用当前待写入数据的地址查询所述第二级索引表的过程中,确定当前待写入数据的地址对应的第一级索引,并通过第一级索引在所述第一级索引表中对应的第三指针查询所述第二级索引表;在利用当前待快照数据的地址查询所述第二级索引表的过程中,确定当前待快照数据的地址对应的第一级索引,并通过第一级索引在所述第一级索引表中对应的第三指针查询所述第二级索引表。基于上述技术方案,本专利技术实施例中,当正在运行的虚拟机接收到在线快照命令时,不需要暂停虚拟机的读写操作,并可以对虚拟机的磁盘文件和运行时所使用内存进行快照处理,因此不会导致虚拟机的业务中断,虚拟机的业务不会受到在线快照的影响,在线快照期间修改的数据不会丢失。附图说明图1是本专利技术实施例中提出的内存地址结构的示意图;图2是本专利技术实施例提供的一种在线快照的方法流程示意图;图3是本专利技术实施例提供的复制第一内存块得到第二内存块的示意图;图4是本专利技术实施例提供的一种虚拟机的结构示意图。具体实施方式针对现有技术中存在的问题,本专利技术实施例提供了一种在线快照的方法,该方法用于对当前正在运行的虚拟机进行在线快照处理,该虚拟机包括但不限于KVM(Kernel-basedVirtualMachine,内核级虚拟化技术)虚拟机。本专利技术实施例中,虚拟机需要生成数据地址对应的内存地址结构,该内存地址结构具体包括第一级索引表(L1_index表)、第二级索引表(L2_index表)和第三级内存块地址表(Cluster(簇)内存块表)。其中,第一级索引表的第三指针指向第二级索引表,第二级索引表的第一指针和第二指针指向第三级内存块地址表,第三级内存块地址表的每个地址对应一个内存块。本专利技术实施例中,将虚拟机模拟的内存分配以内存地址结构(即3级目录)的形式来实现,内存地址结构的最后一级是第三级内存块地址表,第三级内存块地址表的每个地址对应一个内存块,该内存块的大小可以是1M,4M、16M、32M等,所有内存的分配都是以内存块为单位进行分配和使用,真正的内存数据被保存在一个或者多个内存块内。内存地址结构的第一级为第一级索引表,内存地址结构的第二级为第二级索引表,第一级索引表和第二级索引表是目录表,通过第一级索引本文档来自技高网...
【技术保护点】
一种在线快照的方法,其特征在于,所述方法包括以下步骤:虚拟机接收在线快照命令;所述虚拟机在完成在线快照之前,如果需要修改第一内存块中的数据,则复制所述第一内存块,以得到与所述第一内存块相同的第二内存块;所述虚拟机将第二级索引表的第一指针指向所述第一内存块,并将所述第二级索引表的第二指针指向所述第二内存块;其中,所述第一指针用于指向能够进行在线快照处理的内存块,所述第二指针用于指向能够进行数据写入处理的内存块;所述第一内存块中的数据具体用于进行在线快照处理,所述第二内存块中的数据具体用于进行数据写入处理;所述虚拟机利用当前待写入数据的地址查询所述第二级索引表,并对所述第二级索引表的第二指针指向的第二内存块中的数据进行修改;所述虚拟机利用当前待快照数据的地址查询所述第二级索引表,并对所述第二级索引表的第一指针指向的第一内存块中的数据进行快照处理。
【技术特征摘要】
1.一种在线快照的方法,其特征在于,所述方法包括以下步骤:虚拟机接收在线快照命令;所述虚拟机在完成在线快照之前,如果需要修改第一内存块中的数据,则复制所述第一内存块,以得到与所述第一内存块相同的第二内存块;所述虚拟机将第二级索引表的第一指针指向所述第一内存块,并将所述第二级索引表的第二指针指向所述第二内存块;其中,所述第一指针用于指向能够进行在线快照处理的内存块,所述第二指针用于指向能够进行数据写入处理的内存块;所述第一内存块中的数据具体用于进行在线快照处理,所述第二内存块中的数据具体用于进行数据写入处理;所述虚拟机利用当前待写入数据的地址查询所述第二级索引表,并对所述第二级索引表的第二指针指向的第二内存块中的数据进行修改;所述虚拟机利用当前待快照数据的地址查询所述第二级索引表,并对所述第二级索引表的第一指针指向的第一内存块中的数据进行快照处理。2.如权利要求1所述的方法,其特征在于,所述虚拟机对所述第二级索引表的第一指针指向的第一内存块中的数据进行快照处理,之后还包括:所述虚拟机在完成在线快照之后,所述虚拟机删除所述第一内存块中的数据,并将所述第二级索引表的第一指针指向所述第二内存块。3.如权利要求1所述的方法,其特征在于,所述方法进一步包括:所述虚拟机生成数据地址对应的内存地址结构,所述内存地址结构包括第一级索引表、第二级索引表和第三级内存块地址表;所述第一级索引表的第三指针指向第二级索引表,所述第二级索引表的第一指针和第二指针指向第三级内存块地址表,所述第三级内存块地址表的每个地址对应一个内存块。4.如权利要求3所述的方法,其特征在于,所述方法进一步包括:所述虚拟机利用当前待写入数据的地址查询所述第二级索引表的过程中,所述虚拟机确定当前待写入数据的地址对应的第一级索引,并通过第一级索引在所述第一级索引表中对应的第三指针查询所述第二级索引表;所述虚拟机利用当前待快照数据的地址查询所述第二级索引表的过程中,所述虚拟机确定当前待快照数据的地址对应的第一级索引,并通过第一级索引在所述第一级索引表中对应的第三指针查...
【专利技术属性】
技术研发人员:高亮,
申请(专利权)人:杭州华三通信技术有限公司,
类型:发明
国别省市:浙江;33
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。