如何克隆kvm虚拟机

关于如何使用kvm虚拟化技术建立虚拟机,这里有一系列博客讲的已经很是清楚了,这里再也不赘述,不过其中有些小坑可能须要你们注意:html

0. 写在建立虚拟机以前(即教程的系列三以前)
1. 确认防火墙是否关闭,没有关闭的话关闭服务:
[root@localhost ~]# service iptables status
[root@localhost ~]# service iptables stop(这个必定要关掉,不然后面用vncviewer 连接安装centos 时会链接不上。另外,若是 vncviewer 链接上了但出现闪退,能够参考这个连接: http://www.centoscn.com/CentosBug/softbug/2013/0819/1373.html
只需修改vnc option里面Advanced-->expert-->ColourLevel的值为“rgb222” or “full”便可。 
说明:rgb111--8 colours,rgb222--64 colours,pal8 -- 256 colours,full -- full colours
[root@localhost ~]# chkconfig iptables off
 
2. 确认selinux是否关闭,没有关闭的话修改配置。
[root@CY-S01 ~]#vi /etc/sysconfig/selinux
SELINUX=disabled
[root@CY-S01 ~]#reboot 
 
3. 确认下 NetworkManager服务是否开启:
service NetworkManager status
若是开启的话关闭掉(这个很重要,不关闭的话回致使后面配置的 br0 桥接网卡没法启动)
service NetworkManager stop
chkconfig NetworkManager off

遵循上面的步骤以后,你极可能已经获得了本身在kvm上面的第一个虚拟机了,恭喜!!node

那若是我要想建立第二个虚拟机呢?上面的流程再走一遍??要疯啊!!linux

还好,咱们还能够克隆clone一个kvm虚拟机出来,以下图所示:centos

这里咱们克隆出了一个新虚拟机,名字为node5.克隆命令为:网络

virt-clone -o node1 -n node5 -f /home/kvm/images/node5.img

其中-o node1参数制定了待克隆的老(old)虚拟机,-n node5制定了新(new)虚拟机的名字,-f参数指定了新虚拟机镜像所在的位置。app

是否是很简单?ui

呃,it's not simple as that.spa

这里咱们先查看一下新、老两个虚拟机的配置文件,他们的默认位置在/etc/libvirt/qemu目录下(注意,下面我以建立node4虚拟机时的截图为例了)3d

能够很明显的看出,新老两个虚拟机配置文件的主要区别有如下几点:rest

  • 名字由node1变成了node4
  • uuid变了
  • 镜像的路径变了
  • mac地址变了(这个很重要)
  • vnc监听参数变了,原来是有密码的:passwd='123456',新建立的虚拟机默认没有密码(这个在后面经过vncviewer远程链接虚拟机桌面的时候很重要)

咱们待会要修改新虚拟机的配置信息时候也是从上面几点出发的。

好了,启动你的虚拟机吧:

virsh start node4

经过vncviewer链接到虚拟机桌面,此时一个很严重的问题来了,虚拟机连不上网!

嗯,敲个命令压压惊:

能够看到,/proc/net/dev文件显示咱们这时使用的是eth1端口,而/etc/sysconfig/network-scripts/下面只有ifcfg-eth0文件,没有ifcfg-eth1文件!

 

查看下/etc/udev/rules.d/70-persistent-net.rules文件:

看上面的mac地址,eth0的mac地址就是咱们diff命令中显示的原虚拟机mac地址,而eth1的mac地址才是咱们新虚拟机中的mac地址:

而ifcfg-eth0中的mac地址也是原虚拟机的mac地址(围观群众:从原虚拟机拷贝过来的,废话么,固然是原虚拟机地址)

那么问题来了,eth1网卡从哪来的?

原来系统检测到的实际mac地址(也是就是新虚拟机的正确mac地址)与配置文件(ifcfg-eth0)中的MAC地址不同, 因而便有建立了一个新的网卡eth1,可eth1并无对应的配置文件指定其如何链接到网络,因而eth1也是没法上网的,下面咱们就对系统的这个“错误认知”作一下修正!

若是这时候使用service network restart或ifup eth0启动eth0网卡,会告诉你eth0 device not found,缘由就在于你的eth0网卡mac地址是错的。

下面修改ifcfg-eth0文件内容,把mac地址和ip地址改过来:

再把/etc/udev/rules.d/70-persistent-net.rules文件中的eth0那一行删掉,把eth1改为eth0,结果以下:

重启网络服务或者ifup eth0就好啦:


 

mac地址的问题解决以后,咱们在修改下各个主机的主机名,和其对应的vnc监听端口,一个个崭新的新虚拟机就站在你的面前了,吼吼!!

修改主机名:

修改监听端口(在宿主机的/etc/libvirt/qemu目录下,如对于node4虚拟机,修改node4.xml便可,修改完后记得重启宿主机):

相关文章
相关标签/搜索