什么是對象存儲?與文件存儲相比,對象存儲有何不同?
存儲,雖然這已經(jīng)不是新的詞匯,但是存儲對于我們來說至關(guān)重要,尤其是在大數(shù)據(jù)時代。往期存儲相關(guān)文章中,小編對云存儲、組合式存儲等內(nèi)容有所介紹。為增進(jìn)大家對存儲的了解,本文將對對象存儲予以闡述,并探討對象存儲與文件存儲的不同之處?如果你對存儲具有興趣,不妨繼續(xù)往下閱讀哦。
一、對象存儲
對象存儲,也叫做基于對象的存儲,是用來描述解決和處理離散單元的方法的通用術(shù)語,這些離散單元被稱作為對象。
就像文件一樣,對象包含數(shù)據(jù),但是和文件不同的是,對象在一個層結(jié)構(gòu)中不會再有層級結(jié)構(gòu)。每個對象都在一個被稱作存儲池的扁平地址空間的同一級別里,一個對象不會屬于另一個對象的下一級。
文件和對象都有與它們所包含的數(shù)據(jù)相關(guān)的元數(shù)據(jù),但是對象是以擴(kuò)展元數(shù)據(jù)為特征的。每個對象都被分配一個唯一的標(biāo)識符,允許一個服務(wù)器或者最終用戶來檢索對象,而不必知道數(shù)據(jù)的物理地址。這種方法對于在云計算環(huán)境中自動化和簡化數(shù)據(jù)存儲有幫助。
對象存儲經(jīng)常被比作在一家高級餐廳代客停車。當(dāng)一個顧客需要代客停車時,他就把鑰匙交給別人,換來一張收據(jù)。這個顧客不用知道他的車被停在哪,也不用知道在他用餐時服務(wù)員會把他的車移動多少次。在這個比喻中,一個存儲對象的唯一標(biāo)識符就代表顧客的收據(jù)。
由于對象存儲將遍布于很多節(jié)點(diǎn)且最新的數(shù)據(jù)并非總是可用,這將成為對象存儲最終一致性的問題。
所有的數(shù)據(jù)存儲都涉及到簡稱為CAP的三個元素:一致性、可用性和分區(qū)。
如果只是執(zhí)行了寫操作從而改變了一個對象,但有人正在從另外的節(jié)點(diǎn)訪問這個對象。節(jié)點(diǎn)可能會在不同的物理位置,因?yàn)閷ο蟠鎯χС趾艽蟮牡乩頂U(kuò)展。新用戶可能正在讀取對象,但那是舊版本。這就是對象存儲的最終一致性問題,此時并沒有及時的同步。
這將成為問題,特別是利用對象存儲做協(xié)同的時候,廠商為保證對象存儲的一致性做了很好的工作,像是Joyent以及他的Manta 存儲服務(wù),一旦對象更改將不支持讀取舊的內(nèi)容。你必須等待,但你所讀取的內(nèi)容會是一致的。
企業(yè)對存儲的訴求有一定的延續(xù)性,但其訪問的介質(zhì)不外乎是主機(jī)、PC、移動端以及應(yīng)用,針對不同的訪問介質(zhì)來看,面向?qū)ο蟠鎯Φ慕鉀Q方案也有所不同。然而如果應(yīng)用軟件不支持HTTP下REST API的方式,需要以傳統(tǒng)文件服務(wù)器協(xié)議的方式訪問,則需要在面向存儲對象前面加一個網(wǎng)關(guān)進(jìn)行協(xié)議的轉(zhuǎn)換。
二、對象存儲和文件存儲有什么不同之處
1.概念,對象存儲也就是我們說的鍵值存儲,其接口就是簡單的GET,PUT,DEL和其他擴(kuò)展。
文件存儲通常支持POSIX接口,它跟傳統(tǒng)的文件系統(tǒng)是一個類型,區(qū)別在于分布式存儲提供了并行化的功能,如Ceph的CephFS。但有時也會把GFS,HDFS這種非POSIX接口的類文件存儲接口歸入此類。
2.IO特點(diǎn)區(qū)別,針對對象存儲來說,接口簡單,一個對象就可以看成是一個文件,只能全寫全拼,都是以大文件為主,因此要求足夠的IO帶寬。
文件存儲的話具有更豐富的及入口,是需要考慮目錄、文件屬性等支持的。實(shí)現(xiàn)一個支持并行化的文件存儲應(yīng)該是很困難的。
3.Ceph支持,Ceph是同時支持對象存儲和文件存儲的,只是對應(yīng)的接口不同。對象存儲接口主要以S3與Swift為主,文件存儲的話是以libcephfs庫與posix接口為主。因此在接口上會存在一定的差異。
以上便是此次小編帶來的“存儲”相關(guān)內(nèi)容,通過本文,希望大家對對象存儲以及對象存儲和文件存儲的不同之處具備一定的了解。如果你喜歡本文,不妨持續(xù)關(guān)注我們網(wǎng)站哦,小編將于后期帶來更多精彩內(nèi)容。最后,十分感謝大家的閱讀,have a nice day!