系統的遷移是指把源主機上的操作系統和應用程序移動到目的主機,並且 能夠在目的主機上正常運行。在沒有虛擬機的時代,物理機之間的遷移依靠 的是系統備份和恢復技術。在源主機上實時備份操作系統和應用程序的狀態, 然后把存儲介質連接到目標主機上,最后在目標主機上恢復系統。隨着虛擬機 技術的發展,系統的遷移更加靈活和多樣化。
最終我們遷移的目的就是:
簡化系統維護管理
高系統負載均衡
增強系統錯誤容忍度
優化系統電源管理
KVM 虛擬機的熱遷移 ---Live Migration: 服務器虛擬化技術是當前的熱點,而虛擬機的"熱遷移( Live Migration )"技術則是虛擬化技術當中的熱點。
熱遷移(又叫動態遷移、實時遷移),即虛擬機保存( save ) / 恢復 (restore) :將整個虛擬機的運行狀態完整保存下來,同時可以快速的恢復到 原有硬件平台甚至是不同硬件平台上。恢復以后,虛擬機仍舊平滑運行,用戶 不會察覺到任何差異。
優點:
1. 首先是可伸縮性比較強, IT 管理者可以在合理時間段讓運行某些關鍵業務 的服務器適當減少工作量,以便進行更新操作系統,給應用程序打補丁等。而 到了服務高峰期,又可以彈性地進行大負載量的運算。虛擬機遷移過程完全透 明,幾乎不影響使用。
2. 其次,現在的數據中心都追求環保節能, 工作量負載大的應用程序必然會 令服務器能耗增加,有了虛擬機熱遷移技術,當一台物理服務器負載過大時, 系統管理員可以將其上面的虛擬機遷移到其他服務器,可有效減低數據中心服 務器的總體能耗,再通過冷卻系統將數據中心的溫度保持在正常水平。
效率:
1. 整體遷移時間:從源主機中遷移操作開始到目的主機上客戶機服務處於不可 用狀態的時間,此時源主機上客戶機已經暫停服務,目的主機上的客戶機還未 恢復服務。
2. 服務器停機時間:在遷移過程中,源主機和目的主機上的客戶機都處於不可 用狀態的時間,此時源主機上客戶機已暫停,目的目的主機上客戶還未恢 復服務。
3. 對服務的性能影響:不僅包括遷移后的客戶機中應用程序的性能與遷移前相 對比是否有所降低,還包括遷移后對目的主機上的其他服務的性能影響。
注意事項:
1. 源宿主機和目的宿主機直接盡量用網絡共享的存儲系統來保存客戶機磁盤鏡 像。例如 NFS , ISCSI , Glusterfs 等。
2. 為了提高動態遷移的成功率,盡量在同類型 cpu的主機上面進行動態遷移, 盡管 kvm 動態遷移也支持從 Intel 平台遷移到 amd 平台。但,從安全性, 穩定度考慮不建議這樣去操作!!!
3. 64 位的客戶機只能運行在 64 宿主機之間的遷移,而 32 位客戶機可以在 32 宿主機和 64 位宿主機之間遷移。
4. 動態遷移的源宿主機和目的宿主機對 NX 位的設置是相同,要么同為關閉狀 態,要么同為打開狀態。在 Intel 平台上的 linux 系統中,用" cat /proc/couinfo |grep nx " 命令可以查看是否有 NX的支持。
5. 在進行動態遷移時,被遷移客戶機的名稱是唯一的,在目的宿主機上不能有 與源宿主機被遷移客戶機同名的客戶機存在。
6. 目的宿主機和源宿主機的軟件盡可能的相同。也就是同為 Vmware , KVM , Xen 等。
遷移的種類: P2P :物理機之間的遷移 ; V2P :虛擬機遷到物理機 ;P2V :物理機遷到虛擬機 ;V2V :虛擬機遷到虛擬機
冷遷移:冷遷移就是將需要遷移的虛擬機的信息文件拷貝到其他宿主機上在進行文件恢復
冷遷移的實現:
1、先將需要遷移的虛擬機進行關機;
2、將需要遷移的虛擬機的磁盤文件:/var/lib/libvirt/images/ 和xml:/etc/libvit/qemu,目錄的文件傳送到目標宿主機中;
1.先做靜態解析:將目標主機的IP和需要遷移的虛擬機的宿主機的ip和主機名分別添加到兩個宿主機的:/etc/hosts文件里
2.傳送完成后,在目標宿主機上進行恢復虛擬機:virsh define vm-name
3.冷遷移完成
注意磁盤存放路徑,如果傳送過去的磁盤文件不在/var/lib/libvirt/images/目錄下,就要在xml文件中更改默認路徑
靜態解析:將每一台虛機的虛擬機的IP地址和主機名添加到/etc/hosts文件中
無密鑰登陸:
1、先建立公鑰和私鑰:
1.ssh-key
熱遷移:實在虛擬機正在啟用的情況下進行遷移的
熱遷移的實現:
例:將宿主機TESTt1中的VM1遷移到宿主機TEST2中
靜態解析:將test1和test2的ip 和主機名添加到/etc/hosts文件中:
搭建nfs服務:
1.在TEST1中安裝NFS 和RPCBIND:yum install nfs-utils rpcbind;
2.在TEST1中的根目錄下新建一個共享文件夾:nfsdate :mkdir nfsdate ;更改文件夾的權限:chmod 777 nfsdate;
3.編輯nfs的配置文件:
vim /etc/exports
/nfsdate *(re,sync)
4.啟動NFS的服務:systemctl start nfs;查看NFS狀態:systemctl status nfs
5.檢測是否有共享目錄:showmount -e ip地址
6.在TEST2中的根目錄添加一個NFSDATE目錄:mkdir nfsdate
7.對TEST2中的NFSFATE目錄進行掛載:mount -t nfs test1:/nfsdate /nfsdate
8.將VM1的磁盤文件放入nfsdate目錄里面,並更改xml里面的device的默認路徑
9.將TEST1和TEST2的NFSDATE設置為存儲池
10.把TEST1和TEST2相互添加為連接
11.對VM1進行遷移;