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

相關文章
相關標籤/搜索