來源:互聯網
上載者:User
關鍵字
雲計算
開源
OpenStack
Ceph
分散式存儲系統
Ceph 是一個開源、統一、分散式的存儲系統,提供了一種便捷方式來部署包含商用硬體、低成本且可大規模擴展的存儲平臺。 瞭解如何創建一個 Ceph 集群(從單一點實現物件、塊和檔存儲)、Ceph 的演算法和複製機制,以及如何將它與您的雲資料架構和模型相集成。 作者提出了一種將 Ceph 集群集成到 OpenStack 生態系統中的簡單而又強大的方法。
Ceph 是一個符合 POSIX (Portable HTTP://www.aliyun.com/zixun/aggregation/10963.html">Operating System for UNIX®)、 開源的分散式存儲系統,依據 GNU 次通用公共許可而運行。 該專案最初由 Sage Weill 于 2007 年開發,該專案的理念是提出一個沒有任何單點故障的集群,確保能夠跨集群節點進行永久資料複製。
與在任何經典的分散式檔案系統中一樣,放入集群中的檔是條帶化的,依據一種稱為 Ceph Controlled Replication Under Scalable Hashing (CRUSH) 的偽隨機的資料分佈演算法放入集群節點中。
Ceph 是一種有趣的存儲替代方案,這得益于它實現的一些概念,比如中繼資料分區,以及一種複製或放置群組原則(將一系列物件聚合到一個分組中,然後將該分組映射到一系列物件存儲後臺進程 (OSD))。
這些特性支援自動擴展、恢復和自主管理集群,因為他們使用以下綁定(在不同的級別上)提供了與您的 Ceph 集群的對話模式:
Reliable Autonomic Distributed Object Store (RADOS) 閘道是一種 RESTful 介面,您的應用程式可與其通信,以便將物件直接存儲在集群中。 librados 庫是一種訪問 RADOS 的便利方式,它支援 PHP、Ruby、JAVA™、Python 和 C/C++ 程式設計語言。 Ceph 的 RADOS 塊設備 (RBD) 是一個完全分散式的塊設備,它使用一個 Linux® 內核和一個 Quick EMUlator (QEMU)/基於內核的虛擬機器 (KVM) 驅動程式。 原生 CephFS 是一個分散式檔案系統,全面支援 Filesystem in Userspace (FUSE)。
如 圖 1 中所示,Ceph 生態系統可分解為 5 個組成部分:
librados 庫 RADOS 閘道 RBD CephFS 集群中的各種節點
圖 1. Ceph 生態系統
Ceph 生態系統原生支援許多與其交互的方式,這使得在已運行的基礎架構中集成它變得既輕鬆又便捷,即使它執行的是一個在統一專案檔案中提供塊和物件存儲功能的複雜任務。
接下來我們來看一下組成 Ceph 的各個部分以及它們在 Ceph 中分別扮演的角色。
RADOS 物件存儲
圖 1 表明 RADOS 物件存儲是存儲集群的基礎。 對於通過眾多用戶端或閘道(RADOSGW、RBD 或 CephFS)執行的每個操作,資料會進入 RADOS 或者可以從中讀取資料。 圖 2 顯示了 RADOS 集群,它包含兩個後臺守護進程:Ceph 物件存儲後臺進程 (OSD) 和維護集群映射的主要副本的 Ceph 監視器。
圖 2. The RADOS 物件存儲
集群映射描述了物件塊的物理位置,以及一個將設備聚合到物理位置的 「桶」 清單。 該映射由 Ceph 的高級放置演算法控制,該演算法在物理位置上建模邏輯位置。 圖 3 描繪了集群內的 「池」,即存儲物件的邏輯分區。 每個池被動態映射到 OSD。
圖 3. RADOS 位置分組
現在讓我們看看第一組後臺進程 OSD,然後再看看監視器,最後看看屬於 CephFS 分散式檔案系統的 Ceph 中繼資料伺服器。