您好,登錄后才能下訂單哦!
本篇內容主要講解“虛擬機遷移技術怎么實現”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“虛擬機遷移技術怎么實現”吧!
如何在虛擬機和物理機以及虛擬機和虛擬機之間的遷移系統
虛擬機遷移技術為服務器虛擬化提供了便捷的方法。目前流行的虛擬化工具如 VMware,Xen,HyperV,KVM 都提供了各自的遷移組件。盡管商業的虛擬軟件功能比較強大,但是開源虛擬機如 Linux 內核虛擬機 KVM 和 XEN 發展迅速,遷移技術日趨完善。本系列文章介紹了虛擬機遷移的三種方式 P2V、V2V 和 V2P,及他們在內核虛擬機 KVM 上的實現方法,分成五個部分。本文是第一部分,全面介紹了虛擬機遷移的各種方法和相應的遷移工具 , 并且著重分析了 Linux 平臺上開源的虛擬化工具 KVM 和 XEN 實時遷移中的的內存預拷貝技術。
系統的遷移是指把源主機上的操作系統和應用程序移動到目的主機,并且能夠在目的主機上正常運行。在沒有虛擬機的時代,物理機之間的遷移依靠的是系統備份和恢復技術。在源主機上實時備份操作系統和應用程序的狀態,然后把存儲介質連接到目標主機上,最后在目標主機上恢復系統。隨著虛擬機技術的發展,系統的遷移更加靈活和多樣化。
本系列文章全面介紹了虛擬機遷移的三種方式 P2V、V2V 和 V2P,及他們在內核虛擬機 KVM 上的實現方法,分成五個部分。第一部分,介紹虛擬機遷移的各種方法和相應的遷移工具,并且著重分析 Linux 平臺上開源的虛擬化工具 KVM 和 XEN 實時遷移中的的內存預拷貝技術;
第二部分介紹 KVM 虛擬機之間的 V2V 遷移技術,包括離線遷移和在線遷移;第三部分介紹基于 VMware 或 XEN 的虛擬機如何遷移到基于 KVM 的虛擬機;第四部分介紹物理機到虛擬機遷移 P2V 和虛擬機到物理機遷移 V2P 在 KVM 虛擬機上的實現;第五部分介紹和虛擬機遷移密切相關的虛擬機克隆、快照和備份技術。
遷移服務器可以為用戶節省管理資金、維護費用和升級費用。以前的 x86 服務器,體積比較“龐大”;而現在的服務器,體積已經比以前小了許多,遷移技術使得用戶可以用一臺服務器來同時替代以前的許多臺服務器,這樣就節省了用戶大量的機房空間。另外,虛擬機中的服務器有著統一的“虛擬硬件資源”,不像以前的服務器有著許多不同的硬件資源(如主板芯片組不同,網?%Aq不同,?% 1?盤,RAID 卡,顯卡不同)。遷移后的服務器,不僅可以在?%Bx?個統一的界面中進行管理,而且通?%B ?某些虛擬機軟件,如 VMware 提供的高可用性工具,在這些服務?%Ax因?eBA各?% 7?故障停機時,可以自動切換到網絡中另外相同的虛擬服務器中,從而達到不中斷業務的目的。總之,遷移的優勢在于簡化系統維護管理, 提高系統負載均衡,增強系統錯誤容忍度和優化系統電源管理。
一個優秀的遷移工具,目標是最小化整體遷移的時間和停機時間,并且將遷移對于被遷移主機上運行服務的性能造成的影響降至最低。當然,這幾個因素互相影響,實施者需要根據遷移針對的應用的需求在其中進行衡量,選用合適的工具軟件。虛擬機遷移的性能指標包括以下三個方面:
整體遷移時間:從源主機開始遷移到遷移結束的時間
停機時間:遷移過?eA8?中,源主機、目的主機同時不可用的時間
對應用程序的?e80?能影響:遷移對于被遷移主機上運行服務性能的的影響程度。
P2V 指遷移物理服務器上的操作系統及其上的應用軟件和數據到 VMM(Virtual Machine Monitor)管理的虛擬服務器中。這種遷移方式,主要是使用各種工具軟件,把物理服務器上的系統狀態和數據“鏡像”到 VMM 提供的虛擬機中,并且在虛擬機中“替換”物理服務器的存儲硬件與網卡驅動程序。只要在虛擬服務器中安裝好相應的驅動程序并且設置與原來服務器相同的地址(如 TCP/IP 地址等),在重啟虛擬機服務器后,虛擬服務器即可以替代物理服務器進行工作。
P2V 遷移方法
手動遷移:手動完成所有遷移操作,需要對物理機系統和虛擬機環境非常了解。
關閉原有的物理機上的服務和操作系統,并且從其他媒質上啟動一個新的系統。比如從 LiveCD 上啟動一個新的光盤系統。大部分的發行版都會帶有 LiveCD。
把物理機系統的磁盤做成虛擬機鏡像文件,如有多個磁盤則需要做多個鏡像,并且拷貝鏡像到虛擬主機上。
為虛擬機創建虛擬設備,加載鏡像文件
啟動虛擬機,調整系統設置,并開啟服務。
半自動遷移:利用專業工具輔助 P2V 的遷移,把某些手動環節進行自動化。比如將物理機的磁盤數據轉換成虛擬機格式,這一向是相當耗時的工作,你可以選擇專業的工具來完成這個步驟。這里有大量的工具可以使用,如 RedHat 的開源工具 virt-p2v,Microsoft Virtual Server Migration Toolkit 等。
P2V 熱遷移:遷移中避免宕機 。大部分 P2V 工具也有一個很大的限制:在整個遷移過程中,物理機不可用。在運行關鍵任務的環境或有 SLA(服務水平協議)的地方,這種工具不可選。幸運的是隨著 P2V 技術的發展,VMware vCenter Converter 和 Microsoft Hyper-V 已經能夠提供熱遷移功能,避免宕機。目前,P2V 熱遷移僅在 Windows 物理服務器可用,未來將添加對 Linux 的支持。
V2V 遷移是在虛擬機之間移動操作系統和數據,照顧主機級別的差異和處理不同的虛擬硬件。虛擬機從一個物理機上的 VMM 遷移到另一個物理機的 VMM,這兩個 VMM 的類型可以相同,也可以不同。如 VMware 遷移到 KVM, KVM 遷移到 KVM。可以通過多種方式將虛擬機從一個 VM Host 系統移動到另一個 VM Host 系統。
V2V 離線遷移
離線遷移(offline migration):也叫做常規遷移、靜態遷移。在遷移之前將虛擬機暫停,如果共享存儲,則只拷貝系統狀態至目的主機,最后在目的主機重建虛擬機狀態,恢復執行。如果使用本地存儲,則需要同時拷貝虛擬機鏡像和狀態到目的主機。到這種方式的遷移過程需要顯示的停止虛擬機的運行。從用戶角度看,有明確的一段服務不可用的時間。這種遷移方式簡單易行,適用于對服務可用性要求不嚴格的場合。
V2V 在線遷移
在線遷移(online migration):又稱為實時遷移 (live migration)。是指在保證虛擬機上服務正常運行的同時,虛擬機在不同的物理主機之間進行遷移,其邏輯步驟與離線遷移幾乎完全一致。不同的是,為了保證遷移過程中虛擬機服務的可用,遷移過程僅有非常短暫的停機時間。遷移的前面階段,服務在源主機運行,當遷移進行到一定階段,目的主機已經具備了運行系統的必須資源,經過一個非常短暫的切換,源主機將控制權轉移到目的主機,服務在目的主機上繼續運行。對于服務本身而言,由于切換的時間非常短暫,用戶感覺不到服務的中斷,因而遷移過程對用戶是透明的。在線遷移適用于對服務可用性要求很高的場景。
目前主流的在線遷移工具,如 VMware 的 VMotion,XEN 的 xenMotion,都要求物理機之間采用 SAN(storage area network), NAS(network-attached storage)之類的集中式共享外存設備,因而在遷移時只需要考慮操作系統內存執行狀態的遷移,從而獲得較好的遷移性能。
另外,在某些沒有使用共享存儲的場合,可以使用存儲塊在線遷移技術來實現 V2V 的虛擬機在線遷移。相比較基于共享存儲的在線遷移,數據塊在線遷移的需要同時遷移虛擬機磁盤鏡像和系統內存狀態,遷移性能上打了折扣。但是他使得在采用分散式本地存儲的環境下,仍然能夠利用遷移技術轉移計算機環境,并且保證遷移過程中操作系統服務的可用性,擴展了虛擬機在線遷移的應用范圍。V2V 在線遷移技術消除了軟硬件相關性,是進行軟硬件系統升級,維護等管理操作的有力工具。
V2V 內存遷移技術
對于 VM 的內存狀態的遷移,XEN 和 KVM 都采用了主流的的預拷貝(pre-copy)的策略。遷移開始之后,源主機 VM 仍在運行,目的主機 VM 尚未啟動。遷移通過一個循環,將源主機 VM 的內存數據發送至目的主機 VM。循環第一輪發送所有內存頁數據,接下來的每一輪循環發送上一輪預拷貝過程中被 VM 寫過的臟頁內存 dirty pages。直到時機成熟,預拷貝循環結束,進入停機拷貝階段,源主機被掛起,不再有內存更新。最后一輪循環中的臟頁被傳輸至目的主機 VM。預拷貝機制極大的減少了停機拷貝階段需要傳輸的內存數據量,從而將停機時間大大縮小。
然而,對于更新速度非常快的內存部分,每次循環過程都會變臟,需要重復 pre-copy,同時也導致循環次數非常多,遷移的時間變長。針對這種情況,KVM 虛擬機建立了三個原則:集中原則,一個循環內的 dirty pages 小于等于 50;不擴散原則, 一個循環內傳輸的 dirty pages 少于新產生的;有限循環原則,循環次數必須少于 30。在實現上,就是采取了以下措施:
有限循環:循環次數和效果受到控制,對每輪 pre-copy 的效果進行計算,若 pre-copy 對于減少不一致內存數量的效果不顯著,或者循環次數超過了上限,循環將中止,進入停機拷貝階段。
在被遷移 VM 的內核設置一個內存訪問的監控模塊。在內存 pre-copy 過程中,VM 的一個進程在一個被調度運行的期間,被限制最多執行 40 次內存寫操作。這個措施直接限制了 pre-copy 過程中內存變臟的速度,其代價是對 VM 上的進程運行進行了一定的限制。
KVM 的預拷貝在線遷移過程詳解:
系統驗證目標服務器的存儲器和網絡設置是否正確,并預保留目標服務器虛擬機的資源。
當虛擬機還在源服務器上運轉時,第一個循環內將全部內存鏡像復制到目標服務器上。在這個過程中,KVM 依然會監視內存的任何變化。
以后的循環中,檢查上一個循環中內存是否發生了變化。 假如發生了變化,那么 VMM 會將發生變化的內存頁即 dirty pages 重新復制到目標服務器中,并覆蓋掉先前的內存頁。在這個階段,VMM 依然會繼續監視內存的變化情況。
VMM 會持續這樣的內存復制循環。隨著循環次數的增加,所需要復制的 dirty pages 就會明顯減少,而復制所耗費的時間就會逐漸變短,那么內存就有可能沒有足夠的時間發生變化。最后,當源服務器與目標服務器之間的差異達到一定標準時,內存復制操作才會結束,同時暫停源系統。
在源系統和目標系統都停機的情況下,將最后一個循環的 dirty-pages 和源系統設備的工作狀態復制到目標服務器。
然后,將存儲從源系統上解鎖,并鎖定在目標系統上。啟動目標服務器,并與存儲資源和網絡資源相連接。
V2P 指把一個操作系統、應用程序和數據從一個虛擬機中遷移到物理機的主硬盤上,是 P2V 的逆操作。它可以同時遷移虛擬機系統到一臺或多臺物理機上。盡管虛擬化的基本需求是整合物理機到虛擬機中,但這并不是虛擬化的唯一的應用。比如有時虛擬機上的應用程序的問題需要在物理機上驗證,以排除虛擬環境帶來的影響。另外,配置新的工作站是件令 IT 管理者頭痛的事情,但虛擬化的應用可以幫助他解決這個難題。先配置好虛擬機,然后運用硬盤克隆工具復制數據至工作站硬件,比如賽門鐵克的 Save & Restore (Ghost)。不過這種克隆方法有兩個局限:一個鏡像只能運用在同種硬件配置的機器上;要想保存配置的修改,只能重做新的鏡像。
V2P 的遷移可以通過確定目標的物理環境來手動完成,如把一個特定的硬盤加載到虛擬系統中,然后在虛擬環境中安裝操作系統、應用程序和數據,最后手動修改系統配置和驅動程序。這是一個乏味且不確定的過程,特別是在新的環境比舊的環境包含更多大量不同的硬件的情況下。為了簡化操作,我們可以利用專門的遷移工具以自動的方式來完成部分或全部遷移工作。目前支持 V2P 轉換的工具有 PlateSpin Migrate 和 EMC HomeBase。使用這樣的工具使得 V2P 轉換過程更簡易,并且比使用第三方磁盤鏡像工具更快捷。
V2P 遷移方法
V2P 的不確定性導致自動化工具不多,目前主要有以下幾種解決方案:
VMware 官方推薦的是使用 Ghost+sysprep 來實現半自動化的遷移。
基于備份和恢復操作系統的解決方案。這個方案利用了現成的系統備份恢復工具,沒有體現虛擬機和物理機的差別,類似于 P2P(Physical-to-Physical 物理機到物理機遷移)。注意備份工具能夠恢復系統到異構硬件平臺上。
開源工具的解決方案。適合 Linux/Unix 系統,使用開源工具和腳本,手動遷移系統。這個方案難度較大,適合有經驗的管理員。
回頁首
通常我們期望虛擬機的遷移能夠全部自動化或者部分自動化完成,但實際上 Linux 系統在 P2V 和 V2V 的遷移中可能遇到一些困難。本節列舉了 Linux 遷移中需要注意的地方。
磁盤分區名被硬編碼。當我們做磁盤虛擬化時,可能會使用不同類型的虛擬磁盤設備,這將會導致磁盤名字的變化。比如 Xen 虛擬機中的半虛擬化設備使用 /dev/xvda 而標準的 Linux 半虛擬化設備使用 /dev/vda。準備遷移的 Linux 系統中存在對 /dev/hd* 和 /dev/sd* 磁盤分區名分散的關聯,比如在 /etc/fstab 文件,啟動初始化文件系統 ramfs 和一些解析磁盤設備的開機啟動腳本文件中。V2V 遷移工具需要在整個磁盤上查找并修改這些關聯。有一個簡單的方法來避免這種情況: Linux 系統上主流的文件系統和交換分區類型可以使用 Lables 或 UUID 作為分區名。遷移時這些信息是被重點保護的,系統應該小心使用這些信息,一定不要使用設備作為分區名。另外,LVM 分區名和設備無關,在遷移中也不受影響。
網絡硬件設備的改變。當系統遷移時,網絡設備很可能產生變化。比如虛擬網絡設備和物理網絡設備的轉化或者不同類型的網絡設備之間的轉變。但是是他們的 MAC 地址沒有變化。MAC 地址是 IEEE 分配給物理設備制造商的,兩個物理設備不會有相同的 MAC 地址;然而虛擬網絡設備可能出現這種情況。所以在做虛擬機遷移時,你必須記錄每一個網絡設備的 MAC 地址,保證 MAC 地址和網絡設備的對應關系。
內核不支持某些虛擬設備。某些 Linux 發行版沒有 virtio 虛擬設備的驅動,可能是因為 Linux 發行版早于虛擬設備發布了;或者虛擬設備的驅動是閉源的;或者是在系統編譯時去掉了。因此,有時我們另外需要一個完全不同的內核(比如 Xen 早期的版本就是這樣的)。無論如何,在客戶機上安裝一個新的內核并且使之可以啟動是一個很大的冒險,最好避免這樣做。
Xwindow 需要重新配置。與磁盤、網絡設備一樣,系統遷移后顯示設備也會變化。理想的情況是 Xwindow 會自動處理這個的變化,探測所有的顯示設備并且使用它發現的第一個設備。但是這不意味著所有的 Linux 發行版都會以這種方式工作。
網絡環境的變化。靜態 IP 地址和靜態 DNS 解析在虛擬機遷移中 是
一個麻煩的事情。盡管不是必須的,但是最好配置系統從 DHCP 服務器自動獲得所有的網絡配置信息。
到此,相信大家對“虛擬機遷移技術怎么實現”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。