本文首发于烂泥行天下。
上一篇文章介绍了有关KVM虚拟机快照的创建与恢复,这篇文章我们来介绍有关KVM虚拟机克隆。
KVM虚拟机的克隆,我们可以分以下几步:
1、 使用virt-clone命令进行克隆
2、 通过virsh edit命令修改克隆后虚拟机的VNC连接端口
3、 配置克隆后虚拟机的网卡
KVM虚拟机的克隆,我们可以使用virt-clone命令进行。有关virt-clone命令的使用,我们可以通过帮助文档进行查看,如下图:
强烈建议,在克隆虚拟机之前,原来的虚拟机一定要处于关机状态。
现在我们可以使用如下命令,创建虚拟机centos的克隆服务器,如下:
virt-clone -o centos -n centos2 -f /vhostdisk/centos2.img
此命令是以虚拟机centos为依据,克隆后的虚拟机为centos2,并且该虚拟机的硬盘为/vhostdisk/centos2.img
克隆完毕后,我们现在来查看虚拟机centos2的相关信息。
list --all
可以看到目前系统中已经存在虚拟机centos2,现在查看虚拟机centos2的硬盘。
qemu-img info /vhostdisk/centos.img
通过上图我们可以很明显的看到虚拟机centos2的硬盘格式及大小和虚拟机centos是一样的。
现在克隆完毕,但是我们还不能直接使用虚拟机centos2,先来编辑centos2的配置文件。修改VNC的连接端口号。
edit centos2
VNC端口修改完毕后,我们现在来启动虚拟机centos2,如下:
虚拟机centos2启动后,我们使用ifconfig命令查看如下:
通过上图我们可以很明显的看到,没有网卡的相关信息。
为什么会出现这种情况呢?因为虚拟机centos2是通过虚拟机centos克隆过来的,现在虚拟机centos2的网卡信息是和虚拟机centos是一样的,所以我们要修改centos2的网卡信息。
先来查看70-persistent-net.rules文件,该文件是用来存放有关网卡信息。
vi /etc/udev/rules.d/70-persistent-net.rules
通过上图我们可以很明显的看到,有关eth0和eth1网卡的信息。
现在我们来查看网卡配置文件的信息,如下:
more /etc/sysconfig/network-scripts/ifcfg-eth0
注意上图中网卡的MAC地址是和70-persistent-net.rules文件中eth0网卡的MAC地址是一样的。这个就是需要我们修改的地方。
通过现在是在系统中,我们编辑两个文件不方便,不过我们可以通过以下命令,把70-persistent-net.rules文件中的内容追加到ifcfg-eth0文件中,然后再进行修改。如下:
more /etc/udev/rules.d/70-persistent-net.rules >>/etc/sysconfig/network-scripts/ifcfg-eth0
我们现在需要做的就是把70-persistent-net.rules文件中eth1网卡的MAC地址分配给eth0网卡,然后修改eth0网卡的IP地址。
eth0网卡配置最后的信息,如下:
eth0网卡的信息,修改完毕后。我们现在再来修改70-persistent-net.rules,我们需要做的就是把此文件中有关eth0网卡先注释掉,然后把eth1修改为eth0。如下:
vi /etc/udev/rules.d/70-persistent-net.rules
以上修改完毕后,我们还需要重启启动虚拟机centos2,可以使用如下命令:
shutdown –r now
系统重启后,再次登陆系统,使用ipconfig及ping命令查看。
通过上图,我们可以很明显的看到虚拟机centos2现在已经正常工作。
到此我们的KVM虚拟机克隆介绍完毕。