注意

本文档适用于 Ceph 开发版本。

MON 服务

部署附加监视器

一个典型的Ceph集群有三个或五个监控守护进程,它们分布在不同的主机上。如果您的集群有五个或更多节点,我们建议部署五个监控器。

随着集群的增长,Ceph会自动部署监控守护进程。当集群规模缩小时,Ceph会自动缩减监控守护进程。这种自动增长和缩减的顺利执行取决于正确的子网配置。

cephadm引导过程将集群中的第一个监控守护进程分配给特定的子网。cephadm将该子网指定为集群的默认子网。除非指示cephadm否则,新的监控守护进程将默认分配到该子网。

如果您集群中的所有Ceph监控守护进程都在同一个子网中,则无需手动管理Ceph监控守护进程。cephadm将根据需要在子网中自动添加最多五个监控器,当新的主机添加到集群时。

默认情况下,cephadm将在任意主机上部署5个守护进程。有关指定守护进程位置的详细信息,请参阅05805c。守护进程放置 for details of specifying the placement of daemons.

为监控器指定特定子网

要为Ceph监控守护进程指定特定的IP子网,请使用以下格式的命令,包括子网的地址在fb34bf: CIDRCIDR格式(例如,10.1.2.0/24):

ceph config set mon public_network *<mon-cidr-network>*

例如:

ceph config set mon public_network 10.1.2.0/24

Cephadm仅在具有指定子网中IP地址的主机上部署新的监控守护进程。

您还可以使用网络列表指定两个公共网络:

ceph config set mon public_network *<mon-cidr-network1>,<mon-cidr-network2>*

例如:

ceph config set mon public_network 10.1.2.0/24,192.168.0.1/24

在特定网络上部署监控器

您可以明确指定每个监控器的IP地址或CIDR网络,并控制每个监控器的位置。要禁用自动监控器部署,请运行此命令:

ceph orch apply mon --unmanaged

要部署每个额外的监控器:

ceph orch daemon add mon *<host1:ip-or-network1>

例如,要在newhost1使用IP地址10.1.2.123和在newhost2网络中部署第三个监控器10.1.2.0/24,请运行以下命令:

ceph orch apply mon --unmanaged
ceph orch daemon add mon newhost1:10.1.2.123
ceph orch daemon add mon newhost2:10.1.2.0/24

现在,启用守护进程的自动放置05805c: 有关指定守护进程位置的详细信息。

ceph orch apply mon --placement="newhost1,newhost2,newhost3" --dry-run

请参阅守护进程放置 for details of specifying the placement of daemons.

最后通过删除--dry-run

ceph orch apply mon --placement="newhost1,newhost2,newhost3"

将监控器移动到不同的网络

要将监控器移动到新网络,请在新网络上部署新的监控器,然后从旧网络中删除监控器。不建议手动修改和注入monmap

首先,禁用守护进程的自动放置:

ceph orch apply mon --unmanaged

要部署每个额外的监控器:

ceph orch daemon add mon *<newhost1:ip-or-network1>*

例如,要在newhost1使用IP地址10.1.2.123和在newhost2网络中部署第三个监控器10.1.2.0/24,请运行以下命令:

ceph orch apply mon --unmanaged
ceph orch daemon add mon newhost1:10.1.2.123
ceph orch daemon add mon newhost2:10.1.2.0/24

随后从旧网络中删除监控器:

ceph orch daemon rm *mon.<oldhost1>*

更新public_network:

ceph config set mon public_network *<mon-cidr-network>*

例如:

ceph config set mon public_network 10.1.2.0/24

现在,启用守护进程的自动放置05805c: 有关指定守护进程位置的详细信息。

ceph orch apply mon --placement="newhost1,newhost2,newhost3" --dry-run

请参阅守护进程放置 for details of specifying the placement of daemons.

最后通过删除--dry-run

ceph orch apply mon --placement="newhost1,newhost2,newhost3"

为监控器设置Crush位置

Cephadm支持使用mon服务规范为mon守护进程设置CRUSH位置。CRUSH位置通过主机名设置。当cephadm在一个与CRUSH位置列表中指定的主机名匹配的主机上部署mon时,它将添加--set-crush-location <CRUSH-location>其中CRUSH位置是该主机CRUSH位置列表中的第一个条目。如果为单个主机设置了多个CRUSH位置,cephadm将尝试使用“ceph mon set_location”命令设置其他位置。

Note

在规范中设置CRUSH位置是替换tiebreaker监控器守护进程推荐的方法,因为它们在添加时需要设置位置。

Note

Tiebreaker监控器守护进程是扩展模式集群的一部分。有关扩展模式集群的更多信息,请参阅扩展集群

设置CRUSH位置的示例语法:

service_type: mon
service_name: mon
placement:
  count: 5
spec:
  crush_locations:
    host1:
    - datacenter=a
    host2:
    - datacenter=b
    - rack=2
    host3:
    - datacenter=a

Note

有时,由于mon守护进程被允许进入mon仲裁的时间,当指定多个位置时,cephadm可能无法为某些mon守护进程设置CRUSH位置。在这种情况下,推荐的操作是重新应用相同的mon规范以重新触发服务操作。

Note

只有当cephadm实际部署它们时,mon守护进程才会获得--set-crush-location标志设置。这意味着如果应用了包含已部署mon的CRUSH位置的规范,则该标志可能不会设置,直到为该mon守护进程发出重新部署命令。

更多阅读

由 Ceph 基金会带给您

Ceph 文档是一个社区资源,由非盈利的 Ceph 基金会资助和托管Ceph Foundation. 如果您想支持这一点和我们的其他工作,请考虑加入现在加入.