如何克隆kvm虛擬機


關於如何使用kvm虛擬化技術創建虛擬機,這里有一系列博客講的已經非常清楚了,這里不再贅述,不過其中有些小坑可能需要大家注意:

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上面的第一個虛擬機了,恭喜!!

那如果我要想創建第二個虛擬機呢?上面的流程再走一遍??要瘋啊!!

還好,我們還可以克隆clone一個kvm虛擬機出來,如下圖所示:

這里我們克隆出了一個新虛擬機,名字為node5.克隆命令為:

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

其中-o node1參數制定了待克隆的老(old)虛擬機,-n node5制定了新(new)虛擬機的名字,-f參數指定了新虛擬機鏡像所在的位置。

是不是很簡單?

呃,it's not simple as that.

這里我們先查看一下新、老兩個虛擬機的配置文件,他們的默認位置在/etc/libvirt/qemu目錄下(注意,下面我以創建node4虛擬機時的截圖為例了)

可以很明顯的看出,新老兩個虛擬機配置文件的主要區別有以下幾點:

  • 名字由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即可,修改完后記得重啟宿主機):

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM