在處理龐大的數(shù)據(jù)集合時,你一定不想要耗費大量系統(tǒng)資源來檢索所有的文件才查找得到你想要的信息。對象存儲,與其特有的識別符,很大程度上簡化了這個過程。
在對象存儲體系架構(gòu)的最底層,所有的數(shù)據(jù)仍以塊存儲的形式加以存放。對象存儲作為塊存儲的上層,包含了數(shù)據(jù)(即包含所存儲信息詳細描述的元數(shù)據(jù))以及獨有 的識別符,將其封裝成為特定的對象。由于對象存儲的邏輯結(jié)構(gòu)位于塊存儲之上,它與下層的硬件層無關(guān),于是便可使用任何x86處理器、內(nèi)存、磁盤驅(qū)動器以及 固態(tài)閃存,而不需要專屬硬件來支持特定的對象存儲。事實上,絕大多數(shù)對象存儲都運行在消費級的產(chǎn)品上,或使用白殼機配合硬件與固態(tài)閃存。
一個對象存儲體系架構(gòu)通常包含了海量的元數(shù)據(jù)。常見的元數(shù)據(jù)包括安全策略,即諸如控制對象訪問權(quán)限以及對象加密與否的信息、數(shù)據(jù)保護政策或管理策略。
對象并不會像文件存儲或NAS中的文件那樣用索引來組織;相反,它們只需存儲在非等級尋址空內(nèi)(Fat Address Space)。對象的定位與操作經(jīng)由其獨特的識別符與元數(shù)據(jù)完成。這與傳統(tǒng)的數(shù)據(jù)塊存儲截然不同,在塊存儲中,數(shù)據(jù)被放置在系統(tǒng)中實際物理存儲的位置,或 者文件位置可以通過集中化的文件目錄重新指向。
對象存儲更適合于大型的數(shù)據(jù)集合
對象存儲體系架構(gòu)中的非等級尋址空間使其較傳統(tǒng)的NAS或SAN 存儲系統(tǒng)更適合大型數(shù)據(jù)的存儲。NAS系統(tǒng)中單一文件的檢索會涉及到一次詳細搜索——通常被稱為文件遍歷(File Crawl)——完整的索引才能找出某個文件。該過程消耗了文件系統(tǒng)的大量資源,會影響到所有的讀寫操作,而且系統(tǒng)耗費的時間會隨著文件系統(tǒng)的擴展而顯著 提升。隨著系統(tǒng)存取需求提高以及文件數(shù)量的增大,文件索引的方式會在某個時刻到達瓶頸。
對象存儲的檢索明顯會來得更快,因為其只會搜索唯一識別符和元數(shù)據(jù)。由于不需要遍歷整個文件系統(tǒng)或索引,對象存儲的擴展性更強,對性能的影響則更低。
絕大多數(shù)的對象體系架構(gòu)在標準的RESTful應(yīng)用程序接口之外都有相應(yīng)的文件接口,例如NFS、SMB以及Hadoop分布式文件系統(tǒng)(HDFS)。這 使得對象存儲可以像NAS那樣讀寫數(shù)據(jù),同時保持自身的優(yōu)勢。HDFS接口使得對象存儲成為Hadoop方案中更具成本效益的體系架構(gòu)。
對象存儲的上述差異性使其更為以下多種應(yīng)用環(huán)境中更具成本效率的方案,包括了:
冷熱數(shù)據(jù)的歸檔
檢索
分析
備份
合規(guī)文檔
社交媒體
文件分享
云存儲
用簡單構(gòu)想一下就能理解為什么對象存儲會成為大部分云存儲供應(yīng)商的首選數(shù)據(jù)存儲模式,包括Amazon的Web Services、Google、IBM的SoftLayer、Microsoft的Azure和其它許多服務(wù)商。
對象存儲提升了數(shù)據(jù)保護等級
對象存儲中的海量元數(shù)據(jù)與非等級存儲池結(jié)構(gòu)使其成為糾錯碼的理想選擇。糾錯碼需要相當多的元數(shù)據(jù),但其比傳統(tǒng)RAID方式來防護磁盤或硬件故障更加經(jīng)濟且 更具彈性。糾錯碼將數(shù)據(jù)松散地分解存儲在一系列對象中,稱之為數(shù)據(jù)寬度(Width)。閱讀取回數(shù)據(jù)只需要找到數(shù)據(jù)寬度的一個子集,稱之為數(shù)據(jù)廣度 (Breadth)。當數(shù)據(jù)廣度可以被讀取到時就代表著元數(shù)據(jù)可以被訪問到,這時便無需獲取到整個數(shù)據(jù)寬度來得到完整的數(shù)據(jù)。
假如不能閱讀到所有的對象說明在讀取過程中發(fā)生了錯誤。數(shù)據(jù)本身并不受影響。這時會重新創(chuàng)建新的對象來替代那些讀取失敗或無法找回的部分。在占用冗余存儲量角度看,糾錯碼比RAID或鏡像復(fù)制更有效率。
隨之多處硬件并發(fā)故障的情況日益增多,所需的保護等級也逐漸提升。這里舉一個例子,假如數(shù)據(jù)需要足夠的容錯性來防止6個硬件同時出錯的情況,用多鏡像復(fù)制 的方式需要7倍的復(fù)制量,即占用額外600%的冗余存儲空間;RAID壓根無法提供7位的奇偶校驗,你最多只能選擇RAID 6來實現(xiàn)三重校驗并對整個RAID進行鏡像復(fù)制。這種配置方式需要大致2.5倍的復(fù)制量,即占用額外150%的冗余空間。此外,這還會大幅降低存儲性能, 尤其在發(fā)生重構(gòu)的時候。對象存儲體系架構(gòu)用糾錯碼的方式,20位的數(shù)據(jù)廣度占用26位的數(shù)據(jù)寬度,或者要性能更好的話,用16位的數(shù)據(jù)寬度代表10位的數(shù) 據(jù)廣度,這會占用額外30%~60%的存儲空間,即1.3到1.6倍的冗余量。在達到同樣硬件保護級別上這是巨大的成本差異。
分享到微信 ×
打開微信,點擊底部的“發(fā)現(xiàn)”,
使用“掃一掃”即可將網(wǎng)頁分享至朋友圈。