在SSD剛投入使用的時(shí)候,人們就說(shuō)SSD的性能不如預(yù)期。隨著時(shí)間推移,SSD開(kāi)始變慢。那到底有多慢?又是為什么呢?
SSD通常被用于托管虛擬機(jī)的服務(wù)器。聚合虛擬機(jī)創(chuàng)建了I/O混合效果,這可以讓SSD的處理性能優(yōu)于磁盤。
正如韓國(guó)首爾大學(xué)Jaeho Kim,Donghee Lee和弘益大學(xué)Sam H.Noh在《Towards SLO Complying SSDs Through OPS Isolation》一文中指出的那樣,SSD遠(yuǎn)沒(méi)有達(dá)到完美的地步:
在這篇文章中,我們通過(guò)經(jīng)驗(yàn)評(píng)估展示了性能SLO對(duì)目前商用SSD并不滿意。這個(gè)結(jié)論并不樂(lè)觀。以下是具體的原因。
實(shí)驗(yàn)
研究者們使用一個(gè)購(gòu)買現(xiàn)成的128G的商用級(jí)MLC SSD, 并進(jìn)行了測(cè)試。隨機(jī)寫入在4kb-32kb之間,總寫入超過(guò)SSD容量,就會(huì)導(dǎo)致垃圾回收(GC),從而產(chǎn)生損耗。然后,他們用馬薩諸塞大學(xué)追蹤庫(kù)里的trace測(cè)試了每種模式的性能。這些trace被重復(fù)播放,向SSD生成了三條真實(shí)I/O:金融的、MSN和Exchange。
變量
除了新舊SSD性能外,他們還用一個(gè)新SSD上的自有分區(qū)測(cè)試了每個(gè)VM,并且同時(shí)在一個(gè)新SSD的獨(dú)立分區(qū)上運(yùn)行了此工作負(fù)載。他們用一個(gè)舊的SSD又重復(fù)了這些測(cè)試,以便看到明顯效果:
單獨(dú)的IO帶寬和VM的同步執(zhí)行
GC的一個(gè)主要作用存在于冗余空間中,即OPS 的title.你可以向一個(gè)獨(dú)立分區(qū)定義一個(gè)獨(dú)立VM,而所有分區(qū)都可以共享SSD中的冗余空間——至少據(jù)作者所知是如此。
垃圾回收(GC)
作者將大規(guī)模性能增量歸咎于垃圾回收(GC)。對(duì)新手而言,閃存的基本單位是page——通常是幾KB——都包含在數(shù)據(jù)塊中——通常大小是128kb到512kb。
但是問(wèn)題在于,整個(gè)數(shù)據(jù)塊——而非pages ——都需要被寫入,所以隨著page的無(wú)效化,就出現(xiàn)了無(wú)效page不得不被刷新的情況。一旦數(shù)據(jù)塊中無(wú)效pages的數(shù)量達(dá)到閾值,剩下的好的數(shù)據(jù)就會(huì)被重新寫入一個(gè)新數(shù)據(jù)塊中——和其他有效數(shù)據(jù)一起——而無(wú)效數(shù)據(jù)會(huì)被洗掉。清除一個(gè)數(shù)據(jù)塊需要若干毫秒,所以關(guān)鍵在于把GC對(duì)抗最小化寫入需求的情況轉(zhuǎn)變過(guò)來(lái),如此才能將閃存有限的壽命最大化。這是設(shè)計(jì)讓閃存更似磁盤的FTL時(shí)所做的考慮。
黑盒子
但是,如研究者所言,由于FTL是專有黑盒,所以不可能知道SSD中到底發(fā)生了什么。我們所做的實(shí)驗(yàn)表明從SSD外部控制SSD是很難的,因?yàn)闊o(wú)法控制GC的內(nèi)部作業(yè)。當(dāng)多個(gè)VM共享一個(gè)分區(qū)時(shí),GC是性能降低的最合理解釋。GC進(jìn)程會(huì)影響多個(gè)VM共享分區(qū),從而導(dǎo)致所有的VM速度減慢。
這是另一份圖表:
#FormatImgID_1#
(a)傳統(tǒng)SSSD中并行工作負(fù)載的數(shù)據(jù)布局;(b)GC期間因工作負(fù)載而移動(dòng)的頁(yè)面數(shù)量。
另一個(gè)變量是SSD中冗余的程度。因?yàn)殚W存比較費(fèi)錢,而冗余則會(huì)增加SSD的成本。冗余或許在個(gè)人用戶的SSD中占到7%,在企業(yè)SSD中則高達(dá)35%。還有一個(gè)變量是OPS在分區(qū)之間共享的方式。如果是page層級(jí)的共享,則會(huì)有大量額外的數(shù)據(jù)移動(dòng)——性能會(huì)降低。但,這在FTL的控制之下。
StorageMojo觀點(diǎn)
閃存已經(jīng)革新了企業(yè)級(jí)數(shù)據(jù)存儲(chǔ)。使用磁盤時(shí),I/O比較費(fèi)錢。而使用閃存,讀取實(shí)際是免費(fèi)的。
但是,如實(shí)驗(yàn)報(bào)告所示,SSD存在影響其發(fā)展的問(wèn)題。除非廠商們給予用戶合適的控制——停止GC的能力應(yīng)該會(huì)有用——SSD將不能發(fā)揮全部潛能。
讀過(guò)實(shí)驗(yàn)報(bào)告后,本人給出如下建議:
給每臺(tái)VM一個(gè)分區(qū)。
在測(cè)試SSD的性能前先寫入數(shù)據(jù)。
為GC帶來(lái)的延時(shí)做好備用計(jì)劃。
祈禱快速,強(qiáng)大的下一代NVRAM早日上市。
ErnstLopesCardozo評(píng)論:
或許我們還過(guò)于執(zhí)著SSD有限的寫入持久性?,F(xiàn)在其價(jià)格已然下降,而SSD的I/O單價(jià)具有競(jìng)爭(zhēng)優(yōu)勢(shì),我們應(yīng)該認(rèn)為SSD可消費(fèi)性更高,而且明年技術(shù)更新后它將更快更便宜。一旦我們接受這一點(diǎn),我們就能讓GC運(yùn)算法則變得更具投機(jī)性,利用低活躍期為下一輪的高峰期做準(zhǔn)備。
Vivek 觀點(diǎn):
在白天暫停GC是個(gè)好主意,晚上IO變小時(shí),可以運(yùn)行GC,然后清理磁盤便于第二天的使用。
William評(píng)論:
對(duì)于這個(gè)測(cè)試,我的部分問(wèn)題在于,他們使用的是你能獲取的最小容量的驅(qū)動(dòng)之一。SSD具有伸縮性能,該性能控制得越好,它能處理的閃存芯片就越多。128個(gè)字節(jié)不足以讓SSD有炫耀的資本。
Rob Bergin觀點(diǎn):
好文!如果后端存儲(chǔ)僅僅是配備更快速驅(qū)動(dòng)的數(shù)列,而并沒(méi)有供IO混合的粒度控件,那就會(huì)出問(wèn)題。你錯(cuò)過(guò)的一個(gè)最佳實(shí)例——在你的服務(wù)器上運(yùn)行SSD,通過(guò)粒度加速策略減少IO混合。
RB評(píng)論:
正如William所言,用128G的SSD來(lái)做這些并非最佳選擇。冗余是有SSD的時(shí)候,而容量如此低是不行的。而且,還沒(méi)寫數(shù)據(jù),性能已經(jīng)受到影響,因?yàn)楸焕玫目刂破魍ǖ罃?shù)量太小。現(xiàn)在一般的磁盤大小是500G,售價(jià)低于$200,再小就沒(méi)啥意義了。如果你比較執(zhí)著,那可以使用超快的RAID 10陣列,配有500G可用容量(每個(gè)磁盤250G帶有50%的冗余)售價(jià)約$600-$800。超過(guò)這個(gè)量就太大了,我倒不在于有GB和GiB的區(qū)別,因?yàn)檫@不是關(guān)鍵。
Baruch Even觀點(diǎn):
要從一開(kāi)始就損耗SSD,那所用的SSD小了些。但是他們或許可以用設(shè)計(jì)標(biāo)準(zhǔn)低一點(diǎn),冗余少一點(diǎn)的磁盤。冗余是SSD的關(guān)鍵標(biāo)準(zhǔn),因?yàn)樗扔绊憣懭霐U(kuò)大,也影響性能,尤其是性能連貫性。使用較低OP磁盤,磁盤滿負(fù)荷時(shí),你會(huì)看到性能降低,且連貫性受到影響,而且也不會(huì)有時(shí)間允許數(shù)據(jù)塊上的背景擦除。擦除操作會(huì)非常耗能,且在擦除操作之后,讀寫IO會(huì)形成數(shù)據(jù)塊,所以要降低并行,把SSD能耗控制在9W以內(nèi)。
如果你沒(méi)有足夠的冗余,那么禁用GC沒(méi)有任何用,因?yàn)闆](méi)有閑置的數(shù)據(jù)塊可供寫入。
所以,在任何存儲(chǔ)系統(tǒng)中,如果你希望所有用戶都有一致的性能體驗(yàn),那就要確保不要有兩種情況出現(xiàn):一是某個(gè)客戶占用所有設(shè)備資源;二是所有客戶一起占用全部資源。否則某些用戶的使用就會(huì)出現(xiàn)問(wèn)題。
Mark Gritter觀點(diǎn):
我不認(rèn)為這篇文章有什么深度,但或許是因?yàn)槲覀円呀?jīng)在實(shí)際操作中跟這個(gè)問(wèn)題斗爭(zhēng)好幾年的原因!Tintri適應(yīng)了我們?yōu)榇藢懭氪疟P以便最小化內(nèi)部GC的方式。一旦磁盤在隨機(jī)或交錯(cuò)寫入上執(zhí)行GC,性能tank(和內(nèi)部寫放大功能減少了磁盤壽命)?,F(xiàn)在正有人提出一個(gè)為單獨(dú)VM制訂的方案。從存儲(chǔ)廠商的角度來(lái)看,最佳方案是固件少一點(diǎn)透明度,這樣高級(jí)別的文件系統(tǒng)能更容易地適應(yīng)媒介需求。但是我贊成這份報(bào)告的結(jié)論,即裸SSD不太可能達(dá)到廣告所標(biāo)榜的性能巔峰。
Alessandro評(píng)論:
在文章最后你說(shuō):“讀過(guò)實(shí)驗(yàn)報(bào)告后,本人給出如下建議:讓每個(gè)VM都有自己的分區(qū)。”……手動(dòng)創(chuàng)建幾百個(gè)微卷簡(jiǎn)直就是噩夢(mèng)……但是我想起了下一個(gè)即將到來(lái)的VVol API“標(biāo)準(zhǔn)”。我的問(wèn)題是:
“讓每個(gè)VM都有自己的分區(qū)”能關(guān)聯(lián)到VVol上作為一個(gè)有效方案,從而讓SSD SLA都派上用場(chǎng)嗎?
改進(jìn)SSD性能對(duì)VVol也有益嗎?如果有的話,AFA存儲(chǔ)所支持的VVol將會(huì)成為平衡性能和簡(jiǎn)化使用的重要條件嗎?
阿明點(diǎn)評(píng):
這是一篇美國(guó)著名科技博客ROBIN HARRIS在今年6月初發(fā)的文章《Why it’s hard to meet SLAs with SSDs?》,SSD雖然因其固有的特性會(huì)隨著時(shí)間的推移而性能會(huì)變慢,但是目前許多SSD廠商都在為SSD性能優(yōu)化與壽命優(yōu)化給出各自不同的技術(shù)支持與創(chuàng)新。
當(dāng)然,對(duì)于用戶SLA的滿足,不一定必須在SSD上吊死,最近幾天美國(guó)閃存峰會(huì)FMS2015上報(bào)道了不少新東西,包括1000萬(wàn)IOPS的閃存陣列、高性能的新閃存卡、NVDIMM的創(chuàng)新、NVMe的閃存技術(shù)熱點(diǎn)等等。這些這么多創(chuàng)新閃存技術(shù)與方案,包括參考架構(gòu),足以讓用戶在SLA滿足方面眼花繚亂,因?yàn)槭莿?chuàng)新的技術(shù)與方案,還需要經(jīng)過(guò)用戶更長(zhǎng)時(shí)間驗(yàn)證,有過(guò)具體實(shí)踐與部署之后,相信這些技術(shù)會(huì)逐漸推進(jìn)到用戶身邊。
因此,我們?cè)陉P(guān)注SSD與SLA之間的關(guān)系的時(shí)候,可以將眼光放寬一些,這樣有助于我們對(duì)閃存未來(lái)發(fā)展充滿信心。否則,容易讓我們的思維定勢(shì)走入死胡同。不過(guò),Disk is Dead不是謠言,而是一種趨勢(shì),閃存將取代很大一部分磁盤的空間,遲早會(huì)這樣的。我們走著瞧吧。
另外有個(gè)小知識(shí)科普一下:
服務(wù)水平目標(biāo)( SLO,service level objectives)和服務(wù)等級(jí)協(xié)議(SLA:Service-Level Agreement)的含義, SLO 是更高的客戶滿意度或者適度的客戶滿意度下更低的Opex,SLO是制定具體業(yè)務(wù)SLA的驅(qū)動(dòng)。SLA是在一定開(kāi)銷下為保障服務(wù)的性能和可靠性,服務(wù)提供商與用戶間定義的一種雙方認(rèn)可的協(xié)定。
分享到微信 ×
打開(kāi)微信,點(diǎn)擊底部的“發(fā)現(xiàn)”,
使用“掃一掃”即可將網(wǎng)頁(yè)分享至朋友圈。