1. 革命性的虛拟機移動性
VMware VMotion作為VMware VI3和vSphere産品系列的一個重要特性,常常讓很多使用者感到驚奇,具體的實作方式也一直是一個謎。實際上,VMotion已經成為伺服器虛拟化的一個标竿,如果沒有VMotion功能的虛拟化,根本沒辦法運作生産環境。
vMotion最大的特性是"整個遷移過程虛拟機應用不會中斷”,也就是說在虛拟機不停機的情況下将一台虛拟機從一個esx伺服器上遷移到另外一台伺服器上,這樣可以非常友善的在不影響業務的前提下對esx主機進行維護。VMware 客戶中 70% 都在生産中部署了 VMware VMotion 技術,此技術利用伺服器、存儲和網絡連接配接的完全虛拟化,可将正在運作的整個虛拟機從一台伺服器即刻移到另一台伺服器中。VMware VMotion 使用 VMware 的叢集檔案系統來控制對虛拟機存儲器的通路。在使用 VMotion 進行實時遷移的過程中,虛拟機的活動記憶體和準确的執行狀态通過高速網絡快速從一台伺服器傳輸到另一台伺服器,對虛拟機磁盤存儲器的通路被即刻切換到新的實體主機。由于網絡也由 VMware ESX進行了虛拟化,是以虛拟機會保留其網絡辨別和連接配接,進而確定實作無縫的遷移過程。
通過 VMware VMotion,您可以:
- 在零停機、使用者毫無察覺的情況下執行實時遷移。
- 持續地自動優化資源池中的虛拟機。
- 在無需安排停機、不中斷業務營運的情況下執行硬體維護。
- 主動将虛拟機從發生故障或性能不佳的伺服器中移出。
2. VMotion 的主機配置
要成功使用 VMotion,必須先正确配置主機,請確定已在以下每個區域中正确地配置了主機:
- 必須針對 VMotion 正确許可每台主機。
- 每台主機必須滿足 VMotion 的共享存儲器需求。
- 每台主機必須滿足 VMotion 的網絡要求。
2.1 VMotion 共享存儲器要求
在通過 VMotion 遷移期間,所遷移的虛拟機必須位于源主機和目标主機均可通路的存儲器上。共享存儲器通常位于存儲區域網絡 (SAN) 上,但也可以使用 iSCSI和 NFS 共享存儲器得以實作。
2.2 VMotion 網絡要求
VMotion 要求在所有啟用 VMotion 的主機之間設定千兆以太網 (GigE)。每台啟用 VMotion 的主機都必須至少有兩個以太網擴充卡,其中必須至少有一個是千兆以太網擴充卡:
- 確定虛拟機在源主機和目标主機上可以通路相同的子網。
- 確定用于虛拟機端口組的網絡标簽在主機之間是一緻的。在通過 VMotion 遷移期間,vCenter Server 根據比對的網絡标簽将虛拟機配置設定到端口組。
- 為擷取最佳 VMotion 性能,建議使用巨幀。
3. CPU 相容性和遷移
vCenter Server 在允許遷移正在運作或已挂起的虛拟機時會執行一些相容性檢查以確定虛拟機與目标主機相容。VMotion 在基礎 ESX/ESXi 系統之間傳輸虛拟機的運作狀況。成功的遷移要求目标主機的處理器能夠使用源主機的處理器在虛拟機遷移出源主機時使用的等效指令來執行。處理器的時脈速度和緩存大小以及處理器核心的數量可以不同,但處理器必須屬于相同的供應商類别(AMD 或 Intel),并且使用相容的功能集,以達到通過vMotion 遷移所需的相容性。已挂起的虛拟機的遷移還要求虛拟機能夠使用等效指令在目标主機上恢複執行。
開始通過 VMotion 遷移或開始已挂起虛拟機的遷移時,遷移虛拟機向導會檢查目标主機的相容性,如果有阻礙遷移的相容性問題存在,向導會生成錯誤消息。
虛拟機啟動時,會确定可用的 CPU 功能集。虛拟機的 CPU 功能集基于主機的 CPU 功能集。但是,如果主機是使用增強型 VMotion 相容性 (EVC) 的群集的一部分,或者如果虛拟機已應用 CPU 相容性掩碼,則主機的一些CPU 功能對虛拟機而言不可見。有關詳細資訊,請在 VMware 知識庫中搜尋《VMotion 和 CPU 相容性常見問題答》。
4. 關于增強型 VMotion 相容性
可以使用增強型 VMotion 相容性 (Enhanced VMotion Compatibility, EVC) 功能幫助確定群集内主機的相容性。EVC 可以確定群集内的所有主機向虛拟機提供相同的 CPU 功能集,即使這些主機上的實際 CPU也是如此。使用 EVC 可避免因 CPU 不相容而導緻通過 VMotion 遷移失敗。在“群集設定”對話框中配置 EVC。配置 EVC 時,請将群集中的所有主機處理器配置為提供基準處理能集。EVC 利用 AMD-V Extended Migration 技術(适用于 AMD 主機)和 Intel FlexMigration 技術(Intel 主機)屏蔽處理器功能,以便主機可提供早期版本的處理器的功能集。基準功能集必須等同于群集最小功能集的主機的功能集,或為主機功能集的子集。
5. VMotion 的虛拟機配置要求
以下虛拟機配置可能會阻止通過 VMotion 遷移:
- 不能使用“通過 VMotion 遷移”來遷移因群集目的而使用裸磁盤的虛拟機。
- 如果虛拟機使用目标主機上無法通路的裝置所支援的虛拟裝置,則不能使用“通過 VMotion 遷移”功能來遷移該虛拟機。(例如,不能遷移帶有源主機上實體 CD 驅動器支援的 CD 驅動器的虛拟機。)在遷移虛拟機之前,請斷開這些裝置。
- 如果虛拟機使用用戶端計算機上裝置所支援的虛拟裝置,則不能使用“通過 VMotion 遷移”功能來遷移該虛拟機。在遷移虛拟機之前,請斷開這些裝置。
6. VMotion 步驟
簡單來說,VMotion 遷移會在以下三個階段發生:
- 當請求通過 VMotion 遷移時,vCenter Server 通過其目前主機驗證現有虛拟機是否處于穩定狀況。
- 此時,虛拟機狀況資訊(記憶體、寄存器和網絡連接配接)将複制到目标主機。
- 虛拟機将恢複其新主機上的活動。如果遷移期間出錯,虛拟機将恢複其原始狀态和位置。
發生VMotion開始時,就相當于在目标機器上建立一個新的虛拟機。在新虛拟機建立過程中的前10%部分和建立其他的虛拟機沒什麼兩樣。接下去,我們開始為該虛拟機啟動VMM(虛拟機監控程式,是每個虛拟機必備的底層),這實際上就是啟動了一個新的虛拟機,并為它清空了一段記憶體位址。此時,該虛拟機并沒有通路磁盤,也沒有執行任何指令,它隻是準備好了接受記憶體段,然後填充到它自己的記憶體頁表裡。
從虛拟機建立到10%這個點,我們開始從源虛拟機将記憶體段複制到目标虛拟機,該動作需要的時間取決于網絡速度、網絡擁塞、虛拟機正在使用的記憶體大小和記憶體變化的速度(此時虛拟機仍然在正常運作中)。當完成到80%時,我們假定可以在1秒或更短時間内完成記憶體複制。接着我們就暫停源虛拟機,複制剩餘的記憶體段,啟動目标虛拟機,并且從目标虛拟機上執行反向ARP,讓網絡交換機知道新的MAC位址。當到達90%,複制最後可能變化的記憶體到目标虛拟機。接着源虛拟機被破壞(隻是解散配置和VMM),進而成功完成該次VMotion。
7. VMotion前期準備
7.1 建立VMkernel Port Group
7.2 確定源主機和目标主機的相容性
雖然這個過程很簡單,配置過程卻是有些麻煩,特别是遇到一些讓人匪夷所思的問題時,思考解決辦法往往讓人頭疼不已。
1. 檢查CPU是否相容:
2. 確定符合VMotion 網絡要求:
4. 資料及網絡映射圖:
4. 確定源主機沒有連接配接軟碟和CD/DVD:
8. VMotion過程圖解
8.1. 開始遷移
8.2 選擇遷移對象
8.3 遷移成功
遷移中虛拟機Guest OS的網絡狀況:
從這幅圖上可以看到,其實在遷移過程中網絡連接配接是有一段非常短暫的中斷的。但對于絕大多數網絡應用程式所采用的TCP/IP協定通信來說,連接配接往往會逾時重試,資料包往往會丢包重發,是以在中斷時間較短的情況下,遷移并不影響虛拟機的正常網絡通信。
9. VMotion關鍵技術
VMotion用到下述三項技術: