就像死亡和稅單一樣,對于增加存儲空間的需求在當下也是人生的必然之一。然而我們要面對另一個現實:由于不當的設計和混亂的管理,我們已經浪費了大量的空間。
對于存儲空間需求不斷加大的誘因,除了來自數據量的不斷增長之外,大量的研究表明每個閃存設備或者硬盤上將近70%的空間都被那些令人厭惡的文件拷貝、大量從未被訪問過的數據或者不知道從哪里寫入的數據所占據了。
從設計角度看,我們所浪費的相當一部分存儲空間是由于引入了軟件定義存儲策略所導致的,因為其至少需要三個存儲節點來對所有節點上的所有數據進行交叉式的數據同步,或者是由于我們采用了過時的文件系統來分配空間——這些空間從來就沒有存儲過哪怕1比特的數據。甚至是由于我們在分配存儲空間時采用的方法漏洞百出。向服務器管理員親眼見證那些經典的存儲空間分配方法,然后在部署到文件系統之后讓他們自己決定,這些空間能否起到一定作用還是莫名其妙的“蒸發”了(也許是為了緊急情況使用,或者,算了,作者自己也編不下去了)。
存儲空間利用率低并不僅僅是使用者的問題
數據存儲行業在過去幾年中向我們傳達了兩件事情:技術發展帶來的奇跡以及以存儲架構形式存在的為貪婪埋單的遺跡。從20世紀八十年代至今,硬盤空間大約每18個月就會翻番,而其成本,每12個月就會減半——這就是技術革新帶來的好處。反觀存儲陣列的價格——一堆商業存儲部件加上一塊由類似服務器主板的東西作為控制器,最后在機架中堆疊而成——每年上漲近120%。
成本上升的很大一部分原因來自于不斷革新的軟件,這些軟件也使得存儲陣列廠商可以為自己的產品貼上獨有的標簽進而在市場中獨樹一幟,進而將那些客戶繼續使用自己的產品。基于將存儲陣列回到原有的商業存儲領域這一出發點,通過將所有附加的軟件產品抽象成完全獨立的軟件服務層并部署到服務器中,軟件定義存儲在某種程度上是可以預見的。廠商們稱之為革新,但是在我看來,它和大型機管理存儲(mainframe system managed storage,dfSMS)的作用相似(dfSMS可以對批量的直連存儲設備進行管理)。
軟件定義存儲策略能否降低存儲陣列的成本還需要拭目以待,尤其是那些由領先的服務器管理程序廠商推動的軟件定義存儲的實現方法,從架構設計的角度來講,這些實現手段的最終目的是要取代傳統的SAN和NAS系統。由于存儲是打包銷售的,所以資本性開銷(Capex)是龐大的。在今天,我們花在IT硬件上的每1美元中,存儲部分就要占掉33美分到70美分,如果我們把這些硬件開銷繼續細分,例如維保合同、若干年的軟件使用許可(還要考慮到維保以及使用許可的時間,畢竟我們的存儲要長期使用下去)等等,那么最后的數字將會是相當龐大的。
找出巨額開銷的真正來源
然而資本性支出(購買成本)僅僅占了一部分而已。如果想找出開銷的全部來源,你就得考慮到經營支出(Opex),而這部分開銷在大部分公司中都不一樣。根據Gartner的分析,存儲的年度總經營支出約為年化資本性支出的四到五倍。
經營支出包括備份和還原、計劃性宕機、管理和維護以及設施開銷(空間、電力以及空調等等)。這些數字往往都被人們忽略了而并沒有被明確的標示出來。我們之所以知道這些數字的存在,就是因為有的時候我們無法高效率的管理存儲架構,那時真正的經營支出將會變得相當巨大。
我們就不能好好地管理我們的存儲嗎?我們總是傾向于購買大量的Tier-1存儲設備,它們低空間高性能的屬性可以在部署當天就帶來令人側目的應用性能提升——當然無論這些應用是不是關鍵的。但我想說的是,這件事兒從一開始就做錯了。
從傳統意義上來說,不同類型存儲的出現是有其原因的。有些設備是用來存儲那些在短時間內快速累積起來的數據,因為它們可以滿足交易系統對高性能的需求。而有些設備的設計初衷是存儲那些定期或者偶爾更新或者修改的大量數據。還有些設備則是用來存儲那些長期不被訪問甚至幾乎沒有改動的海量數據。在一個良好的管理環境中,數據遵循由自動化分層存儲管理或歸檔軟件設定的策略在層與層之間移動。這也許就是我們能控制存儲開銷的唯一途徑。
令人煩惱的是,要想使得分層機制有效地工作,你需要部署集成化的架構或者至少有一套通用的管理策略。在個別情況下,有些廠商將他們的產品與競爭對手的產品的協同工作弄的很復雜。有些存儲附帶軟件會給日常管理帶來額外的負擔,而在個別存儲陣列中,其自帶的文件架構系統甚至會在同類存儲平臺上獨占共享數據。
尤其是后者,它不僅僅存在于傳統的存儲陣列中。管理軟件廠商通過“巧妙地”部署自己的SDS堆棧來阻止自己的存儲資源共享到負載的處理過程中,而這些負載就是那些已經通過其他競爭對手的SDS模型完成虛擬化的部分。
關于“你們的”存儲是如何變成“他們的”存儲這個情況,其實你并不是第一個受害者。這些專屬的障礙使得我們對數據進行自動化跨層級移動的能力大大減弱。這種障礙其實是一個副產品,它是在SDS向高性能計算集群借鑒經驗的時候不小心出現的。眾多SDS架構能夠帶來影響的關鍵就在于在每臺虛擬服務器背后,都搭建了一套扁平的存儲架構,而這些架構的配置和部署都是完全相同的。這些架構就構成了基礎的模塊——服務器、存儲以及SDS中間件的超容和架構節點——他們可以進一步的擴展出很多空間并且快速地部署,進而來滿足業務的需求以及需求的不斷變化。需要在ERP中再增加50個位置?僅僅需要擴展出三個額外的基礎模塊就可以滿足對計算、網絡以及存儲空間的需求。
這聽起來就像是一條通往真正意義上的敏捷部署的大路,直到你發現它們背后架構的秘密。為了熱點數據而準備的既昂貴空間又低的存儲層級是不存在的。同理,為訪問頻度相對較低的數據專門設計的價格相對低廉而空間更大的存儲層級也是不存在的;當然,為冷數據以及歸檔數據設計的大容量低成本的存儲層也是沒有的。對于存儲層級以及數據跨層級移動的管理失誤往往會在很大程度上提高存儲的總體開銷,而失誤的原因還是在于管理本身。
圍繞SDS以及存儲空間說開去
軟件定義存儲允許客戶將存儲服務集成到服務器的軟件層。這種做法很好,因為SDS將軟件從原有的存儲控制器中抽離出來,使得它們的功能得以進一步的發揮而不僅僅局限在單一的設備中。將數據去重功能或者是精簡配置局限在單一的硬盤上與把其擴展到全部存儲平臺層面相比,前者實在是沒有什么太大意義。在這一點上,SDS的從業者們并沒有拖大家的后腿。
真正給大家帶來誤導的地方是:將這些軟件集成到服務器端的軟件堆棧當中會成為存儲管理的萬能良藥。然而它并不會。
除了存儲服務之外,存儲管理將存儲資源的管理細分成了以下幾個方面:存儲物理架構、存儲運行狀態以及存儲空間的分配與回收。如果存儲節點上的硬盤或者閃存設備出現故障,并且沒人能夠發現,那么鏡像功能就不會起到任何作用,最后導致的結果就是數據復制服務的管理形同虛設。更糟的是,如果存儲無法根據變更的需求對后臺的數據進行整合,那么所謂的敏捷部署也無法得到實現。
當你考慮到這些問題的時候,你會發現存儲資源管理無法并入到管理軟件廠商所鐘愛的SDS堆棧中的唯一原因就是雙方的關系并不是那么融洽。如果我們可以將存儲架構虛擬出來,即抽象出來的東西不僅僅是那些軟件,還有那些資源空間的管理部分,那么存儲資源就可以像軟件定義存儲的服務一樣,更好地實現分配、回收以及分層。
存儲虛擬化并不是什么新鮮的東西。DataCore Software在這一領域已經做了十多年,而IBM 的SAN Volume Controller又對這一領域帶來了新的力量。盡管通過創建共享存儲資源這種做法可以使得存儲資源與SDS相互結合,讓數據運行在適合的存儲設備與服務上,進而優化數據的使用以及存儲的開銷,但是當今的業界領先公司似乎對其并不是很感興趣,。
如果你想利用SDS來馴服存儲開銷這頭野獸,那么軟件定義存儲、超融合架構以及過時的存儲陣列網絡都不會是萬能的良藥。當你將存儲服務集中起來的同時,你也需要考慮將存儲空間虛擬出來。只有這樣,你才能夠以一種有效的方式保留既定的層級移動策略并且在所有數據中共享存儲空間以及存儲服務。