Ceph與Gluster之開源儲存的對比

2021-09-29 08:21:03 字數 4164 閱讀 2784

一、ceph與gluster之開源儲存的對比
回到頂部

一、ceph與gluster之開源儲存的對比

一、ceph與gluster的原理對比

ceph和gluster是red hat旗下的成熟的開源儲存產品,ceph與gluster在原理上有著本質上的不同。

1、ceph

ceph基於乙個名為rados的物件儲存系統,使用一系列api將資料以塊(block)、檔案(file)和物件(object)的形式展現。ceph儲存系統的拓撲結構圍繞著副本與資訊分布,這使得該系統能夠有效保障資料的完整性。

2、gluster

gluster描述為scale-out nas和物件儲存系統。它使用乙個hash演算法來計算資料在儲存池中的存放位置,這點跟ceph很類似。在gluster中,所有的儲存伺服器使用hash演算法完成對特定資料實體的定位。於是資料可以很容易的複製,並且沒有中心元資料分布式儲存無單點故障且不易造成訪問瓶頸,這種單點在早期hadoop上出現,對效能和可靠性造成較大影響。

二、cep**件系統架構

rados(reliable, autonomic、distributed object store)是ceph系統的基礎,這一層本身就是乙個完整的物件儲存系統,包括cehp的基礎服務(mds,osd,monitor),所有儲存在ceph系統中的使用者資料事實上最終都是由這一層來儲存的。而ceph的高可靠、高可擴充套件、高效能、高自動化等等特性本質上也是由這一層所提供的。

rados在物理形態上由大量的儲存裝置節點組成,每個節點擁有自己的硬體資源(cpu、記憶體、硬碟、網路),並執行著作業系統和檔案系統。基礎庫librados是對rados進行抽象和封裝,並向上層提供不同api,以便直接基於rados進行原生物件或上層物件、塊和檔案應用開發。特別要注意的是,rados是乙個物件儲存系統,因此,基於librados實現的api也只是針對物件儲存功能的。

rados所提供的原生librados api包括c和c++兩種。librados在部署上和基於其上開發的應用位於同一臺機器。應用呼叫本機上的librados api,再由後者通過socket與rados集群中的節點通訊並完成各種操作。

這一層包括了rados gw(rados gateway)、 rbd(reliable block device)和ceph fs(ceph file system)三個高層儲存應用介面,其作用是在librados庫的基礎上提供抽象層次更高、更便於應用或客戶端使用的上層介面。

rados gw是乙個提供與amazon s3和swift相容的restful api的gateway,以供相應的物件儲存應用開發使用。rados gw提供的api抽象層次更高,但功能則不如librados強大。因此,開發者應針對自己的需求選擇使用。

rbd則提供了乙個標準的塊裝置介面,常用於在虛擬化的場景下為虛擬機器建立volume。如前所述,red hat已經將rbd驅動整合在kvm/qemu中,以提高虛擬機器訪問效能。

cephfs是乙個posix相容的分布式檔案系統。目前還處在開發狀態,因而ceph官網並不推薦將其用於生產環境中。

ceph client是基於fuse層(user space)和vfs檔案系統開發,相容posix介面標準。在ceph儲存系統中,ceph metadata daemon 提供了元資料伺服器,而ceph object storage daemon 提供了資料和元資料的實際儲存。

ceph對dfs、block和object資料寫入和讀取,都需client利用crush演算法(負責集群中的資料放置和檢索的演算法)完成儲存位置計算和資料組裝。ceph架構詳細介紹請參考「ceph儲存架構深度分析」文章。

三、gluster fs系統架構

gluster fs由brick server、client和nas閘道器組成(用來訪問儲存服務,但是client只支援linux,其他系統需要nas閘道器提供儲存服務),三者可以部署到同乙個物理伺服器上。nas閘道器通過啟動glfs client提供儲存服務。

每個檔案通過一定策略分不到不同的brick server上,每個brick server通過執行不同程序處理資料請求,檔案以原始格式以ext、xfs和zfs檔案系統的儲存在本地。

卷(block)通過位於client或nas閘道器上的卷管理器來提供服務,由卷管理器管理集群中的多個brick server。儲存節點(brick server)對外提供的服務目錄稱作brick,乙個brick對應乙個本地檔案系統,gluster fs以brick為單位管理儲存。

glusterfs採用模組化、堆疊式的架構,可通過靈活的配置支援高度定製化的應用環境,比如大檔案儲存、海量小檔案儲存、雲儲存、多傳輸協議應用等。每個功能以模組形式實現,然後以積木方式進行簡單的組合,即可實現複雜的功能。比如,replicate模組可實現raid1,stripe模組可實現raid0,通過兩者的組合可實現raid10和raid01,同時獲得高效能和高可靠性。

各個功能模組就是乙個xlator(translator),不同的xlator在初始化後形成樹,每個xlator為這棵樹中的節點動態載入,同乙個xlaror可以同時在client/brick server上載入。glusterfs系統詳細架構請參看「gluster fs分布式檔案系統」文章。

四、glusterfs和ceph對比

1、glusterfs和ceph的簡單對比

glusterfs和ceph是兩個靈活的儲存系統,有著相似的資料分布能力,在雲環境中表現非常出色。在嘗試了解glusterfs與ceph架構之後,我們來看看兩者之間的簡單對比。

2、glusterfs和ceph的共同點

縱向擴充套件和橫向擴充套件:在雲環境中,必須可以很容易地向伺服器新增更多儲存空間以及擴充套件可用儲存池。ceph和glusterfs都可以通過將新儲存裝置整合到現有儲存產品中,滿足擴充效能和容量的要求。

高可用性:glusterfs和ceph的複製是同時將資料寫入不同的儲存節點。這樣做的結果是,訪問時間增加,資料可用性也提高。在ceph中,預設情況下將資料複製到三個不同的節點,以此確保備份始終可用性。

商品化硬體:glusterfs和ceph是在linux作業系統之上開發的。因此,對硬體唯一的要求是這些產品具有能夠執行linux的硬體。任何商品化硬體都可以執行linux作業系統,結果是使用這些技術的公司可以大大減少在硬體上的投資——如果他們這樣做的話。然而,實際上,許多公司正在投資專門用於執行glusterfs或ceph的硬體,因為更快的硬體可以更快地訪問儲存。

去中心化:在雲環境中,永遠不應該有中心點故障。對於儲存,這意味著不應該用乙個**位置儲存元資料。glusterfs和ceph實現了元資料訪問去中心化的解決方案,從而降低了儲存訪問的可用性和冗餘性。

3、glusterfs與ceph的差異

glusterfs是來自linux世界的檔案系統,並且遵守所有portable operating system inte***ce標準。儘管你可以將glusterfs輕鬆整合到面向linux的環境中,但在windows環境中整合glusterfs很難。

ceph是一種全新的儲存方法,對應於swift物件儲存。在物件儲存中,應用程式不會寫入檔案系統,而是使用儲存中的直接api訪問寫入儲存。因此,應用程式能夠繞過作業系統的功能和限制。如果已經開發了乙個應用程式來寫入ceph儲存,那麼使用哪個作業系統無關緊要。結果表明ceph儲存在windows環境中像在linux環境中一樣容易整合。

基於api的儲存訪問並不是應用程式可以訪問ceph的唯一方式。為了最佳的整合,還有乙個ceph塊裝置,它可以在linux環境中用作常規塊裝置,使你可以像訪問常規linux硬碟一樣來使用ceph。ceph還有cephfs,它是針對linux環境編寫的cep**件系統。

4、glusterfs與ceph的速度對比

glusterfs儲存演算法更快,並且由於glusterfs以磚組織儲存的方式實現了更多的分層,這在某些場景下(尤其是使用非優化ceph)可能導致更快的速度。另一方面,ceph提供了足夠的定製功能來使其與glusterfs一樣快。

5、glusterfs與ceph的應用

ceph訪問儲存的不同方法使其成為更流行的技術。更多的公司正在考慮ceph技術而不是glusterfs,而且glusterfs仍然與red hat密切相關。例如,suse還沒有glusterfs的商業實施,而ceph已經被開源社群廣泛採用,市場上有各種不同的產品。在某種意義上來說,ceph確實已經勝過glusterfs。

Ceph基礎之搭建ceph集群

8 更新源 yum update ysetenforce 0 4 安裝ntp,在所有ceph節點上執行 2 用ceph deploy建立ceph集群mkdir etc ceph 生成乙個新的ceph集群,集群包括ceph配置檔案以及monitor的金鑰環。3 安裝ceph二進位制軟體包ceph de...

Ceph的正確玩法之Ceph糾刪碼理論與實踐

注意空格,有的命令少空格 一 糾刪碼原理 糾刪碼 erasure coding,ec 是一種編碼容錯技術,最早是在通訊行業解決部分資料在傳輸中的損耗問題。其基本原理就是把傳輸的訊號分段,加入一定的校驗再讓各段間發生相互關聯,即使在傳輸過程中丟失部分訊號,接收端仍然能通過演算法將完整的資訊計算出來。在...

Ceph學習之路(一)之ceph初識

在學習ceph之前,需要了解元資料的概念。元資料又稱為中介資料 中繼資料,為描述資料的資料。主要描述資料屬性的資訊,用來支援如指示儲存位置 歷史資料 資源查詢 檔案記錄等功能。通俗地說,就 是用於描述乙個檔案的特徵的系統資料,比如訪問許可權 檔案擁有者以及檔案資料庫的分布資訊 inode 等等。在集...