ceph 儲存 對比 分布式儲存系統 Curve

2021-10-14 03:39:19 字數 1616 閱讀 7728

curve 是網易開源的高效能、高可用、高可靠分布式儲存系統,具有非常良好的擴充套件性。基於該儲存底座可以打造適用於不同應用場景的儲存系統,如塊儲存、物件儲存、雲原生資料庫等。

curve 的設計開發始終圍繞三個理念:

一是順應當前儲存硬體設施發展趨勢,做到軟硬體結合打造頂級的儲存產品;

二是秉持 「****** can be harder than complex」,了解問題本質情況下選擇最簡單的方案解決問題;

三是擁抱開源,在充分調研的前提下使用優秀的開源專案元件,避免造輪子。

當前網易基於 curve 已經實現了高效能塊儲存系統,支援快照轉殖和恢復 ,支援 qemu 虛擬機器和物理機 nbd 裝置兩種掛載方式, 在網易內部作為高效能雲盤使用。

高效能

高效能是 curve 的一大特點,也是專案團隊建立 curve 專案的初衷。rpc 層面 curve 採用了高效能和低延遲並且已開源的 brpc;在一致性層面選擇了基於 quorum 機制並且開源的 braft,從協議層面來說 quorum 機制在延遲方面天生優於多副本強一致的方式。

實現上 curve 對 braft 快照的實現進行了優化,在狀態機的實現上採用 chunkfilepool 的方式 ( 初始化集群的時候格式化出指定比例的空間用作 chunk ) 使得底層的寫入放大為 0;

此外curve 還在 chunk 上進行更細力度的位址空間 hash 以達到讀寫分離、減小 io 碰撞等的效果,從而進一步提公升 io 效能。

網易公布了 curve 和 ceph l 版本的測試資料對比,在單捲的場景下,核心的 4k 隨機讀/寫的iops 效能,curve 分別是 ceph 的 1.84 倍和 1.58 倍,同時延遲相比 ceph 分別降低 48.39%和 37.50%。

curve與ceph效能測試對比

2. 高可用

高可用是 curve 的另一大特點。mds、chunkserver 以及 snapshotcloneserver 都支援多例項部署,部分例項異常不影響整個集群的可用性。

mds 是無狀態的,推薦至少部署兩個例項。通過 etcd 進行選主。多個 mds 例項通過 etcd 進行選主,當單個例項失效時,可以秒級切換到另外乙個例項。失效例項上正在處理的請求,client 和 snapshotcloneserver 都會對其進行重試,以達到不影響集群可用性的效果。

snapshotcloneserver 與 mds 類似, 也是通過 etcd 進行選主,不同的是,它通過負載均衡對外提供服務。失效期間的請求失敗重試都是冪等的,不影響任務的正確性以及集群的可用性。

chunkserver 是乙個集群,通過 raft 協議保持資料一致性,並通過 mds 做負載均衡。單個節點失效時,會影響到這個節點上儲存的所有 copyset。

對於 copyset 上的 leader 節點,會中斷服務,等待重新選舉;對於copyset 上的 follower 節點,服務不會受影響。當某個 chunkserver 節點失效且在一段時間內無法恢復,mds 會將其上的資料遷移到其他節點上。

分布式儲存系統 Ceph

你了解ceph嗎?ceph是一種分布式儲存系統,它可以將多台伺服器組成乙個超大集群,把這些機器中的磁碟資源整合到一塊兒,形成乙個大的資源池 pb級別 然後按需分配給應用使用。那麼你知道ceph的架構嗎?ceph的底層實現是rados,rados是由c 寫的,但是它向外界暴露了呼叫介面,即librad...

分布式儲存系統 Ceph

你了解ceph嗎?ceph是一種分布式儲存系統,它可以將多台伺服器組成乙個超大集群,把這些機器中的磁碟資源整合到一塊兒,形成乙個大的資源池 pb級別 然後按需分配給應用使用。那麼你知道ceph的架構嗎?ceph的底層實現是rados,rados是由c 寫的,但是它向外界暴露了呼叫介面,即librad...

Ceph分布式儲存系統簡介

內容 注 了解ceph的作用與基本概念 ceph是乙個可靠地 自動重均衡 自動恢復的分布式儲存系統,根據場景劃分可以將ceph分為三大塊,分別是物件儲存 塊裝置儲存和檔案系統服務。在虛擬化領域裡,比較常用到的是ceph的塊裝置儲存,比如在openstack專案裡,ceph的塊裝置儲存可以對接open...