概述Ceph的架构与配置规范

时间:2022-12-14 21:56:28

在云计算时代,计算虚拟化、软件定义存储、软件定义网络是IaaS的三大基础支柱。目前在软件定义存储市场,很多厂商均有自己的产品。有的基于文件系统,有的基于块设备,有的基于对象存储。在云时代,用户需要云门户来调度底层的各种计算资源(物理机、虚拟机、公有云)和存储资源(SAN、NAS、对象存储),这就需要有一种统一存储平台,通过提供统一接口,同时提供块存储、对象存储和文件系统,与云平台对接。在目前的开源界,能够提供统一的、开源的最著名的分布式存储是Ceph。

1、Ceph的背景

2014年,红帽收购Inktank(Inktank主要提供基于Ceph的企业级产品)。此次收购后,红帽成为Ceph开源社区代码贡献最多的贡献者。Ceph作为一种存储集群,其支持的节点数量和容量无理论上限,可以多达上百个节点、PB容量级别。

Ceph内部是一种对象存储,它对外提供三种访问方式。

  • Object:兼容Swift和S3的API,提供对象存储访问方式。
  • Block:支持精简配置、快照、克隆,提供块设备、裸设备访问方式。
  • File:Posix接口,支持快照,提供文件系统访问方式。
2、Ceph适用的业务场景

目前企业使用Ceph的场景有三类。为KVM虚拟化、OpenStack提供后端存储。为容器云提供后端存储。为Linux操作系统(物理机或虚拟机)提供后端存储。

  • IOPS密集型业务场景:这种场景通常是支撑在虚拟化、私有云上运行数据库。如在OpenStack上运行MySQL、MariaDB或PostgreSQL等。IOPS密集型业务场景对磁盘的性能要求较高,最好使用全闪架构。如果使用混合架构,机械盘转速需要1.2万转/秒,并使用高速盘存储频繁写操作的日志或元数据。
  • 高吞吐量型业务场景:这种场景主要是大块数据传输,如图像、视频、音频文件等。高吞吐量型业务场景对磁盘的要求没有IOPS密集型业务场景高,但对网络配置要求较高,同时需要配置SSD来处理写日志。
  • 高容量型业务场景:这种场景主要用于存储归档、离线数据。它对磁盘的容量要求较高,对性能无过多要求。写日志也可以存储在HDD上。
3、Ceph的架构

Ceph存储集群由三类守护进程组成:OSDMonitorManager

  • OSD:OSD是Ceph存储数据的空间,通常一个HDD是一个OSD,并且不建议做RAID(独立硬盘冗余阵列)。每个OSD有一个OSD守护进程。Ceph OSD利用Ceph节点的CPU、内存和网络资源来执行数据复制、纠删码、数据恢复、监控和报告功能。
  • Monitor:Monitor负责维护Ceph存储集群,主要存储集群中数据的主副本以及存储集群的当前状态。注意,多个Monitor的信息需要强一致,因此要求Monitor节点之间的系统时间是一致的,并且网络延时要低。
  • Manager:Manager是Ceph 12.8中的新功能,它维护放置组(PG)、进程元数据和主机元数据的详细信息。这部分功能此前由Monitor完成(其目的是提高Ceph集群的性能)。Manager可以处理只读Ceph CLI查询请求,例如放置组统计信息等。此外,Manager还提供RESTful API监控。

如果要使用Ceph文件系统和对象接口,Ceph集群还需要具备如下节点。

  • 元数据服务器(Metadata Server,MDS):每个MDS节点运行MDS守护程序(ceph-mds),管理与Ceph文件系统(CephFS)上存储的文件相关的元数据。
  • 对象网关:Ceph对象网关节点上运行Ceph Rados网关守护程序(ceph-radosgw)。它是一个构建在librados之上的对象存储接口,也是一个为应用程序提供Ceph存储集群的RESTful网关。Ceph对象网关支持两个接口:S3和OpenStack Swift。

在介绍了Ceph的相关背景和架构后,我们介绍Ceph的配置规范。

4、Ceph的配置规范

在介绍了Ceph的相关背景和架构后,我们介绍Ceph的配置规范。

  • 针对IOPS密集型业务场景,服务器配置建议如下

OSD:每个NVMe SSD上配置四个OSD(可以使用lvm)。

日志:存放于NVMe SSD。

控制器:使用Native PCIe总线。

网络:每12个OSD配置一个万兆网口。

内存:最小为12GB,每增加一个OSD,增加2GB内存。

CPU:每个NVMe SSD消耗10 CPU内核。

  • 针对高吞吐量型业务场景,服务器配置建议如下。

OSD:使用7200转速的机械盘,每个磁盘为一个OSD。不需要配置RAID。

日志:如果使用SATA SSD,日志容量与OSD容量的比率控制在1:4~5。如果使用NVMe SSD,则容量比率控制在1:12~18。

网络:每12个OSD配置一个万兆网口。

内存:最小为12GB,每增加一个OSD,增加2GB内存。

CPU:每个HDD消耗0.5 CPU内核。

  • 针对高容量型业务场景,服务器配置建议如下。

OSD:使用7200转速的机械盘,每个磁盘为一个OSD。不需要配置RAID。

日志:使用HDD磁盘。

网络:每12个OSD配置一个万兆网口。

内存:最小为12GB,每增加一个OSD,增加2GB内存。

CPU:每个HDD消耗0.5 CPU内核。

除此之外,在选择Ceph的硬件时也有一些通用的标准,如Ceph节点使用相同的I/O控制器、磁盘大小、磁盘转速、网络吞吐量和日志配置。

Ceph集群包含以下两类网络。

  • 前端公共网络:处理客户端发过去的请求并且与Ceph Monitor通信。
  • 后端集群网络:处理OSD心跳、副本复制等。

从性能角度考虑,这两类网络最好使用不同的网卡。在上面的Ceph安装中,我们将两个网络进行了拆分。