1. 程式人生 > 其它 >分散式檔案系統(常用分散式檔案系統比對)

分散式檔案系統(常用分散式檔案系統比對)

分散式檔案系統(常用分散式檔案系統比對)

1 分散式檔案系統

1.1 什麼是分散式檔案系統?

分散式檔案系統(Distributed File System,DFS)是指檔案系統管理的物理儲存資源不一定直接連線在本地節點上,而是通過計算機網路與節點(可簡單的理解為一臺計算機)相連;或是若干不同的邏輯磁碟分割槽或卷標組合在一起而形成的完整的有層次的檔案系統。DFS為分佈在網路上任意位置的資源提供一個邏輯上的樹形檔案系統結構,從而使使用者訪問分佈在網路上的共享檔案更加簡便。

1.2 分散式檔案系統與一般檔案系統對比

 

分散式檔案系統

一般檔案系統

儲存資料的方式

資料分散的儲存在多臺伺服器上

集中存放所有資料,在一臺伺服器上

特點

分散式網路儲存系統採用可擴充套件的系統結構,利用多臺伺服器分擔負荷,利用位置伺服器定位儲存資訊,不但提高了系統的可靠性、可用性和存取效率,還易於擴充套件,避免單點故障。

傳統的網路儲存系統採用集中的伺服器存放所有資料,到一定程度伺服器會成為系統性能的瓶頸,也是可靠性和安全性的焦點,不能滿足大規模儲存應用的需要。

2 根據需求選擇分散式檔案系統

目前可用於檔案儲存的網路服務選擇有很多,比如阿里雲OSS、騰訊雲、百度雲等等,對於中小型企業,如果不選擇儲存上雲,或者為了幫解約成本,可自行部署檔案系統。

本文主要介紹了根據需求來對常用分散式檔案系統進行篩選。

2.1 需求說明:

目前要找的分散式檔案系統至少滿足以下條件:

  • 頻繁讀寫、從不修改、基本不刪除

  • 能夠儲存圖片、音訊以及100MB以上的視訊等檔案

  • 非常穩定、高可用、可擴容、可運維部署、

  • 上手簡單、易於維護、社群相對活躍

2.2篩選流程

常用的分散式檔案系統有:GFS、TFS、HDFS、MooseFs、FastDfs、MogileFs、GridFs、MinIO、SeaweedFS、GlusterFS、Ceph、GlusterFS等。

第一步:常見分散式檔案系統比對

1、GFS(Google File System)

Google公司為滿足公司需求而開發的基於Linux的可擴充套件的分散式檔案系統,用於大型的、分散式的、對大資料進行訪問和應用,成本低,應用於廉價的普通硬體上,但不開源,暫不考慮。

2、TFS(Taobao File System)

阿里巴巴為滿足了淘寶對小檔案儲存的需求而開發的一個可擴充套件、高可用、高效能、面向網際網路服務、開源的分散式檔案系統,主要針對海量的非結構化資料,它構築在普通的Linux機器叢集上,可為外部提供高可靠和高併發的儲存訪問。TFS為淘寶提供海量小檔案儲存,通常檔案大小不超過1M,這個也暫不考慮。

3、HDFS(Hadoop Distributed File System)

Hadoop分散式檔案系統,適合執行在通用硬體上做分散式儲存和計算,因為它具有高容錯性和可擴充套件性的特點,可部署在廉價的機器上,適合大資料的處理,在離線批量處理大資料上有先天的優勢。

Hadoop是Apache Lucene創始人Doug Cutting開發的使用廣泛的文字搜尋庫。它起源於Apache Nutch,後者是一個開源的網路搜尋引擎,本身也是Luene專案的一部分。Aapche Hadoop架構是MapReduce演算法的一種開源應用,是Google開創其帝國的重要基石。

4、MooseFS

MooseFS 是來自波蘭的開源且具備冗餘容錯功能的分散式 POSIX 檔案系統,也是參照了 GFS 的架構,實現了絕大部分 POSIX 語義和 API,它支援通過FUSE方式將檔案掛載操作,同時其提供的web管理介面非常方便檢視當前的檔案儲存狀態,對master伺服器有單點依賴,用perl編寫,用於中、大型檔案應用,但效能相對較差,由於可能會實時訪問所以暫不考慮。

備註:POSIX表示可移植作業系統介面(Portable Operating System Interface of UNIX,縮寫為 POSIX ),POSIX標準定義了作業系統應該為應用程式提供的介面標準

5、FastDFS

由淘寶的餘慶先生所開發的一個開源分散式檔案系統。它對檔案進行管理,功能包括:檔案儲存、檔案同步、檔案訪問(檔案上傳、檔案下載)等,解決了大容量儲存和負載均衡的問題。適合以檔案為載體的線上服務,如相簿網站、視訊網站等等。FastDFS為網際網路量身定製,充分考慮了冗餘備份、負載均衡、線性擴容等機制,並注重高可用、高效能等指標,使用FastDFS搭建一套高效能的檔案伺服器叢集提供檔案上傳、下載等服務。但是FastDFS部署有點麻煩,且它的SKD是不全的。

6、MogileFS

MogileFS是一套高效開源的檔案自動備份元件,由Six Apart開發,廣泛應用在包括LiveJournal等web2.0站點上。支援多節點冗餘,可實現自動的檔案複製。不需要RAID,應用層可以直接實現RAID,不共享任何東西,通過叢集介面提供服務工作於應用層,沒有特殊的元件要求。使用HTTP方式通訊。

國內所知道的使用 MogileFS 的公司有圖片託管網站 yupoo又拍,digg, 土豆, 豆瓣,1 號店, 大眾點評,搜狗,安居客等等網站.基本很多網站容量,圖片都超過 30T 以上。

7、GridFS

MongoDB是一種知名的NoSql資料庫,GridFS是MongoDB的一個內建功能,它用於儲存和恢復那些超過16M(BSON檔案限制)的檔案(如:圖片、音訊、視訊等),是檔案儲存的一種方式,但是它是儲存在MonoDB的集合中。它可以直接利用已建立的複製或分片機制,所以對於檔案儲存來說故障恢復和擴充套件都容易,且GridFS不產生磁碟碎片。

8、MinIO

MinIO 是一個基於Apache License v2.0開源協議的物件儲存服務。它相容亞馬遜S3雲端儲存服務介面,非常適合於儲存大容量非結構化的資料,例如圖片、視訊、日誌檔案、備份資料和容器/虛擬機器映象等,而一個物件檔案可以是任意大小,從幾kb到最大5T不等。它也是一個非常輕量的服務,可以很簡單的和其他應用的結合。MinIO的特色在於簡單、輕量級,對開發者友好,學習成本低,安裝運維簡單,開箱即用。

而MinIO是apache專案,它擁有著較高的效能,100%相容s3,學習成本低、安裝運維簡單、開箱即用。

9、SeaweedFS

SeaweedFS是基於go語言開發高度可擴充套件開源的分散式儲存系統,能儲存數十億檔案(最終受制於你的硬碟大小)、並且速度快,記憶體佔用小。上手使用比fastDFS要簡單很多,自帶Rest API。對於中小型檔案效率非常高,但是單卷最大容量被程式限制到30G,建議儲存檔案以100MB以內為主。

10、Ceph

Ceph是Red Hat旗下一個成熟的分散式檔案系統,而且還是一個有企業級功能的物件儲存生態環境。該系統具備高效能、高可用性、高可擴充套件性、實時儲存性等特點。雖然ceph很強大,但是學習成本高、安裝運維複雜。Ceph用C++編寫,儲存容量可輕鬆達到PB級別。

11、GlusterFS

GlusterFS 是由美國的 Gluster 公司開發的 POSIX 分散式檔案系統(以 GPL 開源),它主要應用在集群系統中,具有高擴充套件性、高可用性、高效能、可橫向擴充套件等特點,並且其沒有元資料伺服器的設計,讓整個服務沒有單點故障的隱患。該系統主要是為中大型檔案設計的,儲存容量可輕鬆達到PB。它存在擴容縮容影響伺服器較多、遍歷目錄下檔案耗時、小檔案效能較差的缺點。

第二步:功能分類

  • 適合做通用檔案系統的有:Ceph、MooseFS、MinIO;

  • 適合做中小檔案儲存的檔案系統有:Ceph、FastDFS、MinIO、SeaweedFS;

  • 適合做大檔案儲存的檔案系統有:HDFS、MinIO、Ceph、GridFS;

  • 輕量級檔案系統有:FastDFS、MinIO、SeaweedFS;

  • 簡單易用,使用者活躍的檔案系統有:HDFS、FastDFS;

  • 綜上:Ceph目前不夠成熟穩定,官方也明確指出不要把ceph用在生產環境中,暫不考慮;

  • 經初步篩選剩下的檔案系統有:HDFS、FastDFS、MinIO、GridFS。

第三步:分散式檔案系統再次比對

MinIO:上手簡單,適合儲存大容量非結構化的資料, 基本滿足當前業務需求但是目前沒有中文社群。

FastDFS:功能精簡,支援線上擴容、冗餘備份,部分支援跨叢集同步,不存在單點故障,效能較好。但是不支援FUSE掛載和POSIX訪問介面。

HDFS:適合批量資料處理.可以部署在廉價的機器上。可以部署在廉價的機器上,但是不適合大量小檔案,通過犧牲響應延時來換取高的吞吐量。

GridFS:能夠簡化技術棧,如果已經使用了MongoDB,那麼使用GridFS,就不需要其它獨 立的儲存工具了(很遺憾我們當前還沒有引入MongoDB),不過效能不如直接訪問檔案系統快。無法修改文件。如果要修改GridFS裡面的文件,只能是先刪除再新增(對我們當前業務沒有影響)

2.3 綜述

目前提供的建議選型參考為MinIO或FastDFS,

如果想減少技術棧的話可以考慮HDFS或GridFS,

如果不在乎響應時間可以考慮HDFS。

相關文章:高效能物件儲存MinIO學習

 

本文地址:https://www.gpbctv.com/swkx/202109/376884.html

鄭重宣告:本文版權歸原作者所有,轉載文章僅為傳播更多資訊之目的,如作者資訊標記有誤,請第一時候聯絡我們修改或刪除,多謝。