︿
Top


簡介

相信大家對於 VM 虛擬主機的「線上遷移」(Live Migration) 功能應該不陌生。簡單來說,在 Nutanix 運作環境中,運作於 AHV Hypervisor 上的 VM 虛擬主機,可以透過 Live Migration 機制,線上不中斷的遷移至其它 AHV Hypervisor 繼續運作,並且不會產生任何停機時間事件。

原則上,Live Migration 機制需要人為手動操作及觸發才行。倘若,管理人員希望達到系統自動評估後執行,重新負載平衡 Nutanix 叢集工作負載,那麼便會使用到後續介紹的「Acropolis Dynamic Scheduler,ADS」。

此外,對於「跨叢集」(Cross Cluster) 環境中,建議叢集之間的網路延遲時間為「5 ms」,系統最大可支援至「40 ms」的網路延遲時間。





Live Migration 執行程序

原則上,在 Nutanix 叢集中執行 Live Migration 時,系統將會執行下列執行程序遷移 VM 虛擬主機工作負載:

1. 首先,將會在目的端 AHV 主機上,建立 VM Placeholder。

2. 將來源端的 VM Memory 狀態,複製到目的端的 VM Placeholder 中。原則上,運作中的 VM 虛擬主機其 Memory 狀態是不斷改變的,所以複寫 VM Memory 狀態是不斷進行的,然而 AHV 會在每次的複寫中不斷減少傳送的 Memory 狀態。

3. 暫停來遠端的 VM 虛擬主機。原則上,必須當 AHV 判斷剩下的 VM Memory 狀態,能夠低於「300 ms」或更低延遲時間傳送完畢時,系統才會執行暫停來源端 VM 虛擬主機的動作,這個動作稱之為「Maximum Stun Window」。值得注意的是,倘若 VM Memory 狀態非常巨大,並且變動程度很高,AHV 之間的網路延遲時間,無法在「50 次」複製動作內完成的話,將會產生遷移失敗的情況 (Failure to Converge Error)。

4. 將來源端的 VM Final State 複製到目的端的 VM Placeholder 中。

5. 系統將會向所有連接的實體網路交換器,發送 RARP Broadcast 封包,以便更新網路交換器資訊,並適當的路由相關網路封包,確保 VM 虛擬主機在遷移期間不會遺失 TCP 連線,保持連線不中斷。

6. 將目的端的 VM 虛擬主機恢復運作。

7. 刪除來源端 VM 虛擬主機。

倘若,有 Live Migration 期間發生任何錯誤,管理人員可以參考 Nutanix KB-7949 知識庫文章,查詢「/var/log/libvirt/qemu/<vm_uuid>.log」和「/var/log/libvirt/qemu/hook.log」日誌內容,幫助進行故障排除作業。





Live Migration 執行方式

原則上,在 Nutanix 叢集中執行 Live Migration 動作,支援三種執行方式「Prism UI、aCLI、REST API」,同時為了防止資源爭奪的情況,AHv Hypervisor 也會將自動遷移的數量限制在「2 台」。

此外,預設情況下,會使用 AHV Hypervisor 中「br0 和 br0-up」網路介面盡量多的可用頻寬,以便可以快速傳輸 VM 虛擬主機的記憶體狀態至目標主機。倘若,有特殊情況,管理人員希望限制 Live Migration 時使用的頻寬,可以在 aCLI 和 REST API 執行方式中進行頻寬的限制,舉例來說,下列 aCLI 指令,將名稱為 slow-lane-VM1 的虛擬主機,遷移至目標端 AHV 主機 10.10.10.11,並限制遷移時使用的頻寬為 100Mbps。
acli vm.migrate slow-lane-VM1 bandwidth_mbps=100 host=10.10.10.11






Nutanix University 教學影片

Nutanix University YouTube 頻道中,有關 Live Migrations 影片有下列二部,有興趣的朋友不妨參考看看。




文章標籤: