KVM虛擬機的熱遷移---Live Migration:
- 服務器虛擬化技術是當前的熱點,而虛擬機的「熱遷移(Live Migration)」技術則是虛擬機的運行狀態完整保存下來,同時能夠快速的回覆到原有硬件平臺甚至是不一樣硬件平臺上。恢復後,虛擬機仍舊平滑運行,用戶不會察覺到任何差別。
遷移的種類:vim
- P2P:物理機之間的遷移
- V2P:虛擬機遷到物理機
- P2V:物理機遷到虛擬機
- V2V:虛擬機遷到虛擬機
熱遷移的優點
- 首先是可伸縮性比較強,IT管理者能夠在合理時間段讓運行某些關鍵業務的服務器適當減小工做量,以便進行新操做系統,給應用程序打補丁等。而到了服務高峯期,又能夠彈性的運行大負載量的運算。虛擬機遷移過程徹底透明,幾乎不影響使用。
- 其次,如今的數據中心都追求環保節能,工做量負載大的應用程序必然會令服務器能耗增長,有了虛擬機熱遷移技術,當一臺物理機服務器負載過大時,系統管理員能夠將其上面的虛擬機熱遷移到其餘服務器,可有效下降數據中心服務器的整體能耗,再經過冷卻系統將數據中心的溫度保持在正常水平。
熱遷移的侷限
進行虛擬機的熱遷移也有很多的限制。例如:centos
VMotion在進行遷移以前,管理軟件檢測目標服務器的X86架構是否與源服務器兼容。包括存儲設備以及處理器,虛擬機必須放到共享的存儲裏,CPU的類型也要同樣,不只不能一個是英特爾,一個是AMD,甚至相同廠商不一樣產品線的CPU也不行,好比英特爾至強和奔騰。安全
KVM動態遷移,也有以下幾個建議和注意事項:
- 源宿主機和目的宿主機儘可能用網絡共享的存儲系統來保存客戶機磁盤鏡像。例如:NFS,ISCSI,Glusterfs等。
- 爲了提升動態遷移的成功率,儘可能在同類型CPU的主機上面進行動態遷移,儘管KVM動態遷移也支持從intel平臺遷移到AMD平臺,但,從安全性,穩定度考慮不建議這樣去操做
- 64位客戶機只能運行在64位宿主機之間的遷移,而32位客戶機能夠在32位宿主機和64位宿主機之間遷移。
- 進行動態遷移時,被遷移客戶機的名稱是惟一的,在目的宿主機上不能有與源宿主機被遷移客戶機同名的客戶機存在。
- 目的宿主機和源宿主機的軟件儘量的相同。也就是同爲Vmware,kvm,xen等。
V2V遷移
- 部署NFS服務器實現Linux與Linux之間的文件共享,NFS一般運行於2049端口
因爲在使用NFS服務進行文件共享以前,須要使用RPC(Remote Procedure Call,遠程過程調用)服務將NFS服務器的IP地址和端口號等信息發送給客戶端。所以,在啓動NFS服務以前,還須要順帶重啓並啓用rpcbind服務程序。服務器
服務器端配置:
- 下載nfs和rpcbind
1 [root@localhost ~]# yum install nfs-utils rpcbind -y 網絡
- 配置nfs的文件
[root@localhost ~]# mkdir /nfsdate [root@localhost ~]# vim /etc/exports /nfsdate 192.168.127.133/24(rw)
- 重啓nfs和rpcbind
1 [root@localhost ~]# systemctl restart rpcbind nfs 架構
客戶端配置:
- 下載nfs-utils
1 [root@localhost ~]# yum install nfs-utils -y app
- 查看共享文件
1 [root@localhost ~]# showmount -e 192.168.127.130 2 Export list for 192.168.127.130: 3 /nfsdate 192.168.127.133/24
- 掛在服務端nfs至本地
1 [root@localhost ~]# mkdir /nfsdate 2 [root@localhost ~]# mount -t nfs 192.168.127.130:/nfsdate /nfsdate 3 [root@localhost ~]# df -h 4 文件系統 容量 已用 可用 已用% 掛載點 5 /dev/mapper/cl-root 17G 8.3G 8.8G 49% / 6 devtmpfs 478M 0 478M 0% /dev 7 tmpfs 489M 0 489M 0% /dev/shm 8 tmpfs 489M 7.1M 482M 2% /run 9 tmpfs 489M 0 489M 0% /sys/fs/cgroup 10 /dev/sda1 1014M 141M 874M 14% /boot 11 tmpfs 98M 0 98M 0% /run/user/0 12 192.168.127.130:/nfsdate 17G 10G 7.1G 59% /nfsdate
- 服務端把要遷移虛擬機的配置文件(啓動文件)/etc/libvirt/qemu/備份到/root下和磁盤文件/var/lib/libvirt/images/移動到剛剛建立的共享文件/nfsdate中
- 把vm1的磁盤文件移動到共享文件中
1 [root@localhost ~]# cd /var/lib/libvirt/images/ 2 [root@localhost images]# ls 3 centos7.0.qcow2 CentOS-7-x86_64-DVD-1611.iso test.qcow2 vm1.qcom2 vm2.qcow2 4 [root@localhost images]# mv vm1.qcom2 /nfsdate
- 把vm1的配置文件備份到/root下
[root@localhost ~]# cd /etc/libvirt/qemu/ [root@localhost qemu]# ls centos7.0.xml networks test.xml vm1.xml vm2.xml [root@localhost qemu]# cp vm1.xml /root
- 刪除vm1虛擬機域
1 [root@localhost qemu]# ls 2 centos7.0.xml networks test.xml vm1.xml vm2.xml 3 [root@localhost qemu]# virsh undefine vm1 4 域 vm1 已經被取消定義 5 6 [root@localhost qemu]# ls 7 centos7.0.xml networks test.xml vm2.xml
- 切換到/root下修改vm1配置文件,修改其磁盤文件路徑
1 [root@localhost ~]# vim vm1.xml 2 <disk type='file' device='disk'> 3 <driver name='qemu' type='qcow2'/> 4 <source file='/nfsdate/vm1.qcom2'/> #把源路徑修改成/nfsdate 5 <target dev='vda' bus='virtio'/> 6 <boot order='1'/> 7 <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/> 8 </disk>
- 恢復vm1
1 [root@localhost ~]# virsh define vm1.xml 2 定義域 vm1(從 vm1.xml) 3 4 [root@localhost ~]# virsh list --all 5 Id 名稱 狀態 6 ---------------------------------------------------- 7 - centos7.0 關閉 8 - test 關閉 9 - vm1 關閉 10 - vm2 關閉
- 服務端和客戶端都須要作域名解析
1 [root@localhost ~]# vim /etc/hosts 2 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 3 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 4 192.168.127.130 yun1 5 192.168.127.133 yun2
- 客戶端查看共享文件
[root@localhost ~]# cd /nfsdate [root@localhost nfsdate]# ls vm1.qcom2
在宿主機中進行驗證
- 首先在宿主機中建立鏈接,是兩臺宿主機能共享。
- 建議修改兩臺宿主機的主機名,避免兩臺主機名相同。防止產生一些沒必要要的錯誤。
hostnamectl set-hostname 主機名 exit
- 點擊鏈接,而後分別輸入yes、帳戶密碼,鏈接建立完成
- 由於是熱遷移,因此要把遷移的虛擬機開啓;而後點擊遷移