KVM之七:KVM克隆


1、在克隆虛擬機之前,必須先暫停或者停掉kvm 虛擬機。以虛擬機 snale 為例,先暫停虛擬機,如下

 1 [root@kvm ~ 17:09:40]#virsh list  2  Id 名稱 狀態  3 ----------------------------------------------------
 4  1 snale running  5 
 6 [root@kvm ~ 17:10:34]#virsh suspend snale  7 域 snale 被掛起  8 
 9 [root@kvm ~ 17:10:55]#virsh list 10  Id 名稱 狀態 11 ----------------------------------------------------
12  1     snale                          暫停

第一種方法:針對虛擬機本身直接克隆:

1、執行命令virt-clone 

1 [root@kvm ~ 17:27:40]#virt-clone -o snale -n snale_clone -f /kvm3/snale_clone.img 2 正在克隆 snale.img                                                                           |  18 GB     02:30     
3 
4 Clone 'snale_clone' created successfully.

參數說明:

-o :指定源虛擬機 -n :命名新克隆的虛擬機 -f   :指定新克隆虛擬機的位置

克隆完成后,在生成硬盤映像文件的同時,也會克隆虛擬機的配置文件:

1 [root@kvm ~ 17:36:13]#ls /kvm3 2 snale_clone.img 3 [root@kvm ~ 17:36:16]#ls /etc/libvirt/qemu 4 autostart  networks  snale2.xml  snale_clone.xml  snale.xml

 查看各虛擬機的狀態:

1 [root@kvm ~ 17:40:28]#virsh list --all 2  Id 名稱 狀態 3 ----------------------------------------------------
4  1 snale 暫停 5  - snale2 關閉 6  -     snale_clone                    關閉

2、啟動新克隆的虛擬機,配置計算機名及IP地址:

[root@kvm ~ 17:41:50]#virsh start snale_clone 錯誤:開始域 snale_clone 失敗 錯誤:internal error process exited while connecting to monitor: char device redirected to /dev/pts/2
2016-09-29T09:42:06.983409Z qemu-kvm: Failed to start VNC server on `0.0.0.0:1': socket bind failed: Address already in use

此時是無法啟動的,要先修改它的配置文件,更改VNC端口,將port從5901改成5903

 1 [root@kvm qemu 17:56:28]#virsh edit snale_clone  2 編輯了域 snale_clone XML 配置。  3 
 4 [root@kvm qemu 17:57:11]#  5 [root@kvm qemu 17:57:11]#virsh start snale_clone  6 域 snale_clone 已開始  7 
 8 [root@kvm qemu 17:57:23]#virsh list  9  Id 名稱 狀態 10 ----------------------------------------------------
11  1 snale 暫停 12  4     snale_clone                    running

此時我們就可以登錄虛擬機進行配置了!

由於虛擬機是centos 6 系列的。克隆進行網絡配置,別忘記了修改 /etc/udev/rules.d/70-persistent-net.rules 文件。

第二種方法:復制kvm虛擬機配置文件及磁盤映象文件克隆

1 導出虛擬機 snale 的配置文件到 /etc/libvirt/qemu 目錄下並重命名為 snale_cp.xml:

[root@kvm kvm3 18:51:11]#virsh dumpxml snale >/etc/libvirt/qemu/snale_cp.xml
[root@kvm kvm3 18:58:38]#ls /etc/libvirt/qemu autostart networks snale2.xml snale_cp.xml snale.xml

2 復制kvm 虛擬磁盤文件到 /data/kvm/image 目錄下並重命名為snale_cp.img:

[root@kvm ~ 10:16:41]#cp /kvm/image/snale.img  /kvm3/snale_cp.img [root@kvm ~ 10:19:26]#ls /kvm3 snale_cp.img

3使用vi 或vim 編輯新虛擬機的主配置文件 snale_cp.xml (注:由於此時的虛擬機還未注冊,所以暫時不支持virsh edit 編譯),修改name,uuid,disk位置,vnc端口:

[root@kvm qemu 10:34:27]#vim snale_cp.xml

修改name標簽

<name>snale_cp</name>

uuid,隨意改下數值

<uuid>192fdc94-c81b-fa35-9100-0c073eee2c27</uuid>

disk標簽

<disk type='file' device='disk'>
      <driver name='qemu' type='raw' cache='none'/>
      <source file='/kvm3/snale_cp.img'/>

vnc port 唯一值,不要重復

 <graphics type='vnc' port='5904' autoport='no' listen='0.0.0.0'>

:wq

4、注冊新的虛擬機;

[root@kvm qemu 10:42:05]#virsh define /etc/libvirt/qemu/snale_cp.xml 定義域 snale_cp(從 /etc/libvirt/qemu/snale_cp.xml)

5、啟動snale_cp:

[root@kvm qemu 10:45:36]#virsh start snale_cp 域 snale_cp 已開始
[root@kvm qemu 10:46:57]#netstat -lntp|grep 5904 tcp 0      0 0.0.0.0:5904                0.0.0.0:*                   LISTEN      5288/qemu-kvm 

 


免責聲明!

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



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