大家知道,前幾天Google在USENIXFAST2016發(fā)布了一篇論文,說(shuō)在實(shí)際環(huán)境中,閃存的可靠性其實(shí)不如硬盤(pán)。
這可在業(yè)界興起了軒然大波,很多不太了解的客戶就會(huì)問(wèn),這么說(shuō),全閃存時(shí)代不會(huì)這么快來(lái)了,還是暫時(shí)不考慮全閃存陣列了吧,可靠性不行啊。
其實(shí),仔細(xì)研究論文的人,應(yīng)該是沒(méi)有這個(gè)想法的。因?yàn)镚oogle說(shuō)的閃存的可靠性不高,指的只是顆粒層面,到了SSD(我這里用SSD來(lái)表示閃存盤(pán))層面,再到AFA(全閃存陣列)系統(tǒng)層面,可靠性完全是可以滿足要求,甚至超過(guò)HDD系統(tǒng)的可靠性。
這不,NimbleStorage的CTO就是這么一個(gè)愛(ài)學(xué)習(xí)的人。今天,西瓜哥就聊聊他對(duì)該論文的解讀,還有NimbleStorage的應(yīng)對(duì)之道。
Google說(shuō),SSD和HDD的故障模式有兩點(diǎn)不同:
整盤(pán)故障(需要更換驅(qū)動(dòng)器):SSD的年故障率要低于HDD;
部分?jǐn)?shù)據(jù)丟失:SSD比HDD有很高的不可恢復(fù)錯(cuò)誤(每一個(gè)扇區(qū),典型大小0.5-4KB,被糾錯(cuò)碼(ECC)保護(hù)。但一個(gè)扇區(qū)有太多的比特錯(cuò)誤,超過(guò)了ECC的糾錯(cuò)能力,就會(huì)導(dǎo)致這個(gè)扇區(qū)的數(shù)據(jù)丟失)
大家可以看到,其實(shí)SSD整盤(pán)的故障率其實(shí)比HDD低,只是在扇區(qū)層面故障率比較高。因此,存儲(chǔ)廠商必須了解這些特點(diǎn),對(duì)癥下藥,才能提高AFA系統(tǒng)的可靠性。
Google的論文還說(shuō),原始比特誤碼率(RBER)并不能預(yù)測(cè)不可恢復(fù)錯(cuò)誤的發(fā)生,也就是這兩者沒(méi)有相關(guān)性。這個(gè)好像和我們的常識(shí)不符。但具體原因,Google沒(méi)有解釋。
NimbleCTO說(shuō)Nimble了解閃存這些故障特點(diǎn),并在Nimble系統(tǒng)層面已經(jīng)解決這些問(wèn)題,并且試圖解釋為什么RBER和不可恢復(fù)錯(cuò)誤不相關(guān)。
整盤(pán)失效
為啥HDD容易整個(gè)盤(pán)都?jí)牧四?其實(shí)原因很簡(jiǎn)單,HDD是機(jī)械部件,某個(gè)部件比如馬達(dá)壞了,磁盤(pán)也就完完了。而SSD是電子器件。
Google說(shuō)他們的驅(qū)動(dòng)器故障率是這樣的:
SSD:4年多的更換率是4%-10%,平均每年1%-2.5%;
HDD:每年2-9%
大家知道Nimble有一個(gè)很牛的云監(jiān)控軟件叫InfoInsight。NimbleCTO說(shuō),他們也監(jiān)控了5年,他們的陣列的驅(qū)動(dòng)器整體故障率要低于Google,但比例相似,即SSD的更換率只有HDD的1/3。
但要注意的是,SSD的固件復(fù)雜,因?yàn)橐鯢TL和垃圾收集。Google應(yīng)該針對(duì)自己的應(yīng)用定制了自己的固件,但市場(chǎng)上的商用產(chǎn)品,由于不同的固件版本,故障率可能也不同。
另外,SSD相比HDD來(lái)說(shuō)還是新事物。HDD已經(jīng)有60多年歷史,但現(xiàn)在還不斷發(fā)現(xiàn)影響故障率的因素。比如就在同一個(gè)會(huì)議的另外一篇論文就說(shuō)HDD的故障率受到濕度的影響很大。而SSD才10年多歷史,未來(lái)估計(jì)還會(huì)有更多的發(fā)現(xiàn)。
Nimble如何應(yīng)對(duì)整盤(pán)失效呢?Nimble的tripleparityRAID(也叫RAID3P,喂,這位男同學(xué),不要想歪了,不是那個(gè)3P可以支持3塊硬盤(pán)同時(shí)故障。
當(dāng)然,Nimble還留有熱備盤(pán),這樣驅(qū)動(dòng)器故障后可以馬上進(jìn)行重構(gòu),減少故障時(shí)間。
你可能說(shuō),3個(gè)校驗(yàn)加熱備,是否太浪費(fèi)空間了?這個(gè),Nimble通過(guò)增加RAID組成員的數(shù)量解決容量使用率的問(wèn)題,比如20D+3P+1S,使用率也是很高的。
當(dāng)然,要減少計(jì)算校驗(yàn)的時(shí)間和寫(xiě)放大,應(yīng)該就是Nimble的CASL架構(gòu)應(yīng)該考慮的事情了。
部分?jǐn)?shù)據(jù)丟失
RAID3P很好解決了整盤(pán)故障,但是如果SSD內(nèi)部部分?jǐn)?shù)據(jù)丟失怎么辦?Google說(shuō),4年來(lái)一共有23-60%的SSD丟失過(guò)某些數(shù)據(jù),而HDD在2.5年里只有3.5%(底層丟失數(shù)據(jù)但上層還有保護(hù),因此應(yīng)用系統(tǒng)是不受影響的,不要理解為系統(tǒng)丟失數(shù)據(jù))。
如果整個(gè)盤(pán)只有幾個(gè)壞塊,自己能夠修復(fù)其實(shí)是最好的方式。Nimble把每個(gè)盤(pán)分成很多chunk,每個(gè)chunk比如包含100個(gè)扇區(qū),系統(tǒng)在每個(gè)chunk加上1個(gè)或幾個(gè)校驗(yàn)扇區(qū),當(dāng)這個(gè)chunk有不可恢復(fù)錯(cuò)誤時(shí)用來(lái)進(jìn)行盤(pán)內(nèi)修復(fù)。如果把橫向的校驗(yàn)叫盤(pán)間校驗(yàn)的話,chunk的校驗(yàn)就叫盤(pán)內(nèi)校驗(yàn)。盤(pán)內(nèi)校驗(yàn)空間一般無(wú)需太大,約1%即可。
這樣,我們可以看到,Nimble的RAID邏輯結(jié)構(gòu)如下:
由于RAID3P還多了一層盤(pán)內(nèi)校驗(yàn),因此,Nimble內(nèi)部把這個(gè)叫做RAID3P+,哈哈,這個(gè)是否有點(diǎn)華為RAID2.0+的意思。不過(guò),從上圖我們看到,由于RAID3P+還是保留了熱備盤(pán),重構(gòu)的時(shí)候熱備盤(pán)還是容易成為瓶頸。不過(guò),Nimble的人很多從NetApp出來(lái)的,因此其CASL必然也吸取了RAIDDP的優(yōu)點(diǎn),只是變成了RAID3P而已。不過(guò),基于chunk的RAID肯定比基于盤(pán)的RAID重構(gòu)快,因?yàn)橹恍枰貥?gòu)寫(xiě)過(guò)的chunk。
Nimble還說(shuō),其實(shí)加上熱備盤(pán)(不是所有廠商都有),應(yīng)該宣傳RAID3P++,哈哈。
還有,針對(duì)靜默故障,Nimble也采用checksum校驗(yàn)碼保護(hù)每一個(gè)塊。并且后臺(tái)會(huì)掃描并修復(fù)發(fā)生問(wèn)題的塊。這個(gè)很多陣列也一樣,不提。
RBER和不可恢復(fù)錯(cuò)誤
關(guān)于原始比特誤碼率和不可恢復(fù)錯(cuò)誤為什么沒(méi)有關(guān)系,Nimble認(rèn)為應(yīng)該是RBER是按照整個(gè)硬盤(pán)統(tǒng)計(jì)的,但其實(shí)原始比特誤碼并不是均勻分布的。如果集中在某些扇區(qū),這些扇區(qū)可能就發(fā)生不可恢復(fù)錯(cuò)誤,即ECC也糾錯(cuò)不了了。
就像雪的多少和平均海拔的關(guān)系一樣。某些地方,平均海拔不高,但并不代表雪不多。因?yàn)楦呱蕉?,雪就多。而某些地方,就算平均海拔比較高,但不見(jiàn)得雪就多,因?yàn)闆](méi)有高山。
NimbleCTO說(shuō)和Google論文作者交流了他們的想法,Google認(rèn)為有道理。
【學(xué)習(xí)心得】
1、針對(duì)閃存的特點(diǎn),看來(lái)傳統(tǒng)的RAID方式難滿足要求了。Nimble的RAID3P+給我們一些很好的啟示。EMC的DSSD的CubicRAID(參考1分鐘看懂EMCDSSD的CubicRAID原理)更是一種創(chuàng)新,雖然Nimble其實(shí)也是一種多維RAID,我個(gè)人感覺(jué)CubicRAID更完善一些。而PureStorage的RAID3D,EMCXtremIO的XDP等都沒(méi)有采用傳統(tǒng)的RAID形式。據(jù)了解,華為的新一代全閃存陣列DoradoV3雖然還是采用RAID2.0+,但是可能采用3校驗(yàn)的方式,支持同時(shí)壞3塊SSD,不知道華為是否會(huì)宣傳RAID2.0+3P呢?O(∩_∩)O哈!
2、SSD作為較新的一種介質(zhì)類型,就像HDD一樣,相信以后不斷會(huì)有新的故障特征被發(fā)現(xiàn)。因此,存儲(chǔ)廠商需要時(shí)刻關(guān)注這些研究結(jié)果,特別是大型互聯(lián)網(wǎng)公司的生產(chǎn)實(shí)踐,不斷創(chuàng)新,以較小的代價(jià)持續(xù)提高閃存系統(tǒng)的可靠性。
分享到微信 ×
打開(kāi)微信,點(diǎn)擊底部的“發(fā)現(xiàn)”,
使用“掃一掃”即可將網(wǎng)頁(yè)分享至朋友圈。