當前位置:首頁 >  IDC >  服務器 >  正文

邊緣計算體驗之二:簡單高可用 ZStack Mini的巧妙設計

 2020-06-01 13:30  來源: 互聯(lián)網(wǎng)   我來投稿 撤稿糾錯

  域名預訂/競價,好“米”不錯過

不管是中文的“健壯”,還是英文的“Strong”,通常用于形容人或動物的體格,并隱含擁有更高的生存能力,或者說在受傷失去部分生理機能后,擁有更快恢復正常的能力。

正是因為這一詞潛在的含義,也被借用以描述IT系統(tǒng)或應用程序的特點之一,比如應用程序/IT系統(tǒng)的健壯性,在遭遇bug或硬件故障的情況下,不會徹底“失能”,而是可以繼續(xù)工作并更快恢復常態(tài)。

IT系統(tǒng)的健壯性可以用“RAS”來說明,即可靠性(Reliability)、可用性(Availability)和可維護性(Serviceability)。簡單來說,可靠性意味著組成IT系統(tǒng)的各組件品質(zhì)過關,不易故障,即使某一個或多個組件發(fā)生故障,也不影響應用程序的正常運行(可用性);并且在組件或系統(tǒng)故障時,其可即時啟用替換機制,使得故障組件/系統(tǒng)快速恢復正常(可維護性)。

可以看出,可靠性和可維護性設計在一定程度上是服從可用性設計的,其目的是為了提高可用性,滿足業(yè)務連續(xù)運行(而盡可能不被中斷)的需求。

IT系統(tǒng)可用性通常用幾個“9”來衡量,如5個9、6個9,指的是系統(tǒng)可用時間的百分比,相對應的是以年為單位計算(允許的)停機時間。

試舉兩例:1個9即90%的可用性,每年允許的停機時間不超過36.5天;5個9即99.999%的可用性,每年的停機時間不能超過5分半鐘。

圖注:E企研究院整理的可用性與(允許)停機時間對照表,可用性每多一個9,單位時間內(nèi)允許的停機時間下降到十分之一:譬如,可用性為4個9(99.99%)每年允許的停機時間接近53分鐘,而5個9每年允許的停機時間則下降到5分半鐘以內(nèi)

我們知道,由于開機自檢等過程耗時較長,服務器重啟一次的時間可能超過5分鐘,這意味著每年服務器只要宕機一次,哪怕立刻恢復,5個9的可用性就保不住了。然而,硬件的單點失效(Single Point OfFailure,SPOF)是不可能徹底避免的,再加之有時軟件系統(tǒng)出的故障最終也要通過服務器重啟來解決,所以“2N”系統(tǒng)就成為保障高可用性的常見思路。譬如,兩套一樣的系統(tǒng),運行一樣的應用,訪問一樣的數(shù)據(jù),平時一主一備(Active-Passive),主系統(tǒng)出故障之后備份系統(tǒng)接管,由于后者一直在運行著,不需要經(jīng)歷一遍耗時的軟硬件啟動工作,理論上服務中斷的時間只取決于主備之間的切換速度,不要說5個9,就是6個9或者7個9,也是可以實現(xiàn)的。

理論很簡單,實現(xiàn)很復雜,包括如何保證兩套系統(tǒng)的數(shù)據(jù)和(應用)狀態(tài)盡可能一致,以便快速切換?

傳統(tǒng)計算與存儲分離的架構,最少需要兩臺服務器連接到一套雙控的存儲系統(tǒng)上,兩臺服務器之間同步應用,數(shù)據(jù)的高可用由雙控制器的存儲系統(tǒng)負責,后者使用的存儲介質(zhì)通常具備雙端口功能(如FC或SAS硬盤),數(shù)據(jù)訪問的控制權在必要時(如其中一個控制器故障)切換。相應的,網(wǎng)絡子系統(tǒng)通常也是雙冗余設置,整套解決方案的構成很是復雜。雙端口硬盤減少了數(shù)據(jù)同步的工作量,但其本身又經(jīng)常被劃歸專用設備的范疇,不符合標準化硬件結合“軟件定義”的潮流。

超融合架構(Hyper-Converged Infrastructure,HCI)則通過在工業(yè)標準服務器中采用軟件定義存儲的方式,實現(xiàn)了計算與存儲兩大角色的統(tǒng)一,提高了擴展的靈活性,降低了部署和運維的復雜性。不過,大多數(shù)超融合系統(tǒng)的分布式軟件定義存儲都采用三副本機制來避免數(shù)據(jù)丟失,加上可維護性的考慮,這些超融合系統(tǒng)通常從三節(jié)點或四節(jié)點起步,無形中又提升了用戶采購的門檻。也就是說,在不考慮網(wǎng)絡設備的情況下,不管是計算與存儲分離,還是計算與存儲一體,上述兩種小規(guī)模部署中常見的高可用架構,設備或者說節(jié)點的數(shù)量都不少于3臺——譬如超融合系統(tǒng)較為常用的2U4節(jié)點服務器,我們按照4臺服務器計算。

從架構的層面看,ZStack Mini兼具兩種架構的部分特性:一方面,它是計算與存儲一體的超融合;另一方面,其每個節(jié)點內(nèi)部的存儲子系統(tǒng)又基于傳統(tǒng)存儲系統(tǒng)常用的RAID技術。

有趣的是,通過這一組合,ZStack Mini最少只需要2臺服務器,即一臺2U2節(jié)點服務器——雖然都是2U多節(jié)點,2U2的成本可以比2U4低很多,從而顯著降低用戶的接受難度。

那么,在(最小)只有2個節(jié)點的情況下,ZStack Mini是如何保證數(shù)據(jù)和應用的高可用的呢?其存儲空間利用率又如何呢?請看我們下面的解析。

極簡架構有助于提升可靠性

可靠性是可用性的組成部分之一。能夠長期穩(wěn)定運行的可靠組件有助于系統(tǒng)的整體可用性,但“可靠”又受成本約束,“高成本的高可用”系統(tǒng)并非沒有實際意義,但門檻太高。

鑒于ZStack Mini傳承自ZStack云引擎,同時其產(chǎn)品形態(tài)(2U2節(jié)點)與2U4節(jié)點形態(tài)的超融合產(chǎn)品有一定的相似,比如2U機箱、雙冗余電源、幾乎相同的占地空間,而且兩者都可以2U為最小部署單元(超融合的3節(jié)點或4節(jié)點都用2U4),但是只有2個節(jié)點的ZStack Mini在架構上無疑更為簡單。

圖上為ZStack Mini,2U機箱內(nèi)置兩個服務器節(jié)點;圖下為較為主流的2U4節(jié)點設計的超融合一體機。從硬件數(shù)量來看,顯然2U4節(jié)點的超融合比2U2節(jié)點的ZStack Mini組件數(shù)量多得多,而且空間設計也更緊湊,每個節(jié)點面臨的擴展性和散熱等挑戰(zhàn)更大

不管是ZStack Mini還是2U4節(jié)點的超融合一體機產(chǎn)品,內(nèi)部都有多種IT硬件,每種乃至每個硬件都有故障率。以ZStack Mini中大量使用的西部數(shù)據(jù)Ultrastar DC HC310(4TB)硬盤為例,其年故障率為0.44%,系統(tǒng)內(nèi)所使用的硬件越多,其故障的風險自然越大。

西部數(shù)據(jù)官網(wǎng)公布的Ultrastar DC HC310系列硬盤的可用性,上圖中Annual failurerate(AFR)即為硬盤的年故障率(0.44%);上圖中的MTBF則表示平均故障間隔時間,為2百萬小時

與硬盤緊密相連的組件是SATA/SAS RAID卡,ZStack Mini使用了Broadcom公司推出的帶鋰電池備份單元(Battery Backup Unit,BBU)的RAID卡,在遭遇突發(fā)停機的情況下,可以將RIAD卡Cache中的數(shù)據(jù)存儲到硬盤。

ZStack Mini內(nèi)置的2節(jié)點內(nèi)部,毗鄰CPU散熱片,貼有白底標簽紙的組件即為鋰電池,其與緊貼機箱壁的RAID卡相連,在突發(fā)掉電情況下為RAID卡供電,有助于降低數(shù)據(jù)丟失風險

從上圖也可以看出,ZStack Mini中所采用的半寬2U節(jié)點,其內(nèi)部空間還是比較寬裕的,相比于2U4中的半寬1U節(jié)點,散熱條件更好,有利于升級到更高規(guī)格的CPU,而且工作溫度也是影響系統(tǒng)可靠性的一大重要因素,尤其是部署在邊緣站點或小微企業(yè)內(nèi)部的產(chǎn)品,其運行環(huán)境通常比專業(yè)數(shù)據(jù)中心復雜得多

每一個組件都有故障率,每一個組件的故障都會影響系統(tǒng)的可靠性,進而影響可用性。故障并不可怕,重要的是組件故障后,如何保障用戶的數(shù)據(jù)不丟失,甚至能夠讓應用持續(xù)運行,繼續(xù)可用,這是在系統(tǒng)或解決方案設計時最重要的目標之一。

除了應用的可用性,還要考慮數(shù)據(jù)的可用性,并且避免存儲子系統(tǒng)的故障導致數(shù)據(jù)丟失。據(jù)ZStack介紹,ZStack Mini通過兩副本加兩糾刪碼的雙重保險保障數(shù)據(jù)安全,只有在至少兩個節(jié)點各兩塊硬盤同時損壞的場景下才有數(shù)據(jù)丟失的風險,整體數(shù)據(jù)可用率高達99.999995%,比通常超融合雙副本安全系數(shù)高4個9,比三副本安全系數(shù)高2個9,這又是怎么做到的呢?

節(jié)點內(nèi):N+1應對磁盤故障

硬盤是ZStack Mini中的數(shù)據(jù)存儲擔當,其前面板上插滿了12塊3.5英寸硬盤,平均分給2個節(jié)點使用。其中4塊(每節(jié)點各2)用于安裝操作系統(tǒng),其余8塊(每節(jié)點各4)留給用戶存儲數(shù)據(jù)。

當下,大多數(shù)超融合一體機中采用了三副本數(shù)據(jù)保護機制,將同一份數(shù)據(jù)分別存放在三臺不同的服務器內(nèi),從而在遭遇單個硬盤或節(jié)點故障后,數(shù)據(jù)仍然可正常讀寫。

ZStack Mini則頗為“非主流”的采用了基于硬件(RAID卡)的RAID技術,其中操作系統(tǒng)盤用RAID 1(鏡像)保護,每節(jié)點的4個數(shù)據(jù)盤用RAID 5(奇偶校驗)保護。

RAID技術與RISC技術誕生于同一時代,而且還師出同人,然而,RISC-V目下正是計算領域的當紅炸子雞,RAID卻已不大有人提起。其中一個很重要的原因在于,傳統(tǒng)基于硬件的RAID技術不適合大規(guī)模部署環(huán)境,在使用大容量硬盤的時候恢復時間也面臨很大的挑戰(zhàn)。

不過,RAID的核心理論和算法并沒有過時,譬如在大規(guī)模部署環(huán)境中為解決副本技術存儲容量利用率偏低而采用的糾刪碼(Erasure Code)技術,其核心算法原理與RAID 5/6是相通的,我們可以將RAID 5視為N+1的糾刪碼。

而在小規(guī)模部署環(huán)境中,譬如ZStack Mini這種每個節(jié)點只有個位數(shù)硬盤的情況下,RAID技術仍然能夠發(fā)揮很好的作用,RAID卡還可以把CPU從底層存儲任務處理中解放出來,貢獻更多的虛擬機。

理論基礎有了,接下來我們就通過在實際應用運行場景下直接拔盤的手段來驗證ZStack Mini節(jié)點是否還能正常工作,以下視頻為驗證過程:

視頻解讀:在初始化好的ZStack Mini中,E企研究院創(chuàng)建了一個Windows 10(試用版)操作系統(tǒng)的虛機,然后安裝Adobe PremierePro CS6(試用版)軟件,這是Windows平臺下主流的視頻剪輯軟件。

我們將幾個視頻片段導入到Premiere中,剪輯拼合成一個視頻,利用Premiere對這個剪輯后的視頻進行渲染。在渲染過程中(大約渲染了三分之一進度之后),我們直接拔掉了此虛機所在物理節(jié)點上的一塊用于數(shù)據(jù)存儲的硬盤(4TB)。但Premiere的渲染任務并沒有停頓,正常完成。但在ZStack Mini的管理后臺,監(jiān)控中顯示W(wǎng)indows 10虛機所在物理節(jié)點出現(xiàn)硬盤故障,性能和可用性“降級”。這意味著數(shù)據(jù)沒有丟失,應用仍可正常運行,但存在潛在風險:如果此時節(jié)點內(nèi)再有一塊硬盤發(fā)生故障,將導致數(shù)據(jù)丟失——當然,在下一節(jié)我們會看到,另一個節(jié)點不會允許這種事情發(fā)生。

當我們將被拔出的硬盤重新插入硬盤倉(相當于用新盤替換故障盤),ZStack Mini識別到健康盤已插入,并開始自動重建。

圖注:拔出后的硬盤重新插入,ZStack Mini自動進行數(shù)據(jù)重建,在管理后臺對應的監(jiān)控界面中,可以看到“重建中”狀態(tài)標志,性能監(jiān)視界面也顯示目前有持續(xù)的IO讀寫活動;直到數(shù)據(jù)“重建”完成前,RAID健康狀態(tài)都將處于“降級”狀態(tài)

通過上述模擬場景的測試驗證,ZStack Mini任意節(jié)點確實能夠有效地抵御單塊數(shù)據(jù)存儲盤故障,不會導致數(shù)據(jù)丟失或應用停頓,應用虛機仍舊無感知地繼續(xù)當前任務,直至完成或人工干預。

節(jié)點間:2N保障應用高可用

節(jié)點內(nèi)的RAID技術保證了任一磁盤故障都不會對應用造成影響,但是傳統(tǒng)基于硬件的RAID技術(更換硬盤后)重建數(shù)據(jù)的時間比較長——根據(jù)硬盤容量的不同,幾個小時不等——在此期間,如果再有一個硬盤壞掉,數(shù)據(jù)就會丟失,應用也會中斷。此外,CPU、內(nèi)存、網(wǎng)卡等部件沒有冗余,出現(xiàn)故障也可能導致停機……凡此種種,都是ZStack Mini的另一個節(jié)點發(fā)揮作用的時候,我們不妨稱之為節(jié)點級副本。

圖上為ZStack Mini正面,布滿了3.5英寸硬盤,支持熱插拔。圖下為背部,幾乎所有組件都位于節(jié)點內(nèi)部,這意味著更換除硬盤外的任一組件都需要停機

正所謂“養(yǎng)兵千日,用兵一時”,當一個節(jié)點不能正常工作的時候,另一個節(jié)點就要揣著一直在同步的數(shù)據(jù)和狀態(tài)“挺身而出”了,這就是我們通常所說的(節(jié)點級)高可用。為了驗證這一特性,我們將應用虛機設置為“高可用”之后,通過將其所在節(jié)點突然斷電的手段,驗證應用是否能夠繼續(xù)運行。

視頻解讀:ZStack Mini中的節(jié)點1因為上一個測試中拔掉其中一塊硬盤,正處于“重建”狀態(tài),在這測試中,E企研究院模擬這一“故障”節(jié)點突發(fā)斷電,以驗證ZStack Mini的高可用功能。

在節(jié)點1上有4個虛機,其中“渲染服務器”、“轉碼服務器”和“網(wǎng)管平臺”設置為高可用,作為對比,另一個名為“CentOS7.2”的虛機則不使用高可用功能。在轉碼服務器中,E企研究院將上一測試渲染好的視頻導出,并使用XCoder軟件進行轉碼。

在轉碼過程中(大約已完成三分之一的轉碼進度時),不經(jīng)過任何操作,直接關閉節(jié)點1電源,以模擬突發(fā)掉電。在節(jié)點1斷電后,ZStack Mini提示節(jié)點1失聯(lián),并報告“網(wǎng)管平臺”失聯(lián)。隨后,ZStack Mini啟動“高可用”進程,開始遷移開啟了“高可用”功能的應用虛機,大約1分鐘后,原來位于節(jié)點1上,并開啟了“高可用”功能的虛機在節(jié)點2上重啟。

“轉碼服務器”重啟之后,XCoder之前的任務進度清零,并自動重新開始任務。我們經(jīng)過測試證明,當ZStack Mini上任一節(jié)點掉電后,其上開啟了“高可用”功能的虛機將自動遷移到另一正常運行節(jié)點。

通過上述的兩階段驗證,可以看出,不管是在硬盤組件故障,還是節(jié)點級故障,ZStack Mini都具有良好的可用性,應用能夠無間斷或經(jīng)歷短暫停頓后繼續(xù)運行,不會造成數(shù)據(jù)丟失。

計算存儲:效率和數(shù)據(jù)持久性

在使用這套ZStack Mini的過程中,我們與一些對此產(chǎn)品有興趣的潛在用戶進行了溝通,發(fā)現(xiàn)有一個很有代表性的問題:兩個節(jié)點一主一備,可用性是保證了,但是硬件的利用率豈不是只有一半?會不會很浪費?

這個問題可以從計算和存儲資源兩個層面來看。

從應用的層面來說,如前面的測試環(huán)節(jié)中所提到的,應用所在的虛機,“高可用”功能是可選的,也就是說只有開啟這一功能,虛機才會同時占用兩個節(jié)點的計算資源,這也是為了保證應用持續(xù)運行所必須付出的代價。如果某個應用對可用性的要求沒有那么高,就可不開啟“高可用”,也就省去了不必要的浪費。

從存儲的層面來說,ZStack Mini所有的用戶數(shù)據(jù)都在兩個節(jié)點上鏡像存儲,這樣即使一個節(jié)點完全損壞,數(shù)據(jù)也不至于丟失。從數(shù)據(jù)盤的存儲利用率來看,節(jié)點間是1+1(鏡像),節(jié)點內(nèi)是3+1(4個盤的RAID 5),所以總體效率是0.5×0.75=0.375,即不到一半的水平。

看起來不高是么?作為對比,三副本的超融合系統(tǒng),存儲利用率為三分之一,即0.333——如此看來,ZStack Mini還略占優(yōu)勢呢。

ZStack方面也對Mini在數(shù)據(jù)持久性上的優(yōu)勢進行了解釋:

雙副本數(shù)據(jù)持久性失效的概率等于分布在不同計算節(jié)點的任意兩個盤同時損壞的概率,按照 Google的磁盤年損壞率數(shù)據(jù)1.7%(高于硬盤廠商公布的指標)算的話,那就是1.7%×1.7%×(1/2)=0.01445%,數(shù)據(jù)持久性為98.56%,接近2個9;

雙副本+RAID5數(shù)據(jù)持久性失效的概率等于分布在不同計算節(jié)點上任意四個盤同時損壞的概率,并且必須是一邊2個,而不能是一邊4個或者一邊3個,那就是1- 1.7%×1.7%×1.7%×1.7%×(18/31) =99.999995%,即高于7個9(18/31是8塊硬盤同時壞4塊而且在兩個節(jié)點各2個的概率);

而三副本只要任意3塊盤損壞就丟數(shù)據(jù),3副本的可用性概率是1-1.7%×1.7%×1.7% =99.99951%,即高于5個9。

展望3.0:提升可維護性,助力整體可用性

可維護性是一個籠統(tǒng)的說法,但其又體現(xiàn)在產(chǎn)品設計的每一個細節(jié)。

比如說,現(xiàn)代x86服務器大多具有(驅(qū)動器)熱插拔、免工具拆裝的特點,這實際上是在硬件層面體現(xiàn)了可維護性。不借助工具,徒手即可對故障組件進行更換,縮短維護時間,自然有助于可用性(畢竟可用性也是可以用停機時間來衡量的)。

同時在軟件方面,具體到ZStack Mini來說,在初始化環(huán)節(jié)就節(jié)省了大量的時間,同時很多功能都是通過鼠標點擊,然后多個關聯(lián)流程在后臺靜默完成,這也是可維護性的體現(xiàn):盡量減少人工操作,避免人為誤操作。

當然這些還遠遠不夠。在談到ZStack Mini的未來發(fā)展時,ZStack介紹了即將推出的ZStack Mini 3.0產(chǎn)品,其將新增多個重大功能:

備份功能

目前的2.0版本經(jīng)過設置也可實現(xiàn)備份,但3.0版本將正式推出外接磁盤備份功能,可對系統(tǒng)進行定期備份,并可使用這些備份在新機器上恢復。未來,其還將支持備份到云端功能,讓數(shù)據(jù)徹底高枕無憂。

改進則與應用高可用相關。

在我們驗證“節(jié)點故障”的時候,盡管應用虛機設置了高可用,但當節(jié)點故障后,應用虛機仍需經(jīng)過短暫停頓才恢復服務。而在新的3.0版本中,在遭遇節(jié)點故障的情況下,將實現(xiàn)無間斷切換,用戶感覺不到應用虛機的停頓。

在ZStack Mini中集成應用中心

目前ZStack Mini 2.0平臺部署好以后,用戶需要手動創(chuàng)建虛機,并安裝應用程序。這對于大多數(shù)小型企業(yè)或邊緣站點而言,一是比較復雜,二是耗時。但在3.0中,ZStack將與各個ISV合作,根據(jù)不同行業(yè)的應用特點,直接將應用模板集成到應用中心,用戶只需下載即可進行部署,省卻了應用安裝過程中的復雜配置,同時在升級、維護方面也更有保障,極大地提高了可維護性。

申請創(chuàng)業(yè)報道,分享創(chuàng)業(yè)好點子。點擊此處,共同探討創(chuàng)業(yè)新機遇!

相關文章

熱門排行

信息推薦