那些沒有為數據庫或文件系統寫過代碼的上了年紀的程序員應該不太可能讀到這篇文章。畢竟,一般商業應用程序訪問其他數據類型的模式已經存在超過40年了。因此,代表著第一個主要的新型數據結構類型的對象存儲,它在兩代的時間里對數據管理實踐產生了顯著影響。對象的實現始于上世紀90年代末,但多數是特殊應用。大規模的部署則由云服務所引領,如亞馬遜S3,Facebook和 Spotify。現在,無論成熟廠商還是新興廠商的對象存儲解決方案都已達到相當成熟度,使得IT部門開始考慮如何在自己企業中實現對象存儲。
對象存儲在很多重要方面與SAN和NAS迥然不同,對存儲管理員而言最顯著的區別在于對象存儲沒有LUNs,卷以及RAID等要素。對象數據不是存儲在固定的塊,而是在大小可變的“容器”里。鑒于元數據(metadata)和數據本身可通過傳統數據訪問方法進行訪問,對象存儲允許數據被直接訪問。此外,支持對象級和命令級的安全策略設置。
然而,企業IT部門卻不太認為他們需要對象存儲。相反,存儲經理們在尋找更好的方法來滿足企業的數據訪問需求,他們需要盡可能簡單而不貴的解決方案,盡管對象存儲事實上挺符合這些需求的。
在數據中心使用對象存儲是一種“和”而不是“或”的解決方案。對象存儲擁有很大前景,但它不會很快就完全取代SAN和NAS存儲。存儲系統實施中的共性有:
歸檔
云存儲
備份與恢復
合規性
內容服務
還有一些應用案例中數據訪問是必要的,但性能卻不一定是問題。
對象存儲的實現模型
當前的對象存儲解決方案從即用型的云服務,軟硬件捆綁或純軟件的應用交付,直到完全的融合型陣列。有些實現試圖擁抱并包容傳統存儲架構,而另一些則是純粹的專門設計。
從 Helion公有云開始,惠普提供了全系列的對象存儲產品。對于內部和私有云環境,惠普的StoreAll 820存儲網關應用可作為前端搭載StoreServe 7000型或10000型陣列,也就是3PAR陣列。StoreAll 8800則是基于3PAR的一個完全的融合性陣列,在同一設備里支持SAN,NAS和對象存儲。因此,惠普的產品針對了每種類型和大小的客戶,從小型到中小型(SMBs)再到最大的企業集團。
新興對象存儲廠商Exablox的第一個產品是OneBlox應用,其架構是一群對等節點組成的“環”,待存儲對象通過支持SMB/CIFS的通用文件系統在這些節點上被存儲。有一點值得注意,OneBlox應用可以支持任何SAS或SATA硬盤驅動器,即使是剛剛發行的最新款—如西數的HGST Ultrastar He66TB充氦型硬盤。IT企業可以從它們喜愛的電子設備商采購硬盤,因而避免了常見的陣列加價。Exablox針對中小型企業和云服務提供商,目前已有2000用戶。
昆騰Lattus對象存儲應用的配置可以從6節點擴展到20節點,這些節點在地理上分散以使得廣域接入和協作成為可能。 Lattus有三種模式:D,X和M模式。D模式支持原生的S3接口(HTTP Rest);X模式支持NFS,CIFS和HTTPREST協議;M模式則支持昆騰的StorNext存儲管理接口。Lattus是業務無中斷,自修復和自遷移的系統,主要面向大中型企業,尤其是媒體和娛樂行業,或者那些需要進行計算/處理/編輯的應用場景。
EMC提供多種對象存儲產品。 Atmos可以以云服務的形式交付,稱為Atmos Geo Drive,但也可以作為完全的陣列形式交付。EMC的SourceOne歸檔應用則通過采用CIFS和NFS協議將文件接口轉換為Atmos對象存儲,從而提供歸檔,合規和電子發現功能。此外,EMC的ViPR軟件定義存儲平臺提供對象服務,作為EMC Isilon,VNX,或NetApp陣列的前端,可允許對象訪問到達后端數據層。
簡單是關鍵
對象存儲與傳統存儲的差異反映出它的一個關鍵優勢:簡單性。當今大多數IT企業并不哀嘆缺乏技術,而是一再增加系統的復雜性。與此相反,對象存儲系統的特點正是實施和管理上的簡單性。比如Exablox聲稱OneBlox應用的安裝和配置是如此簡單以至于有那么個不太較真的“卡布奇諾挑戰賽”,即Exablox演示如何將他們的設備開箱,上電,安裝硬盤到存儲數據,整個過程所花時間和品嘗一杯卡布奇諾咖啡的時間相當。
由于對象存儲不依賴于LUNs和卷,因此可實現無中斷擴展。通常,新的存儲容量可以通過簡單配置加入到運行系統中。Exablox和昆騰都聲稱用戶將永遠不會再經歷大規模升級,系統配置或重新配置。這種擴展性是由設備底層的文件系統所實現的,比如惠普的StoreAll系統使用StoreAll分布式文件系統,而Exablox則使用它們的環形架構和通用文件系統。它們與其他的對象存儲系統一樣,很像橫向擴展(scale-out)存儲系統,由文件系統來實現了跨節點的全局命名空間。然而需要留心的是,由于擴展性并非無限的,在某一特定配置下,廠商對所支持節點的個數確實有限制。
對象友好的應用
這里提到離散用例的一個主要原因是對象存儲是使用REST API進行訪問,該API的數據訪問命令僅限最基本的POST,GET,PUT和DELETE操作,然而很多云供應商卻親睞REST作為首選接口。為了提供更豐富的功能,惠普StoreAll產品是一個融合的文件和對象系統,它的操作系統支持CIFS, NFS, OpenStack, Identity Services, Swift和Keystone等協議。EMC的云網關應用SourceOne和Cloud Tiering,將CIFS和NFS翻譯成Atoms對象存儲,以及除歸檔外的其它一系列第三方應用程序。昆騰在它的Lattus對象存儲產品中捆綁了 RESTful接口,該接口允許昆騰與其他公司如CommVault(Simpana)和Arkivio等展開合作。Exablox的OneBlox支持 REST,但是作為一個CIFS共享呈現給應用程序,NFS的支持尚在開發中。
對象存儲和數據持久性
由于對象存儲并不依賴RAID做故障保護,廠商們需要別的策略來完成。大多數情況下,這涉及到跨節點的復制。昆騰Lattus可以部署持久性策略,即IT經理可以指定跨節點和地點的不同復制策略,以應對一定數量的節點故障。如20/4策略可將數據分散復制到20個節點,從而避免最多4個節點發生故障而導致數據損失;18/7策略則是將數據復制到3個節點以應對單點故障的數據損失。Exablox的OneBlox也將數據復制到其他節點,其中復制到3個節點的數據可以避免兩節點故障的數據損失;而如何將數據在節點間做最優化分布則由一個哈希算法來保障。
EMC的Atmos擁有兩套保護模式供IT經理來決定如何優化可達性與效率。數據復制是一種選擇,無論是同步還是異步。此外,該產品還采用分布式可擦除編碼,它具有較高的存儲利用率,但每次數據請求都需要訪問兩個或更多地數據存儲。昆騰的Lattus同樣使用fountain可擦除編碼,使數據在各節點間分布,而不再需要復制。
其它高級存儲服務
由于REST API的固有限制,廠商們不得不使用各自的方式來提供API基本功能以外的存儲服務。這也正是惠普將StoreAll實現為一個融合設備的原因之一,在需要一整套存儲服務的應用環境里惠普可以充分利用NAS端已經具備的特性。例如,當StoreAll 8200和StoreAll 8800使用3PAR作為存儲后端時,系統即內置了惠普的自適應優化,加密,WORM(Write Once Read Many)和分層等功能特性。
由于沒有遺留系統需要加以考慮,Exablox采取了一條完全不同的道路。它將數據管理的原子單位設置為32KB的哈希塊。如果一個塊已存在,則創建指向它的指針,而不是一個新塊。因而該公司聲稱他們的重復數據刪除功能是“免費”的。數據加密則使用AES 256標準來實現。
對象存儲的性能改進
盡管IT用戶確實不會在OLTP應用中使用對象存儲系統,廠商們依然在努力提高其系統性能。例如,EMC使用一種“boxcarting”的方法來處理大量小交易,即將這些小交易合并在一個單次寫操作中。Exablox則采用不同技術,他們的哈希算法能將數據平均分布到所有節點從而避免I/O瓶頸。
盡管對象存儲系統確實不會用于OLTP應用,廠商們依然在努力提高其系統性能。
相較于SAN和NAS的復雜性,盡管對象存儲也并非銀彈,但是它確實能夠簡化至少一部分存儲投資,特別是在歸檔和非結構化數據存儲方面。對象存儲可以提供更低的每GB價格,而最大的優點則是簡化了存儲管理。按照通常所認為的那樣,如果存儲管理的成本占據了總擁有成本的85%,那么對象存儲系統由于無需配置,重新配置和部署任務,必將極大地影響總擁有成本。IT經理們將會想辦法將對象存儲納入到企業IT信息架構中來。