kvm的vm如何遷移?

爲了方便區分宿主主機與虛擬,我們修改主機的hostname。
[root@localhost ~]# hostnamectl set-hostname kvm #修改宿主主機的主機名爲kvm
[root@localhost ~]#hostnamectl set-hostname kvmhost1 #修改宿主主機的主機名爲kvmhost1
修改完後對系統進行重啓生效。

第一種:克隆
1.克隆虛擬機:在克隆虛擬機時,需要關閉虛擬機或者掛起,才能進行克隆。
[root@kvm ~]# virt-clone -o kvmtest -n kvmtestovf -f /var/lib/libvirt/images/kvmtestovf.img
Allocating 'kvmtestovf.img' | 20 GB 00:01:06

Clone 'kvmtestovf' created successfully.
參數解析:
-o :指定源虛擬機
-n :命名新克隆的虛擬機
-f :指定新克隆虛擬機的存放位置
克隆完成後,在生成硬盤映像文件的同時,也會克隆虛擬機的配置文件。
[root@kvm ~]# ls /etc/libvirt/qemu
kvmtestovf.xml kvmtest.xml networks
[root@kvm ~]#
[root@kvm ~]# virsh list –all #查看所有虛擬機
Id Name State

kvmtest shut off
kvmtestovf shut off
2.恢復:
[root@kvm ~]# virsh start kvmtestovf #啓動克隆機
Domain kvmtestovf started
[root@kvm ~]# virsh console kvmtestovf #進入克隆機
注:如果虛擬機與克隆機同時開啓,可能會在使用VNC連接時出現某一個無法連接,這是由於端口5900被佔用,需要修改其中某一臺的VNC連接端口。

第二種:快照
1.創建一個用於保存快照文件的目錄
[root@kvm ~]# mkdir /var/lib/libvirt/images/save
拍攝快照:拍攝快照需要虛擬機處於開啓狀態,否則無法拍攝快照
[root@kvm ~]# virsh save --bypass-cache kvmtest /var/lib/libvirt/images/save/kvmtest_save –running
[root@kvm ~]# du -m /var/lib/libvirt/images/save/kvmtest_save #查看快照文件,以m顯示文件大小
測試:
[root@kvm ~]# virsh start kvmtest #啓動kvmtest虛擬機
[root@kvm ~]# virsh console kvmtest #進入虛擬機
[root@kvmhost1 ~]# mkdir -p /kvm/date/images #在虛擬機中創建文件夾
232 /var/lib/libvirt/images/save/kvmtest_save
在虛擬機中創建文件,測試還原效果。
[root@kvmhost1 ~]# mkdir -p /kvm/date/images
[root@kvmhost1 ~]# cd /kvm/date/images/
[root@kvmhost1 images]# touch test.txt
[root@kvmhost1 images]# ls
test.txt
[root@kvmhost1 images]# pwd
/kvm/date/images
[root@kvmhost1 images]#

2.恢復快照:恢復快照需要虛擬機處於關閉狀態,否則無法恢復
[root@kvm ~]# virsh restore /var/lib/libvirt/images/save/kvmtest_save --bypass-cache –running
[root@kvm ~]# virsh console kvmtest
Connected to domain kvmtest
Escape character is ^]

CentOS Linux 7 (Core)
Kernel 3.10.0-327.el7.x86_64 on an x86_64

kvmhost1 login: root
Password:
[root@kvmhost1 ~]# ls /
bin dev home lib64 mnt proc run srv tmp var
boot etc lib media opt root sbin sys usr
[root@kvmhost1 ~]#
KVM之虛擬機幾種備份方法(快照/克隆/導出)
未找到KVM目錄,已恢復到初始狀態。

第三種:導出:
[root@kvm ~]# virsh dumpxml kvmtest > /etc/libvirt/qemu/kvmtest_clone.xml
查看導出文件
[root@kvm ~]# ls /etc/libvirt/qemu
kvmtest_clone.xml kvmtestovf.xml kvmtest.xml networks
複製磁盤
[root@kvm ~]# cp /var/lib/libvirt/images/kvmtest.qcow2 /var/lib/libvirt/images/kvmtest_clone.qcow2
修改配置文件:
[root@kvm ~]# vim /etc/libvirt/qemu/kvmtest_clone.xml
注:由於此時的虛擬機還未註冊,所以暫時不支持virsh edit 編譯,所以只能用vi/vim進行編輯
修改以下內容:
1.自定義修改name標籤
<name>kvmtest</name>修改爲<name>kvmtest_clone</name>

2.修改虛擬機的UUID
任意修改其中一個值,與原有的區分開。
<uuid>6b124ca5-9adc-40ac-b0b3-a9eeefead161</uuid>修改爲<uuid>6b124ca5-9adc-40ac-b0b3-a9eeefead163</uuid>
3.修改disk標籤
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2'/>
<source file='/var/lib/libvirt/images/kvmtest.qcow2'/>
<target dev='vda' bus='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
</disk>
修改爲
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2'/>
<source file='/var/lib/libvirt/images/kvmtest_clone.qcow2'/>
<target dev='vda' bus='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
</disk>
注:根據自己磁盤存放路徑修改file值
4.修改VNC端口
<graphics type='vnc' port='5904' autoport='no' listen='0.0.0.0'>
vnc port 唯一值,不要重複。
注:如果創建的虛擬機時使用console方式連接的在xml文件中是沒有graphics項
KVM之虛擬機幾種備份方法(快照/克隆/導出)

註冊虛擬機
[root@kvm ~]# virsh define /etc/libvirt/qemu/kvmtest_clone.xml

[root@kvm ~]# virsh start kvmtest_clone

可能由於磁盤空間不夠啓動時出現以下錯誤:
[XFS] kernel: XFS (dm-0): xfs_log_force: error -5 returned

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