以前咱們探討過數據和存儲的重要性,這是ABC+IoT等新技術的核心之一,也是百度智能雲重點發力的產品和解決方案。從當前數據的增加來看,IDC預測,到2025年人類產生的數據量將達到 163 ZB;其次,從數據種類來看,照片、視頻、音頻……天天產生的數據中超過80%是非結構化數據。node
由此,數據存儲尤其重要,對象存儲即是其中的一種。當前,對象存儲已經成爲應用最廣泛的存儲技術,甚至能夠說沒有之一。web
對象存儲是什麼,有什麼原理?和文件存儲、塊存儲最大的區別是什麼?有什麼優點?適用於哪些場景?本文作一個全面梳理。數據庫
對象存儲,也叫基於對象的存儲,是用來描述解決和處理離散單元的方法的通用術語,這些離散單元被稱做對象。後端
這麼說可能太抽象,從兩個維度來解釋。安全
1.與其餘存儲方式對比服務器
相同點:顧名思義,對象存儲,對象就是要存儲的數據,和文件存儲、塊存儲中的文件、塊是一個意思。微信
不一樣點:存儲方式,以文件存儲爲例,它有不少層級,最熟悉的是你們都用過的Windows系統,要找一個文件,可能須要打開多個層級的文件夾,塊存儲也相似,對象存儲則否則,就兩層,很像今天不少互聯網企業倡導的扁平化管理方式。網絡
對象存儲最重要的一個概念是「桶」,對象就裝在桶裏面。每一個桶會有一個ID,就像咱們的身份證號同樣,每一個對象也有一個ID,全部要尋找某一個對象,只須要知道兩個ID便可。其中全部對象都是平級,沒有層級的概念,全部桶也都是平級。數據結構
2.去樓下代客停車就懂了架構
業內一般將對象存儲比做高級餐廳、高級酒店的代客停車。當顧客須要代客停車時,把鑰匙交給服務生,換來一張收據。這個顧客不用知道他的車被停在哪,也不用知道在他用餐時服務員會把他的車移動多少次。
在這個比喻中,車就是對象,酒店或者餐廳就是桶。假如你當天喝多了沒開車走,次日去取車,只需去收據上的酒店把收據給服務生就行,他會幫你開出來,不用關心車究竟停在哪一個位置。
因此通俗理解對象存儲,它是一種更適合當下時代的一種存儲方式,數據量大、數據類型複雜意味着須要存的更方便、存的容量更大、存的更多元,這些都是對象存儲的獨有的特性。
如前文所述,對象存儲以對象ID爲基礎,扁平化管理全部對象和桶,根據對象ID即可直接訪問數據,解決了不少文件存儲和塊存儲難以解決的問題。
總結起來,對象存儲有三大特性:
一、優秀的擴展性:扁平化的數據結構容許對象存儲容量從TB級擴展到EB級,管理數十個到百億個存儲對象,支持從數字節(Byte)到數萬億字節(TB)範圍內的任意大小對象,解決了文件存儲系統複雜iNode機制帶來的擴展性瓶頸,並使得對象存儲無需像塊存儲(SAN)那樣管理數量龐大的邏輯單元號(LUN)。
二、基於策略的自動化管理:對象存儲支持從應用角度基於業務需求設置對象/容器的屬性(元數據)策略,如數據保護級別、保留期限、合規情況、遠程複製的份數等。這對於當下正普遍普及的雲服務來講,使客戶能在數據快速增加的同時,避免運維成本飆升。
三、多租戶技術:多租戶特性可使用同一種架構,同一套系統爲不一樣用戶和應用提供存儲服務,並分別爲這些用戶和應用設置數據保護、數據存儲策略,並確保這些數據之間相互隔離。
對象存儲是一種方式,要應用起來須要完整的一套系統,也就是對象存儲系統。對象存儲系統由對象、對象存儲設備、元數據服務器、對象存儲系統的客戶端四部分組成。
一、對象(Object) 對象(Object)是系統中數據存儲的基本單位,一個對象實際上就是文件的數據和一組屬性信息(Meta Data)的組合,每一個對象是數據和數據屬性集的綜合體,數據屬性能夠根據應用的需求進行設置,包括數據分佈、服務質量等。
二、對象存儲設備(Object StorageDevice) 每一個存儲單元都是一套完整的系統,具備本身的存儲介質、處理器、內存以及網絡系統等,負責管理本地的Object,是對象存儲系統的核心。
主要提供如下三個主要功能。
數據存儲。管理對象數據,並將它們放置在標準的磁盤系統上,存儲單元不提供塊接口訪問方式,Client請求數據時用對象ID、偏移進行數據讀寫。
智能分佈。存儲單元用其自身的CPU和內存優化數據分佈,並支持數據的預取。因爲存儲單元能夠智能地支持對象的預取,從而能夠優化磁盤的性能。
每一個對象元數據的管理。存儲單元管理存儲在其上對象的元數據,該元數據與傳統的inode元數據類似,一般包括對象的數據塊和對象的長度。而在傳統的NAS系統中,這些元數據是由文件服務器維護的,對象存儲架構將系統中主要的元數據管理工做由存儲單元來完成,下降了Client的開銷。
三、元數據服務器(Metadata Server)元數據服務器控制Client與OSD對象的交互,爲客戶端提供元數據,主要是文件的邏輯視圖,包括文件與目錄的組織關係、每一個文件所對應的存儲單元等。
四、對象存儲系統的客戶端(Client),也就是最終用戶端。
整個對象存儲系統的文件訪問流程以下:
客戶端應用發出讀請求;
文件系統向元數據服務器發送請求,獲取要讀取的數據所在的存儲單元;
而後直接向每一個存儲單元發送數據讀取請求;
存儲單元獲得請求之後,判斷要讀取的Object,並根據此Object要求的認證方式,對客戶端進行認證,若是此客戶端獲得受權,則將Object的數據返回給客戶端;
文件系統收到存儲單元返回的數據之後,讀操做完成。
基於對象存儲的特性,包括支持存儲的數據類型多、對單個文件大小的限制少,擴展方面等,對一些數據量增加很快、數據類型複雜的應用場景很是適用。
應用場景一 圖片存儲問題。
若是網站有大量的圖片,若是都存儲在本地,須要大量的磁盤空間,雖然如今磁盤空間的價格已經很低,可是用戶訪問卻須要大量的寬帶,若是把全部的圖片都存儲在雲存儲裏,每一年主機成本的下降會很是可觀。
應用場景二 視頻存儲問題。
若是有大量的視頻,雖然能夠選擇把視頻存儲在專門的視頻網站,好比愛奇藝等。但問題是,全部的視頻都會被視頻網站加上播放前的貼片廣告,這樣其實很是不友好,而若是放網站上,會出現磁盤和寬帶不足的狀況,這時上傳到雲存儲,就是不錯的選擇。
應用場景三 電商、互聯網金融、在線教育等行業的Web和移動應用。
有傳統數據庫,同時有大量的圖片、視頻、文件等須要存儲,此時用對象存儲是更好的選擇。
應用場景四 企業網盤,後端就是對象存儲。
企業遍及各地的各個部門文檔都在用企業網盤,分享和管理文件,企業網盤能夠很是容易地分享給特定的我的,羣組或部門。企業網盤是單獨的市場,與我的網盤有很大區別,企業對訪問權限認證的管理更細緻,數據管理要求更高。
記住這兩個關鍵詞:數據量大、數據類型複雜,用對象存儲就沒錯。
總結全文,數據還在不斷的爆炸式增加,對象存儲做爲大數據時代的事實存儲標準,應用只會愈來愈普遍。
百度智能雲對象存儲產品BOS,提供穩定、安全、高效、高可擴展的雲存儲服務。您能夠將任意數量和形式的非結構化數據存入BOS,並對數據進行管理和處理。BOS支持標準、低頻、冷和歸檔存儲等多種存儲類型,知足多場景的存儲需求。
將來,百度智能雲還將繼續爲客戶提供更強大的對象存儲產品。
瞭解更多百度智能雲BOS產品信息,請點擊文末左下角【閱讀原文】。
本文分享自微信公衆號 - 百度智能雲(baidu_cloud)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。