一种虚拟机的备份方法及装置与流程

文档序号:12469838阅读:323来源:国知局
一种虚拟机的备份方法及装置与流程

本发明涉及服务器虚拟化技术领域,更具体地说,涉及一种虚拟机的备份方法及装置。



背景技术:

XenServer是在云计算环境中经过验证的企业级虚拟化平台,可提供创建和管理虚拟基础架构所需的所有功能;而处于对其数据安全的考虑,通常需要定时对存在于XenServer中的虚拟机进行备份。

对于xenserver最新版本xenserver6.5,备份虚拟机通过导出虚拟机的快照方式完成,具体来说,通过对虚拟机做快照,再将该快照对应数据导出至备份服务器中,并且在导出快照对应的数据同时还需将数据转换至.xva格式;但是,发明人发现,这种方式导出虚拟机的速度缓慢。

综上所述,现有技术中用于实现虚拟机备份的技术方案存在导出速度较慢的问题。



技术实现要素:

本发明的目的是提供一种虚拟机的备份方法及装置,以解决现有技术中用于实现虚拟机备份的技术方案存在的导出速度慢的问题。

为了实现上述目的,本发明提供如下技术方案:

一种虚拟机的备份方法,包括:

对待备份虚拟机做快照,并基于该快照建立对应的目标虚拟机;

将所述目标虚拟机的元数据及虚拟磁盘信息导出至备份服务器中,以供所述备份服务器对其进行去重操作后存储。

优选的,还包括:

将所述备份服务器中存储的元数据及虚拟磁盘信息导入至所述待备份虚拟机所属的服务器存储中;

基于所述元数据建立新建虚拟机,并基于所述虚拟磁盘信息建立新建虚拟磁盘;

将所述新建虚拟磁盘连接至所述新建虚拟机。

优选的,还包括:

接收外界输入的设置参数,并对于所述设置参数对应的待备份虚拟机依次进行备份。

优选的,基于所述快照建立所述目标虚拟机之后还包括:

将所述快照进行删除;

将所述目标虚拟机的元数据及虚拟磁盘信息导出至备份服务器中之后还包括:

将所述目标虚拟机进行删除。

优选的,还包括:

利用私钥对所述元数据及所述虚拟磁盘信息进行加密,以供所述备份服务器利用公钥进行解密后获取所述元数据及所述虚拟磁盘信息。

一种虚拟机的备份装置,包括:

新建模块,用于对待备份虚拟机做快照,并基于该快照建立对应的目标虚拟机;

备份模块,用于将所述目标虚拟机的元数据及虚拟磁盘信息导出至备份服务器中,以供所述备份服务器对其进行去重操作后存储。

优选的,还包括:

恢复模块,用于:将所述备份服务器中存储的元数据及虚拟磁盘信息导入至所述待备份虚拟机所属的服务器存储中;基于所述元数据建立新建虚拟机,并基于所述虚拟磁盘信息建立新建虚拟磁盘;将所述新建虚拟磁盘连接至所述新建虚拟机。

优选的,还包括:

设置模块,用于接收外界输入的设置参数,并对于所述设置参数对应的待备份虚拟机依次进行备份。

优选的,还包括:

删除模块,用于在所述新建模块基于所述快照建立所述目标虚拟机之后将所述快照进行删除,以及用于将所述目标虚拟机的元数据及虚拟磁盘信息导出至备份服务器中之后将所述目标虚拟机进行删除。

优选的,还包括:

加密模块,用于利用私钥对所述元数据及所述虚拟磁盘信息进行加密,以供所述备份服务器利用公钥进行解密后获取所述元数据及所述虚拟磁盘信息。

本发明提供的一种虚拟机的备份方法及装置,其中,该方法包括:对待备份虚拟机做快照,并基于该快照建立对应的目标虚拟机;将所述目标虚拟机的元数据及虚拟磁盘信息导出至备份服务器中,以供所述备份服务器对其进行去重操作后存储。本申请公开的上述技术方案中,将虚拟机拆分为元数据和虚拟磁盘信息,通过导出虚拟机的元数据和虚拟磁盘信息达到备份虚拟机的功能效果,由此,能够将虚拟机备份时的导出速度提高到60-70MB/s(千兆以太网),大大增加了虚拟机备份时的导出速度。同时,由于对待备份虚拟机的备份是通过目标虚拟机实现的,因此,能够保证待备份虚拟机的业务不受影响,保证了其正常运行。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本发明实施例提供的一种虚拟机的备份方法的流程图;

图2为本发明实施例提供的一种虚拟机的备份装置的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参阅图1,其示出了本发明实施例提供的一种虚拟机的备份方法的流程图,可以包括以下步骤:

S11:对待备份虚拟机做快照,并基于该快照建立对应的目标虚拟机。

其中,本发明实施例提供的技术方案中未标明主句的步骤的主语均可以为一种虚拟机的备份装置。

另外,基于快照建立目标虚拟机,即该目标虚拟机具有快照对应状态及数据,通过此步骤,将需要备份的待备份虚拟机的数据转到新建的、关机状态下的目标虚拟机上,由此能够保证备份过程中数据的一致性,且不会影响待备份虚拟机的正常运行。

S12:将目标虚拟机的元数据及虚拟磁盘信息导出至备份服务器中,以供备份服务器对其进行去重操作后存储。

需要说明的是,虚拟机包括元数据及虚拟磁盘,其中元数据包含虚拟机个性化相关配置,虚拟磁盘记录该虚拟机保存的数据信息。

其中,对于将元数据及虚拟磁盘信息由目标虚拟机导出至备份服务的步骤具体可以是通过中转服务器实现的,即通过中转服务器将上述数据信息导出至备份服务器中。而对元数据及虚拟磁盘信息的去重操作具体可以是采用RLE压缩算法将元数据及虚拟磁盘信息中某些连续出现的字符用重复次数加上字符标识来表示,通常,该标识的位数小于对应字段的位数,由此,可以大大节省备份服务器存储空间。另外,如果备份服务器中的存储空间已满,可以将目标虚拟机的元数据及虚拟磁盘信息去重操作后存储至与备份服务器对应的磁带库中,实现数据的正常存储。

本申请公开的上述技术方案中,将虚拟机拆分为元数据和虚拟磁盘信息,通过导出虚拟机的元数据和虚拟磁盘信息达到备份虚拟机的功能效果,由此,能够将虚拟机备份时的导出速度提高到60-70MB/s(千兆以太网),大大增加了虚拟机备份时的导出速度。同时,由于对待备份虚拟机的备份是通过目标虚拟机实现的,因此,能够保证待备份虚拟机的业务不受影响,保证了其正常运行。

本发明实施例提供的一种虚拟机的备份方法,还可以包括:

将备份服务器中存储的元数据及虚拟磁盘信息导入至待备份虚拟机所属的服务器存储中;

基于元数据建立新建虚拟机,并基于虚拟磁盘信息建立新建虚拟磁盘;

将新建虚拟磁盘连接至新建虚拟机。

当需要对备份的虚拟机进行恢复时,可以通过上述与备份虚拟机相反的过程实现对于虚拟机的恢复,其中,新建虚拟机即为恢复的虚拟机。由此,仅仅根据元数据及虚拟磁盘信息即可恢复对应的虚拟机,操作简便快速。另外,当元数据及虚拟磁盘信息存储在备份服务器中时,直接由备份服务器中获取上述数据即可,而如果元数据及虚拟磁盘此次存储在备份服务器对应的磁带库中,则需要由该磁带库中获取上述数据。

本发明实施例提供的一种虚拟机的备份方法,还可以包括:

接收外界输入的设置参数,并对于设置参数对应的待备份虚拟机依次进行备份。

其中,设置参数可以是工作人员预先进行设置的,通过设置参数,可以对设置参数对应的某一特定待备份虚拟机按照本申请公开的上述技术方案进行备份,也可以对设置参数对应的多个待备份虚拟机按照本申请公开的上述技术方案进行备份;具体来说,上述设置参数的设置可以通过脚本实现。需要说明的是,还可以在需要对某一特定虚拟机进行备份时,由工作人员手动进行单独执行,或者通过对应操作系统定期对设置参数对应的虚拟机进行备份,或者作为主流备份软件的前置脚本对设置参数对应的虚拟机进行备份,另外,用户还可以设置对设置参数对应虚拟机进行备份的周期、频率等,当然,还可以根据实际需要进行其他设置,均在本发明的保护范围之内。由此,实现对于虚拟机的批量备份或者定时备份,提升了用户体验。

本发明实施例提供的一种虚拟机的备份方法,基于快照建立目标虚拟机之后还包括:

将快照进行删除;

将所述目标虚拟机的元数据及虚拟磁盘信息导出至备份服务器中之后还包括:

将所述目标虚拟机进行删除。

由此,在利用快照建立目标虚拟机后,可以对快照进行删除,在导出目标虚拟机对应的数据后,可以将目标虚拟机进行删除,以节省对应的存储空间。

本发明实施例提供的一种虚拟机的备份方法,还可以包括:

利用私钥对元数据及虚拟磁盘信息进行加密,以供备份服务器利用公钥进行解密后获取元数据及虚拟磁盘信息

具体可以使用ssh-keygen生成密钥,进而采用上述RSA加密算法,实现对上述信息的加密及解密,保证了信息安全性。

需要说明的是,当利用脚本实现本发明实施例提供的上述技术方案时,具体可以包括三个脚本:backup.sh、backup_idps.sh和backup_ics.sh。

其中,InCloud Sphere端为待备份虚拟机对应的服务器端,Backup Server端为备份服务器端,backup.sh、backup_idps.sh可以部署在Backup Server端/root/backup文件夹中,backup_ics.sh可以部署在InCloud Sphere端/root/backup文件夹中,并为脚本增加可执行属性。由此,用户只需运行backup.sh脚本即可,该脚本会自动完成备份的全过程。

backup.sh:作为主控脚本,首先远程调用backup_ics.sh收集需要待备份虚拟机的元数据和虚拟磁盘信息,然后本地调用backup_idps.sh将元数据和虚拟磁盘信息从InCloud Sphere主机传输到Backup Server主机,需要在脚本内设置xenserver主机的IP地址和用户名、密码,代码如下所示:

ics_addr=192.168.179.142

ics_user=root

ics_pwd=123456

echo"call the sript in the ics node"

ssh$ics_user@$ics_addr sh/root/backup/backup_ics.sh

echo"call the sript in the backup node"

sh backup_idps.sh

backup_ics.sh:主要功能是生成待备份虚拟机的快照,基于快照新建目标虚拟机;记录目标虚拟机的uuid和VDI(虚拟磁盘)的uuid等信息,该脚本既可以对主机上所有虚拟机备份,也可以对指定虚拟机备份。具体来说可以设置成,若backup_all_the_VMs值为YES,则全部备份;若backup_all_the_VMs值非YES,则只备份数组backup_selected_VMs中的虚拟机,代码如下:

#say YES if you want to backup all the VMs expect the Dom 0

backup_all_the_VMs=NO

#or tell us the name's of the VMs you want to backup

#backup_selected_VMs=(MiniVM_1dpsProxy)

backup_selected_VMs=(Mini-from)

该脚本会首先创建要待备份虚拟机的快照,以保证备份时间点的数据一致性;根据该快照新建虚拟机后,自动删除快照,此处新建的虚拟机即为目标虚拟机。对待备份虚拟机,分别生成一台以backup_为前缀的目标虚拟机。脚本执行完毕后,目标虚拟机的信息记录在VM_uuid_list和VDI_uuid_list两个文件中。

backup_idps.sh:主要功能为从xenserver服务器拉取记录备份虚拟机uuid和VDI uuid的文件;根据上述信息以curl命令从InCloud Sphere服务器拉取备份虚拟机的元数据和VDI。为实现通过curl命令从xenserver服务器拉取虚拟机元数据和VDI,管理员需要在脚本中写入xenserver服务器的用户名、密码和地址,代码如下:

ics_addr=192.168.179.142

ics_user=root

ics_pwd=123456

通过rsync将VM_uuid_list和VDI_uuid_list两个文件拉取到Backup Server,并指定目标文件夹为本地,即/root/backup目录下,代码如下:

echo"rsync the VM and VDI list"

rsync-av$ics_user@$ics_addr:/root/backup/VM_uuid_list.

rsync-av$ics_user@$ics_addr:/root/backup/VDI_uuid_list.

脚本通过VM_uuid_list和VDI_uuid_list收集到足够信息后,以curl命令开始虚拟机metadata和VDI的传输,代码如下:

echo"pull VDIs from$ics_addr"

for name_uuid in$vdi_uuids

do

vdi_name=$(echo$name_uuid|cut-d:-f 1)

vdi_uuid=$(echo$name_uuid|cut-d:-f 2)

curl-k-o"/root/backup/${vdi_name}.vhd"

“https://$ics_user:$ics_pwd@$ics_addr/export_raw_vdi?vdi=${vdi_uuid}&form at=vhd”

done

删除虚拟化主机端back_前缀的备份虚拟机,代码如下:

echo"destroy the back_vm in the ics node"

for name_uuid in$vm_uuids

do

vm_uuid=$(echo$name_uuid|cut-d:-f 2)

ssh$ics_user@$ics_addr xe vm-destroy uuid=$vm_uuid

done

echo"done"

与上述方法相对应,本发明实施例还提供了一种虚拟机的备份装置,如图2所示,可以包括:

新建模块11,用于对待备份虚拟机做快照,并基于该快照建立对应的目标虚拟机;

备份模块12,用于将目标虚拟机的元数据及虚拟磁盘信息导出至备份服务器中,以供备份服务器对其进行去重操作后存储。

本发明实施例提供的一种虚拟机的备份装置,还可以包括:

恢复模块,用于:将备份服务器中存储的元数据及虚拟磁盘信息导入至待备份虚拟机所属的服务器存储中;基于元数据建立新建虚拟机,并基于虚拟磁盘信息建立新建虚拟磁盘;将新建虚拟磁盘连接至新建虚拟机。

本发明实施例提供的一种虚拟机的备份装置,还可以包括:

设置模块,用于接收外界输入的设置参数,并对于设置参数对应的待备份虚拟机依次进行备份。

本发明实施例提供的一种虚拟机的备份装置,还可以包括:

删除模块,用于在新建模块基于快照建立目标虚拟机之后将快照进行删除,以及用于将所述目标虚拟机的元数据及虚拟磁盘信息导出至备份服务器中之后将所述目标虚拟机进行删除。

本发明实施例提供的一种虚拟机的备份装置,还可以包括:

加密模块,用于利用私钥对元数据及虚拟磁盘信息进行加密,以供备份服务器利用公钥进行解密后获取元数据及虚拟磁盘信息。

本发明实施例提供的一种虚拟机的备份装置中相关部分的说明请参见本发明实施例提供的一种虚拟机的备份方法中对应部分的详细说明,在此不再赘述。

对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1