顯然,對象存儲對于不同的人意味著不同的事情,所以它缺乏一個公認的定義。要分析什么樣的存儲系統(tǒng)屬于對象存儲,就要看這些屬性,它們既是必須的,同時又支持的很好。
對象。不是要管理塊和文件,純粹的對象存儲系統(tǒng)管理的是對象。更精確的講,所有現(xiàn)在的對象存儲系統(tǒng)把文件作為對象來管理。對象通過唯一的ID進行標識,就像在基于文件的存儲系統(tǒng)中,文件通過路徑來標識一樣。對象存放在扁平的地址空間中,這樣可消除基于文件的存儲系統(tǒng)中,分層的文件系統(tǒng)的復雜性和擴展性的挑戰(zhàn)。
元數(shù)據(jù)。對象由元數(shù)據(jù)(可提供對象中數(shù)據(jù)的上下文關系信息)、有效負載和實際數(shù)據(jù)組成。在基于文件的存儲系統(tǒng)中,元數(shù)據(jù)僅僅是指文件的屬性;對象存儲系統(tǒng)中的元數(shù)據(jù)可以添加任何客戶化的屬性?;谖募拇鎯ο到y(tǒng)要做到這一點,需要應用程序(數(shù)據(jù)庫)處理文件相關的其它額外信息。利用客戶化的元數(shù)據(jù),你可以把和一個文件(對象)相關的所有信息都保存在對象自身內(nèi)部。“客戶化元數(shù)據(jù)允許建立豐富的、自包含的文件對象,可以存儲在對象存儲內(nèi)部,能夠以較少的管理開銷建設大規(guī)模的非結(jié)構(gòu)化數(shù)據(jù)存儲,”Terri McClure說,馬薩諸塞州米爾福德的企業(yè)策略集團(ESG)的高級分析師。
固定對象。純對象存儲代表一個固定內(nèi)容的倉庫;這意味著對象可以被創(chuàng)建、刪除和讀取,但不能被修改。相反,對象的修改是通過創(chuàng)建一個新版本的對象來實現(xiàn)的。因此,鎖定和多用戶訪問的挑戰(zhàn)——基于文件的存儲系統(tǒng)所棘手的問題——在對象存儲系統(tǒng)中是不存在的。“如果多個用戶同時修改同一個文件(對象),對象存儲系統(tǒng)會簡單的生成這個文件的多個版本,”Tim Russell說,NetApp公司Data Lifecycle Ecosystem Group副總裁(VP)。不支持就地更新,使對象存儲更加適合分布式的存儲和分布式的訪問。
冗余性。對象存儲通過在多個節(jié)點上存儲相同對象的多個副本實現(xiàn)冗余性和高可靠性。在創(chuàng)建對象的時候,它首先由一個節(jié)點創(chuàng)建,隨后根據(jù)適當?shù)牟呗詮椭频揭粋€或多個其它節(jié)點。節(jié)點可以部署在同一個數(shù)據(jù)中心,也可以是地理上分開的。由于不支持就地更新,使得多節(jié)點副本對象冗余的復雜度很小。對于傳統(tǒng)的存儲系統(tǒng),保留拷貝(復制)的文件和塊的同步訪問的多個實例是一個巨大的挑戰(zhàn);這是非常復雜的,只能夠通過設置嚴格的限制條件實現(xiàn),例如在定義好的延遲約束之內(nèi)。
協(xié)議支持。傳統(tǒng)的基于塊和基于文件的協(xié)議在數(shù)據(jù)中心工作的很好,性能優(yōu)良,延時也不是問題。但它們并不適合地理上分開的訪問方式,且由于延時不可預知,所以也不適合構(gòu)建云。此外,傳統(tǒng)的文件系統(tǒng)協(xié)議(CIFS和NFS)利用TCP端口進行通信,這些只在內(nèi)部網(wǎng)絡可用,很少出現(xiàn)在互聯(lián)網(wǎng)上。相反,對象存儲通常通過基于HTTP協(xié)議的REST API訪問。命令通過HTTP發(fā)送到對象存儲的方式非常簡便:put用來建立一個對象,get用來讀取一個對象,delete用來清除對象而list用來列出對象列表。
應用軟件支持與集成。由于缺乏傳統(tǒng)的數(shù)據(jù)存儲協(xié)議的支持,因此依賴REST API需要成為訪問對象存儲的一體化努力。除了客戶化應用程序集成,一些商業(yè)應用,特別是備份和歸檔應用,已經(jīng)增加了對于對象存儲集成的支持,主要連接到Amazon S3云存儲。由于業(yè)界仍然在爭論標準,對象存儲的集成仍然沒有得到廣泛的推廣。對象存儲網(wǎng)關,通常叫做云存儲網(wǎng)關,提供了另外一種訪問對象存儲的方式。其定位于傳統(tǒng)存儲和對象存儲之間,它們通常通過預定義的策略構(gòu)建在兩者之間。
云功能。因為云存儲和WEB 2.0應用是對象存儲的核心目標,因此通過互聯(lián)網(wǎng)進行共享訪問的相關功能是非常重要的。多租戶和不同用戶數(shù)據(jù)的安全隔離,對于用于企業(yè)應用的對象存儲產(chǎn)品是必須的功能。安全性不僅僅是指加密,還包括對于租戶、命名空間以及對象訪問的控制。服務水平協(xié)議(SLA)管理和支持多種服務級別對于云的使用也非常重要。策略引擎可以幫助SLA的執(zhí)行,例如對象實例的數(shù)量和每個實例應該存儲到哪里,這是一個任何對象存儲都應該提供的設備。此外,使用云的計量和收費的自動跟蹤是必不可少的。
用例。純粹的對象存儲并不適合用于交易數(shù)據(jù)頻繁變化的情況,例如數(shù)據(jù)庫。它也沒有設計成用來替代NAS的文件共享;它只是簡單的做到了沒有鎖機制,而且通過提供文件的多個不同的版本實現(xiàn)單個“真實”文件的共享。對象存儲在經(jīng)常變化的非常大的非結(jié)構(gòu)化數(shù)據(jù)存儲中工作的非常好,也可作為不活躍數(shù)據(jù)的交易存儲層之外的存儲層,或者是歸檔存儲。在云空間中,它適合用于文件內(nèi)容,特別是圖像和視頻。“今天,對象存儲適用于媒體、娛樂和醫(yī)療行業(yè)等后處理類型的數(shù)據(jù),包括歸檔,”Jeff Lundberg說,他是日立數(shù)據(jù)系統(tǒng)公司(HDS)的高級產(chǎn)品市場經(jīng)理。“而隨著性能的不斷提升和功能的不斷完善,它不僅僅可以支持云存儲,而且會適用于分散的IT環(huán)境。”