閒聊虛擬機遷移

序言算法

    陽光明媚,微風不躁,天是好甜,就是風有點不正經。服務器



      一生很長,你會看到各類各樣的風景,你裝飾了別人的風景,別人點綴了你的夢,歌很慵懶,在這明媚的天氣剛好合適。網絡

虛擬機遷移負載均衡

    雲平臺,虛擬機是雲平臺的基礎,沒有虛擬機,能構成雲麼?之後慢慢的應該不須要各類虛擬化的技術了,不過也就是一種資源的方式,對於用戶來講,你並不須要知道什麼物理機,虛擬機,容器,當容器修改一個主機名稱以後,你會認爲容器多是一個虛擬機,虛虛實實,恍恍惚惚。
運維


    在容器中,存在一種狀態,叫暫停態,詭異的狀態,要麼運行,要麼中止,這個世界要麼是白的,要麼是黑的,你說,這個世界還有彩色,哼。
分佈式

圖片


    在虛擬機中,也存在一種狀態,也是暫停態,此時已經不提供服務了,對於服務來講,也是暫停的,那爲何須要這種狀態?駐足停留聞花香,心裏如水波瀾驚。
ide


    對於雲平臺的IAAS來講,虛擬機是在一個資源池裏面建立的,娜裏有海量的CPU,內存,存儲,從基礎上來講,有物理機的集羣,每一個物理機提供計算,存儲,網絡資源,對於應用來講,運行在哪一個物理機上面,並無太多糾結的含義,可是對於同一個應用來講,運行在不一樣的物理機上是頗有含義的,否則一臺物理機宕機了,整個應用就掛了,再多的冗餘,再多的負載均衡就是無效的。我是誰,我在哪裏並不重要,重要的是你提供什麼樣的服務,重要的是,你有什麼樣的能力,是提供了計算能力仍是存儲能力呢?
性能


    虛擬機是個好技術,爲何須要進行遷移虛擬機,一點都不可愛。ui


    在進行運維的過程當中,不斷會碰到各類硬件錯誤,各類服務器須要更換固件,虛擬機出現了各類性能不足,延時等狀況,從而必需要能進行虛擬機的遷移。spa


    根據以上,從而分爲兩種狀況,一種狀況就是自動進行虛擬機遷移,這種主要的場景就是物理機宕機,發生的緣由有不少了,例如內核bug,例如內存不釋放,例如各類硬件損壞,主板啊,cpu,內存壞了。在這種狀況下,主要就是自動遷移了,至關於冷遷移,也就是關閉了虛擬機,而後進行虛擬機的遷移,這種狀況比較簡單。通常就是將整個物理機上運行的虛擬機一個一個的遷移,將計算,存儲,網絡都遷移到另一臺好的物理機上面。


    在進行冷遷移的時候,通常都是分佈式存儲的,從而存儲基本上不用遷移,例如鏡像文件,磁盤文件,對於虛擬機來講,運行在哪兒並不重要,這個時候的遷移只要在新的物理機上重建計算資源便可,也就是分配相應的CPU,分配相同的內存和網絡便可,通常很快,幾十秒便可完成。


    在物理機宕機的時候,須要考慮一個問題,對於應用來講,這個時候是停機的,從而對於虛擬機中提供的服務,必需要作應用自拉起,否則,每次還須要手動啓動服務,用手的操做老是讓人不屑一顧的,赤裸裸的嫌棄。


    沒有風,整個風景都是黯然失色的,然而對於應用來講,運行在哪一個物理機重要麼,有的重要,有的不重要,當一個物理機上運行的虛擬機會進行爭搶資源的時候,對於敏感的應用,會出現應用耗時增長,延遲增長的狀況,從而有的時候,須要主動的遷移虛擬機。


    從而,在進行遷移虛擬機的時候,還須要提供一種功能,指定物理機進行遷移,而不是依賴於調度算法進行遷移,並且,對於同一個應用必須分佈在不一樣的物理機上,這樣才能保證冗餘。


    冷遷移毫無心義,一點都很差玩,從而通常有難度的就是熱遷移,所謂的live migration,就是主動進行遷移的時候,對業務的影響最少,只有少許的停機時間,從而大大提供客戶服務滿意度。


    無縫熱遷移,首先考慮遷移哪些東西,例如內存,磁盤數據,分佈式存儲,不考慮磁盤數據,集羣中不考慮網絡,在哪兒都能運行,從而就只有內存數據須要進行拷貝,熱遷移的時候,老是使用預先內存拷貝的方式進行復制,選擇一個好的機器,而後將內存複製過去,此時虛擬機還在提供服務,從而內存也會被寫,從而會存在dirty pages,從而會在下次繼續進行復制,當二者之間的差別足夠小時,將原來的虛擬機進行暫停,也就是pause,而後所有複製過去,而後開機啓動,從而就完成了熱遷移,在整個過程當中,因爲中止服務的時間只有暫停的時間,從而對應用來講,是無損的,固然,也會出現幾秒鐘的沒法鏈接的狀況。


    再考慮一種狀況,你在這裏熱遷移,那邊新建立的虛擬機又調度到整個上面了,從而須要在進行遷移的時候,鎖定物理機,讓調度算法再也不將新的虛擬機調度上來,並且當使用分佈式存儲的時候,若是是計算和存儲混部,那麼須要考慮存儲的容量是否支持遷移。


    在下線一個存儲資源的時候,老是須要考慮剩餘的資源是否知足三副本的基本要求。


    遷移失敗了咋辦,在遷移一次咯,反正無所謂,要麼就是集羣的資源不足,要麼就是虛擬機的狀態不對,解決了,而後再次遷移就行了。


    暫停態,是個好狀態,就是太不正經了,所謂的在容器的進程中,存在一個參數,

--live-restore ,也是熱升級的一個參數,從而不會影響正在運行的容器。   

圖片

    知識儲備太貧乏了,每次想讚美的時候,就只能想到,我X,fuck。


    三十八度的高溫都拯救不了個人腦子。


    趁今天陽光正好,微風不躁,出去嗨吧。


    碰到了一顆不要的含羞草,確定也是感冒了。

相關文章
相關標籤/搜索