关于如何使用kvm虚拟化技术建立虚拟机,这里有一系列博客讲的已经很是清楚了,这里再也不赘述,不过其中有些小坑可能须要你们注意:html
遵循上面的步骤以后,你极可能已经获得了本身在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
咱们待会要修改新虚拟机的配置信息时候也是从上面几点出发的。
好了,启动你的虚拟机吧:
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便可,修改完后记得重启宿主机):