本发明涉及虚拟机技术领域,特别是一种虚拟机在线克隆方法。
背景技术:
随着云计算的普及,很多应用被迁移到虚拟机上来。虚拟机上的业务系统也不断发展,很多场景需要扩大原有的业务系统的支撑容量。传统的方式是给虚拟机添加cpu、内存等资源;但是这也会遇到宿主机资源的瓶颈限制。如果其业务系统支持分布架构,则扩展新的虚拟机部署相同的应用系统是一种更加好的选择。当然这种部署方式,如果从旧的虚拟机上克隆出新的虚拟机,会大大减少业务系统运维人员的工作量,不用从零再部署业务系统,只需局部调整虚拟机主机的网络参数等就可以扩展业务系统的能力。而传统的虚拟机克隆方式,是将虚拟机关机操作,然后拷贝出虚拟机需要使用的磁盘文件。这种方式一定程度上会影响原有业务系统的运行。
技术实现要素:
本发明解决的技术问题在于提供一种虚拟机在线克隆方法,在不影响原始虚拟机的正常业务运行情况下,扩展同样系统和数据的虚拟机数量,提升原有业务的计算能力和可靠性。
本发明解决上述技术问题的技术方案是:
所述的方法包括以下步骤:
(1)获取虚拟机使用的磁盘并对磁盘进行在线快照;
(2)从快照中拷贝出快照数据;
(3)将拷贝出来的快照数据和快照依赖的源数据进行合并操作,合并成新的虚拟机使用磁盘数据;
(4)然后删除掉原始虚拟机的在线快照,恢复原虚拟机的磁盘信息;
(5)配置新的虚拟机的配置文件并启动新的虚拟机。
虚拟机使用的磁盘包括系统盘和数据盘,所述的使用的磁盘支持快照的cow(copy-on-write)技术。方便对磁盘数据进行在线快照。
从快照中拷贝出快照数据的整个拷贝过程为连续的,拷贝过程中原始快照数据保持不变。
所述新的虚拟机使用的磁盘数据为使用在线快照技术等过程产生的,其磁盘数据和被克隆虚拟机快照前的磁盘数据一样;其配置文件中和原有虚拟机的网卡配置进行变更,避免新的虚拟机和被克隆的虚拟机的网络冲突。
本发明提出了虚拟机在线克隆方法,在不影响原始虚拟机的正常业务系统运行情况下,在线扩展同样系统和数据的虚拟机数量,提升原有业务的计算能力和可靠性。
附图说明
下面结合附图对本发明进一步说明:
图1为本发明方法的流程图。
具体实施方式
本文以kvm的虚拟机克隆,kvm虚拟机的磁盘存储在分布式集群上为例,进行说明:
1、查询虚拟机使用的磁盘并对磁盘进行在线快照
(1)查询虚拟机使用的磁盘
从配置文件中可以看到虚拟机使用的磁盘文件为/instances/disk/28d0bac727c14e129aafceab52066ae7/i-fc3a3dfc/i-fc3a3dfc_snap。
(2)对磁盘文件进行快照
ls-al/instances/disk/28d0bac727c14e129aafceab52066ae7/i-fc3a3dfc/i-fc3a3dfc_snap查看对应ceph的文件为
volumes/volume-6cfdac53-98b9-4882-a3c4-8cf25249fae4
使用rbd命令对volumes/volume-6cfdac53-98b9-4882-a3c4-8cf25249fae4进行虚拟机在线磁盘快照,快照文件名称为
volumes/volume-6cfdac53-98b9-4882-a3c4-8cf25249fae4@snapshot
2、拷贝出快照数据
使用rbd命令从
volumes/volume-6cfdac53-98b9-4882-a3c4-8cf25249fae4@snapshot快照中拷贝出快照数据,快照新文件名称为volumes/volume-1cfdac52-98b9-4882-a3c4-9cf25249faec
3、使用rbd命令将快照数据
volumes/volume-1cfdac52-98b9-4882-a3c4-9cf25249faec和源数据
volumes/volume-6cfdac53-98b9-4882-a3c4-8cf25249fae4进行合并,合并产生新的磁盘数据volumes/volume-1cfdac52-98b9-4882-a3c4-9cf25249faec。
4、使用rbd命令删除
volumes/volume-6cfdac53-98b9-4882-a3c4-8cf25249fae4@snapshot快照,恢复原虚拟机的磁盘逻辑关系。
5、配置新的虚拟机配置文件并启动虚拟机
其中/dev/rbd15为ceph的volumes/
volume-1cfdac52-98b9-4882-a3c4-9cf25249faec映射块设备。
以上描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出实质性创造所获得的方案,都属于本发明保护的范围。