對象存儲
描述處理離散單元方法的術語
對象存儲是用來描述解決和處理離散單元的方法的通用術語。對象在一個層結構中不會再有層級結構,是以擴展元數據為特徵的。
對象存儲,也叫做基於對象的存儲,是用來描述解決和處理離散單元的方法的通用術語,這些離散單元被稱作為對象。
就像文件一樣,對象包含數據,但是和文件不同的是,對象在一個層結構中不會再有層級結構。每個對象都在一個被稱作存儲池的扁平地址空間的同一級別里,一個對象不會屬於另一個對象的下一級。
文件和對象都有與它們所包含的數據相關的元數據,但是對象是以擴展元數據為特徵的。每個對象都被分配一個唯一的標識符,允許一個伺服器或者最終用戶來檢索對象,而不必知道數據的物理地址。這種方法對於在雲計算環境中自動化和簡化數據存儲有幫助。
對象存儲經常被比作在一家高級餐廳代客停車。當一個顧客需要代客停車時,他就把鑰匙交給別人,換來一張收據。這個顧客不用知道他的車被停在哪,也不用知道在他用餐時服務員會把他的車移動多少次。在這個比喻中,一個存儲對象的唯一標識符就代表顧客的收據。
由於對象存儲將遍佈於很多節點且最新的數據並非總是可用,這將成為對象存儲最終一致性的問題。
所有的數據存儲都涉及到簡稱為CAP的三個元素:一致性、可用性和分區。
如果只是執行了寫操作從而改變了一個對象,但有人正在從另外的節點訪問這個對象。節點可能會在不同的物理位置,因為對象存儲支持很大的地理擴展。新用戶可能正在讀取對象,但那是舊版本。這就是對象存儲的最終一致性問題,此時並沒有及時的同步。
這將成為問題,特別是利用對象存儲做協同的時候,廠商為保證對象存儲的一致性做了很好的工作,像是Joyent以及他的Manta 存儲服務,一旦對象更改將不支持讀取舊的內容。你必須等待,但你所讀取的內容會是一致的。
企業對存儲的訴求有一定的延續性,但其訪問的介質不外乎是主機、PC、移動端以及應用,針對不同的訪問介質來看,面向對象存儲的解決方案也有所不同。然而如果應用軟體不支持HTTP下REST API的方式,需要以傳統文件伺服器協議的方式訪問,則需要在面向存儲對象前面加一個網關進行協議的轉換。
沒有了文件存儲系統中的NFS或CIFS來給應用提供數據,面向對象的存儲系統需要替換掉位於磁碟上的原始數據塊和應用可以理解的文件之間的這個抽象層。現在的面向對象的系統使用類似REST標準的API或者私有的API來告訴應用如何存儲和讀取對象標識。
總體而言,對於面向對象的存儲的操作的本質並不會改變。開源對象存儲系統O基本上就是POST,GET ,PUT和 DELETE操作,如果需要上傳大量的數據,則需要編寫一個腳本就可以實現。
基本上有四個選擇:
1.從當下各種廠商處購買完整功能的對象存儲平台。
2.購買對象存儲軟體並將其安裝在你選擇硬體上(伺服器和存儲)。
3.在選擇的文件和塊存儲整列中安裝軟體,這個陣列對現有存儲增加了對象介面。
4.使用網關解決方案連接現有應用到公有雲。
對象存儲根本上改變了存儲藍圖。它處理和解決了曾經被認為是棘手的存儲問題:不間斷可擴展性、彈性下降、限制數據持久性、無限技術更新和成本失控。存儲專家對其潛在的優勢感到興奮,尤其是他們的絕大多數數據都碰巧是被動的或者是冷數據。
對象存儲的本地應用程序介面是一個RESTful API。RESTful本質上是HTTP輸入和輸出,或者是網際網路語言。這個語言對於Web瀏覽器是本地化的,但是對於大多數IT應用並非如此。這也為這個問題提供了一個答案,對RESTful API是一種檢驗,檢測其變化、標準、事實標準以及在本地使用有哪些必須要做的事情,以及有哪些現成的軟體可以實現。
最佳的方式就是通過RESTful API使用對象存儲系統。它是一個本地介面,具備最低延遲和最快的響應時間,能夠同大多數的控制。