kvm虛擬機克隆有以下兩種方式:
centos
1.KVM本機虛擬機直接克隆
bash
2.經過複製xml文件與磁盤文件複製克隆 (適用於異機的靜態遷移和狀態保存便於之後使用)。ide
本次主要介紹如何複製xml文件與磁盤文件克隆虛擬機:ui
簡易版原理圖: A(模板) B(克隆) disk disk xml xml 須要更改內容 會變的內容 udev-mac uuid yum name console=ttyS0 mac 網卡配置裏的mac disk
註釋:spa
A爲模板,爲了避免和B(克隆機)起衝突,主要是硬盤和網卡衝突,須要把A的udev註釋,順手配置好yum,console=ttyS0支持命令行操做,把網卡的uuid,mac信息刪掉。命令行
B爲克隆機,爲了區分出來,不和A起衝突,須要把uuid和mac刪掉,把name和disk路徑改爲B的名字。orm
1.開機,進入模板主機,打開udev文件,註釋裏面內容,防止網卡複製爲eth1 2.配置/etc/grub.conf里加console=ttyS0 支持命令行console模式開啓虛擬機 3.cd /var/lib/libvirt/p_w_picpaths/ 4.ls一下查看是否爲qcow2模式 5.yum可配可不配 6.關機 7.qemu-img convert -f raw -O qcow2 sourcename.raw centos.qcow2 virsh edit centos6(把raw修改qcow2) 注:若是是硬盤類型是raw類型的,不支持克隆,須要轉化,若是是qcow2類型,此步則忽略。
實驗步驟:xml
1.複製配置文件與磁盤文件克隆 虛擬機
[root@localhost p_w_picpaths]# qemu-img create -f qcow2 -b rhel6.qcow2 GHOST Formatting 'GHOST', fmt=qcow2 size=8589934592 backing_file='rhel6.qcow2' encryption=off cluster_size=65536 [root@localhost p_w_picpaths]# qemu-img create -f qcow2 -b rhel6.qcow2 ClientA Formatting 'ClientA', fmt=qcow2 size=8589934592 backing_file='rhel6.qcow2' encryption=off cluster_size=65536 [root@localhost p_w_picpaths]# qemu-img create -f qcow2 -b rhel6.qcow2 ClientB Formatting 'ClientB', fmt=qcow2 size=8589934592 backing_file='rhel6.qcow2' encryption=off cluster_size=65536
2.對比文件,備份模板虛擬機的配置文件it
[root@localhost p_w_picpaths]# du -m rhel6.qcow2 223 rhel6.qcow2 [root@localhost p_w_picpaths]# du -m GHOST 1 GHOST [root@localhost p_w_picpaths]# virsh list --all Id 名稱 狀態 ---------------------------------------------------- - rhel6 關閉 克隆三個虛擬機,數量本身定 [root@localhost p_w_picpaths]# virsh dumpxml rhel6 > /etc/libvirt/qemu/ghost.xml [root@localhost p_w_picpaths]# virsh dumpxml rhel6 > /etc/libvirt/qemu/clienta.xml [root@localhost p_w_picpaths]# virsh dumpxml rhel6 > /etc/libvirt/qemu/clientb.xml [root@localhost p_w_picpaths]#
3.編輯克隆虛擬機的配置文件
(更改name,刪除UUID,修改source路徑名,刪除mac) [root@localhost p_w_picpaths]# vi /etc/libvirt/qemu/ghost.xml [root@localhost p_w_picpaths]# vi /etc/libvirt/qemu/clienta.xml [root@localhost p_w_picpaths]# vi /etc/libvirt/qemu/clientb.xml [root@localhost p_w_picpaths]# 注:因爲都須要進配置文件,就不貼出來了,反正就是更改這四個地方。
4.定義新虛擬機的配置文件
[root@localhost p_w_picpaths]# virsh define /etc/libvirt/qemu/ghost.xml 定義域 dhcp(從 /etc/libvirt/qemu/ghost.xml) [root@localhost p_w_picpaths]# virsh define /etc/libvirt/qemu/clienta.xml 定義域 clienta(從 /etc/libvirt/qemu/clienta.xml) [root@localhost p_w_picpaths]# virsh define /etc/libvirt/qemu/clientb.xml 定義域 clientb(從 /etc/libvirt/qemu/clientb.xml)
5.使用虛擬機
virsh list --all virsh start ghost virsh console ghost
結束語:
本次實驗適用於在沒有圖形化的條件下如何實現克隆虛擬機,作技術就是須要擁有一顆永不磨滅的好奇心。