一、基于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 核心组件

Day02-持久化存储NFS和CEPH-图2

Ceph 主要有三个核心组件:

  • OSD :用于集群中所有数据与对象的存储,处理集群数据的复制、恢复、回填、再均衡,并向其他osd守护进程发送心跳,然后向 Monitor 提供一些监控信息。

  • Monitor :监控整个集群的状态,管理集群客户端认证与授权,保证集群数据的一致性

  • MDS :负责保存文件系统的元数据,管理目录结构。对象存储和块设备存储不需要元数据服务;