實時遷移
實時遷移指的是在保持服務在線的前提下在不同物理主機和云服務提供商之間完成應用的遷移。借助實時遷移技術裸機服務器上運行的容器可以在不下線的情況下將內存、文件和網絡連結性從一臺服務器遷移到另一臺服務器。
實時遷移技術解決的問題主要有三:
硬件維護時需要停止服務
集群負載不均
與單一云服務提供商的過度捆綁依賴
遷移過程
下面我們來看看實時遷移的過程。
這里源節點(Source Node)指遷移之前容器所在的服務器。
目標節點(Destination Node)顧名思義指遷移的目標服務器。
遷移過程分為四個步驟:
暫停源節點,記錄內存、進程、文件系統和網絡連接狀態。
將所記錄的內容復制到目標節點。
將容器在目標節點恢復并繼續運行。
清理源節點。
雖然實時遷移不需要停止服務,但5至30秒的暫停時間不可能完全避免,所以在設計應用時需要考慮到這一點。
根據內存同步時間的不同存在兩種實時遷移的方案,具體的區別可以參考這篇文章。
容器實時遷移的四個用例
硬件維護-實時遷移技術可以將動輒數個小時的停機時間縮短到半分鐘以內,因此可以大大提高硬件維護時的服務可用性。
負載均衡-實時遷移可以在不影響服務的前提下實現負載均衡,也可以通過一定算法來實現負載均衡的自動觸發。
提高可用性-云服務的可用區是由云服務提供商所指定的。如果在不同可用區和地區之間能夠隨意進行遷移的話將能提高服務的可用性。
更改服務提供商-借助實時遷移用戶可以減輕對某個云服務提供商的過度捆綁。隨著對云服務的使用,對服務提供商的依賴會增加,因為對資源和應用重新配置部署所需要的花費會跟著增長,而實時遷移極大地簡化了更換云服務提供商所需要的工作量和時間。
小結
容器實時遷移對商業和運營團隊所帶來的好處不可勝數。它不僅減少了對服務的干擾和對運營團隊的壓力,更為運營自動化和優化的進一步發展打開了新的局面。