Rook operator 是一个简单的容器,包含启动和监控存储集群所需的一切。operator 会启动并监控 Ceph monitor pods、提供 RADOS 存储的 Ceph OSD 守护进程,以及启动和管理其他 Ceph 守护进程。operator 通过初始化运行服务所需的 pods 和其他资源,管理用于池、对象存储(S3/Swift)和文件系统的 CRD。
operator 会监控存储守护进程以确保集群健康。Ceph mons 会在必要时启动或故障转移,随着集群的扩展或缩减,operator 也会做出相应调整。operator 还会监视 Ceph 自定义资源(CR)中指定的期望状态变化并应用这些更改。
Rook 会自动配置 Ceph-CSI 驱动,将存储挂载到你的 pods。rook/ceph 镜像包含管理集群所需的所有工具。
Ceph CSI 插件实现了 CSI 支持的容器编排器(CO)与 Ceph 集群之间的接口。它们支持动态创建 Ceph 卷并将其附加到工作负载。
| 模块 | 功能 |
|---|---|
| MON | Monitor(MON)是 Ceph 集群中最重要的组件。它管理 Ceph 集群并维护整个集群的状态。MON 确保集群的相关组件能够同步运行。它作为集群的领导者,负责收集、更新和发布集群信息。 |
| MGR | Manager(MGR)是一个监控系统,提供数据收集、存储、分析(包括告警)和可视化功能。它使某些集群参数可供外部系统使用。 |
| OSD | Object Storage Daemon(OSD)存储实际的用户数据。每个 OSD 通常绑定到一个物理驱动器。OSD 处理来自客户端的读写请求。 |
| MDS | Ceph Metadata Server(MDS)跟踪文件层次结构并存储仅用于 CephFS 的元数据。RBD 和 RGW 不需要元数据。MDS 不直接为客户端提供数据服务。 |
| RGW | RADOS Gateway(RGW)是 Ceph 对象网关,提供兼容 S3 和 Swift 的 RESTful API。RGW 还支持多租户和 OpenStack 身份服务(Keystone)。 |
| RADOS | Reliable Autonomic Distributed Object Store(RADOS)是 Ceph 存储集群的核心。Ceph 中的所有内容都以对象形式由 RADOS 存储,无论其数据类型如何。RADOS 层通过数据复制、故障检测与恢复以及跨集群节点的数据恢复,确保数据一致性和可靠性。 |
| LIBRADOS | Librados 是简化访问 RADOS 的方法。目前支持 PHP、Ruby、Java、Python、C 和 C++ 等编程语言。它提供了 Ceph 存储集群的本地接口 RADOS,是其他服务(如 RADOS 块设备(RBD)和 RADOS 网关(RGW))的基础组件。此外,它为 Ceph 文件系统(CephFS)提供了可移植操作系统接口(POSIX)。Librados API 可用于直接访问 RADOS,使开发者能够创建自己的接口以访问 Ceph 集群存储。 |
| RBD | RADOS Block Device(RBD)是 Ceph 块设备,为外部系统提供块存储。它可以像驱动器一样映射、格式化并挂载到服务器。 |
| CephFS | CephFS 提供了一个 POSIX 兼容的分布式文件系统,支持任意大小。它依赖 Ceph MDS 来跟踪文件层次结构,即元数据。 |