天天看點

對象存儲架構所解決的檔案周遊問題

在處理龐大的資料集合時,你一定不想要耗費大量系統資源來檢索所有的檔案才查找得到你想要的資訊。對象存儲,與其特有的識别符,很大程度上簡化了這個過程。

在對象存儲體系架構的最底層,所有的資料仍以塊存儲的形式加以存放。對象存儲作為塊存儲的上層,包含了資料(即包含所存儲資訊較長的描述的中繼資料)以及獨有的識别符,将其封裝成為特定的對象。由于對象存儲的邏輯結構位于塊存儲之上,它與下層的硬體層無關,于是便可使用任何x86處理器、記憶體、磁盤驅動器以及固态閃存,而不需要專屬硬體來支援特定的對象存儲。事實上,絕大多數對象存儲都運作在消費級的産品上,或使用白殼機配合硬體與固态閃存。

一個對象存儲體系架構通常包含了海量的中繼資料。常見的中繼資料包括安全政策,即諸如控制對象通路權限以及對象加密與否的資訊、資料保護政策或管理政策。

對象并不會像檔案存儲或nas中的檔案那樣用索引來組織;相反,它們隻需存儲在非等級尋址空内(fat address space)。對象的定位與操作經由其獨特的識别符與中繼資料完成。這與傳統的資料塊存儲截然不同,在塊存儲中,資料被放置在系統中實際實體存儲的位置,或者檔案位置可以通過集中化的檔案目錄重新指向。

對象存儲更适合于大型的資料集合

對象存儲體系架構中的非等級尋址空間使其較傳統的nas或san 存儲系統更适合大型資料的存儲。nas系統中單一檔案的檢索會涉及到一次詳細搜尋——通常被稱為檔案周遊(file crawl)——完整的索引才能找出某個檔案。該過程消耗了檔案系統的大量資源,會影響到所有的讀寫操作,而且系統耗費的時間會随着檔案系統的擴充而顯著提升。随着系統存取需求提高以及檔案數量的增大,檔案索引的方式會在某個時刻到達瓶頸。

對象存儲的檢索明顯會來得更快,因為其隻會搜尋唯一識别符和中繼資料。由于不需要周遊整個檔案系統或索引,對象存儲的擴充性更強,對性能的影響則更低。

絕大多數的對象體系架構在标準的restful應用程式接口之外都有相應的檔案接口,例如nfs、smb以及hadoop分布式檔案系統(hdfs)。這使得對象存儲可以像nas那樣讀寫資料,同時保持自身的優勢。hdfs接口使得對象存儲成為hadoop方案中更具成本效益的體系架構。

對象存儲的上述差異性使其更為以下多種應用環境中更具成本效率的方案,包括了:

冷熱資料的歸檔

檢索

分析

備份

合規文檔

社交媒體

檔案分享

雲存儲

用簡單構想一下就能了解為什麼對象存儲會成為大部分雲存儲供應商的首選資料存儲模式,包括amazon的web services、google、ibm的softlayer、microsoft的azure和其它許多服務商。

對象存儲提升了資料保護等級

對象存儲中的海量中繼資料與非等級存儲池結構使其成為糾錯碼的理想選擇。糾錯碼需要相當多的中繼資料,但其比傳統raid方式來防護磁盤或硬體故障更加經濟且更具彈性。糾錯碼将資料松散地分解存儲在一系列對象中,稱之為資料寬度(width)。閱讀取回資料隻需要找到資料寬度的一個子集,稱之為資料廣度(breadth)。當資料廣度可以被讀取到時就代表着中繼資料可以被通路到,這時便無需擷取到整個資料寬度來得到完整的資料。

假如不能閱讀到所有的對象說明在讀取過程中發生了錯誤。資料本身并不受影響。這時會重新建立新的對象來替代那些讀取失敗或無法找回的部分。在占用備援存儲量角度看,糾錯碼比raid或鏡像複制更有效率。

随之多處硬體并發故障的情況日益增多,所需的保護等級也逐漸提升。這裡舉一個例子,假如資料需要足夠的容錯性來防止6個硬體同時出錯的情況,用多鏡像複制的方式需要7倍的複制量,即占用額外600%的備援存儲空間;raid壓根無法提供7位的奇偶校驗,你最多隻能選擇raid 6來實作三重校驗并對整個raid進行鏡像複制。這種配置方式需要大緻2.5倍的複制量,即占用額外150%的備援空間。此外,這還會大幅降低存儲性能,尤其在發生重構的時候。對象存儲體系架構用糾錯碼的方式,20位的資料廣度占用26位的資料寬度,或者要性能更好的話,用16位的資料寬度代表10位的資料廣度,這會占用額外30%~60%的存儲空間,即1.3到1.6倍的備援量。在達到同樣硬體保護級别上這是巨大的成本差異。

本文轉自d1net(轉載)

繼續閱讀