關於如何使用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便可,修改完後記得重啓宿主機):