前言
上篇我們分析了基于KVM的虛擬化遷移技術(shù)原理,通過這種虛擬化遷移技術(shù)能夠提供很好的在線遷移解決方案懦铺。
但是考慮到云平臺環(huán)境的復(fù)雜性担败,以及用戶需求的多樣性,在遷移過程中我們需要解決以下幾個問題:
宿主機(jī)的選擇霹菊;
磁盤鏡像處理剧蚣;
網(wǎng)絡(luò)切換設(shè)置;
內(nèi)存磁盤壓力的處理等旋廷。
因此鸠按,UCloud云平臺需要對在線遷移過程進(jìn)行多方面的優(yōu)化,本篇文章將具體分析UCloud在不同應(yīng)用場景下對KVM虛擬化遷移技術(shù)各個階段所做的優(yōu)化饶碘。
普通遷移優(yōu)化
準(zhǔn)備階段
在遷移準(zhǔn)備階段目尖,需要選擇相同業(yè)務(wù)類型的宿主機(jī),以便方便創(chuàng)建相同配置的虛擬機(jī)扎运。該機(jī)型除了具有足夠空閑內(nèi)存和磁盤的物理機(jī)外瑟曲,還需要考慮目標(biāo)物理機(jī)的配置是否合適。特別是需要考慮CPU的型號和內(nèi)核的版本號豪治。
另外洞拨,考慮到遷移過程網(wǎng)絡(luò)帶寬有限,如果帶寬被其他任務(wù)占用负拟,就會使得遷移速度下降烦衣,甚至影響最終遷移的成功率。為此掩浙,除非物理機(jī)之間的網(wǎng)絡(luò)帶寬足夠大花吟,在UCloud平臺上原則上并不允許在相同兩臺物理機(jī)之間進(jìn)行多個并行的遷移任務(wù),以便盡量確保在線遷移的成功率涣脚。
遷移階段
在線遷移過程中需要遷移虛擬機(jī)的所有磁盤和內(nèi)存數(shù)據(jù)示辈,而且虛擬機(jī)在遷移過程中并不停機(jī),這使得需要遷移更多的增量數(shù)據(jù)遣蚀。如果能夠減少數(shù)據(jù)的遷移量矾麻,就能夠減少遷移時間纱耻,從而更快的實(shí)現(xiàn)云平臺的資源動態(tài)調(diào)整和故障處理。
1. 零數(shù)據(jù)優(yōu)化:
UCloud的虛擬機(jī)使用的是本地存儲(UDisk除外)险耀,磁盤在物理機(jī)上是以文件方式存在的弄喘,這個文件是sparse文件,假設(shè)虛擬機(jī)的磁盤是100G甩牺,但實(shí)際使用了10G蘑志,那么這個磁盤文件在物理機(jī)上只占用了10G空間。如圖 2?1所示贬派,但是原生的Qemu在遷移磁盤時并沒有保持sparse特性急但,所以這個100G的磁盤遷移到目標(biāo)物理機(jī)上后就實(shí)際占用了100G空間。這個對物理機(jī)的磁盤空間來說是非常浪費(fèi)的搞乏,而且還嚴(yán)重影響遷移的完成時間波桩。
圖 2?1磁盤文件零塊數(shù)據(jù)遷移前后示意圖
圖 2?2 磁盤文件零塊數(shù)據(jù)遷移優(yōu)化示意圖
如圖 2?2 所示,我們的優(yōu)化方案就是在源端讀到全0的塊请敦,就不發(fā)送到目標(biāo)端镐躲,這樣目標(biāo)端就是跳著塊來寫一個文件,這樣就保持了磁盤文件的sparse特性侍筛。同時萤皂,考慮到線上往往存在多種Qemu版本,還要考慮到原生的Qemu和打了這個patch的Qemu之間遷移機(jī)器如何保持sparse匣椰。為此裆熙,可以通過在Qemu中接收磁盤數(shù)據(jù)過程判斷一個塊是否全部為0,如果是就不實(shí)際寫磁盤窝爪,即可解決弛车。所有的零塊數(shù)據(jù)都被跳過,不進(jìn)行傳輸蒲每。
通過上述方法就可以忽略磁盤遷移過程中的零數(shù)據(jù)纷跛,大大減少傳輸?shù)臄?shù)據(jù)量。最終邀杏,通過Qemu的這些patch贫奠,還可以明顯減少在線遷移的數(shù)據(jù)傳輸量和鏡像文件的空間占用量。
2. UDisk網(wǎng)絡(luò)盤優(yōu)化
由于UDisk是網(wǎng)絡(luò)塊存儲望蜡,在遷移一臺帶有UDisk機(jī)器時唤崭, 遷移UDisk盤是沒有必要的,因?yàn)檫@個盤可以通過網(wǎng)絡(luò)掛到目標(biāo)脖律。為此谢肾,我們在遷移時過濾掉虛擬機(jī)的UDisk盤,同時對UDisk產(chǎn)品做了改造小泉,支持多點(diǎn)掛載芦疏,這樣就解決了這個問題冕杠,提高了遷移的效率。
在遷移前目標(biāo)端DestHost會將UDisk進(jìn)行掛載操作酸茴,同時遷移過程中會跳過UDisk的傳輸分预,當(dāng)遷移結(jié)束時源端SourceHost會將UDisk進(jìn)行卸載,這樣既避免對UDisk數(shù)據(jù)進(jìn)行遷移薪捍,同時避免虛擬機(jī)在遷移過程中笼痹,對UDisk數(shù)據(jù)的訪問,實(shí)現(xiàn)遷移過程對用戶完全透明酪穿。
3. 遷移結(jié)束優(yōu)化
目前凳干,在線遷移默認(rèn)情況下它不能很好地處理內(nèi)存寫密集型的虛擬機(jī)。由于在線遷移過程中昆稿,用戶虛擬機(jī)并不關(guān)機(jī)纺座,這就使得遷移過程中用戶會不停產(chǎn)生新的內(nèi)存臟數(shù)據(jù)息拜。這些新增臟數(shù)據(jù)需要通過多次迭代的增量數(shù)據(jù)遷移來傳遞到目標(biāo)端DestHost上溉潭,并在預(yù)期新增臟數(shù)據(jù)傳輸時間少于最大停機(jī)時間時,進(jìn)行最后一次停機(jī)增量數(shù)據(jù)傳輸少欺,然后將虛擬機(jī)切換到目標(biāo)端DestHost喳瓣。
如果用戶產(chǎn)生的臟內(nèi)存數(shù)據(jù)過多,就會使得遷移的增量數(shù)據(jù)傳輸時間一直大于最大停機(jī)時間赞别,使得增量傳輸階段不斷進(jìn)行循環(huán)迭代畏陕,導(dǎo)致整個遷移過程無法完成。
圖 2?3 內(nèi)存遷移的auto-coverge優(yōu)化
由于用戶產(chǎn)生臟內(nèi)存數(shù)據(jù)的速度與虛擬機(jī)的vCPU被提交運(yùn)行的時間有關(guān)仿滔,因此能夠減少用戶虛擬機(jī)vCPU執(zhí)行時間可以阻止用戶產(chǎn)生過多的內(nèi)存臟數(shù)據(jù)惠毁,從而讓遷移數(shù)據(jù)傳輸?shù)靡栽趦?nèi)存臟數(shù)據(jù)產(chǎn)生之前的完成。
為此崎页,我們對Qemu的auto-converge功能進(jìn)行了優(yōu)化鞠绰,首先,我們提高了Qemu的throttling遷移速度飒焦,避免遷移速度限制遷移的完成時間蜈膨。其次,我們修改了auto-converge的觸發(fā)條件牺荠。在增量遷移數(shù)據(jù)時翁巍,如果產(chǎn)生臟數(shù)據(jù)的量大于上次產(chǎn)生傳輸數(shù)據(jù)量的50%,并重復(fù)發(fā)生多次休雌,則自動觸發(fā)自動auto-converge功能灶壶。該功能默認(rèn)情況下,將削減20%的虛擬機(jī)vCPU執(zhí)行時間杈曲,也就減低用戶虛機(jī)vCPU的執(zhí)行速度驰凛,并減少新增的臟數(shù)據(jù)孝情。
在每次內(nèi)存迭代開始時,它會根據(jù)之前的削減情況洒嗤,決定后續(xù)削減粒度箫荡。如果新增臟數(shù)據(jù)仍然過多,它將重復(fù)削減10%的許可vCPU的運(yùn)行時間渔隶,直至削減CPU直至99%羔挡,從而觸發(fā)最后階段的停機(jī)遷移,以完成遷移過程间唉。
雖然這種優(yōu)化會使得虛擬機(jī)的停機(jī)時間稍長绞灼,但是根據(jù)長期實(shí)踐結(jié)果,整個遷移的停機(jī)時間仍然非常谐室啊(小于100ms)低矮,因此這項優(yōu)化對提高遷移的成功率有重要意義。
4. 壓縮遷移優(yōu)化
雖然Qemu的auto-converge功能可以在一定程度上解決用戶內(nèi)存負(fù)載對遷移的影響被冒,提高遷移成功率军掂,但如果用戶產(chǎn)生的臟數(shù)據(jù)對vCPU的執(zhí)行速度依賴不大,則會使遷移的增量數(shù)據(jù)傳輸時間一直大于最大停機(jī)時間昨悼,使整個遷移過程無法完成蝗锥。考慮到內(nèi)存負(fù)載高的用戶率触,往往會反復(fù)修改某一內(nèi)存頁终议,這些內(nèi)存頁面很容易被壓縮。為此葱蝗,可以考慮在遷移內(nèi)存數(shù)據(jù)前進(jìn)行壓縮穴张。
如圖 2?6所示,當(dāng)前Qemu支持的XBZRLE壓縮算法會將之前發(fā)送的內(nèi)存頁面維護(hù)在其內(nèi)存緩存區(qū)內(nèi)两曼。在遷移內(nèi)存頁面時皂甘,會先查找該頁面是否在其XBZRLE緩存內(nèi),如果在緩存內(nèi)合愈,則進(jìn)行異或編碼叮贩,只傳輸被壓縮后的增量數(shù)據(jù);如果沒有佛析,則直接傳輸內(nèi)存頁面益老。通過這個過程可以大大減少發(fā)送內(nèi)存頁面數(shù)據(jù)量,并提高內(nèi)存遷移速度寸莫。
圖 2?4內(nèi)存遷移的xbzrle壓縮遷移優(yōu)化
目前捺萌,UCloud的在線遷移已經(jīng)使用XBZRLE進(jìn)行高內(nèi)存負(fù)載的遷移優(yōu)化。實(shí)際使用表明通過這種壓縮方法可以提高高內(nèi)存負(fù)載虛擬機(jī)的遷移成功率膘茎、并縮短遷移時間桃纯,同時CPU使用率提高也在合理范圍內(nèi)酷誓;對于普通內(nèi)存負(fù)載虛擬機(jī)的遷移,幾乎沒有額外的CPU使用率消耗态坦。后續(xù)還會結(jié)合底層硬件加速卡盐数,并適時的開啟多線程內(nèi)存壓縮遷移優(yōu)化。
切換階段
1. 源端paused優(yōu)化
遷移的過程是由Qemu來具體執(zhí)行伞梯,但是對于整個遷移過程的控制則是來自更上層的Libvirt玫氢。當(dāng)Qemu在執(zhí)行最后一步機(jī)器數(shù)據(jù)遷移切換時,兩邊的虛擬機(jī)都是處于paused狀態(tài)谜诫。后續(xù)Libvirt將關(guān)閉源端SourceHost上的被遷移虛擬機(jī)漾峡,并拉起目標(biāo)端DestHost上的對應(yīng)虛擬機(jī)。
在線遷移的最大優(yōu)點(diǎn)在于不能因?yàn)檫w移失敗而導(dǎo)致虛擬機(jī)關(guān)機(jī)喻旷,不管成功或者失敗生逸,都要保障虛擬機(jī)實(shí)例的存活(源端或目標(biāo)端)。為了加強(qiáng)遷移過程的保障且预,避免源端和目標(biāo)端關(guān)機(jī)的情況出現(xiàn)槽袄,我們將Libvirt中遷移過程源端開關(guān)機(jī)的控制邏輯移到UCloud自身的運(yùn)維管理平臺中,以便在出現(xiàn)遷移異常時辣之,及時恢復(fù)源端SourceHost上的虛擬機(jī)掰伸。這個改造上線以來,多年未出現(xiàn)過由于遷移導(dǎo)致虛擬機(jī)宕機(jī)的情況怀估。
2. OVS切換優(yōu)化
此外,我們在遷移過程中觀察到合搅,在遷移即將完成時存在數(shù)秒網(wǎng)絡(luò)中斷的情況多搀,這會導(dǎo)致用戶業(yè)務(wù)出現(xiàn)短暫中斷,使得后臺的遷移過程對用戶不透明灾部。而且為減少對用戶業(yè)務(wù)造成不利影響康铭,往往需要事先和用戶協(xié)調(diào)溝通遷移事項,限制了在線遷移的應(yīng)用赌髓。
為此从藤,我們通過大量的測試遷移實(shí)驗(yàn)發(fā)現(xiàn)最后一輪的虛擬機(jī)的遷移關(guān)機(jī)時間downtime基本在70ms左右,并不是長時間網(wǎng)絡(luò)中斷的主要原因锁蠕,而且虛擬機(jī)內(nèi)部壓力和遷移速度的變化對遷移downtime并無明顯影響夷野。考慮到UCloud的虛擬機(jī)網(wǎng)絡(luò)是采用openswitch來定義組建的荣倾,經(jīng)過大量實(shí)驗(yàn)確認(rèn)遷移過程中的網(wǎng)絡(luò)中斷時間和openswtich設(shè)置目標(biāo)端虛擬機(jī)新flow規(guī)則的延時時間存在正相關(guān)關(guān)系悯搔。
因此,UCloud專門為在線遷移開發(fā)了網(wǎng)絡(luò)下發(fā)虛擬機(jī)新flow的接口舌仍。在虛擬機(jī)遷移后到目標(biāo)端DestHost后妒貌,及時為虛擬機(jī)下發(fā)的新flow規(guī)則通危。通過優(yōu)化openswtich的網(wǎng)絡(luò)配置機(jī)制,目前已經(jīng)將遷移過程中的網(wǎng)絡(luò)中斷時間控制在幾百毫秒左右灌曙,基本做到用戶無感知菊碟,不會因?yàn)樵诰€遷移造成用戶業(yè)務(wù)的中斷。
典型應(yīng)用場景優(yōu)化
快速遷移場景
在通過上述在線遷移優(yōu)化之后在刺,UCloud平臺上的在線遷移方案已經(jīng)可以達(dá)到很好遷移成功率框沟,為保證用戶虛擬機(jī)的性能和可靠性提供了重要保障。但是增炭,考慮到部分用戶存在大容量的數(shù)據(jù)盤忍燥,如果進(jìn)行正常在線遷移,整個遷移時間非常長隙姿,無法快速降低源物理機(jī)的負(fù)載梅垄,不利于資源動態(tài)調(diào)整和故障處理。特別是如果用戶虛擬機(jī)正在運(yùn)行高IO負(fù)載業(yè)務(wù)输玷,會導(dǎo)致磁盤遷移過程遲遲無法結(jié)束队丝,最終導(dǎo)致遷移失敗。為此欲鹏,UCloud平臺針對這種場景專門進(jìn)行了磁盤高負(fù)載虛擬機(jī)的快速遷移優(yōu)化机久。
考慮到正常在線遷移在目標(biāo)端DestHost上拉起虛擬機(jī)之后,需要先通過磁盤遷移來確保目標(biāo)端DestHost上虛擬機(jī)訪問的磁盤數(shù)據(jù)和源端SourceHost相同赔嚎。為此需要跳過磁盤遷移進(jìn)行快速的遷移方案膘盖。
如圖 3?1所示,首先就需要打通目標(biāo)端DestHost和源端SourceHost之間的存儲系統(tǒng)尤误,即共享兩個Host上虛擬機(jī)鏡像的磁盤數(shù)據(jù)侠畔;同時,在此基礎(chǔ)上進(jìn)行共享存儲的跨機(jī)遷移损晤,從而實(shí)現(xiàn)先進(jìn)行虛擬機(jī)內(nèi)存和CPU等數(shù)據(jù)的遷移软棺,以便在目標(biāo)端DestHost快速拉起虛擬機(jī),緩解源端SourceHost的內(nèi)存和CPU壓力尤勋。之后喘落,再將虛擬機(jī)的大磁盤數(shù)據(jù)從源端SourceHost拉取到目標(biāo)端DestHost。最后最冰,刪除源DestHost和目標(biāo)SourceHost直接的共享存儲瘦棋。
具體快速在線遷移的具體實(shí)現(xiàn)步驟如下:
圖 3?1遠(yuǎn)程拉取磁盤數(shù)據(jù)示意圖
通過快速遷移優(yōu)化,整個完整的遷移過程所需的時間锌奴,和傳統(tǒng)的遷移方法所需的時間相當(dāng)兽狭。但是遷移過程中,共享存儲遷移的過程非常短暫,可以快速的在目標(biāo)端DestHost上拉起虛擬機(jī)VM箕慧,迅速降低源端SourceHost的負(fù)載服球,改善用戶VM之間的資源競爭,改善用戶VM的性能颠焦,特別對于具有大數(shù)據(jù)盤的VM用戶具有重要意義斩熊。
目前,UCloud平臺的快速遷移方法已經(jīng)全面上線伐庭,已經(jīng)成功為眾多用戶完成快速跨機(jī)遷移粉渠,幫助用戶解決VM的性能和可靠性問題。
跨機(jī)型場景
前述各種遷移方法圾另,通常用于相同類型的云主機(jī)之間進(jìn)行遷移霸株,特別是目標(biāo)端云主機(jī)和源云主機(jī)上的虛擬機(jī)配置需要完全一致。在UCloud云平臺集乔,除了存在普通云主機(jī)機(jī)型外去件,還存在類似方舟機(jī)型、SSD機(jī)型等許多不同存儲類型的虛擬機(jī)扰路,這些不同類型的云主機(jī)上所使用的虛擬機(jī)的磁盤配置并不完全相同尤溜。
當(dāng)用戶存在這種機(jī)型切換要求時,以往的做法往往需要對用戶虛擬機(jī)停機(jī)進(jìn)行機(jī)型類型轉(zhuǎn)換遷移汗唱,造成用戶業(yè)務(wù)中斷宫莱,不利于用戶根據(jù)不同業(yè)務(wù)需要進(jìn)行不同機(jī)型切換。但是當(dāng)用戶提出這種跨機(jī)型遷移需求時哩罪,往往伴隨著其關(guān)鍵業(yè)務(wù)負(fù)載無法滿足要求授霸,或者關(guān)鍵業(yè)務(wù)需要在更加安全可靠的環(huán)境下運(yùn)行,如果對關(guān)鍵業(yè)務(wù)進(jìn)行停機(jī)切換往往是無法接受的识椰,也極大的限制了云平臺的彈性擴(kuò)展特性绝葡。
為了滿足用戶的業(yè)務(wù)需求進(jìn)行機(jī)型升級切換,同時不停止虛擬機(jī)保證用戶業(yè)務(wù)在升級過程中繼續(xù)運(yùn)行腹鹉,為此UCloud專門開發(fā)了跨機(jī)型的特殊在線遷移方案。針對這種跨機(jī)型的特殊遷移敷硅,其關(guān)鍵點(diǎn)在于解決磁盤設(shè)備的類型轉(zhuǎn)換問題功咒。在UCloud云平臺上,用戶虛擬機(jī)作為一個Qemu進(jìn)程運(yùn)行绞蹦,該進(jìn)程需要根據(jù)底層的磁盤鏡像類型力奋,選用不同底層塊設(shè)備驅(qū)動進(jìn)行數(shù)據(jù)讀寫。
為此幽七,在進(jìn)行這種特殊跨存儲遷移時景殷,需要通過Libvirt的特殊配置,先在目標(biāo)端建立一個不同存儲類型的虛擬機(jī)(其他配置完全一樣),然后再進(jìn)行后續(xù)數(shù)據(jù)遷移猿挚。
如下圖 3?2所示咐旧,通過這種特殊配置之后,源端Qemu將通過qcow2驅(qū)動從qcow2磁盤文件中讀取客戶磁盤數(shù)據(jù)绩蜻,再通過網(wǎng)絡(luò)發(fā)送到目標(biāo)端铣墨,目標(biāo)端Qemu在接收到數(shù)據(jù)之后,通過raw驅(qū)動將數(shù)據(jù)寫入到lvm塊設(shè)備中办绝。
通過多次的反復(fù)迭代最終完成整個磁盤的遷移伊约,并最終將源端普通云主機(jī)上的用戶虛擬機(jī)遷移切換到目標(biāo)端SSD機(jī)型的云主機(jī)上。整個遷移過程對用戶是透明的孕蝉,不會對用戶業(yè)務(wù)造成不利影響屡律,即便目標(biāo)端虛擬機(jī)遷移失敗也不會影響源端用戶虛擬機(jī)的正常運(yùn)行。
圖 3?2跨機(jī)型遷移的存儲格式變換示意圖
通過這種特殊的跨機(jī)型在線遷移降淮,目前UCloud平臺可以實(shí)現(xiàn)普通云主機(jī)到SSD云主機(jī)的相互遷移超埋,也可以實(shí)現(xiàn)普通云主機(jī)到方舟高可靠機(jī)型的相互遷移,甚至通過這種遷移實(shí)現(xiàn)底層磁盤類型的轉(zhuǎn)換骤肛,從而方便用戶根據(jù)業(yè)務(wù)需要切換不同的云主機(jī)類型纳本,而且不需要中斷線上業(yè)務(wù),實(shí)現(xiàn)云平臺的彈性和擴(kuò)展性的提高腋颠。
目前繁成,這種跨機(jī)型的遷移技術(shù)在國內(nèi)云服務(wù)提供商中算是首創(chuàng),大大提高用戶選擇的彈性度淑玫,有利于用戶按需根據(jù)業(yè)務(wù)的運(yùn)營狀況適時的選擇不同的云服務(wù)巾腕。
本地升級場景
通過UCloud云平臺的在線遷移方法,可以實(shí)現(xiàn)用戶在無感知的情況下絮蒿,將用戶虛擬機(jī)遷移到一個升級過的新虛擬化運(yùn)行環(huán)境中尊搬,在避免中斷用戶業(yè)務(wù)的前提下,實(shí)現(xiàn)對虛擬化組件的性能優(yōu)化土涝、故障修復(fù)以及新功能上線等軟件升級佛寿。然而在線遷移需要遷移用戶的磁盤鏡像數(shù)據(jù),這部分花費(fèi)時間占遷移時間的絕大部分但壮。
特別是大磁盤用戶冀泻,進(jìn)行一次跨機(jī)在線遷移所需的時間往往需要花費(fèi)數(shù)小時。而且線上運(yùn)行著大量的虛擬機(jī)蜡饵,如果都進(jìn)行在線遷移需要花費(fèi)的時間成本更是非常巨大弹渔,這使得在線遷移方法無法大規(guī)模用于用戶虛擬化環(huán)境的升級。
當(dāng)前UCloud云平臺的虛擬化組件就由KVM溯祸、Qemu和Libvirt等構(gòu)成肢专,而且大多數(shù)的軟件升級都是通過升級Qemu和Libvrit完成舞肆。由于Libvirt位于虛擬化組件的最上層,它的升級不會影響正在運(yùn)行的虛擬機(jī)博杖,而且直接可生效椿胯,無需停機(jī)和遷移就可完成。而Qemu升級以往常需要通過在線遷移才能保證無感知的升級欧募⊙棺矗考慮到磁盤遷移占遷移時間的大部分,如果能夠避免磁盤的遷移就可以大大節(jié)省軟件升級的時間跟继。
為此种冬,UCloud云平臺專門開發(fā)了本地?zé)徇w移方案,以完成對Qemu軟件的性能優(yōu)化舔糖、故障修復(fù)娱两、漏洞修補(bǔ)以及新功能上線等升級功能。這種方法無需遷移虛擬機(jī)的磁盤金吗,只進(jìn)行內(nèi)存遷移十兢,從而達(dá)到快速的完成軟件升級。
如圖 3?3所示摇庙,在進(jìn)行本地?zé)嵘壍臅r候旱物,需要在本地安裝新版的Qemu_new,而原有已經(jīng)運(yùn)行的虛擬機(jī)VM_old仍然為舊版Qemu_old卫袒,然后將創(chuàng)建一臺相同配置的新虛擬機(jī)VM_new宵呛,此時新建的虛擬機(jī)VM_new的Qemu版本為Qemu_new,并且新虛擬機(jī)VM_new此時處于paused狀態(tài)夕凝。
新虛擬機(jī)VM_new和舊虛擬機(jī)VM_old之間通過socket文件進(jìn)行內(nèi)存數(shù)據(jù)遷移宝穗,這個遷移過程和普通在線遷移過程一致,也是先進(jìn)行一次全量的內(nèi)存遷移码秉,然后再進(jìn)行多次迭代的增量內(nèi)存遷移逮矛,并最終短暫停機(jī)完成最后一次的內(nèi)存和虛擬機(jī)機(jī)器信息等遷移。
圖 3?3虛擬機(jī)本地遷移的內(nèi)存遷移過程
當(dāng)前本地?zé)徇w移方法已經(jīng)在UCloud平臺上大規(guī)模應(yīng)用转砖,在實(shí)際使用過程中须鼎,不但具有普通在線遷移的優(yōu)點(diǎn),而且整個遷移過程更加快速府蔗,基本上可以秒級完成用戶虛擬機(jī)的Qemu升級莉兰,對用戶基本沒有影響。
目前礁竞,我們已經(jīng)使用本地?zé)徇w移方法解決了多個高危安全漏洞對線上Qemu的影響。另外杉辙,通過本地?zé)徇w移方法還實(shí)現(xiàn)對線上運(yùn)行Qemu版本的精簡統(tǒng)一模捂,方便對Qemu版本的維護(hù)工作。
總結(jié)
綜上所述,目前UCloud虛擬化云平臺已經(jīng)對熱遷移技術(shù)進(jìn)行了全方位的優(yōu)化狂男,包括熱遷移技術(shù)各個階段的優(yōu)化(宿主機(jī)的選擇综看、磁盤和內(nèi)存的優(yōu)化、和網(wǎng)絡(luò)的切換設(shè)置等)岖食、快速遷移優(yōu)化红碑、跨存儲類型遷移優(yōu)化、甚至本地?zé)嵘墐?yōu)化等泡垃。
此外析珊,UCloud虛擬化云平臺還提供了單獨(dú)遷移虛擬機(jī)的磁盤內(nèi)容的磁盤漂移技術(shù)、以及針對加密盤的遷移技術(shù)蔑穴。這些遷移技術(shù)已經(jīng)在UCloud云平臺上廣泛用于用戶虛擬機(jī)的負(fù)載均衡忠寻、宿主機(jī)的故障處理、甚至各種虛擬化組件的在線升級等存和。
通過這些全方位的遷移優(yōu)化奕剃,極大的保證了用戶虛擬機(jī)的不間斷穩(wěn)定運(yùn)行,有力地支撐了UCloud虛擬化云平臺的高效捐腿、彈性纵朋、高可靠性的優(yōu)點(diǎn)。
后續(xù)我們還將繼續(xù)對跨機(jī)熱遷移技術(shù)的高內(nèi)存負(fù)載茄袖、GPU機(jī)型操软、以及其他使用新型網(wǎng)卡、加速卡的特殊VM的場景進(jìn)行深入開發(fā)和優(yōu)化绞佩。
本文由『UCloud內(nèi)核團(tuán)隊』原創(chuàng)寺鸥。作者:鄭豪
——————
福利時間
如果你想親自上手,在云上部署體驗(yàn)以上技術(shù)實(shí)踐過程品山,大U為大家爭取到了100元 UCloud云服務(wù)代金券胆建,夠大家免費(fèi)使用1個月的1核/2G/20G數(shù)據(jù)盤云主機(jī)。
立即注冊UCloud肘交,在活動/邀請碼一欄填入:zhihu-ucloud笆载,即可獲得代金券。
有需求的同學(xué)快去領(lǐng)代金券吧涯呻,有問題請?zhí)砑覷Cloud運(yùn)營小妹個人微信號:Surdur進(jìn)行咨詢凉驻。
「UCloud機(jī)構(gòu)號」將獨(dú)家分享云計算領(lǐng)域的技術(shù)洞見、行業(yè)資訊以及一切你想知道的相關(guān)訊息复罐。歡迎提問&求關(guān)注 o(*////▽////*)q~
以上涝登。