第 17 章 配置多站点容错消息传递系统
大规模企业消息传递系统通常具有位于地理位置分散的数据中心的离散代理集群。如果数据中心中断,系统管理员可能需要保留现有的消息传递数据,并确保客户端应用能够继续生成和使用消息。您可以使用特定的代理拓扑和 Red Hat Ceph Storage 软件定义的存储平台来确保在数据中心停机期间的消息传递系统的连续性。这种类型的解决方案称为 多站点容错架构。
以下小节介绍了如何保护消息传递系统不受数据中心中断的影响。这些部分提供有关:
多站点容错不是数据中心内高可用性(HA)代理冗余的替代。基于 live-backup groups 的代理冗余功能可以针对单一集群中的单代理故障提供自动保护。相反,多站点容错可防止大规模数据中心中断。
要使用 Red Hat Ceph Storage 来确保消息传递系统的连续性,您必须将代理配置为使用共享存储高可用性(HA)策略。您不能将代理配置为使用复制 HA 策略。有关这些策略的更多信息,请参阅实施高可用性。
17.1. Red Hat Ceph Storage 集群如何工作
Red Hat Ceph Storage 是一个集群对象存储系统。Red Hat Ceph Storage 使用对象和基于策略的复制数据分片,以确保数据完整性和系统可用性。
Red Hat Ceph Storage 使用一种称为 CRUSH(可扩展哈希下的受控复制)的算法来确定如何通过自动计算数据存储位置来存储和检索数据。您配置名为 CRUSH map 的 Ceph 项目,它详细说明了群集拓扑结构,并且指定如何在存储群集之间复制数据。
CRUSH map 包含对象存储设备(OSD)的列表、用于将设备整合为故障域层次结构的"bucket"列表,以及告知 CRUSH 在 Ceph 集群池中复制数据的规则。
通过反映安装的基本物理组织,CRUSH 映射模型,从而解决关联设备故障的潜在来源,如物理代理、共享电源和共享网络。通过将此信息编码到集群映射中,CRUSH 可以在不同故障域(如数据中心)之间分隔对象副本,同时仍可在存储集群中维护数据的伪随机分发。这有助于防止数据丢失并启用集群处于降级状态。
Red Hat Ceph Storage 集群需要很多节点(物理或虚拟)才能运行。集群必须包括以下类型的节点:
监控节点
每个 monitor(MON)节点运行 monitor 守护进程(ceph-mon
),该守护进程维护 cluster map 的主副本。集群映射包含集群拓扑。连接到 Ceph 集群的客户端从监控器检索 cluster map 的当前副本,这样客户端可以从集群读取和写入数据。
Red Hat Ceph Storage 集群可以使用一个 monitor 节点运行;但是,为了确保生产集群的高可用性,红帽仅支持部署至少三个 monitor 节点的部署。至少三个 monitor 节点意味着,当一个监控器出现故障或不可用时,集群中剩余的 monitor 节点存在仲裁,以选择新的领导。
Manager 节点
每个管理器(MGR)节点运行 Ceph 管理器守护进程(ceph-mgr
),它负责跟踪运行时指标和 Ceph 集群的当前状态,包括存储利用率、当前的性能指标和系统负载。通常,管理器节点与监控节点在一起(即位于同一主机机器上)。
Object Storage Device 节点
每一对象存储设备(OSD)节点运行 Ceph OSD 守护进程(ceph-osd
),与连接到节点的逻辑磁盘交互。Ceph 在 OSD 节点上存储数据。Ceph 可使用很少的 OSD 节点(默认为三个)运行,但生产集群在模式扩展方面实现了更好的性能,例如,存储集群中有 50 个 OSD。在存储集群中拥有多个 OSD,系统管理员可以定义 CRUSH map 中的隔离故障域。
元数据服务器节点
每个元数据服务器(MDS)节点运行 MDS 守护进程(ceph-mds
),它管理与 Ceph 文件系统(CephFS)上存储的文件相关的元数据。MDS 守护进程也协调对共享集群的访问。
其他资源
有关 Red Hat Ceph Storage 的更多信息,请参阅 什么是 Red Hat Ceph Storage?