談到數(shù)據(jù)中心,就離不開可靠性的問題,當(dāng)可靠性陷入死局,又如何重生?
12月12日,在2018中國存儲與數(shù)據(jù)峰會——超融合技術(shù)與應(yīng)用論壇上,先智數(shù)據(jù)中國區(qū)總經(jīng)理董唯元發(fā)表主題為“可靠性的死局和重生”為題發(fā)表主題演講。經(jīng)過深入思考,董唯元反復(fù)推導(dǎo)了針對分布式存儲和超融合系統(tǒng)的可靠性計算公式,并用這個公式描繪出影響可靠性的幾大因素曲線,作為基礎(chǔ)架構(gòu)來說,在核心場景里首要過關(guān)的就是可靠性,性能次之,作為論壇出品人的他,闡述了“服務(wù)于關(guān)鍵業(yè)務(wù)場景的超融合”這一論壇主題的精髓,精彩演講令聽眾受益匪淺。
先智數(shù)據(jù)中國區(qū)總經(jīng)理董唯元
所謂死局,就是在傳統(tǒng)磁盤故障率前提下,用傳統(tǒng)副本機(jī)制,從原理上就沒辦法實(shí)現(xiàn)大規(guī)模的可靠系統(tǒng)。而重生,是指用故障預(yù)測這種新機(jī)制可以突破限制,并大幅度提升大系統(tǒng)的可靠性。
以下為演講實(shí)錄:
今天論壇主題是關(guān)鍵場景應(yīng)用這個大方向,超融合這個概念其實(shí)已經(jīng)很長時間了,它不算是一個新的概念了,在今年其實(shí)大部分用戶都多多少少聽說過,甚至已經(jīng)嘗試過這樣新的技術(shù),現(xiàn)在其實(shí)更多的是面對的不是有和沒有的問題,從是0到1的問題,面臨著從關(guān)鍵場景到核心場景、關(guān)鍵業(yè)務(wù)的這種應(yīng)用切換。當(dāng)然這個過程不像我剛才一句話說過去那么簡單,因為我們整個大的IT框架都在發(fā)生著大的變革,我們原來的這種核心應(yīng)用,包括它跟邊緣應(yīng)用的關(guān)系,包括整個的架構(gòu)都在做各種各樣的轉(zhuǎn)型,而且這個轉(zhuǎn)型中間還是有不同的行業(yè),不同的場景,還有不同的節(jié)奏,有不同的特點(diǎn)。所以切換過程其實(shí)是一個非常復(fù)雜的,這里面可討論的事情就太多了,就像我們看天上的幾大行星在天上走的節(jié)奏軌跡是一樣的,不是簡單的從東到西這么一個方向走過去,它在天空中會停下往回走再往前走,超融合也有這種遲滯,這種遲滯是正常的,第一批超融合產(chǎn)品在實(shí)際場景中碰撞產(chǎn)生的各種各樣的摩擦,這種摩擦是一種經(jīng)驗,正好能幫助我們后面利用更好的新技術(shù)取代傳統(tǒng)技術(shù),或者推進(jìn)傳統(tǒng)IT的建設(shè)。
所以我們定的這么一個主題,要把這個技術(shù),不是當(dāng)作一個新技術(shù),而是當(dāng)做一個怎么能切換到關(guān)鍵業(yè)務(wù)中的場景中去。
今天大家會看到整個分論壇各個環(huán)節(jié)的主題都多多少少跟核心業(yè)務(wù)、關(guān)鍵業(yè)務(wù)是相關(guān)的,相反在初步概念介紹上面,在篩選內(nèi)容的時候可能會少一些,可能比較少的從ABC101介紹這個概念,我相信大部分的人其實(shí)不太需要做這種概念普及,什么叫超融合,有什么好處,這已經(jīng)不是談?wù)撨@個話題的年代了,我們這個年代談?wù)摰氖俏覀冎莱诤鲜鞘裁矗仓浪募軜?gòu)優(yōu)勢是什么,但是在落地的過程中還是有很多更具體的問題,結(jié)合關(guān)鍵業(yè)務(wù)場景,怎么能把超融合用得更好,超融合技術(shù)本身還有哪些未來的發(fā)展的方向和空間,這是一些我想討論的話題。
我自己也是準(zhǔn)備了一些可靠性方面的討論,因為我覺得新的技術(shù)進(jìn)入到關(guān)鍵業(yè)務(wù)這個過程,其實(shí)我們很多的應(yīng)用都是這樣的,從邊緣應(yīng)用進(jìn)入到關(guān)鍵應(yīng)用,都要面臨這個過程,性能比重會下降,但是對可靠性方面的考量會提升。在座很多都是接觸過傳統(tǒng)系統(tǒng)的,都知道一個簡單的實(shí)實(shí)在傳統(tǒng)存儲系統(tǒng)里面,中低端存儲更多是拼性能,可靠性比拼相對少一些,或者比重少一些,但是越到高端存儲,越到核心業(yè)務(wù)方面的存儲,性能所占的比重越來越低,但是他們也會強(qiáng)調(diào)性能,但是比重會占很低,更多是強(qiáng)調(diào)可靠性,高端產(chǎn)品只有可靠性變高才是高端,我們說其實(shí)這是一個整個基礎(chǔ)架構(gòu)的特點(diǎn)。作為基礎(chǔ)架構(gòu)來說你在核心場景里面用要過關(guān)的就是可靠性,性能不是那么重要的問題,不是第一等重要的問題。
可靠性也是一個非常大的話題,我們從哪兒開始說呢,就從最基本的概念來說。其實(shí)可靠性這個詞本身就是一個有一點(diǎn)模糊的地方,如果大家不做細(xì)的區(qū)分的話,就會發(fā)現(xiàn)兩個人在討論可靠性,說的半天發(fā)現(xiàn)說的不是同一件事,其實(shí)我們計算機(jī)里面有好多這樣的東西好多概念不說細(xì)了,你都發(fā)現(xiàn)不了這里面的差別。我們就說數(shù)據(jù)存儲,落到設(shè)備上面,不管是分布式存儲還是傳統(tǒng)存儲,落到設(shè)備上面,它的可靠性到底是什么,到底是數(shù)據(jù)不丟是算可靠,還是說數(shù)據(jù)一直都可以訪問,這兩個就不是同一個概念,當(dāng)然還有其他的部分。所以你會看到像AWS我們?nèi)ド暾埶脑拼鎯Φ臅r候,S3提供這樣的一個說明頁面,你會發(fā)現(xiàn)原來存儲可靠性有兩塊,一塊是叫持久性,一塊叫可用性,還是用的可用性這個詞,Availability,業(yè)界有不同的用法,AWS用的是這個可用性,至少持續(xù)性和可用性我們在AWS網(wǎng)站上看到是不一樣的東西。因為指標(biāo)不一樣,這么多的9,11個9,可用性才4個9,持續(xù)性11個9,我們知道是不同的東西。
具體是什么,簡單來說,系統(tǒng)正常工作是在線,這個系統(tǒng)有一個設(shè)備壞了但是數(shù)據(jù)都還能在線,不耽誤用,比如說做了什么副本都是這樣的,有東西壞了不耽誤用,只是容災(zāi)率低,如果你有這個能力你的可用性是OK的。比如說超過這個,比如說這里面盤壞了,或者沒有做副本數(shù)據(jù)不可訪問了離線了,這個可用性就不在了。但是如果你有備份,你可以通過備份離線把數(shù)據(jù)找回來,至少可用性是在的,只要數(shù)據(jù)還有辦法找回來,雖然不保證持續(xù)在線,但只要保證數(shù)據(jù)在線,這個持久性還在。我們做運(yùn)維經(jīng)常說,死了,數(shù)據(jù)丟了找不回來。像我做存儲做了近20年,見過各種各樣的“死人”的場景,我說最小的就是一個,大概早先年前磁盤戰(zhàn)略,投影設(shè)備很小,里面8G的磁盤壞了,數(shù)據(jù)也不大,但是那堆數(shù)據(jù)剛好是工作小組大概70人用了將近一年的時間做的各種各樣辛苦工作的結(jié)果,70個人滿滿一屋子做各種各樣的分析、統(tǒng)計、計算,所有的結(jié)論、過程、結(jié)果都在這個小陣列上面,到年頭的時候設(shè)備壞了數(shù)據(jù)讀不出來了。在我們做存儲的人看來這么一個小設(shè)備一兩塊盤壞了不是什么大事,當(dāng)時沒什么錢買,對做數(shù)據(jù)的人來說真是壞了,辛辛苦苦干了一年的活沒了,再做一遍再用一年,這個成本打了。所以發(fā)生這種事的時候用戶都是一腦袋汗。
還有更接近要命的,更接近物理的“要命”,就是股票,其實(shí)這些數(shù)據(jù)也不大,股票交易廳,交易系統(tǒng)還沒有做雙機(jī),在1997、1998年的時候,很多沒做雙機(jī)系統(tǒng)一宕機(jī),很快,能砸屏的都砸碎了。我那會兒其實(shí)還在大學(xué)念書,兼職給人裝個雙機(jī)干點(diǎn)私活,掙點(diǎn)外快,直接出來就是纏著繃帶胳膊吊著這么出來,就是股民打的,交易系統(tǒng)交易不了你就想吧。丟數(shù)據(jù)對用戶來講是很要命的事。
最早只要數(shù)據(jù)不丟,能找得回來,稍微停一會兒還可以理解,但是有一些業(yè)務(wù),漸漸像股票這種業(yè)務(wù)停都不準(zhǔn)停,停就壞事了,你讓我稍微卡頓一點(diǎn)都會是事故,有問題,其實(shí)對雙機(jī)系統(tǒng)要求越來越高了。
我們今天至少在討論可靠性這個概念的時候,大家說的更多的還是更基本,不丟,在線性,不掉線,這兩個層面的東西是相對基本的。其實(shí)從可靠性來講還有更高的,比如說變慢算不算是一種可靠性的損傷,業(yè)務(wù)角度來講一定是,甚至業(yè)務(wù)系統(tǒng)變慢比徹底斷了還可怕,因為變慢你不知道是哪兒的問題,一個東西壞了其實(shí)到你這兒到發(fā)現(xiàn)找到問題在哪兒,用的時間還短一點(diǎn),因為容易找,找到哪兒壞了,該通的通了。如果一個比較復(fù)雜的業(yè)務(wù)系統(tǒng)某一個地方變慢了,找出問題到底在哪兒,真的有的時候花一兩個月找不出來,因為這個系統(tǒng)太復(fù)雜了,但是變慢也是一個系統(tǒng)可靠性的影響。
今天我們所說的可靠性涵蓋的更多還是持久性和可用性這兩個更頂級的層面,AWS里面討論的,我們看到很多業(yè)界的說法里面沒有放到可靠性這個范圍里面來,我相信未來可能會有比較可量化的整體的系統(tǒng)可靠性的評估方式、評估方法論,會把SLO,甚至更高層系統(tǒng)配備變更能力,其實(shí)這些東西都是對基礎(chǔ)架構(gòu)可靠性的要求。我剛才說起來就有四個層面,可能會有若干層面的這種對可靠性更細(xì)的拆解在基礎(chǔ)架構(gòu)的要求里面。這更多是方法論層面的事,今天不講太多方法論層面的事,稍微介紹一點(diǎn)具體的東西。具體的東西大家看得見摸得著。
數(shù)據(jù)中心里面什么最容易出現(xiàn)故障,如果各位有做過運(yùn)維或者在機(jī)房里面做過IT的管理者,就會有一個感覺,你的數(shù)據(jù)中心三樣?xùn)|西常年壞,硬盤、風(fēng)扇、電源,CPU、內(nèi)存、主板、機(jī)箱蓋都不壞,就是這三樣?xùn)|西特別容易壞。而這三樣?xùn)|西里面風(fēng)扇、電源壞了相對來說沒有那么可怕,硬盤是最可怕的,因為數(shù)據(jù)直接在上面,數(shù)據(jù)整個系統(tǒng)的可靠性、可用性等等,最直接的就是跟硬盤有關(guān)系,所以別的不看,就是硬盤的故障是整個系統(tǒng)可靠性最可行的地方。硬盤我們都知道又不是一個平行的分布,也就是這個系統(tǒng)里面硬盤不是隨時都有的概率的磁盤故障存在,如果實(shí)施過IT系統(tǒng)的會由直觀的感覺,一個新東西上來頭三個月是最麻煩的,新布一個系統(tǒng)一會兒這兒懷了,那兒有故障了,如果把故障全都解決了3個月沒有什么事,6個月沒有什么事基本上可以放心使用,一年兩年沒有問題,中間故障率是越低,等到到快到壽命的時候,四年、五年看你附載的輕重,如果輕就是長壽一點(diǎn),重就短壽一點(diǎn)。今天有點(diǎn)問題,你就會知道在接下來兩年陸陸續(xù)續(xù)都會有問題,就是這個設(shè)備的壽命差不多到了。
整個故障分布是一個U型分布,如果再拆開由三部分組成,一個是先天不足造成的,一上線就出問題的就是先天缺陷,硬盤在生產(chǎn)線上該封閉的沒有封閉嚴(yán),該搞平整的沒搞平整,先天不合格,一到系統(tǒng)上就暴露問題。很快這部分篩掉就是正常的,正常使用中又在壽命之內(nèi)就是環(huán)境隨機(jī)故障,就看機(jī)房溫度等等。到一定壽命的時候其實(shí)就是各種各樣元器件的老化造成的后面的那部分。這三部分,主要是三種不同的因素造成的。這里面最好玩的就是廠商跟你講的它的故障率跟用戶自己體驗到的故障率永遠(yuǎn)不一樣,而且差別巨大,都知道硬盤的不可靠性有一個上下指標(biāo)叫MTBS,就是平均無故障時間,這個概念以前還經(jīng)常被拿出來說,但是現(xiàn)在已經(jīng)沒有人說這個東西了,因為太不靠譜了,廠商居然說我的自己的MTBS 200多萬小時,你年化以后算算什么概念,我這個硬盤差不多可以從恐龍滅絕之前用到現(xiàn)在,這簡直是太不靠譜了。所以現(xiàn)在更多是看一些,廠商會有自己的返修率統(tǒng)計報告,那個MTBS已經(jīng)不是計算你硬盤故障率的一個指標(biāo)了,那個完全忽略,那個東西你就當(dāng)不存在。真正廠商嘴里說的認(rèn)的自己的磁盤故障率是他每年告訴你的那個報告,他每年賣出去多少盤,有多少的返修,這個百分比是多少,即便按照那個比例是0.4%-1.2%這樣的一個比例。當(dāng)然廠商有時候不愿意承認(rèn)都是故障。什么叫故障,什么叫非故障,中間是有灰色地帶的。不管怎么說,這些設(shè)備我們姑且把它算作故障比例,0.4%-1.2%這是廠商基本上認(rèn)可的磁盤的年故障率,但這個比例在用戶感受來講還是偏低。
谷歌曾經(jīng)在2006年/2007年的時候,發(fā)過一篇論文,論文統(tǒng)計了谷歌自己用過所有的硬盤,把硬盤的年故障率拿出來統(tǒng)計出來,谷歌報告里面大概是5-8%,故障率非常高。當(dāng)然我們可以有理由認(rèn)為谷歌用磁盤用的太狠了,有的沒有那么長,總的來說是3-8%這樣一個范圍,還是遠(yuǎn)大于廠商統(tǒng)計的故障率。
我們知道幾件事,第一件事,好象不是所有的故障盤都返到廠商去了;第二件事可能統(tǒng)計的口徑不一樣,統(tǒng)計的視角不一樣,數(shù)據(jù)不一樣。真正問我磁盤的故障率到底有多少,我還真是沒法用一個數(shù)據(jù)告訴你,只能說不同的角度不同的視角數(shù)據(jù)不一樣,但是這不訪問我們做一些基本的推算。
這里跟大家分享一下可靠性計算的模型,我相信這么一大早起來如果給大家一步一步推公式的話,推到第三頁大家開始下面打呼嚕了。簡單介紹一下,這是一個簡單的軟件式存儲也好分布式存儲也好,它里面有故障,有跨節(jié)點(diǎn)這不叫故障。這種情況叫故障,剛才這種情況是兩個副本,這就叫故障了,對三個副本來說就是故障了,而且這個故障我們經(jīng)常說兩個節(jié)點(diǎn)同時故障叫丟數(shù)據(jù),其實(shí)什么叫“同時”,沒有那么嚴(yán)格精確的同時,其實(shí)是一個東西壞了之后有一個修復(fù)時間,在這個修復(fù)時間之內(nèi)不能有第二個東西壞,或者不能有太多的東西壞了,太多的東西壞了這個數(shù)據(jù)會丟。我們所謂的“同時”,故障的間隔小于我們說的設(shè)備更換和修復(fù)窗口,當(dāng)相鄰故障小于這個窗口的時候這就是我們一般意義所講的“同時故障”。簡單來說這個公式就是這樣的一個公式,為什么要自己推這個公式,我發(fā)現(xiàn)網(wǎng)上有一些是錯的,我去網(wǎng)上找現(xiàn)成的,誰也不會沒事自己虐自己自己推這個公式的,都是自己去找一個現(xiàn)成算了,但是我發(fā)現(xiàn)網(wǎng)上都是錯的,自己推了一個東西。單磁盤的故障概率放到剛才說的分布式的系統(tǒng)里面,它的可靠性是怎樣計算來的??粗軓?fù)雜亂七八糟一大堆,其實(shí)挺容易的。我把大的推演過程放到PPT里面,會后資料會分享給各位。
簡單來說就是概率要先做年化,把一年里面比如說一個硬盤在一年里的故障概率,轉(zhuǎn)化成t+π數(shù)據(jù)修復(fù)這樣的一個時間窗口,你需要做指數(shù)化的轉(zhuǎn)換,你根據(jù)一個硬盤的故障率,這些推導(dǎo)過程不細(xì)講了,估計再細(xì)講各位都要睡著了,大概了解一下。從硬盤的故障概率推導(dǎo)到節(jié)點(diǎn)的故障概率,從節(jié)點(diǎn)的故障概率再轉(zhuǎn)化回年化的可靠性。我說的錯都是在這兒,網(wǎng)上很多的東西忘了年化,得出來的結(jié)論不能做量化計算,你量化計算會有問題。整個系統(tǒng)的可靠性隨著指標(biāo)變化的趨勢,這個n是集群里的節(jié)點(diǎn)數(shù),m是每個節(jié)點(diǎn)硬盤的數(shù)量,這個是中間的窗口,隨著窗口期系統(tǒng)的可靠性的變化。
評論
查看更多