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