Dostor總編?宋家雨(左)與Dostor客座技術(shù)顧問李炫輝(右)

宋家雨: 今天我們的話題是閃存顆粒跟企業(yè)級應(yīng)用的關(guān)系,因?yàn)槔羁偸俏姨匮募钨e,李總本人是Greenliant公司副總裁,是做控制器的公司,所以對閃存顆粒有非常深的研究。所以先請李總給我們介紹一下,閃存顆粒確實(shí)是比較底層的技術(shù),對企業(yè)來說我們要關(guān)心這么細(xì)的技術(shù)嗎?

李炫輝:閃存技術(shù)的應(yīng)用從90年代發(fā)明之后,然后開始在消費(fèi)市場里面使用,但是在企業(yè)級市場來使用的話,實(shí)際上只是在最近短短三四年時(shí)間里面,意味著什么?意味著這個(gè)技術(shù)并沒有完全得到企業(yè)級市場的成熟驗(yàn)證。然后有句歇后語叫沙灘上蓋樓房——基礎(chǔ)不好。對企業(yè)級而言閃存顆粒就是它的地基,如果我們不了解地基的特性在上面搭建企業(yè)級的存儲架構(gòu)可能就會有一些風(fēng)險(xiǎn)。

宋家雨:能不能再稍微跟我們講講我們說來說去的這些顆粒到底指什么?因?yàn)槲覀冊谏蠈哟_實(shí)對底層缺乏了解。您也說到沙灘上蓋樓的問題,講講顆粒吧。

李炫輝:實(shí)際上閃存顆粒和沙子有關(guān)系。通過一些工藝手段,利用晶元把它變成非意識性的存儲的產(chǎn)品,這個(gè)產(chǎn)品我們看到最原始的是一個(gè)晶元,我們要在上面切割,切割出一個(gè)一個(gè)物理顆粒,就是我們俗稱的閃存顆粒。

宋家雨:陣列、盤,或者閃存卡,盤也好,卡也好,組成存儲的就是這些顆粒來組成的,構(gòu)成我們的產(chǎn)品,讓我們存儲我們的數(shù)據(jù)。關(guān)于閃存顆粒來講,因?yàn)槲覀円话憧赡荜P(guān)注的是最終的系統(tǒng)和應(yīng)用。如果說我們還要關(guān)注顆粒那我們應(yīng)該關(guān)注哪些特性?

李炫輝:對用戶而言不管最底層的顆?;蛘呦到y(tǒng)怎么樣,我只知道它能夠提供我所需要的特性就可以了。但是閃存和其他的介質(zhì)不太一樣,可能今天的很多友商都在談怎么樣利用閃存搭建自己的閃存系統(tǒng),或者說一些閃存的解決方案。但是由于閃存的特定的物理特性,因?yàn)殚W存應(yīng)用時(shí)間比較短,有沒有人碰到過閃存的性能衰減的問題?也就是說閃存性能是非常高,比現(xiàn)在的磁盤性能高很多,但是長期適用過程中它會帶來老化以及錯(cuò)誤率增加,這都會帶來后期閃存產(chǎn)品的性能下降。那么這就給企業(yè)級應(yīng)用帶來一個(gè)困惑,當(dāng)我去做企業(yè)級應(yīng)用的性能規(guī)劃的時(shí)候,我應(yīng)該是按照最初的性能規(guī)劃還是按照衰減后的性能規(guī)劃?因?yàn)樵瓉砦业南到y(tǒng)需要支持比如20萬人的并發(fā),如果說采用閃存也許用三四年,閃存性能只能支持到10人的并發(fā),這怎么辦?這對企業(yè)應(yīng)用是一個(gè)致命的風(fēng)險(xiǎn)。

我再舉一個(gè)例子,我們還碰到一個(gè)用戶的案例,有一個(gè)用戶也用了一個(gè)閃存產(chǎn)品。但是突然有一天他們發(fā)現(xiàn)他們的系統(tǒng)重啟,沒有任何的原因。最后他們?nèi)ズ烷W存廠商溝通以后,對方提出的結(jié)果是什么?說由于太空輻射造成了閃存的電位翻轉(zhuǎn)引起的這個(gè)問題。當(dāng)然這個(gè)在做系統(tǒng)的時(shí)候應(yīng)該要考慮到,但是對企業(yè)級用戶來講這也是一個(gè)可能的風(fēng)險(xiǎn)。

宋家雨:磁介質(zhì)也有風(fēng)險(xiǎn),各種各樣的風(fēng)險(xiǎn)。那怎么樣應(yīng)對這些風(fēng)險(xiǎn)呢?您剛才提出的問題您按什么設(shè)計(jì)?按衰減后的設(shè)計(jì)還是最初的設(shè)計(jì)?您的觀點(diǎn)是什么?

李炫輝:我的觀點(diǎn)是從企業(yè)級產(chǎn)品的角度而言不同的產(chǎn)品設(shè)計(jì)的應(yīng)用場景是不一樣的,這也就是為什么說我們作為企業(yè)級應(yīng)用要去了解這種介質(zhì)的一些特性,然后它所對應(yīng)的一些產(chǎn)品的一些需求。比如說我們是應(yīng)該用TLC顆粒還是LBC的顆粒?我們要去做一些判斷。因?yàn)檫@個(gè)市場上系統(tǒng)級競爭過于激烈,這給系統(tǒng)廠商帶來了一個(gè)壓力,所謂壓力就是如果我價(jià)格比別人貴我可能賣不出去。因此他們可能更關(guān)注的在于經(jīng)濟(jì)性的角度,這可能會帶來說對企業(yè)級應(yīng)用的適配的錯(cuò)位。這也就是為什么大家在談海外購的問題,我們知道我們出國之后很多東西在國內(nèi)可以買到,為什么我們要買國外的東西?

宋家雨:因?yàn)楸阋?。剛才說到性能衰減,還有一種情況就是性能抖動這樣的一些事情,其實(shí)對企業(yè)級的應(yīng)用的質(zhì)量帶來一些困擾和困惑。針對這些問題可能也有一些設(shè)計(jì),在系統(tǒng)設(shè)計(jì)或者在盤或者卡的設(shè)計(jì)中有一些應(yīng)用辦法,我們常聽的一個(gè)詞叫OP,它的含義和起到的作用是什么?

李炫輝:OP我們俗稱叫過度配置,當(dāng)我們買一個(gè)閃存盤,它標(biāo)成是400GB的閃存盤,但是它真實(shí)的裸容量可能是420GB,甚至是500GB五,但是用戶用到的可能是400GB,為什么有這樣的預(yù)留空間?其實(shí)有兩個(gè)考慮。第一個(gè)是閃存顆粒出廠就會有壞塊,它會有比如1%、2%的壞塊率,這些壞塊需要用好的顆粒替代,那么我們就要預(yù)留空間,使用過程中發(fā)現(xiàn)壞塊然后替代。并且使用過程中出現(xiàn)新的壞塊也要用這個(gè)替代,壞塊替代,OP的一個(gè)作用。

第二個(gè)作用是因?yàn)殚W存本身的特性,它是4K的寫,但是一個(gè)模塊就是幾十照B的擦除,這里會存在放大的問題,會產(chǎn)生比如我只是一個(gè)IO寫入閃存,但是最后在閃存顆粒里面產(chǎn)生了幾十個(gè)IO。閃存特性是擦寫次數(shù)限制,我有足夠OP可以先把這些IO寫到空白區(qū),然后再回來擦寫,這樣可以延長它的壽命。

宋家雨:有人希望他自己來控制,他就把OP完全釋放了,這樣他能追求更好的性價(jià)比。

李炫輝:實(shí)際上這樣也是可以的。但是這對用戶的技術(shù)、能力有非常高的要求。并且還有一個(gè)前提就是它這個(gè)應(yīng)用的數(shù)據(jù)訪問模型一定不能有任何變化,只要有一個(gè)變化可能就會造成一個(gè)災(zāi)難。

宋家雨:我們希望我們作為企業(yè)用戶做系統(tǒng)的時(shí)候了解到的技術(shù)。還有一個(gè)話題想分享一下,實(shí)際上剛才講到抖動、性能、數(shù)據(jù)丟失等等。實(shí)際上很多人有疑惑,在消費(fèi)端我們用的CF卡好象質(zhì)量非常好,企業(yè)級顆粒和消費(fèi)級顆粒有什么區(qū)別?

287049

李炫輝:完全不一樣,因?yàn)橘|(zhì)量標(biāo)準(zhǔn)以及檢測手段,企業(yè)級要更加嚴(yán)格。原因是什么?消費(fèi)類,比如我們有一個(gè)CF卡,比如U盤。大家可以想想你在這種設(shè)備上你究竟會做多少次讀寫?幾年可能也就是十幾次的擦寫。而到數(shù)據(jù)中心級是24小時(shí)連續(xù)的擦寫操作,這個(gè)實(shí)際上會有很大的差異性。并且我們也有一些人很好奇,拿了一個(gè)消費(fèi)類盤進(jìn)行連續(xù)擦寫,一個(gè)興趣就掛了,這是不同的應(yīng)用場景,這也是由顆粒質(zhì)量所決定的。

宋家雨:我剛才說的寫是寫滿,如果是U盤的話把它寫滿看能寫多少次。咱們一般來講這樣的盤寫滿機(jī)會并不多,寫很多次也不多,但是企業(yè)級不是這樣的狀況,它是7×24小時(shí)不斷擦寫。所以關(guān)于顆粒這塊我們要了解到一個(gè)是顆粒特性,另外是顆粒的擦寫的方式。

李炫輝:另外我想補(bǔ)充一點(diǎn),就是關(guān)于數(shù)據(jù)的持久性保存,因?yàn)楫?dāng)有一個(gè)磁盤系統(tǒng)上面存了數(shù)據(jù)之后我在斷電之后可以斷電一個(gè)月、兩個(gè)月甚至一年,我在重新啟動的時(shí)候上面的數(shù)據(jù)是不會錯(cuò)誤的,我仍然還可以讀出,這是由磁介質(zhì)特性決定的。但是如果將一個(gè)設(shè)備存在現(xiàn)在的閃存盤上,長時(shí)間斷電情況下就有可能出現(xiàn)數(shù)據(jù)丟失的問題,因?yàn)殚W存是靠電驅(qū)動,長時(shí)間沒有外部供電會出現(xiàn)電位丟失就會出錯(cuò)。當(dāng)我們應(yīng)用的在企業(yè)級環(huán)境里邊,當(dāng)存在這樣的特殊情況我們要考慮到數(shù)據(jù)的保持性。

宋家雨:說到顆粒很多用戶會關(guān)心耐讀、耐寫,關(guān)于寫壽命問題可能大家會很擔(dān)心。這方面應(yīng)該怎么看?

李炫輝:顆粒的寫壽命也是一個(gè)物理性指標(biāo)。這個(gè)也是一個(gè)統(tǒng)計(jì)出來的數(shù)據(jù),就是說每一個(gè)顆??刹翆懙拇螖?shù)實(shí)際上是有限的,大概是在什么范圍里?比如現(xiàn)在比較流行的MLC,它的擦寫范圍是35005000次。比如像SLC,從原來的10萬次衰減到大概89萬次,這個(gè)是擦寫次數(shù)物理的限制。因此這個(gè)里面還要考慮到我們在企業(yè)級應(yīng)用里邊寫入的壓力大概會有多大,我們會希望這個(gè)設(shè)備能使用多久,也會要考慮到這樣的一些底層的顆粒的指標(biāo)。

宋家雨:因?yàn)闀r(shí)間關(guān)系,我們還是準(zhǔn)備了一些話題的。對于顆粒大家有什么話題想交流?

616764.jpg@600w_96Q_1x

嘉賓提問環(huán)節(jié)

嘉賓:當(dāng)數(shù)據(jù)下到盤的時(shí)候,盤為了降低CATCH會不會把這個(gè)數(shù)據(jù)看起來?如果看起來這時(shí)候突然斷電了,這個(gè)數(shù)據(jù)會不會丟?會有什么技術(shù)保證這點(diǎn)?

李炫輝:這是做閃存技術(shù)里面首要要考慮的問題,所有的數(shù)據(jù)如果直接落到顆粒上對它的磨損很嚴(yán)重,如果用CATCH之后怎么保持?jǐn)?shù)據(jù)在斷電情況下不丟失。基本所有的企業(yè)級產(chǎn)品都會用CATCH,因?yàn)橐WC壽命問題,為了保證不丟失往往采用滿載電池供電方式進(jìn)行持久化維持,并且不同廠商設(shè)置的機(jī)制不一樣。因?yàn)槲覀冎涝瓉砦覀兊?/span>CATCH控制器里也有CATCH,但是電池會支持24小時(shí),超過24小時(shí)數(shù)據(jù)可能會丟了,因?yàn)樗窃?/span>CATCH里面的。但是在閃存設(shè)計(jì)里面有的是采用這種方式,還是維持在CATCH里面,真的撐不住了可能會丟掉。還有當(dāng)電路偵測到外部停止供電之后我會把CATCH的數(shù)據(jù)寫回到顆粒,當(dāng)下一次再啟動的時(shí)候,會把原來的CATCH數(shù)據(jù)返回到CATCH里面。這個(gè)時(shí)候這里面不同的產(chǎn)品里面可能就會有一些感覺,你會發(fā)現(xiàn)有的閃存卡掉電之后,再加載啟動的時(shí)候過幾分鐘才可以用,不是馬上可用的,所以會帶來意外斷電的保護(hù)機(jī)制,這也是每個(gè)廠商都有自己的專門的設(shè)計(jì)的專利。

宋家雨:CATCH是不是越大越好?

李炫輝:因?yàn)?/span>64B或者8GB,小B的環(huán)境下CATCH的命中率和優(yōu)化空間其實(shí)都是在設(shè)計(jì)過程中要算的,并且我們知道CATCH都是LPDUR做的,如果CATCH大的,滿載功耗就會很大,散熱量很大,對穩(wěn)定性還會有反面影響。這個(gè)要通過計(jì)算,在芯片設(shè)計(jì)過程中就要考慮的。

嘉賓:如果對于寫操作來講,在SSD盤里面有沒有CATCH對性能影響多大,對SPD影響肯定會非常大。如果是只寫的情況,即便是SSD讀的時(shí)間也比寫的時(shí)候高很多,差別是來自于SSD盤的CATCH,如果CATCH可以關(guān)掉,對外宣傳延遲或者RPS會有很大差異。

李炫輝:一般來講存儲有一個(gè)關(guān)鍵指標(biāo)叫延遲,如果說我們不要CATCH的話,它的延遲會好,因?yàn)樗谥虚g,在CATCH轉(zhuǎn)一層做合并,這時(shí)候它的延遲會長一些。但是如果把CATCH拿掉,直接寫,會看到你的延遲很好。但是長時(shí)間情況下你的耐久性會差,你對顆粒磨損很嚴(yán)重,會很快壞掉,產(chǎn)生大量壞塊,所以要做折中,究竟產(chǎn)品用在什么場景里。大塊IO也一樣會,因?yàn)榇髩KIO寫入,上層還是要根據(jù)空白塊來做你的IO分配,也就是早期你會看到它的性能很快,但是慢慢慢慢快充滿的時(shí)候,你的連續(xù)塊就會越來越少,這時(shí)候性能一下就掉下來了。

嘉賓:您剛才提到閃存顆粒用時(shí)間久了性能衰退會存在,衰退弧度是什么?

李炫輝:每個(gè)廠商都不一樣。

嘉賓:大概呢?

李炫輝:大的有一半以上的,這個(gè)衰退要從幾個(gè)層面設(shè)計(jì)的。第一個(gè)你是否考慮留更多的OP,OP越大性能差距越小,OP大了你的成本就高了。第二個(gè)問題你的架構(gòu)設(shè)計(jì),因?yàn)樾阅芩p還有一塊是后期錯(cuò)誤率搞了,你要矯驗(yàn)做恢復(fù),你的矯驗(yàn)處理能力能不能達(dá)到?校驗(yàn)一般用引擎處理,要么用很強(qiáng)大的引擎,或者用更多的矯驗(yàn)引擎處理,這里也帶來發(fā)熱量、成本問題,所有設(shè)計(jì)都要考慮一個(gè)綜合的設(shè)計(jì)。有的時(shí)候真的是一分價(jià)錢一分貨?,F(xiàn)在出來閃存的系統(tǒng)廠商非常多,國內(nèi)就進(jìn)入了低價(jià)競爭的態(tài)勢,而用戶又往往無法區(qū)分這個(gè)產(chǎn)品到底如何。因?yàn)閯傞_始的時(shí)候會覺得都一樣,但只有使用過一段時(shí)間才會有差異,那么那時(shí)候可能已經(jīng)晚了。

嘉賓:這個(gè)問題不見得只和介質(zhì)顆粒有關(guān)系,可能還可控制有問題。問題是這樣,比如我們拿著某一個(gè)廠商的SSD盤做一個(gè)只讀的測試,比如32K的,盤上的時(shí)間大概是0.2幾個(gè)毫秒,但是在這個(gè)系統(tǒng)里如果進(jìn)行一些管理命令,還不知道哪些命令引起的,這些延遲有可能跳到200個(gè)毫秒的量級上來。哪種操作可能會引發(fā)這么大量的延遲增加?不確定哪種指令引發(fā)的,從您的觀點(diǎn)來看是不是哪些指令會引發(fā)?

?李炫輝:會。因?yàn)殚W存底層有一些隊(duì)列機(jī)制,這個(gè)隊(duì)列機(jī)制實(shí)際上會影響到它的性能,比如我們知道我可以在我的硬件上生成16個(gè)隊(duì)列、34、62個(gè)隊(duì)列。我隊(duì)列越多我的好處是什么?我的好處是我可以在高并發(fā)情況下,整個(gè)上層應(yīng)用的延遲比較少,我可以處理更多的任務(wù),但是隊(duì)列多也帶來一個(gè)問題,當(dāng)我的并發(fā)不足的時(shí)候,你會產(chǎn)生一個(gè)隊(duì)列不能充滿,而下層閃存取數(shù)據(jù)的時(shí)候,當(dāng)一個(gè)隊(duì)列被充滿的時(shí)候會有一個(gè)門鈴機(jī)制,到一個(gè)隊(duì)列滿了會按一下門鈴,下頭底層處理器就知道你的數(shù)據(jù)滿了,就取體的數(shù)據(jù),放在底層的顆粒上,但是不滿的情況下會出現(xiàn)一個(gè)等待超時(shí),如果你一直不按門鈴,我底層去做了一個(gè)設(shè)計(jì),說我要等到比如20毫秒,你沒按,那我就去看看,有沒有數(shù)據(jù)我都取走,這時(shí)候可能會存在突然高的延時(shí)。并且在閃存底層的設(shè)計(jì)往往比較專用的架構(gòu)每一家都不一樣,所以你就會看到在不同的場景里面,同樣大家都是閃存可能表現(xiàn)的現(xiàn)象就不一樣。

【更多行業(yè)資訊,請關(guān)注DOIT官方微信(微信號:doitmedia),關(guān)注科技與數(shù)據(jù)經(jīng)濟(jì),洞察IT走向DT?!?/p>

分享到

zhangnn

相關(guān)推薦