Ceph 组件和概念

一、组件

1. Ceph Monitor (MON)

  • 功能: Ceph Monitor 负责集群状态的监控和管理。它们存储集群的元数据,包括集群地图(monitor map、OSD map、placement group (PG) map 和 CRUSH map)。它们还负责管理集群中的认证和权限信息(CephX)。
  • 重要性: MON 是集群的核心组件,因为它们保证了集群的一致性和高可用性。MON 通常以奇数数量部署,以确保在发生故障时能够进行投票并达成共识。
  • 部署要求: 推荐至少部署三个 MON 节点,以防止单点故障和保证集群的高可用性。

2. Ceph OSD Daemon (OSD)

  • 功能: OSD(Object Storage Daemon)是存储数据的核心组件。每个 OSD 负责存储对象数据、处理复制、恢复、回填、重新平衡和数据检查等任务。OSD 还定期向 MON 报告其状态,以帮助监控集群健康状况。
  • 重要性: OSD 的数量直接决定了集群的存储容量和性能。通常,一个 OSD 对应一个物理或逻辑磁盘。
  • 部署要求: 需要根据存储需求部署足够数量的 OSD 节点。推荐至少部署三个 OSD 节点,以便在发生节点故障时仍能保持数据的可用性。

3. Ceph Metadata Server (MDS)

  • 功能: MDS 主要用于 Ceph 文件系统(CephFS)。它管理文件系统的元数据,例如目录结构、文件权限和命名空间。MDS 并不直接存储文件数据,数据仍然由 OSD 负责存储。
  • 重要性: MDS 对于 CephFS 的性能和可扩展性至关重要,特别是在处理大量小文件或复杂的目录结构时。MDS 允许多个客户端并行访问文件系统,而不会产生瓶颈。
  • 部署要求: 在使用 CephFS 时至少需要一个 MDS,多个 MDS 可以实现高可用性和负载均衡。

4. Ceph Manager (MGR)

  • 功能: Ceph Manager 组件负责收集和维护集群的运行状态信息,并提供集群的监控、统计和告警功能。MGR 还托管一系列模块化插件,用于扩展集群的功能,例如 dashboard、prometheus 集成、iSCSI 网关等。
  • 重要性: MGR 是 MON 的辅助组件,为集群提供额外的监控和管理功能。它们通常以双节点冗余部署,确保高可用性。
  • 部署要求: 通常至少部署两个 MGR 节点,以确保在一个节点故障时仍能提供服务。

5. Ceph RADOS Gateway (RGW)

  • 功能: RGW 是 Ceph 的对象存储接口,实现了与 Amazon S3 和 OpenStack Swift 兼容的 RESTful API。它允许用户通过 HTTP/HTTPS 请求访问 Ceph 集群中的对象数据。
  • 重要性: RGW 使 Ceph 成为一个完整的对象存储解决方案,支持大规模的对象数据存储和分发。
  • 部署要求: 根据工作负载和访问需求,RGW 可以横向扩展部署,以支持更大的吞吐量和更高的可用性。

6. Ceph RADOS Block Device (RBD)

  • 功能: RBD 提供基于 Ceph 的块存储服务,可以将 Ceph 集群作为虚拟硬盘使用,特别适用于云平台(如 OpenStack)的虚拟机存储和容器化应用的持久化存储。
  • 重要性: RBD 是 Ceph 在块存储领域的核心功能之一,支持快照、克隆和精简配置等功能。
  • 部署要求: RBD 并不需要独立的组件,直接利用现有的 MON 和 OSD 就可以提供服务。

7. CephFS

  • 功能: CephFS 是 Ceph 提供的 POSIX 兼容的分布式文件系统,支持高并发的文件访问和共享。CephFS 使用 MDS 来管理元数据,并使用 OSD 来存储文件数据。
  • 重要性: CephFS 为需要共享文件存储的应用提供了高性能和高扩展性的解决方案,特别适合 HPC(高性能计算)和大数据分析场景。
  • 部署要求: 需要至少一个 MDS 和足够的 OSD 来提供 CephFS 服务。

8. Ceph Dashboard

  • 功能: Dashboard 是 Ceph 集群的 Web 管理界面,提供集群状态、性能监控、配置管理和操作执行等功能。
  • 重要性: Dashboard 提供了可视化的管理和监控界面,使集群的管理和运维更加直观和简便。
  • 部署要求: Dashboard 作为 MGR 的一个模块,需要在启用了 MGR 的节点上部署。

二、概念

1. CRUSH (Controlled Replication Under Scalable Hashing)

  • 功能: CRUSH 是 Ceph 用于数据分布的算法,它决定了如何将数据对象映射到 OSD 上。CRUSH 根据集群拓扑、设备权重和故障域来做出决策,确保数据的高可用性和负载均衡。
  • 重要性: CRUSH 允许 Ceph 在没有集中元数据服务器的情况下进行大规模扩展,并能够在设备添加或移除时动态调整数据分布。
  • 配置: CRUSH 映射是可配置的,用户可以定义规则(ruleset)来控制数据的副本如何在 OSD 上分布。

2. PG (Placement Group)

  • 功能: PG 是 Ceph 中的一个逻辑概念,代表一组对象的集合。Ceph 将数据对象首先映射到 PG,然后再将 PG 映射到具体的 OSD。
  • 重要性: PG 是 Ceph 数据分布的基本单位,通过 PG 的划分,Ceph 可以实现高效的负载均衡、数据恢复和复制。
  • 配置: PG 的数量(通常由 pg_num 参数指定)对集群性能和管理有直接影响,建议在集群规划时仔细设置。

3. Replication and Erasure Coding

  • 功能: Ceph 支持两种主要的数据保护方式:复制(Replication)和纠删码(Erasure Coding)。复制通过在多个 OSD 上存储数据的多个副本来确保数据安全,而纠删码则通过将数据分片和校验信息分布在多个 OSD 上来节省存储空间。
  • 重要性: 复制更适合对性能要求较高的应用,而纠删码则更适合对存储效率要求较高的场景。
  • 配置: 用户可以在创建池时指定是使用复制还是纠删码,并设定复制副本的数量或纠删码的参数。

4. Pools

  • 功能: Pool 是 Ceph 中用于存储对象的逻辑容器。它决定了对象存储的副本数量、PG 的数量、数据保护策略(复制或纠删码)等。Pool 还可以指定使用 SSD 或 HDD 作为存储介质。
  • 重要性: Pool 是 Ceph 数据管理的基础单元,通过不同的 Pool 可以实现数据的隔离、不同的存储策略和性能优化。
  • 配置: 创建 Pool 时需要设定 pg_num 和 pgp_num 等参数,并可以根据需求分配不同的 CRUSH 规则。

5. OSD Map

  • 功能: OSD Map 是 MON 管理的映射表,记录了集群中所有 OSD 的状态(例如在线、离线或出错)、位置和配置。OSD Map 对集群的正常运行至关重要。
  • 重要性: OSD Map 用于确定数据的存储位置,并在集群拓扑变化(如添加或移除 OSD)时保持数据的一致性。
  • 更新: 每当 OSD 状态发生变化时,MON 会生成一个新的 OSD Map 并分发给集群中的其他组件。

6. MON Map

  • 功能: MON Map 记录了 Ceph 集群中所有 MON 的信息,包括它们的 IP 地址、端口、状态等。MON Map 确保 MON 之间的协作,并在需要时选举新的 leader。
  • 重要性: MON Map 对集群的稳定性至关重要,特别是在 MON 故障时,它决定了新的 MON 集群的组成。
  • 更新: MON Map 通常由管理员手动更新,或者在 MON 失效后由集群自动调整。

7. PG Map

  • 功能: PG Map 记录了每个 PG 的状态、所属的 OSD 和复制状态。PG Map 对于监控集群健康状况和数据分布非常重要。
  • 重要性: PG Map 用于跟踪每个 PG 的健康状态,确保所有数据对象都被正确复制并分布在集群中。
  • 更新: PG Map 在集群中动态更新,反映每个 PG 的实时状态。

8. CephX

  • 功能: CephX 是 Ceph 内置的认证机制,确保集群中的每个客户端和守护进程都经过身份验证并且只有合法的客户端才能访问集群资源。
  • 重要性: CephX 为 Ceph 集群提供了安全层,防止未经授权的访问和潜在的攻击。
  • 配置: CephX 默认启用,管理员可以通过配置文件调整 CephX 的认证策略和权限管理。

9. RADOS (Reliable Autonomic Distributed Object Store)

  • 功能: RADOS 是 Ceph 的底层存储引擎,负责存储和管理所有的数据对象。RADOS 提供数据复制、负载均衡和自动恢复等功能。
  • 重要性: RADOS 是 Ceph 的核心,所有的高层服务(如 CephFS、RBD、RGW)都依赖于 RADOS 提供的分布式存储功能。
  • 特点: RADOS 通过 CRUSH 算法实现数据分布和管理,支持高可用性和横向扩展。

10. Snapshots

  • 功能: Ceph 支持对 RBD、CephFS 和 RGW 对象进行快照操作。快照是某一时刻数据的只读副本,用于数据保护和备份。
  • 重要性: 快照允许用户在不影响正常操作的情况下保存数据的某个状态,并在需要时进行数据恢复。
  • 配置: 用户可以通过 CLI 或 API 创建和管理快照,快照的创建和删除操作非常快速。

11. Backfill and Recovery

  • 功能: 当 OSD 故障或新 OSD 加入集群时,Ceph 会自动触发数据回填(Backfill)和恢复(Recovery)过程,确保数据的副本数量满足设定要求并且数据均匀分布在集群中。
  • 重要性: 回填和恢复机制确保了数据的高可用性和集群的平衡,即使在设备故障或拓扑变化时也能保持数据的完整性。
  • 配置: 用户可以通过调节回填和恢复的速度来控制集群性能与数据安全之间的平衡。

12. Scrubbing

  • 功能: Scrubbing 是 Ceph 定期检查数据一致性的过程,分为普通 Scrubbing 和深度 Scrubbing。普通 Scrubbing 检查 PG 元数据的一致性,深度 Scrubbing 则逐字节检查对象数据。
  • 重要性: Scrubbing 能够发现和修复数据损坏或不一致的问题,确保数据的完整性。
  • 配置: Scrubbing 是自动进行的,管理员可以调整 Scrubbing 的频率和深度。

13. BlueStore

  • 功能: BlueStore 是 Ceph 的一种存储引擎,它直接在原始块设备上存储数据,而不是通过文件系统层。这提高了 Ceph 的性能,并支持更高效的数据校验和修复。
  • 重要性: BlueStore 是 Ceph 默认的存储引擎,提供更好的性能和数据可靠性。
  • 特点: 支持数据压缩、校验和直接存储(绕过文件系统)。

14. RBD Mirroring

  • 功能: RBD 镜像是一种跨数据中心的 RBD 数据复制机制,用于灾难恢复(DR)场景。它可以在两个或多个 Ceph 集群之间同步 RBD 映像。
  • 重要性: RBD 镜像为 Ceph 集群提供了跨数据中心的高可用性和数据保护。
  • 配置: 需要在源和目标集群上配置 RBD 镜像服务,并设置镜像策略。
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,126评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,254评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,445评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,185评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,178评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,970评论 1 284
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,276评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,927评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,400评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,883评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,997评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,646评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,213评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,204评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,423评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,423评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,722评论 2 345

推荐阅读更多精彩内容