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