15.3. 配置 Red Hat Ceph Storage 集群


本示例步骤演示了如何配置红帽 Ceph 存储群集以实现容错。您可以创建 CRUSH 存储桶,将对象存储设备(OSD)节点聚合到数据中心中,以反映您的实时物理安装。此外,您还将创建一条规则,告知 CRUSH 如何在存储池中复制数据。这些步骤更新 Ceph 安装创建的默认 CRUSH map。

先决条件

  • 您已安装了一个红帽 Ceph 存储集群。如需更多信息,请参阅 安装 Red Hat Ceph Storage
  • 您应该了解红帽 Ceph 存储如何使用 PG 在池中组织大量数据对象,以及如何计算要在池中使用的 PG 数量。如需更多信息,请参阅 PG。
  • 您应该了解如何在池中设置对象副本的数量。如需更多信息,请 设置对象副本的数量

流程

  1. 创建 CRUSH bucket 以组织您的 OSD 节点。bucket 是基于数据中心等物理位置的 OSD 列表。在 Ceph 中,这些物理位置称为 故障域

    ceph osd crush add-bucket dc1 datacenter
    ceph osd crush add-bucket dc2 datacenter
  2. 将 OSD 节点的主机计算机移到您创建的数据中心 CRUSH bucket。将主机名 host1-host4 替换为您的主机计算机的名称。

    ceph osd crush move host1 datacenter=dc1
    ceph osd crush move host2 datacenter=dc1
    ceph osd crush move host3 datacenter=dc2
    ceph osd crush move host4 datacenter=dc2
  3. 确保您创建的 CRUSH bucket 是 默认 CRUSH 树的一部分。

    ceph osd crush move dc1 root=default
    ceph osd crush move dc2 root=default
  4. 创建一条规则来映射数据中心内的存储对象副本。这有助于防止数据丢失,并使集群能够在单个数据中心中断时继续运行。

    创建规则的命令使用以下语法: ceph osd crush rule create-replicated <rule-name> <root> <failure-domain> <class>。下面是一个示例。

    ceph osd crush rule create-replicated multi-dc default datacenter hdd
    注意

    在前面的命令中,如果您的存储集群使用固态驱动器(SSD),请指定 ssd 而不是 hdd (硬盘)。

  5. 配置您的 Ceph 数据和元数据池,以使用您创建的规则。最初,这可能会导致数据回填到由 CRUSH 算法决定的存储目的地。

    ceph osd pool set cephfs_data crush_rule multi-dc
    ceph osd pool set cephfs_metadata crush_rule multi-dc
  6. 指定元数据和数据池的 PG 和放置 PG 数量。PGP 值应当等于 PG 值。

    ceph osd pool set cephfs_metadata pg_num 128
    ceph osd pool set cephfs_metadata pgp_num 128
    
    ceph osd pool set cephfs_data pg_num 128
    ceph osd pool set cephfs_data pgp_num 128
  7. 指定数据和元数据池将使用的副本数。

    ceph osd pool set cephfs_data min_size 1
    ceph osd pool set cephfs_metadata min_size 1
    
    ceph osd pool set cephfs_data size 2
    ceph osd pool set cephfs_metadata size 2

下图显示了上例过程创建的红帽 Ceph 存储集群。存储集群将 OSD 组织到 CRUSH bucket 中,对应于数据中心。

代理灾难恢复 1

下图显示了第一个数据中心的可能布局,包括代理服务器。具体来说,数据中心主机:

  • 两个实时备份代理对的服务器
  • 您在前面的流程中分配给第一个数据中心的 OSD 节点
  • 单个元数据服务器、监控器和管理器节点.monitor 和 Manager 节点通常在同一台计算机上在一起。
代理灾难恢复 2
重要

您可以在相同或独立的物理或虚拟机上运行 OSD、MON、MGR 和 MDS 节点上运行。但是,要确保红帽 Ceph 存储集群内的容错能力,最好是在不同的数据中心之间分发这些类型的节点。特别是,您必须确保在单个数据中心停机时,存储集群仍然至少有两个可用的 MON 节点。因此,如果您集群中有三个 MON 节点,则每个节点必须在独立数据中心的独立主机上运行。

下图显示了一个完整的示例拓扑。为确保存储集群中容错,MON、MGR 和 MDS 节点分布在三个独立的数据中心。

代理灾难恢复 10
注意

在与代理服务器相同的数据中心查找特定 OSD 节点的主机计算机并不意味着您将消息传递数据存储在这些特定的 OSD 节点上。您将代理配置为将消息传递数据存储在 Ceph 文件系统的指定目录中。然后,集群中的元数据服务器节点决定如何在数据中心的所有可用 OSD 之间分发存储的数据,并处理这些数据在数据中心之间的复制。以下部分演示了如何配置代理以在 Ceph 文件系统上存储消息传递数据。

下图演示了使用代理服务器的两个数据中心之间的数据复制。

代理灾难恢复 3

其它资源

有关以下的更多信息:

  • 为您的红帽 Ceph 存储集群管理 CRUSH,请参阅 CRUSH 管理
  • 您可以在存储池上设置的完整属性集合,请参阅 池值
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.