對象級存儲正準備替代企業中的NAS
NAS文件服務器或文件管理器在過去的25年里一直是存儲非結構化數據或非標準數據庫數據的傳統方式。面向非結構化數據,并不意味著數據本身沒有結構,因為文件本質上就是一個二進制對象。基于以上原理,許多供應商已經為相同的非結構化數據同時提供對象級存儲和文件級存儲接口,我們有望看到新興的對象存儲成為傳統文件服務器的替代者。
我們將在這篇文章中討論混合使用對象級存儲和文件存儲兩種方式來存儲非結構化數據時的優劣對比,并研究IT部門在考察相關產品時應該考慮哪些重點。
NAS歷史回顧
NAS涵蓋了源自IT世界兩段不同歷史的兩種技術。其一是由Sun Microsystems開發的NFS,已經成為非Windows系統訪問網絡文件內容的標準協議。另一種就是SMB,也就是廣為人知CIFS,是Microsoft平臺的文件共享協議。兩種技術自從推出以來都發展迅速,不斷提升和增加擴展功能,超越簡單文件共享實現更廣泛的功能。
傳統的NAS會使用RAID技術來防護磁盤故障,供應商的大多數NAS產品也都基于雙控制器架構來防護硬件故障,其中一些NAS產品還能實現橫向擴展。NAS的文件系統首先構建在物理存儲介質上,這些文件系統再使用NFS或SMB向網絡公開。
NAS和對象存儲的相似點
基于文件的NAS和基于對象的存儲都面向相同的數據類型——非結構化文件,在文件內部或者外部維護文件層級信息。兩者都可以支持橫向擴展架構,從而能存儲海量文件或對象。
用文件系統來充當數據存儲基礎也帶來一些可用性問題:
可擴展性問題。在單節點NAS或故障轉移雙節點NAS上,文件系統只位于單個操作系統實例上。這種方式可以相對容易地處理諸如文件創建、鎖定和更新的“固定模式”操作。然而,文件系統的擴展是一個真正的挑戰,并且問題在需要處理眾多節點變得非常復雜。
數據完整性。文件系統將數據分解為元數據和數據內容,然后存儲在邏輯或物理磁盤卷空間內。如果文件服務器意外掉電,那么系統必須執行文件系統檢查(FSCK)來校驗掉電時數據的完整性。根據文件系統的實現方式,校驗操作可能會帶來很大的延遲;某些NAS系統,如NetApp的Data ONTAP,會使用非易失性RAM來處理海量數據的校驗和確認,從而降低FSCK的開銷。
RAID保護。從Gatter Gibson和Randy Katz在1987年的一篇論文開始,RAID已成為存儲設備的常規保護措施。RAID技術為我們服務了很多年,但現在已經開始達到可擴展性的極限,因為硬盤驅動器的容量不斷增長,結果已經遠遠超出RAID論文發表時的預計。今天的RAID系統重建時間可能會持續數天,這已經是個大問題,隨著新款12TB容量驅動器的發布和不斷投入使用,RAID的前景將會更加困難。
RAID僅適用于保護存儲在單個設備中的數據,這也是額外的限制條件。為了保護數據免受單純設備故障之外的侵害,必須對數據進行復制,在地理上分散的不同位置創建數據的完整副本。
理解對象存儲
基于對象的存儲是存儲二進制數據或對象的相對較新的方式。該技術可以追溯到20世紀90年代中期,一家名為FilePool的公司提出了可尋址內容存儲的概念。EMC(現在的戴爾EMC)收購了FilePool,其產品成為Centera產品線。此后,許多供應商都已經進入這個可以存儲海量非結構化內容的新概念市場。
NAS產品基于文件系統存儲非結構化數據,這種機制的性能和數據完整性缺陷無法避免;而對象存儲是一套物理存儲架構,完全消除了以上問題。這是因為對象存儲并不使用文件系統概念,而是將數據存儲在單個平面命名空間或層次結構中。
對象級存儲在以下幾個關鍵領域與NAS不同:
通過基于Web的協議(HTTP或HTTPS)訪問,而且通常是無狀態連接。對象存儲平臺的每次讀寫操作都使用諸如store-create,update和delete這樣的簡單指令。
沒有文件目錄結構。對象級存儲提供“存儲單元”或邏輯存儲容器,以平坦,非分層的方式存儲數據。
不關注數據格式或結構。數據的內容屬性描述信息會保存在元數據中,和數據本身同時存儲。這些屬性可以是系統元數據,例如數據保存的日期時間,或用戶定義的元數據,從而讓外部應用程序更容易對數據內容執行檢索和搜索。
修改操作不改變舊數據。新數據對象的存儲是一個無關聯的操作,而數據對象的修改更新實際上包括刪除和創建操作,并不會實際修改已有數據。
廣受認同的對象存儲的高度可擴展性。許多IT公司認為,如果沒有存儲海量二進制數據的需求,就沒有必要選擇對象存儲。這種偏見正在消除,對象存儲適合任何環境,而不只是超大規模的云。
通過可替代RAID的技術措施實現數據保護。這些技術包括保留對象的多個本地或遠程副本,或者使用擦除編碼。
使用特殊的內容鎖定技術。內容鎖定可以保障NAS的數據完整性。單獨的文件可以打開以進行獨占或寫入訪問,確保數據只能在任何一個時間被單個來源編寫。對象存儲并不提供原生的鎖定功能,但會確保對象被視為不可變的,這意味著數據會被覆蓋以保持一致性。
毫無疑問,對象和文件存儲之間的界限有些模糊。
對比兩種存儲系統的屬性,我們可以看到存儲數據的兩種方法之間也有很多相似之處。兩者都適用于非結構化數據,并使用元數據來跟蹤正在存儲的特定對象的信息。可以看出,改造對象存儲以提供NAS協議并不困難。
合并對象和NAS存儲
為什么要合并NAS和對象存儲?除了只需運行單個存儲平臺帶來的物理存儲的明顯節省外,還有其他好處:
對象存儲器使用擦除編碼技術來支持位置分散的數據的保護和訪問。這意味著不再需要使用傳統復制技術來保留數據的整個副本。存儲硬件節省效果顯著,但還有其他好處,例如能夠有效地將數據訪問擴展到多個位置,而不是點對點性質的復制。提醒一句:地理分布文件的鎖定——實現有效的、分布式對象的關鍵要素——并不簡單。
對象存儲器使用擦除編碼技術來支持位置分散的數據的保護和訪問。這意味著不再需要使用傳統復制技術來保留數據的整個副本。存儲硬件節省效果顯著,但還有其他好處,例如能夠有效地將數據訪問擴展到多個位置,而不是點對點性質的復制。提醒一句:地理分布文件的鎖定——實現有效的、分布式對象的關鍵要素——并不簡單。
可以同時從使用多個協議的不同系統上訪問數據。對象存儲既可以通過傳統協議(如NFS或SMB)提供內容服務,需要時也可以使用更有效的基于對象的訪問方式來分析數據內容,以支持其他目的。與NAS相比,對象協議的無狀態特性減少了訪問內容的開銷,例如文件鎖定或跟蹤,分配鎖和跟蹤打開的文件句柄(請參閱“減少開銷”)。
對象存儲介質易于擴展而且便宜。在提供傳統文件訪問功能的同時,對象存儲也是歸檔存儲的理想選擇。您還可以將數據移動到云端對象存儲,包括長期冷數據歸檔,同時還能保留一定限度的元數據實現內容檢索。這種混合使用物理和云存儲資源的方法大大簡化了混合存儲平臺的開發。
基于對象的NAS:供應商評述
有哪些供應商提供基于對象的NAS產品?我們看到有兩種不同類型的產品誕生:利用基于對象的NAS來提升NAS使用體驗,而且無需暴露底層對象存儲;或者,供應商提供混合的NAS和對象功能,數據通過兩種協議都可以訪問。
基于對象的NAS產品模式的例子包括Nasuni,這是一個提供基于云的全局NAS產品的初創公司,NAS的后端存儲空間則基于Amazon Web Services Simple Storage Service(亞馬遜Web服務簡單存儲服務)。另外一家采用類似技術的公司是Exablox(現在屬于StorageCraft公司)。該公司的橫向擴展OneBlox系統使用環行分布式對象存儲來保存文件內容,同時提供一些有意思的功能,如智能文件版本控制和快照。OneBlox底層會對象分解成允許重復數據刪除的塊,但這些細節用戶無法訪問。
在商業對象存儲軟件領域也有一系列專有供應商產品。以下是一些例子:
Scality公司的RING產品,提供SMB 2.0和NFSv3支持,包括與Microsoft Active Directory的集成。多協議的支持通過在RING平臺本機運行的不同協議“連接器”服務來實現。
Caringo公司的Filefly產品,使用后臺文件服務來擴展公司的Swarm對象存儲,從而支持NAS協議。該公司還提供輕量級接口SwarmNFS,可以利用NFSv4版本協議訪問Swarm對象存儲中存儲的數據。
DataDirect Networks公司,在其WOS對象存儲產品中提供名為NoFS的功能,讓您可以使用文件服務。該公司宣稱,使用NoFS可以比傳統文件服務系統節省15%至20%的存儲空間,并顯著減少I/O流量沖擊。
Hitachi Data Systems通過HCP Anywhere在該公司的Hitachi Content Platform對象存儲平臺上實現NAS訪問。使用定制開發的HCP Anywhere應用程序讓數據內容可以被移動設備訪問。
Cloudian公司,使用HyperStore Connect for Files實現對其HyperStore對象平臺的文件訪問。該產品提供無狀態接入點,從而提供包括全局命名空間和文件鎖定的標準NAS功能。
除了提供原生NAS支持的對象存儲供應商之外,還有一些公司提供可以連接到對象存儲的文件網關,例如Avere公司的FXT產品。然而,這些非原生產品不能同時通過NAS和對象兩種協議訪問數據,因為數據可能會用專有格式存儲到后端對象存儲,不可能直接從對象級別訪問。
最后我們也應該提到可供選擇的開源產品。Ceph基于支持對象、文件和塊格式的橫向擴展平臺來實現對象存儲功能,盡管當前它還不支持直接通過多個協議暴露相同的數據。還有OpenIO,它支持一系列存儲協議,并且可以部署在普通商品硬件上。支持的硬件還包括基于ARM的硬件,該公司使用名為“nano”的ARM節點可以將獨立的硬盤驅動器轉換為存儲服務器。
數據分析的伙伴
對象和文件是數據分析的好伙伴。使用傳統的NAS協議存儲數據,使用對象或HTTP進行后端分析,這種組合可以將并行的兩種業務的開銷和相互影響降到最低。對象協議不需要文件鎖定和其他數據完整性功能,因為數據的讀寫都是靜態的。這就減少了文件系統的開銷并提高了性能。
毫無疑問,對象和文件存儲之間的界限是模糊的,對于很多用例來說,合并這兩者合情合理。對象級存儲提供了比傳統NAS存儲更實用的存儲方法,具有更高的效率和地理靈活性。我們可以預計,未來所有非結構化存儲設備都會原生地同時支持標準的對象和文件兩種協議。