KVM虛擬機靜態遷移 頂 原

如何在linux中進行鏡像虛擬機靜態遷移(KVM克隆筆記)


author:shikanon

操作

安裝virsh、qemu

sudo apt-get install qemu-kvm libvirt

拷貝image文件

先查看下要img的格式: qemu-img info devstack-controller-clone.img

image: devstack-controller.img file format: raw virtual size: 120G (128849125376 bytes) disk size: 120G [root@ue211 images]# qemu-img info devstack-controller.img image: devstack-controller.img file format: raw virtual size: 120G (128849018880 bytes) disk size: 120G

說明這是一個raw格式的image, image文件通常是raw,相對較大,不適合傳輸,所以先把raw轉爲qcow2格式: qemu-img convert -c -f raw -O qcow2 devstack-controller.img devstack-controller-clone2.img

看看轉換後的格式: qemu-img info devstack-controller-clon2e.img

image: devstack-controller-clone2.img file format: qcow2 virtual size: 120G (128849018880 bytes) disk size: 3.5G cluster_size: 65536 Format specific information: compat: 1.1 lazy refcounts: false

用scp傳到目標地址上: scp /var/lib/libvirt/images/devstack-controller-clone2.img [email protected]:/var/lib/libvirt/images/devstack-controller-clone2.img

修改和拷貝配置文件

導出配置文件:

virsh dumpxml devstack-controller > /home/devstack-controller.xml

或者直接找到路徑拷貝也可以,centos下路徑在:``

修改配置文件,主要需要修改的地方有name、uuid、mac:

<name>devstack-controller</name> <uuid>4aba494c-6f6a-f992-2ec2-23795f6c4680</uuid> <mac address='52:54:00:49:03:d2'/>

name表示虛擬機的名字 , uuid表示id號,可以用uuid命令生成, mac表示網關mac地址,

如果是遷移到其他系統,其他機器上,還需要修改emulator、source file:

<emulator>/usr/bin/kvm-spice</emulator> <source file='/var/lib/libvirt/images/devstack-controller-clone2.img'/>

emulator表示kvm路徑, source file 表示image路徑

用scp傳到目標地址上:

scp /home/devstack-controller.xml [email protected]:/home/devstack-controller.xml

將配置文件和image都傳到目標機後,將qcow2轉換爲raw:

qemu-img convert -f qcow2 -O raw devstack-controller-clone2.img devstack-controller.img

啓動虛擬機

用virsh啓動新的虛擬機

virsh define devstack-controller.xml

命令解說

qemu-img convert [-c] [-e] [-f format] filename [-O output_format] output_filename

qemu-img convert主要用來轉換鏡像格式,-c表示壓縮,只有qcow和qcow2纔有壓縮,-f表示輸入的格式,-O表示輸出的格式

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章