6月份,一家寂然頗久的美國存儲公司DataCore突然刷屏了:最新的SPC-1測試結果顯示,DataCore打破紀錄,創5百萬 IOPS!
?。▓D片來自于DataCore官網)
所有的存儲陣列廠商真的只能望其“數”背了……
?。▓D片來自于The Register網站)
DataCore在國外媒體上大量發布這個數據,仿佛已經在宣布傳統陣列的末日。國內也有存儲自媒體人發表解讀,題目很驚悚: “500萬IOPS, SPC-1已經被DataCore玩壞,高端存儲們,咱們撤”。
DataCore屬軟件定義存儲(SDS)陣營,本來應該為這新興存儲陣營的同志叫好,但是這個結果實在是驚愕之余,匪夷所思。本著存儲人應有的謹慎精神,我們想重新看一下這個測試結果,是不是錯漏了什么“黑幕”?
龐大內存:是助力還是在“攪局”?
DataCore在本次測試中提供的是DataCore Parallel Server(兩節點,光纖通道SAN),硬件為兩臺聯想服務器。
所有的秘密就在于:兩節點的服務器,每臺都配置了1,536GB的龐大內存!
雖然DataCore的CEO聲稱,影響性能的主要原因是CPU,而不是這個大內存。但是,國外媒體在后續報道中,大家的爭論焦點已經變成了——“把所有測試數據放在緩存里算不算作弊”,認為大內存對這個測試結果而言,還是很重要。
DataCore又爭辯說,內存的造價比SSD和硬盤高,所以多使用內存會使造價升高。但是,使用這么大內存的DataCore方案仍然比存儲陣列便宜呀!
內存和SSD、磁盤有何區別?除了性能和價格以外,還有一點萬萬不能忽略,就是內存的易失性。通俗點說,一斷電,內存里面的數據就沒了。雖然一般而言,服務器對內存有電池保護等手段,以確保內存在斷電后還能堅持一下。但是這么大的內存,應該說幾乎不可能從一次斷電中幸存。
正因為此,幾乎所有的存儲陣列提供的內存還是在一個相對合理的范圍內。DataCore顯然是占了它是軟件的便宜,反正搞兩臺Windows服務器,內存配置到頭就是了,不需要考慮這么多。是不是這個配置就是一個專供跑評測分數的奇葩配置,而與實際的企業應用無關呢?
“鏡像數據保護“是靠譜還是離譜?
數據都保存在內存里,還存在一個嚴重的問題,即高可用怎么做?
SPC的配置表中說DataCore采用了鏡像的數據保護。但是鏡像只能在SSD和硬盤上實現,內存的數據是不是也鏡像了呢?
在Windows內核的系統上實現內存鏡像保護是一件非常有技術含量的事, 能夠解決這一難題的廠商如鳳毛麟角,最多只有兩三家,而且都是巨無霸型的存儲公司,在專用的封閉系統上實現。DataCore采用的是Windows 內核,我們對DataCore是否解決了這一難題深表疑慮。退一萬步說,我們假設DataCore真的技術水平大爆發,實現了采用了鏡像的機制來保護數據。從SPC的配置信息中看到,兩臺服務器之間采用了光纖連接。我們簡單計算一下,5百萬IOPS,假設每個IO為4KB,每秒的數據傳輸應該會高達20GB,也就是160Gb,那么無論什么樣的網絡都是不可能支持這樣的IO。也就是說,兩臺DataCore服務器之間的內存不可能一直處于同步的狀態。
這意味著什么?一旦出現服務器故障,則一定會出現丟數據的情況!因為每當數據寫入緩存,應用服務器就會認為這個寫操作已經完成;而一旦發生數據丟失,輕則出現數據錯誤,必須手動恢復;重則會發生數據庫崩潰。僅僅為了追求高性能而付出這樣的代價,是絕對不值得的!作為企業級的存儲方案,一切性能的追求必須以保證數據不丟作為最基本的前提。而這種完全拋棄基本要求而去追逐性能指標,與其說是制造沒有價值的新聞吸引眼球,不如說是完全不負責任地愚弄大眾。
【Windows系統】是錦上添花還是不倫不類?
此外,DataCore所采用的操作系統是Windows。 Windows作為存儲的操作系統,其優點和缺點同樣突出。優點就是Windows的操作系統功能已經十分完備,甚至已經包括了NFS、備份、快照等高級功能,因此作為存儲管理軟件,只需要做一個定時機制和界面就可以滿足低端用戶的需求了,開發成本非常低。
但是,缺點也很明顯,即在Windows上能做的管理非常少;對重要的資源,比如內存和CPU的管理,都幾乎無法實現。這樣作為存儲管理軟件,能夠進行定制和調優的空間就沒有了。因此,業界一般認為Windows只適合做低端存儲的平臺。
此外,更嚴重的是,Windows系統的穩定性也廣受質疑。作為存儲陣列的封閉系統還勉強可以用,要作為虛擬化網關就需要經常更改配置,連接新系統,支持新應用。我們已經連續聽到很多DataCore以及它在國內的OEM合作伙伴的產品發生崩潰丟失數據,以致無法恢復的事故。因為無法觸碰到系統內核,這類問題軟件廠商可能根本無法解決,只能祈禱微軟可以快速修復bug。聽說國內的這些事故最后也沒有找到故障的根本原因,因此也沒有解決,只是采用各種息事寧人的危機公關手段掩埋了消息。Windows另一個存儲缺陷是實現不了真正的雙活,只能是主備形式的高可用。市場上標榜自己是雙活的Windows內核方案無一例外都是掛羊頭賣狗肉,都是兩臺設備互為主備各自跑獨立的應用來實現的,而不是真正意義上的雙活。
另外,一直被業界詬病的EMC中低端陣列VNX最近推出新一代Unity平臺,不惜放棄多年的技術積累,也終于拋棄Windows平臺,轉而投向Linux。DataCore的SPC測試顯然在標榜自己是有能力與高端存儲競爭的企業級解決方案,但是采用Windows這種不倫不類的平臺是否有些過于兒戲了?
企業級存儲廠商,請堅守最基本的底線!
初看到DataCore的SPC測試數據,的確很詫異,細看起來卻發現,這是以數據可靠性為代價的噱頭。SPC在測試標準上設置了一些企業級可靠性的要求,但是還是被DataCore鉆了空子。我們認為,企業級存儲市場上的廠商需要堅持對用戶的數據安全負責的基本底線,雖然市場宣傳經常需要有意夸大自己的優勢,但有些底線還是不應該突破。
DataCore在國內是采用OEM的合作方式,其國內OEM伙伴也在各種場合宣傳自己的高性能,也不知到底是否明其真理?希望他們還能堅守住作為一個負責任的存儲廠商的底線。
結語
不過,令人欣慰的是,無論怎樣,我們也看到了軟件定義存儲(SDS)的實力正在逐漸加強。雖然這次看到的測試數據有些摻水,但是SDS對傳統存儲的沖擊仍然可見一斑;傳統存儲以性能為武器阻擋SDS的防衛策略已經有些力不從心了。隨著服務器配置和性能的逐步提高,SDS軟件的快速迭代更新,SDS趕上甚至超過傳統存儲陣列的日子已經指日可待。
本來到這里已經寫完,突然發現DataCore在回應業界質疑時,已經承認了自己的測試結果是不滿足企業級高可用性的要求的,而滿足高可用性要求的配置只能達到150萬左右IOPS(詳見《Datacore dominating SPC-1 benchmark on price-performance》)。暫時還沒有仔細研讀達到這個指標的配置有何漏洞,但是,承認錯誤,就是好孩子。