一、基于Rook运维管理Ceph集群¶
1.1 Kubernetes使用Rook部署Ceph存储集群¶
Rook https://rook.io 是一个自管理的 分布式存储 编排系统,可以为Kubernetes提供 便利 的存储解决方案。
Rook本身并不提供存储,而是在kubernetes和存储系统之间提供适配层,简化存储系统的部署与维护工作。
目前,Rook支持的存储系统包括:Ceph、CockroachDB、Cassandra、EdgeFS、 Minio、NFS。当然,Rook支持的最好的还是Ceph 和 NFS。
为什么要使用Rook?
- Ceph 官方推荐 使用Rook进行部署管理;
- 它是通过原生的Kubernetes机制和数据存储交互。意味着你不再需要通过命令行手动配置Ceph。
1.2 Ceph介绍¶
Ceph 是一种为优秀的性能、可靠性和可扩展性而设计的统一的、分布式文件系统。 Ceph 的统一体现在可以提供文件系统、块存储和对象存储,分布式体现在可以动态扩展。
Ceph支持三种存储:
- 块存储(RDB):可以直接作为磁盘挂载;
- 文件系统(CephFS):兼容的网络文件系统CephFS,专注于高性能、大容量存储;
- 对象存储(RADOSGW):提供RESTful接口,也提供多种编程语言绑定。兼容S3 (是AWS里的对象存储)、Swift(是openstack里的对象存储)
1.2.1 核心组件¶

Ceph 主要有三个核心组件:
-
OSD :用于集群中所有数据与对象的存储,处理集群数据的复制、恢复、回填、再均衡,并向其他osd守护进程发送心跳,然后向 Monitor 提供一些监控信息。
-
Monitor :监控整个集群的状态,管理集群客户端认证与授权,保证集群数据的一致性
-
MDS :负责保存文件系统的元数据,管理目录结构。对象存储和块设备存储不需要元数据服务;