第 3 章 优化工作负载性能域
Ceph 存储的一个关键优点是,能够使用 Ceph 性能域功能支持同一集群中的不同类型的工作负载。不同的性能域可以与显著不同的硬件配置相关联。Ceph 管理员可以在适当的性能域中部署存储池,为应用提供专为特定性能和成本配置文件量身定制的存储。为这些性能域选择适当的大小和优化的服务器是设计 Red Hat Ceph Storage 集群的一个重要方面。
以下列表提供了红帽用来识别存储服务器上最佳 Red Hat Ceph Storage 集群配置的条件。这些类别作为硬件采购和配置决策的一般准则,可调整以满足独特工作负载需求。选择的实际硬件配置将根据特定工作负载混合和厂商功能而有所不同。
优化 IOPS
IOPS 优化的存储集群通常具有以下属性:
- 每个 IOPS 的成本最低。
- 每 GB 的 IOPS 最高。
- 99 个百分点延迟一致性.
通常为 IOPS 优化的存储集群使用:
- 典型的块存储.
- 用于硬盘 (HDD) 或 2x 复制的 3 倍复制,用于固态硬盘 (SSD)。
- OpenStack 云上的 MySQL.
优化吞吐量
吞吐量优化型存储集群通常具有以下属性:
- 每 MBps 成本最低(吞吐量)。
- 每个 TB 的 MBps 最高。
- 每个 BTU 的 MBps 最高。
- 每个 Watt 的 MBps 最高。
- 97% 的延迟一致性.
使用针对吞吐量优化的存储集群通常用于:
- 块或对象存储。
- 3 倍复制。
- 面向视频、音频和图像的主动性能存储.
- 流媒体。
针对成本和容量优化
成本和容量优化型存储集群通常具有以下属性:
- 每 TB 成本最低。
- 每 TB 的 BTU 最低。
- 每 TB 的 Watts 最低.
使用针对成不和容量优化的存储集群通常用于:
- 典型的对象存储。
- 常见擦除编码功能,以最大化可用容量
- 对象存档。
- 视频、音频和图像对象存储库.
性能域如何工作
在读取和写入数据的 Ceph 客户端接口中,Ceph 存储集群显示为一个客户端存储数据的简单池。但是,存储集群以对客户端接口完全透明的方式执行许多复杂的操作。Ceph 客户端和 Ceph 对象存储守护进程(称为 Ceph OSD)或只是 OSD,都使用可扩展哈希下的受控复制 (CRUSH) 算法来存储和检索对象。OSD 在 OSD 主机上运行 - 集群内的存储服务器。
CRUSH map 描述了集群资源的拓扑结构,并且 map 存在于客户端节点和集群中的 Ceph Monitor (MON) 节点中。Ceph 客户端和 Ceph OSD 都使用 CRUSH map 和 CRUSH 算法。Ceph 客户端直接与 OSD 通信,消除了集中式对象查找和潜在的性能瓶颈。利用 CRUSH map 并与其对等方通信,OSD 可以处理复制、回填和恢复,从而实现动态故障恢复。
Ceph 使用 CRUSH map 来实施故障域。Ceph 还使用 CRUSH map 实施性能域,这只需将底层硬件的性能配置文件纳入考量。CRUSH map 描述了 Ceph 存储数据的方式,它作为简单的层次结构(特别是圆环图和规则集)实施。CRUSH map 可以支持多种层次结构,将一种类型的硬件性能配置集与另一类分隔开。
以下示例描述了性能域。
- 硬盘 (HDD) 通常适合以成本和容量为导向的工作负载。
- 吞吐量敏感的工作负载通常使用 HDD,在固态驱动器 (SSD) 上 Ceph 写入日志。
- MySQL 和 MariaDB 等 IOPS 密集型工作负载通常使用 SSD。
所有这些性能域都可以在 Ceph 存储群集中共存。