注意
本文档适用于 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. 如果您想支持这一点和我们的其他工作,请考虑加入现在加入.