400-6655-745
數據安全 | 大數據生態之對象存儲
2020-05-13

導讀:我們前面的文章討論過大數據存儲組件中的HDFS和KUDU,這篇文章將會介紹一下對象存儲,這也是大數據生態圈一個新的領域。本文將會從對象存儲的概念,內部機制,發展情況以及相關產品展開,對對象存儲進行一個較為全面的介紹,同時也為后續文章介紹大數據中的對象存儲Apache Ozone組件進行一些鋪墊。





什么是對象存儲?



談起存儲,都不陌生,能耳熟能詳的有硬盤,U盤,磁帶,這些都是常見的存儲設備,可以滿足個人或者企業的小規模數據存儲需求。還有一類存儲設備,提供了一些網絡擴展和功能增強,比如SAN和NAS,可以滿足企業一些比較大規模數據的存儲需求。


那今天討論的對象存儲,它又是什么呢?是像下面這種把“對象”存到類似銀行的東西里嗎?




顯然不對,這只是一個調侃,但這種理解某種程度上的也有一定正確性,不過對象存儲存的不是女朋友或者男朋友,而是各式各樣的數據(不限制其類型數量的數據,我們稱之為Object),存儲介質也不是銀行,而是對象存儲設備(Object-based Storage Device,簡稱OSD)。除此之外,為了完成對象存儲的過程,還需要對象存儲服務(Object-based Storage Service,簡稱OSS),元數據服務器(Metadata Server,簡稱MDS)以及對象存儲客戶端(Client)配合完成。


與SAN和NAS一樣,對象存儲也是一種網絡存儲架構。


SAN(存儲局域網)特點是采用SCSI快I/O命令集,通過磁盤或FC(Fiber Channel)級的數據訪問提供高性能的隨機I/O個數據吞吐率,它具有高寬帶、低時延的優勢,但這需要專業的硬件支持,所以價格非常高,并且不易擴展,目前只在部分大型企業中進行使用。


NAS(網絡附加存儲)采用NFS或CIFS命令集訪問數據,以文件為傳輸協議,通過TCP/IP實現網絡化存儲,可擴展行好、價格便宜、用戶易管理,特別受到Windows系統用戶的歡迎。像常用的FTP服務器目錄,企業共享文件夾,網站內容存儲這類場景,大都可以使用NAS服務進行解決。但NAS需要有文件系統層的支持。


對于對象存儲而言,它既有SAN的優點,即高速直接訪問存儲設備上的數據;又有NAS的優點,數據可以分布式存儲,共享,從而實現了高性能,高可靠性的跨平臺數據存儲共享體系結構,因此特別容易進行擴展。


對象存儲的核心是將控制流(元數據記錄)與數據流分離(數據讀寫),控制端只負責記錄元數據,而由每個對象存儲設備自行管理其上的數據分布,并完成讀寫過程。這樣有幾個好處:

 

1. 降低了控制端的工作負載,控制端只需與OSD交互(實際上由OSS服務層代為完成),因此當存儲容量特別大時,對象存儲系統也可以輕松應對,同時也極方便擴展。


2. 不需要通過文件系統支持,OSD直接在存儲介質上進行I/O管理,不受LBA層尋址效率的影響,大大提升的了數據讀寫效率。


3. 不限制數據類型。由于不需要文件系統的支持,因此各類型的數據都可以作為對象(Object),存儲進去。


4. 高容錯性,OSD自動完成對象的管理與冗余復制,控制端并不需要知道具體的數據位置和復制策略,當某一位置發生故障時,OSD自動返回新的位置數據給到控制端,控制端幾乎無感。


5. 訪問方式統一,操作簡單。由于去掉了對文件系統的依賴,同時提升相關數據存取效率,因此數據存取接口基本都統一為Rest方式調用,降低了使用的復雜度。


 


對象存儲的工作機制




對象存儲存儲的架構如下,一個對象存儲系統,由對象存儲客戶端(Client),對象存儲服務(OSS),元數據服務器(MDS),對象存儲設備OSD組成,此外還有大大小小存在于OSD中的對象Object。



對象(Object):所有被存儲的目標都可以被稱作對象,它是數據存儲的基本單位,一個對象大小可以從幾十字節到幾PB(看OSD的支持能力),一個對象包括數據和數據屬性兩部分,數據屬性可以是數據結構,數據描述,冗余份數等等,對象自己維護自己的數據屬性。此外,一個對象有一個特定的對象標識,對象通過對象標識和數據屬性與OSD進行交互。


對象存儲設備(OSD):一個對象存儲設備不單單是一塊簡單的硬盤,一般來說其是一個智能設備,自動管理其上對象的數據分布,數據讀寫,并進行相關的性能優化。對象存儲設備可以有自己的CPU,內存,存儲介質和網絡;也可以是在標準磁盤系統上通過軟件的虛擬化特性演化出一套智能系統。


為了進一步提升效率,OSD中只分為兩層,其中第一層為Bucket, 第二層為Key。其中Bucket類似數據集,Key則是具體的數據。OSD只需獲取數據的Bucket ID,Key,以及偏移量,即可定位到具體的數據。


對象存儲服務(OSS):OSS是Client與OSD交互的中間層服務,這個請和阿里云的對象存儲區別開來,雖然阿里云對象存儲也叫OSS。對象存儲服務負責收集OSD反饋的信息,并通過文件鎖,AccessKey等方式對Client進行認證,并控制其讀寫。


元數據服務器(MDS):元數據服務器為客戶端提供元數據,主要是文件的邏輯視圖,包括文件與目錄的組織關系、每個文件所對應的OSD等。同時元數據服務器支持Client的Cache,當Cache的文件發生改變時,將通知Client端刷新Cache,從而避免Cache不一致引發相關問題。


對象存儲客戶端(Client):對象存儲客戶端包含計算節點上某些特殊工具和接口,依次來訪問對象存儲系統,比如命令行等。

數據訪問流程如下:

 

1. Client首先向MDS查詢數據邏輯視圖;


2. MDS通過OSS服務查詢OSD中數據的狀態信息;


3. MDS獲取到OSD中數據的相關信息(OSD id, Bucket ID, Key與偏移量等);


4. MDS更新Client保存的Cache信息;


5. Client向OSS提交客戶端認證,比如AccessKey;


6. 認證通過,OSS返回OSD與Object相關信息;


7. Client通過Rest接口訪問對應的數據。

 



對象存儲的發展簡史




雖然對象存儲這一名詞近些年才大量地出現在人們視線中,但其發展過程可謂源遠流長,甚至比大數據技術的歷史還要悠久,引用硅谷技術公司顧問Philippe Nicolas公開的一張對象存儲統計圖看一下:



1998年開始,第一個做對象存儲的公司FilePool標志著對象存儲技術領域的誕生,到現在已經有20余年的歷史。這足足比Hadoop的歷史還要多5年(Google GFS 論文2003年發表)?,F在做對象存儲的公司已經數量非常眾多。


目前的對象存儲技術分為兩大陣營,即開源產品與商業化產品。其中開源產品以Ceph,OpenIO, OpenStack Swift一類為主,特別是Hortonworks公司于2014年推出了Apache Ozone產品,提供S3接口,從而讓在大數據中使用對象存儲變成了可能。商業化產品則以各家存儲企業以及云廠商推出的對象存儲方案為主,例如阿里云OSS, 華為云OBS, 微軟 Azure等。


雖然對象存儲發展了這么久,各家的產品也五花八門,但是對象存儲的設計模式和架構各家都高度的統一,差異只是在Client層做了一些功能豐富,例如增加了一些接口。在后續的文章中,我們會進一步介紹一下Apache Ozone。


相關推薦

您的需求,我們隨時傾聽

  • 上海派拉上海派拉
  • 上海派拉上海派拉
  • 上海派拉上海派拉
  • 上海派拉上海派拉
  • 上海派拉上海派拉
  • 上海派拉上海派拉
提交
上海派拉
  • 上海派拉上海
  • 上海派拉北京
  • 上海派拉廣州
  • 上海派拉深圳
  • 上海派拉長春
  • 上海派拉武漢
  • 上海派拉成都
? 2015 Paraview Software. All rights reserved.
滬ICP備13029541號

滬公網安備 31011502012922號

新马快乐8是合法的吗 佳永配资:免息配资平台正规吗?如何分辨正规配资平台? 重庆快乐十分开奖结果查询一定牛前一 山西快乐10分什么时 纵横配资 吉林快3专家预测推荐 极速赛车计划群 新彩吧今日福彩3d字谜总汇大全 东北期货配资网 体彩快嬴481走势图 体彩江苏11 选5一等奖