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