目前市場(chǎng)上幾乎每個(gè)中端存儲(chǔ)系統(tǒng)都能對(duì)閃存(SSD)提供支持的功能,還有一些(例如EMC的VNX和惠普的Lefthand)提供全SSD閃存陣列,機(jī)械磁盤(碟片旋轉(zhuǎn)磁盤)和閃存之間的性能差異非常明顯,需要從上到下重新設(shè)計(jì)存儲(chǔ)系統(tǒng)才能夠最大限度地發(fā)揮閃存的性能。對(duì)新SSD存儲(chǔ)系統(tǒng)架構(gòu)的通常說法是:傳統(tǒng)RAID控制器不具備足夠的計(jì)算能力和I/O能力來處理超過已經(jīng)部署超過半數(shù)的固態(tài)硬盤。畢竟,如果控制器被設(shè)計(jì)為處理20萬IOPS(能夠處理1000個(gè)機(jī)械磁盤所發(fā)揮的IOPS),那么當(dāng)面對(duì)每個(gè)都可以提供10萬IOPS的,總計(jì)20個(gè)固態(tài)硬盤時(shí),其計(jì)算能力方面的短板就很明顯可以感覺出來。

我覺得或多或少會(huì)出現(xiàn)這樣的情況。畢竟很多系統(tǒng)(從全閃存初創(chuàng)公到大型企業(yè))都基本上是使用Xeon服務(wù)器作為他們的RAID控制器?;贜ehalam和Westmere的系統(tǒng)應(yīng)該能夠處理一個(gè)中型系統(tǒng)所需要滿足的20萬到50萬IOPS。我認(rèn)為具有閃存緩存和/或分層的成熟陣列與最佳“新人”之間的差異在于數(shù)據(jù)布局,而不是CPU控制器周期。

這主要是關(guān)于閃存和機(jī)械磁盤之間的差異。磁盤驅(qū)動(dòng)器為讀取和寫入I/O提供對(duì)稱的性能,但是為連續(xù)訪問和隨機(jī)訪問提供不對(duì)稱性能。閃存為隨機(jī)/連續(xù)提供對(duì)稱性能,為讀取/寫入提供不對(duì)稱性能。并且磁盤驅(qū)動(dòng)器故障幾乎都是因?yàn)殡S機(jī)讀寫而出現(xiàn)的,雖然閃存的寫入壽命有限,但處理這兩種存儲(chǔ)設(shè)備的最佳方法是完全不同的。

為了最大限度地提高性能,傳統(tǒng)磁盤陣列竭盡所能地避免移動(dòng)磁盤驅(qū)動(dòng)器上的磁頭。不僅因?yàn)橐苿?dòng)磁頭需要化2-15分鐘(這真的是很長(zhǎng)的一段時(shí)間),而且在共享存儲(chǔ)設(shè)備上,為應(yīng)用程序獲取數(shù)據(jù)而移動(dòng)磁頭,這就意味著當(dāng)最后讀取數(shù)據(jù)的應(yīng)用程序需要更多或者想要寫入新數(shù)據(jù)時(shí),需要將磁頭移回原來的位置。當(dāng)優(yōu)化閃存時(shí),其目標(biāo)并不是最小化隨機(jī)I/O,而是最小化寫入,特別是寫入小于閃存數(shù)據(jù)塊的大小,因?yàn)殚W存設(shè)備的任何寫入操作都要求先擦除整個(gè)塊,然后再寫入。

因此傳統(tǒng)陣列將寶貴的RAM緩存分配到預(yù)讀緩沖區(qū),并使用其他方法來盡量減少磁頭移動(dòng)。很多新一代陣列采用結(jié)構(gòu)或者非易失性寫入結(jié)合緩沖區(qū),并且組織固態(tài)硬盤上的數(shù)據(jù),這樣同一時(shí)間寫入的數(shù)據(jù)位于同一塊,而不是以數(shù)據(jù)提交給主機(jī)的方式來存儲(chǔ)數(shù)據(jù)。

分享到

wangzhen

相關(guān)推薦