分佈式對象存儲解決方案

分佈式對象存儲解決方案

OSS(Object Storage Service)俗稱對象存儲,主要提供圖片、文檔、音頻、視頻等二進制文件的海量存儲功能。目前除了公有云提供對象存儲服務外,一般私有云比較關心一些開源的分佈式對象存儲解決方案,本文列舉了一些常見的技術方案供參考。

概念普識

塊存儲

通常SAN(Storage Area Network)結構的產品屬於塊存儲,比如我們常見的硬盤、磁盤陣列等物理盤。

文件存儲

一般NAS(Network Attached Storage)產品都是文件級存儲,如Ceph的CephFS,另外 GFS、HDFS等也屬於文件存儲 。

對象存儲

同時兼顧着SAN高速直接訪問磁盤特點及NAS的分佈式共享特點的一類存儲,一般是通過RESTful接口訪問。

開源解決方案介紹

Swift

Swift 是 OpenStack 社區核心子項目,是一個彈性可伸縮、高可用的分佈式對象存儲系統,使用Python語言實現,採用 Apache 2.0 許可協議。

Swift 提供一個基於RESTful HTTP接口的 Object Storage API,用於創建,修改和獲取對象和元數據。用戶可以使用 Swift 高效、安全且廉價地存儲大量數據。Swift 整體架構:

總的來說,企業如果想要建立可擴展的分佈式對象存儲集羣,可以考慮 Swift。

Ceph

Ceph是一種高性能、高可用、可擴展的分佈式存儲系統,統一的對外提供對象存 儲、塊存儲以及文件存儲功能,底層使用C/C++語言。

其中對象存儲功能支持 2 種接口:

1、兼容S3:提供了對象存儲接口,兼容 S3 RESTful 接口的一個大子集。

2、兼容Swift:提供了對象存儲接口,兼容 Openstack Swift 接口的一個大子集。

Ceph是一個企業級分佈式存儲系統,功能強大,不僅可以爲企業建立對象存儲服務,還可以幫助企業建立自己的雲平臺,具有廣泛的應用場景特別是在雲環境下使用廣泛。

Minio

Minio是一個企業級、兼容S3接口的對象存儲系統。Minio基於 Apache 2.0 許可協議,採用 Go語言實現,客戶端支持Java、Python、Go等多種語言,是一種輕量級、高併發的開源解決方案,可以作爲雲存儲方案用來保存海量的圖片,視頻,文檔等。

大數據集成方面,Minio支持各種常見的查詢計算引擎,比如Spark、Presto、Hive以及Flink等,可以使用這些處理框架查詢分析對象數據,此外,Minio支持Parquet,Json、Csv格式等多種文件存儲格式,包括壓縮與編碼。更多特性可以參考官網 地址https://min.io。Minio架構:

Minio主要爲人工智能、機器學習而設計,並適用於其他大數據負載。從架構與功能方面考慮,Minio是一個比較好的開源對象存儲解決方案。

到這裏,也給大家推薦一個架構交流學習羣:710373545,裏面會分享一些資深架構師錄製的視頻錄像:有Spring,MyBatis,Netty源碼分析,高併發、高性能、分佈式、微服務架構的原理,JVM性能優化這些成爲架構師必備的知識體系。還能領取免費的學習資源,相信對於已經工作和遇到技術瓶頸的碼友,在這個羣裏會有你需要的內容。

HBase MOB

這是利用HBase的MOB特性支持對象存儲功能。Apache HBase2.0 版本開始支持中等對象存儲(Medium Object Storage,簡稱 MOB),這個特性使得HBase能夠非常良好的存儲大小在100KB-10M的圖片、文檔、音頻、短視頻等二進制數據。

架構如上,HBase MOB的設計類似於HBase + HDFS的方式,中等對象在寫入HDFS之前同樣是先寫入MemStore,但是刷寫與其他寫入數據不同,MOB數據被刷寫到MOB File中,MOB File被存放在特殊的Region中。

MOB特性在Apache HBase 2.0、CDH 5.4.x 或 HDP 2.5.x 及以上版本支持,用戶可以基於HBase MOB特性設計自己的對象存儲服務。

Hadoop Ozone

Ozone是 Apache Hadoop 的子項目,爲了提供分佈式、可擴展的對象存儲功能,主要是爲了彌補HDFS在小文件存儲方面的不足之處。Ozone建立在一個高可用、支持塊複製的Hadoop分佈式數據存儲層之上,稱爲Hadoop Distributed Data Store(HDDS),上層可對接 Spark、Hive 以及 Yarn 等計算調度引擎。 但是目前還處於alpha內部測試版本,暫時不建議生產環境中使用。

總結

對象存儲主要是解決海量圖片、文檔、音視頻的存儲,其中主流的重量級解決方案是Swift與Ceph,它們各有特點,可以參考搜索引擎上的對比,Hadoop生態體系中備受關注的是HBase MOB,另外輕量級的 Minio也是一種比較好的選擇。MongoDB也提供了大文件存儲模塊GridFS。建議根據實際情況做技術選型 。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章