Ceph架构
架构图梳理
架构图可以从上到下分为三层,分别描述了 Ceph 系统的不同部分:
1. 上层架构(客户端和 API)
- 开发环境:
- 开发者可以通过多种编程语言(如 Python、Java、C++ 等)使用 Ceph 提供的 API(如 LIBRADOS、RADOSGW)来访问 Ceph 系统。
- 开发机(Server)上存放了 Ceph 的配置文件(如
ceph.conf
和ceph.client.admin.keyring
),用于身份验证和系统配置。
- API 类型:
- RBD:提供块存储服务,类似于硬盘。
- cephFS:提供文件系统服务,类似于 NFS,支持高可用。
- RADOSGW:提供对象存储服务,支持 HTTP/HTTPS 接口。
2. 中层架构(数据分布和存储池)
- 存储池(Pool Pools):
- 数据被组织到不同的存储池中,每个池可以有不同的配置(如副本数量、存储策略)。
- 例如,图中提到了
oldboyedu
和jasonyin
两个存储池。
- 归置组(Placement Groups, PGs):
- 数据被分配到多个归置组(PGs)中,每个 PG 负责管理一部分对象。
- PGs 是 Ceph 数据分布的基本单元。
- CRUSH 算法:
- Ceph 使用 CRUSH 算法来计算数据应该存储在哪个 OSD(对象存储设备)上,确保数据分布均匀且支持容错。
3. 底层架构(存储节点和硬件)
- Ceph 节点(Host Node):
- 每个节点(如
ceph141
、ceph142
、ceph143
)包含多个 OSD(对象存储设备)。 - 每个 OSD 负责存储一部分数据,并参与数据复制和容错。
- 每个节点(如
- OSD(Object Storage Device):
- 每个 OSD 是一个物理或逻辑存储设备,例如 300GB 或 1TB 的硬盘。
- 数据通过 CRUSH 算法映射到具体的 OSD 上。
- 监控和管理组件:
- mon:监控节点,维护集群状态。
- mds:元数据服务器,用于管理 cephFS 的元数据。
- mgr:管理节点,收集集群状态信息。
- rgw:对象存储网关,提供 HTTP/HTTPS 接口。
通俗解释
Ceph 是一个分布式的存储系统,可以理解为一个超级大的“云硬盘”。它的架构分为三层:
-
上层(客户端和 API):
- 你可以把它想象成一个“前台”,开发者通过编程语言(如 Python、Java)和 Ceph 提供的接口(如 RBD、cephFS、RADOSGW)来访问这个“云硬盘”。
- 比如,你可以通过 RBD 把 Ceph 当作一块硬盘来用,或者通过 cephFS 把它当作一个文件系统来用。
-
中层(数据分布和存储池):
- 这一层是“仓库管理”,数据被分到不同的“仓库”(存储池)中,每个仓库有自己的管理规则。
- 数据又被分成很多“小包裹”(归置组,PGs),每个小包裹会被复制多份,存到不同的“货架”(OSD)上,确保数据不会丢失。
-
底层(存储节点和硬件):
- 这一层是“货架和仓库”,每个节点(如
ceph141
)就是一个小仓库,里面有很多货架(OSD),每个货架存放一部分数据。 - 还有一些“管理员”(mon、mds、mgr、rgw)负责监控和管理整个仓库的运行状态。
- 这一层是“货架和仓库”,每个节点(如
总结
Ceph 的核心思想是:
- 分布式存储:数据分散在多个节点上,避免单点故障。
- 高可用:数据被复制多份,即使某个节点坏了,数据也不会丢失。
- 灵活:支持块存储、文件存储和对象存储,满足不同需求。
你可以把 Ceph 想象成一个超级大的、分布式的“云硬盘”,它通过复杂的算法和管理机制,确保数据安全、高效地存储和访问。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)