1. 虛擬遷移遷移: ? ? ? ?系統(tǒng)的遷移是指把源主機(jī)上的操作系統(tǒng)和應(yīng)用程序移動到目的主機(jī),并且能夠在目的主機(jī)上正常運(yùn)行。在沒有虛擬機(jī)的時(shí)代,物理機(jī)之間的遷移依靠的是系統(tǒng)備份和恢復(fù)技術(shù)。在源主機(jī)上實(shí)時(shí)備份操作系統(tǒng)和應(yīng)用程序的狀態(tài),然后把存儲介質(zhì)連接到目標(biāo)主機(jī)上,最后在目標(biāo)主機(jī)上恢復(fù)系統(tǒng)。隨著虛擬機(jī)技術(shù)的發(fā)展,系統(tǒng)的遷移更加靈活和多樣化。 ? 最終我們遷移的目的就是: ? ? ? ?簡化系統(tǒng)維護(hù)管理; ??? ?高系統(tǒng)負(fù)載均衡; ??? ?增強(qiáng)系統(tǒng)錯誤容忍度; ??? 優(yōu)化系統(tǒng)電源管理。 2. 熱遷移KVM 虛擬機(jī)的熱遷移Live Migration: ? ? 服務(wù)器虛擬化技術(shù)是當(dāng)前的熱點(diǎn),而虛擬機(jī)的“熱遷移( Live Migration )”技術(shù)則是虛擬化技術(shù)當(dāng)中的熱點(diǎn)。 熱遷移(又叫動態(tài)遷移、實(shí)時(shí)遷移),即虛擬機(jī)保存( save ) / 恢復(fù) (restore) :將整個(gè)虛擬機(jī)的運(yùn)行狀態(tài)完整保存下來,同時(shí)可以快速的恢復(fù)到原有硬件平臺甚至是不同硬件平臺上?;謴?fù)以后,虛擬機(jī)仍舊平滑運(yùn)行,用戶不會察覺到任何差異。 ? 遷移的種類: P2P :物理機(jī)之間的遷移; V2P :虛擬機(jī)遷到物理機(jī); P2V :物理機(jī)遷到虛擬機(jī); V2V :虛擬機(jī)遷到虛擬機(jī)。 ?3. 熱遷移的應(yīng)用1> 虛擬機(jī)的熱遷移技術(shù)最初是被用于雙機(jī)容錯或者負(fù)載均衡:當(dāng)宿主機(jī)出現(xiàn)軟硬件故障導(dǎo)致服務(wù)異常時(shí),虛擬機(jī)可漂移到另外主機(jī)上,或者在集群中依據(jù)工作負(fù)載量的大小,選擇更換宿主機(jī)與否來保證自身良好的服務(wù)提供性。 2> 系統(tǒng)硬件維護(hù):當(dāng)前很多操作系統(tǒng)都能夠穩(wěn)定支持 7×24 運(yùn)行,但是硬件卻需要定期的進(jìn)行維護(hù)。如果使用虛擬機(jī)的動態(tài)遷移技術(shù),將虛擬機(jī)從需要維護(hù)的物理機(jī)器遷移到另外一主器,等維護(hù)完成后,在將其遷回到原來的物理機(jī)器。所有的系統(tǒng)服務(wù)和應(yīng)用程序在遷移 & 恢復(fù)后仍舊正常運(yùn)行,用戶不會察覺到由于硬件維護(hù)造成的中斷。最終實(shí)現(xiàn)了我們服務(wù)不受硬件維護(hù)干擾的 7*24 小時(shí)的工作愿望。 3> 數(shù)據(jù)庫備份:對于一些大型、關(guān)鍵的數(shù)據(jù)庫應(yīng)用,備份是一項(xiàng)重要但復(fù)雜的工作。虛擬機(jī)的保存/ 恢復(fù)可以將數(shù)據(jù)庫運(yùn)行在虛擬機(jī)中,如需備份就保存虛擬機(jī),這樣數(shù)據(jù)庫中的所有數(shù)據(jù)、狀態(tài)都做了備份。如果數(shù)據(jù)庫崩潰了,就可以通過恢復(fù)虛擬機(jī)來恢復(fù)整個(gè)數(shù)據(jù)庫。 4> 環(huán)境重現(xiàn):進(jìn)行性能測試或程序調(diào)試時(shí),都需要重現(xiàn)當(dāng)時(shí)復(fù)雜龐大并且與實(shí)時(shí)完全一致的網(wǎng)絡(luò)環(huán)境 , 不僅僅是重啟、配置軟件,而且常常需要一定的運(yùn)行時(shí)間。我們可以將各服務(wù)安裝到獨(dú)立的各個(gè)虛擬機(jī),然后利用各個(gè)獨(dú)立虛擬機(jī)部署我們所需的工作環(huán)境,可以大大縮短環(huán)境重現(xiàn)時(shí)間。 5> 計(jì)算機(jī)共享: 在一些公共場合用戶需要共享計(jì)算機(jī),但是由于不同的系統(tǒng)配置和軟件需要花費(fèi)大量的時(shí)間來配置和恢復(fù)。這時(shí)使用虛擬機(jī)的保存 /恢復(fù)可以很好地解決這個(gè)問題?;蛘咭部梢?,在物理機(jī)上運(yùn)行多個(gè)邏輯虛擬機(jī)幫助我們分配給每一個(gè)需要者一個(gè)獨(dú)立,安全,穩(wěn)定的環(huán)境。當(dāng)因?yàn)樗拗鳈C(jī)出現(xiàn)問題影響虛擬機(jī)使用時(shí),我們可以讓該虛擬機(jī)漂移到其他宿主機(jī)以此來保持正常工作。 4. 熱遷移的優(yōu)勢1> 首先是可伸縮性比較強(qiáng), IT 管理者可以在合理時(shí)間段讓運(yùn)行某些關(guān)鍵業(yè)務(wù)的服務(wù)器適當(dāng)減少工作量,以便進(jìn)行更新操作系統(tǒng),給應(yīng)用程序打補(bǔ)丁等。而到了服務(wù)高峰期,又可以彈性地進(jìn)行大負(fù)載量的運(yùn)算。虛擬機(jī)遷移過程完全透明,幾乎不影響使用。 2> 其次,現(xiàn)在的數(shù)據(jù)中心都追求環(huán)保節(jié)能, 工作量負(fù)載大的應(yīng)用程序必然會令服務(wù)器能耗增加,有了虛擬機(jī)熱遷移技術(shù),當(dāng)一臺物理服務(wù)器負(fù)載過大時(shí),系統(tǒng)管理員可以將其上面的虛擬機(jī)遷移到其他服務(wù)器,可有效減低數(shù)據(jù)中心服務(wù)器的總體能耗,再通過冷卻系統(tǒng)將數(shù)據(jù)中心的溫度保持在正常水平。 5. 熱遷移的局限進(jìn)行虛擬機(jī)的熱遷移也有不少的限制。例如, ??? ?VMotion 在進(jìn)行遷移之前,管理軟件會檢測目標(biāo)服務(wù)器的 X86 架構(gòu)是否與原服務(wù)器兼容。包括存儲設(shè)備以及處理器,虛擬機(jī)必須放到共享的存儲里, CPU 的類型也要一樣,不僅不能一個(gè)是英特爾,一個(gè)是 AMD ,甚至相同廠商不同產(chǎn)品線的CPU 也不行,比如英特爾至強(qiáng)和奔騰。 6. 衡量虛擬機(jī)遷移的效率1> 整體遷移時(shí)間:從源主機(jī)中遷移操作開始到目的主機(jī)上客戶機(jī)服務(wù)處于不可用狀態(tài)的時(shí)間,此時(shí)源主機(jī)上客戶機(jī)已經(jīng)暫停服務(wù),目的主機(jī)上的客戶機(jī)還未恢復(fù)服務(wù)。 2> 服務(wù)器停機(jī)時(shí)間:在遷移過程中,源主機(jī)和目的主機(jī)上的客戶機(jī)都處于不可用狀態(tài)的時(shí)間,此時(shí)源主機(jī)上客戶機(jī)已暫停,目的目的主機(jī)上客戶還未恢 復(fù)服務(wù)。 3> 對服務(wù)的性能影響:不僅包括遷移后的客戶機(jī)中應(yīng)用程序的性能與遷移前相對比是否有所降低,還包括遷移后對目的主機(jī)上的其他服務(wù)的性能影響。 7. Kvm 動態(tài)遷移建議和注意事項(xiàng)1> 源宿主機(jī)和目的宿主機(jī)直接盡量用網(wǎng)絡(luò)共享的存儲系統(tǒng)來保存客戶機(jī)磁盤鏡像。例如 NFS , ISCSI , Glusterfs 等。 2> 為了提高動態(tài)遷移的成功率,盡量在同類型 cpu的主機(jī)上面進(jìn)行動態(tài)遷移,盡管 kvm 動態(tài)遷移也支持從 Intel 平臺遷移到 amd 平臺。? 但,從安全性,穩(wěn)定度考慮不建議這樣去操作。 3> 64 位的客戶機(jī)只能運(yùn)行在 64 宿主機(jī)之間的遷移,而 32 位客戶機(jī)可以在 32 宿主機(jī)和 64 位宿主機(jī)之間遷移。 4> 在進(jìn)行動態(tài)遷移時(shí),被遷移客戶機(jī)的名稱是唯一的,在目的宿主機(jī)上不能有與源宿主機(jī)被遷移客戶機(jī)同名的客戶機(jī)存在。 5> 目的宿主機(jī)和源宿主機(jī)的軟件盡可能的相同。也就是同為 Vmware , KVM , Xen 等。 8. V2V遷移實(shí)例遷移所用主機(jī):192.168.16.3、192.168.16.13,從.13遷移虛擬機(jī)vm1至.3。 1> 修改主機(jī)名。主機(jī)名相同無法進(jìn)行遷移 ? 192.168.16.3 [root@localhost ~]# hostnamectl set-hostname ajyone [root@localhost ~]# hostname ajyone 192.168.16.13 [root@localhost ~]# hostnamectl set-hostname ajytwo [root@localhost ~]# hostname ajytwo ? 2> 搭建nfs共享存儲 #192.168.16.13: [root@localhost ~]# mount /dev/cdrom /mnt mount: /dev/sr0 寫保護(hù),將以只讀方式掛載 [root@localhost ~]# yum install nfs-utils rpcbind -y [root@localhost ~]# mkdir /nfsdata [root@localhost ~]# vim /etc/exports /nfsdata *(rw,sync) [root@localhost ~]# chown -R nfsnobody: /nfsdata [root@localhost ~]# systemctl restart rpcbind nfs [root@localhost ~]# systemctl stop firewalld [root@localhost ~]# setenforce 0 [root@localhost ~]# showmount -e Export list for localhost.localdomain: /nfsdata * #192.168.16.3: [root@localhost ~]# systemctl stop firewalld [root@localhost ~]# setenforce 0 [root@localhost ~]# yum install nfs-utils -y [root@localhost ~]# showmount -e 192.168.16.13 Export list for 192.168.16.13: /nfsdata * [root@localhost ~]# mkdir /nfsdata [root@localhost ~]# mount -t nfs 192.168.16.13:/nfsdata /nfsdata [root@localhost ~]# systemctl stop firewalld [root@localhost ~]# setenforce 0 [root@localhost ~]# df -h 192.168.16.13:/nfsdata 27G 12G 16G 44% /nfsdata ? 3> 先進(jìn)行冷遷移,將.8的vm3遷移至/nfsdata目錄下 [root@localhost ~]# virsh list --all Id 名稱 狀態(tài) ---------------------------------------------------- - centos7.0 關(guān)閉 - vm1 關(guān)閉 - vm2 關(guān)閉 - vm3 關(guān)閉 [root@localhost ~]# cd /etc/libvirt/qemu/ [root@localhost qemu]# ls centos7.0.xml networks vm1.xml vm2.xml vm3.xml [root@localhost qemu]# cp vm3.xml vm3.xml.bak [root@localhost qemu]# mv vm3.xml /root [root@localhost qemu]# virsh undefine vm3 域 vm3 已經(jīng)被取消定義 [root@localhost qemu]# cd /var/lib/libvirt/images/ [root@localhost images]# ls centos7.0.qcow2 CentOS-7-x86_64-DVD-1611.iso vm1.qcow2 vm3.qcow2 [root@localhost images]# mv vm3.qcow2 /nfsdata [root@localhost images]# cd /root [root@localhost ~]# ls vm3.xml [root@localhost ~]# vim vm3.xml <disk type='file' device='cdrom'> <driver name='qemu' type='raw'/> <source file='/var/lib/libvirt/images/CentOS-7-x86_64-DVD-1611.iso'/> [root@localhost ~]# cd /nfsdata/ [root@localhost nfsdata]# ls vm3.qcow2 [root@localhost ~]# virsh define vm3.xml 定義域 vm3(從 vm3.xml) [root@localhost ~]# virsh start vm3 域 vm3 已開始 [root@localhost ~]# virsh list --all Id 名稱 狀態(tài) ---------------------------------------------------- 1 vm3 running - centos7.0 關(guān)閉 - vm1 關(guān)閉 - vm2 關(guān)閉 ? 4>編輯域名解析 #每臺主機(jī)都寫 [root@localhost ~]# vim /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.16.3 ajyone 192.168.16.13 ajytwo ? 5> 兩臺宿主機(jī)互連,準(zhǔn)備熱遷移 6> 進(jìn)行遷移? ? ? 7> 遷移完成后,在.3打開遷移過去的終端vm3,查看終端業(yè)務(wù)是否停止 ? ?此時(shí)開機(jī)會提示對/nfsdata/vm3.qcow2無權(quán)限,無法打開,給權(quán)限即可 [root@localhost /]# cd /nfsdata/ [root@localhost nfsdata]# ls vm3.qcow2 [root@localhost nfsdata]# chmod 777 vm3.qcow2 [root@localhost nfsdata]# ll 總用量 1420100 -rwxrwxrwx. 1 root root 1454243840 6月 24 19:23 vm3.qcow2 [root@localhost nfsdata]# 然后再將該虛擬機(jī)遷移至192.168.16.13,查看界面是否改變,若沒有改變則表示熱遷移成功,即在不影響使用的情況下進(jìn)行了遷移
窗口界面相同,遷移成功。 來源:https://www./content-4-266351.html |
|