精選文章

[新聞|產業] 大型企業儲存廠商面臨市場寒冬

大部份的儲存系統大型製造商在將要過去的 2016 年都不太好過;不過,這究竟只是另一個寒冬,還是根本就是冰河期的開始?春天還會不會來呢?在即將步入 2017 年的這個時候,這些儲存廠商的心裡只怕是五味雜陳吧! 根據最新的 IDC 全球企業儲存系統追蹤季報 (IDC World...

2016年7月19日

[企業儲存觀察室] 儲存系統的 SPC-1 跑分真實嗎?

這次,我們來談談儲存系統的跑分;「跑分」當然是借自網路用語,正式的說法應該是效能測試 (Benchmark) 數據。

在一個曾經遙遠的年代,筆者剛進入資料儲存這個領域時,那個時代的磁碟儲存系統廠商,都很喜歡在自家產品的型錄上標示某一個型號的儲存系統,其 I/O 效能峰值可高達數萬(如 30 萬)個 IOPS。但想想,即便是現在,一部純磁碟的儲存系統,在沒有固態儲存的助力下,要達到 30 萬個 IOPS,雖不至於難如登天,但也絕非易事!更何況是在那個遙遠的年代。

雖然當時企業用戶們也都深知廠商所號稱的效能數字,在現實世界其實是難以達成的,但礙於沒有其它可信賴的評比資訊,也就只能將就著做為評比的參考數據之一。
但後來自從 Storage Performance Council (http://www.storageperformance.org/) 的 SPC-1 跑分出現之後,大家赫然發現,現實世界的數字約莫只有廠商型錄上號稱的十分之一左右。

SPC-1 跑分提供了企業用戶們一個更為接近於現實世界的參考數據,來做為儲存系統效能的評斷標準之一。 經過了好長的一段時間(約莫 10 年吧),企業用戶也慢慢地開始接受,視 SPC-1 為可驗證的數字。從好的一面來看,廠商們再也不能/需要宣稱一些完全不可能實現的 IOPS 數字;但從壞的一面來看,廠商們開始(用盡各種方法)全力衝刺 SPC-1 的數字。隨著固態儲存的出現,SPC-1 的數字陡然衝破百萬個 IOPS。於是另一個問號出現了,超過百萬個 IOPS 的數字,對企業用戶們實際上的參考價值何在?

從技術上來看,不論是使用傳統磁碟或是全快閃/混合快閃,SPC-1 的跑分證明了該儲存系統具備足夠的能力,來提供達到某一個 IOPS 數字的效能;但企業實際的環境能否達到這一效能,這又是另外的故事了。
其次,在達到一定程度的效能之後,終端使用者/應用是否能感知其中的差別呢?或是換個角度說,100 萬與 200 萬個 IOPS 的差別,對大部份的企業應用有意義嗎?

而在儲存系統廠商們不斷的追高 SPC-1 跑分的同時,難免就會有一些瘋狂的事情發生。近日,一家儲存公司最新的 SPC-1 測試結果創下破紀錄的 500 萬個 IOPS,震驚業界。由於這個數字與先前的榜首差距甚大,而且這並不是會創造高 IOPS 數字的傳統儲存系統,因此近期網路上對這件事討論的沸沸揚揚。
圖片來源:storageperformance.org

從技術上來看,創造這次 500 萬 IOPS 高跑分的儲存軟體,運行在以一般商用伺服器硬體為基礎的 Windows 作業系統上,而且使用了以下兩種傳統儲存系統不容易運用到的技術:
  • 平行 I/O (Parallel I/O)。平行 I/O 並不是一項新的技術,它的先決條件是必須使用多核心、具備多重執行緒 (Hyper-threading) 能力的處理器,每一個執行緒處理一個 I/O,因此在同一個時間內可以平行地處理多個,而不只是處理一個 I/O 要求。然而在資料處理上,尤其是資料庫系統的應用,資料 I/O 的順序是相當重要,因此使用平行 I/O 技術時,儲存系統必須要在確保每一個 I/O 的順序以維護資料完整性的同時,最佳化而有效率的運用快取記憶體。這是較沒有爭議的部份。
  • 引起較大爭議是記憶體 I/O。大部份的儲存系統都有快取記憶體,快取記憶體的主要目的在於做為磁碟的暫存空間,增加 I/O 的效能,但決不會把資料存放在快取記憶體上,因為在沒有電池保護的情況下,斷電將會使快取記憶體上的資料完全丟失。但這次測試中每一部伺服器有 1.5TB 的(快取)記憶體,並且為了提高快取記憶體的讀取命中率,將測試資料放在快取中,直接從快取記憶體而非磁碟上讀取資料。

在傳統的儲存系統上,一般都會有保護快取記憶體內資料的機制,不論是電池保護,或是回寫至固態硬碟。但在一般商用伺服器上, 幾乎沒見過這種保護機制。因此要達到高可用性的目的,唯一的方法就是使兩部伺服器的記憶體具備資料同步的能力;Windows Server 是沒有這種技術的,如果是由儲存軟體來處理記憶體資料的同步,在這麼大量的記憶體與 I/O 下,根據計算是完全做不到的。簡單的說就是在 500 萬個 IOPS 的效能數據下,這個測試架構是不具備企業級高可用性的。

對於 SPC-1 的測試而言,它是根據用戶環境來建立的一個資料庫系統的工作負載,所做的是在可控制的環境下,進行重複的測試,所以適用於比較同一應用下不同產品的性能。
嚴格來說,這種測試負載未必會與真實應用相同,更重要的是,對於儲存系統除了效能以外的特性,與 RAS (Relabiliyt, Availability, Serviceability) 等,是完全無法測試出來的。
筆者並不認為這次的測試數據存在著「造假」的事實,只是這樣的測試數據除了證明 500 萬個 IOPS 外,企業在參考這份報告時,可能有更多必須額外考量的因素。

這家業者後來也已經回應了業界質疑,承認這次的測試結果無法滿足企業級的高可用性要求,而滿足高可用性要求的配置其實只能達到大約 150 萬個 IOPS。
所以咧?那 500 萬個 IOPS 是怎樣?這樣的測試結果到底意義何在?

技術日新月異,人外有人,天外有天,沒有任何一家儲存廠商敢擔保自家產品的 SPC-1 跑分永遠名列前茅,過去如此,未來也會是如此。但像這次一個驚天動地跑分可以引起這麼大爭議的,就算未必是絕後,但肯定是空前。筆者不知道有多少的企業用戶會認真的研究這個 500 萬個 IOPS 的數據,或許也就信了也不一定;但可以確定的是,「這是一次成功的行銷造勢」!