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