物件儲存

物件儲存、系統層面和介面層面。在每一種情況下，物件儲存都試圖實現其他儲存架構所不具備的能力，如可由應用程式直接程式設計的介面，可跨越多個物理硬體例項的名稱空間，以及資料管理功能，如和物件級粒度的資料分發。物件儲存系統允許保留大量的。物件儲存的用途包括：在Facebook上儲存照片，在Spotify上儲存歌曲，或在線上協作服務中儲存檔案。歷史.起源.1995年，由Garth Gibson領導的關於網路附加安全磁碟的研究首次推廣了將不太常見的操作。NASD團隊之一的Howard Gobioff進一步描述了透過物件儲存架構的細粒度訪問控制，他後來是Google檔案系統的發明人之一。 其他相關工作包括卡內基·梅隆大學的Coda檔案系統專案，該專案始於1987年，並催生了Lustre檔案系統。 還有1999年開始的加州大學伯克利分校的OceanStore專案和1998年開始的田納西大學諾克斯維爾分校的Logistical Networking專案。 1999年，Gibson成立了公司，將NASD團隊開發的概念商業化。發展.希捷科技在物件儲存的發展中發揮了核心作用。根據儲存網路工業協會SNIA的說法，“物件儲存起源於20世紀90年代末。希捷公司1999年的規範介紹了一些最早的命令和作業系統如何有效地從儲存的消費中移除”。1999年10月25日的《基於物件的儲存裝置命令集提案》的初步版本是由希捷提交的，由希捷的Dave Anderson編輯，是國家儲存產業聯盟之間簽署的智慧財產權協議，並涵蓋了物件儲存、可擴充套件計算、平臺獨立性和儲存管理的好處。架構.儲存的抽象化.物件儲存的設計原則之一是將一些較低層次的儲存從管理員和應用程式中抽象出來。因此，資料是作為物件而不是檔案或塊被暴露和管理的。物件包含額外的描述性屬性，可用於更好地進行索引或管理。管理員不必執行較低層次的儲存功能，如構建和管理邏輯卷以利用磁碟容量或設定RAID級別以處理磁碟故障。物件儲存還允許透過不僅僅是檔名和檔案路徑對單個物件進行定址和識別。物件儲存在一個桶內或整個系統中增加了一個唯一的識別符號，以支援更大的名稱空間並消除名稱衝突。將豐富的自定義元資料納入物件中.物件儲存明確地將檔案元資料與資料分開，以支援額外的功能。相對於檔案系統中的固定元資料，物件儲存提供了全功能的、自定義的、物件級的元資料，以便於：此外，在一些基於物件的檔案系統實現中：基於物件的儲存裝置在儲存裝置層面管理元資料和資料：程式設計式的資料管理.物件儲存提供了程式設計介面，使應用程式能夠操作資料。在基礎層面，這包括用於基礎讀、寫和刪除操作的增刪改查功能。一些物件儲存的實現更進一步，支援、物件複製、生命週期管理以及物件在不同層級和型別的儲存之間的移動等附加功能。大多數API實現是基於REST的，允許使用許多標準的HTTP呼叫。實現.雲端儲存.市場上絕大多數的雲端儲存都是利用物件儲存的架構。一些值得注意的例子是2006年3月首次亮相的亞馬遜網路服務S3、Microsoft Azure Blob儲存、Rackspace Files以及2010年5月釋出的。基於物件的檔案系統.一些分散式檔案系統使用基於物件的架構，其中檔案元資料儲存在元資料伺服器中，檔案資料儲存在物件儲存伺服器中。檔案系統客戶端軟體與不同的伺服器進行互動，並將其抽象化，以向用戶和應用程式展示一個完整的檔案系統。物件儲存系統.一些早期的物件儲存被用於歸檔，因為實現是針對資料服務是兩個常見的用於歸檔的物件儲存產品。另一個例子是Quantum Lattus物件儲存平臺。更多的通用物件儲存系統在2008年左右進入市場。在雅虎郵箱等網路應用的“私藏”儲存系統的驚人增長和雲端儲存的早期成功的誘惑下，物件儲存系統承諾具有云儲存的規模和能力，並能夠在企業內或有志於雲端儲存的服務提供商處部署系統。混合儲存.少數物件儲存系統支援統一檔案和物件儲存，允許一些客戶在一個儲存系統上儲存物件，同時其他客戶在同一儲存系統上儲存檔案。雖然由於與混合旋轉磁碟和快閃記憶體的混淆，“混合儲存”並不是這個概念的一個廣泛接受的術語， 但在一些物件儲存產品中，對相同的資料集有可操作的介面。“私藏”物件儲存.一些大型網際網路公司在物件儲存產品沒有商業化或使用案例非常特殊的情況下開發了自己的軟體。著名的Facebook開發了他們自己的物件儲存軟體，代號為Haystack，以有效解決他們特殊的大規模照片管理需求。基於物件的儲存裝置.協議和裝置層的物件儲存是在20年前提出的，並在近10年前作為“基於物件的儲存裝置命令”的T10委員會開發的。 T10負責所有SCSI標準。Market adoption.最早的物件儲存產品之一，Lustre，被用於70%的前100名超級計算機和約50%的前500名超級計算機。 截至2013年6月16日，這包括前10名中的7名，包括目前榜單上第四快的系統——中國的天河二號，和第七快的橡樹嶺國家實驗室的泰坦超級計算機。物件儲存系統在21世紀初作為存檔平臺有很好的應用，特別是在薩班斯-奧克斯利法案等合規法律出臺後。在進入市場五年後，EMC的Centera產品聲稱到2007年有超過3500個客戶和150PB的出貨量。 日立的HCP產品也聲稱有許多PB級的客戶。 較新的物件儲存系統也得到了一些吸引力，特別是圍繞非常大的定製應用，如eBay的拍賣網站，EMC Atmos被用來每天管理超過5億個物件。 截至2014年3月3日，EMC聲稱已經售出超過1.5兆位元組的Atmos儲存。 2014年7月1日，洛斯阿拉莫斯國家實驗室選擇Scality RING作為500PB儲存環境的基礎，這將是有史以來最大的儲存環境之一。像Facebook的Haystack這樣的“私藏”物件儲存系統的規模也令人印象深刻。 2009年4月，Haystack管理著600億張照片和1.5PB的儲存，每週增加2.2億張照片和25TB。Facebook最近表示，他們每天增加3.5億張照片，儲存2400億張照片。 這可能相當於357PB之多。隨著許多新的網路和移動應用程式選擇雲作為儲存二進位制資料的常用方式，雲端儲存已經變得無處不在。 作為許多流行的應用程式如Smugmug和Dropbox的儲存後端，AWS S3已經發展到大規模，在2013年4月引用了超過2萬億的儲存物件。 兩個月後，微軟聲稱他們在Azure中儲存的物件甚至更多，達到8.5萬億。 到2014年4月，Azure聲稱儲存了超過20萬億個物件。 Windows Azure儲存管理著Blobs，並把它們都算作物件。市場分析.IDC已經開始使用其MarketScape方法每年評估基於物件的儲存市場。IDC將MarketScape描述為。"...對評估供應商在上述市場或細分市場的當前和未來成功的特徵進行定量和定性評估，並提供一個衡量其成為領導者或保持領導地位的標準。IDC的MarketScape評估對新興市場特別有幫助，這些市場往往是分散的，有幾個參與者，缺乏明確的領導者。"在2019年，IDC將戴爾EMC、日立資料系統、IBM、NetApp和Scality評為領導者。標準.基於物件的儲存裝置標準.OSD版本1.在OSD標準的第一個版本中， 物件是用一個64位的分割槽ID和一個64位的物件ID指定的。分割槽在OSD中被建立和刪除，而物件在分割槽中被建立和刪除。分割槽或物件沒有固定的大小，它們被允許在裝置的物理大小限制或分割槽的邏輯配額限制下增長。一套可擴充套件的屬性描述物件。有些屬性是由OSD直接實現的，如一個物件的位元組數和一個物件的修改時間。有一個特殊的策略標籤屬性，是安全機制的一部分。其他的屬性則不被OSD所解釋。這些是由使用OSD進行持久化儲存的上級儲存系統在物件上設定的。例如，屬性可能被用來對物件進行分類，或者用來捕捉儲存在不同OSD上的不同物件之間的關係。列表命令返回一個分割槽中的物件的識別符號列表，可以選擇透過與屬性值的匹配進行過濾。列表命令還可以返回列表物件的選定屬性。讀和寫的命令可以與獲取和設定屬性的命令結合起來，或者說是捎帶上的。這種能力減少了高層儲存系統穿越介面到OSD的次數，這可以提高整體效率。OSD版本2.第二代SCSI命令集“基於物件的儲存裝置-2”增加了對快照、物件集合的支援，並改進了錯誤處理。快照是將一個分割槽中的所有物件複製到一個新的分割槽中的時間點。OSD可以使用寫時複製技術實現空間效率高的複製，這樣兩個分割槽就可以共享快照之間沒有變化的物件，或者OSD可以將資料物理地複製到新的分割槽中。該標準定義了克隆和快照，前者是可寫的，後者是隻讀的。集合是一種特殊的物件，包含其他物件的識別符號。有一些操作可以從集合中新增和刪除，還有一些操作可以獲取或設定集合中所有物件的屬性。集合也被用於錯誤報告。如果一個物件因為介質缺陷或OSD實現中的軟體錯誤而損壞，它的識別符號會被放入一個特殊的錯誤集合中。使用OSD的上級儲存系統可以查詢這個集合並在必要時採取糾正措施。鍵值儲存和物件儲存之間的差異.不幸的是，物件儲存和鍵-值儲存之間的邊界是模糊的，鍵值儲存有時被寬泛地稱為物件儲存。傳統的塊儲存介面使用一系列固定大小的塊，這些塊從0開始編號。資料必須是準確的固定大小，並且可以儲存在一個特定的塊中，該塊由其邏輯塊編號識別。之後，人們可以透過指定其唯一的LBN來檢索該資料塊。在鍵值儲存中，資料是由一個鍵而不是LBN來識別的。一個鍵可能是“cat” 或“olive”或“42”。它可以是一個任意長度的任意位元組序列。資料，等等。一些資料儲存也實現了鍵值儲存，如Memcached、Redis和CouchDB。物件儲存在兩個方面與鍵值儲存相似。首先，物件的識別符號或URL可以是一個任意的字串。 第二，資料可以是任意大小的。然而，鍵值儲存和物件儲存之間有幾個關鍵的區別。首先，物件儲存還允許人們將一組有限的屬性。最後，物件儲存通常提供較弱的一致性保證，如最終一致性，而鍵值儲存提供。