1. 程式人生 > 實用技巧 >KVM 虛擬機器冷/熱遷移

KVM 虛擬機器冷/熱遷移

  • 在進行遷移之前需要準備一臺與KVM01配置相同的機器KVM02,部署好kvm環境。

  • 裝置:
       192.168.22.136   kvm01
       192.168.22.137   kvm02

一、虛擬機器冷遷移

1、在kvm01、 kvm02 中安裝 kvm 元件

[root@kvm01/2 ~]# yum install libvirt* virt-* qemu-kvm* -y

2、配置橋接網路

[root@kvm01/2 ~]# virsh iface-bridge eth0 br0

3、將虛擬機器kvm01關機,匯出配置檔案

[root@kvm01 ~]# virsh dumpxml centos7.0 > centos7.0.xml

4、將虛擬機器配置檔案傳輸到kvm02上

1、傳輸配置檔案
[root@kvm01 ~]# scp -rp  centos7.0.xml  192.168.22.137:/root/
2、傳輸磁碟檔案
[root@kvm01 ~]# scp -rp  /var/lib/libvirt/images/centos7.0.qcow2 192.168.22.137:/var/lib/libvirt/images/

5、kvm02中匯入配置檔案

[root@kvm02 ~]# virsh define centos7.0.xml

6、啟動虛擬機器

[root@kvm02 ~]# virsh start centos7.0

7、檢視虛擬機器狀態

[root@kvm02 ~]# virsh list --all 
 Id    名稱                         狀態
----------------------------------------------------
 1     centos7.0                          running

  至此,完成了一次KVM冷遷移

二、virt-manager 和 kvm 虛擬機器熱遷移

  • 實現kvm虛擬機器熱遷移核心:共享儲存,在這裡使用的是NFS共享儲存。

1、NFS(儲存端kvm01)

[root@kvm01 ~]# vim /etc/hosts
192.168.22.136  kvm01
192.168.22.137  kvm02
​
[root@kvm01 ~]# yum -y install nfs-utils rpcbind   #安裝nfs服務
[root@kvm01 ~]# mkdir /data                        #建立共享資料夾
​
[root@kvm01 ~]# vim /etc/exports
#不壓制root許可權(當client端使用root掛載時,也有root許可權),使該網段共享該資料夾
/data    192.168.22.0/24(rw,sync,no_root_squash)
[root@kvm01 ~]# systemctl start nfs-server
[root@kvm01 ~]# systemctl enable nfs-server
[root@kvm01 ~]# exportfs -v
/data     192.168.22.0/24(rw,wdelay,no_root_squash,no_subtree_check,sec=sys,rw,secure,no_root_squash,no_all_squash)

2、nfs 客戶端(kvm02)

[root@kvm02 ~]# vim /etc/hosts
192.168.22.136  kvm01
192.168.22.137  kvm02
​
[root@kvm02 ~]# yum -y install nfs-utils rpcbind
1. 檢視儲存端共享 
   [root@client ~]# showmount -e kvm01   #這裡寫ip或主機名均可
   Export list for nas:
   /data 192.168.22.0/24
2. 手動掛載
   [root@kvm02 ~]# mount -t nfs kvm01:/data /data
   [root@kvm02 ~]# umount /data          #如果取消掛載可用該命令
3. 自動掛載到網站主目錄
   [root@kvm02 ~]# vim /etc/fstab
   nas:/data      /data           nfs     defaults        0 0
   [root@kvm02 ~]# mount -a              #如果取消掛載可用該命令
4. 檢視掛載
   [root@kvm02 ~]# df
   kvm01:/data     7923136 692416   6821568  10% /data
   注意:遠端掛載考慮到掛載失敗的問題,生產環境建議設定開機啟動掛載
5. 加入開機自啟動
   [root@kvm02 ~]# echo  'mount.nfs 192.168.22.136:/data /data' >>/etc/rc.local
   [root@kvm02 ~]# chmod +x /etc/rc.d/rc.local

3、共享映象配置(儲存端kvm01)

(1)將/var目錄下的源磁碟映象拷貝到共享目錄/data下

[root@kvm02 ~]# cp /var/lib/libvirt/images/centos7.0.qcow2 /data/

(2)用virsh edit將源虛擬機器配置路徑改到/data下

[root@kvm02 ~]# virsh edit centos7.0
改前:<source file='/var/lib/libvirt/images/centos7.0-clone.qcow2'/>
改後:<source file='/data/centos7.0-clone.qcow2'/>

(3)啟動被遷移虛擬機器,用virt-manager工具遷移

[root@kvm02 ~]# virt-manager

4、virt-manager工具進行遷移

(1)ssh方式新增連線(kvm01與kvm02做相同步驟可實現互相遷移,這裡以kvm01新增kvm02為例)

(2)兩次彈框,依次輸入“yes”和對方密碼(這裡以kvm02新增kvm01的情況為例)

(3)啟動要遷移的虛擬機器centos7.0,之後會在kvm01的virt-manager上觀察這臺機器狀態為running,且執行位置為kvm01

(4)選擇centos7.0,右鍵選擇遷移,並且選中高階選項裡的第一項(這裡是後來又換機做了實驗,153應該對應原來的137)

(5)之後觀察kvm02的virt-manager發現,執行的centos7.0遷移到了kvm02上

(6)在kvm02上檢視虛擬機器列表

[root@kvm02 ~]# virsh list --all 
 Id    名稱                         狀態
----------------------------------------------------
 1     centos7.0                          running

  至此,完成一次熱遷移