3.15. 标记主机
Ceph 编配器支持将标签分配到主机。标签是自由格式的,没有具体含义。这意味着,您可以使用 mon
、monitor
、mycluster_monitor
或任何其他文本字符串。每一主机可以有多个标签。
例如,将 mon
标签应用到您要在其上部署 Ceph 监控守护进程的所有主机,mgr
适用于您要在其上部署 Ceph Manager 守护进程、rgw
用于 Ceph 对象网关守护进程等。
标记存储集群中的所有主机有助于简化系统管理任务,允许您快速识别每个主机上运行的守护进程。此外,您可以使用 Ceph 编配器或 YAML 文件在具有特定主机标签的主机上部署或删除守护进程。
3.15.1. 为主机添加标签
使用 Ceph 编排器向主机添加标签。标签可用于指定守护进程的放置。
几个标签示例是 mgr
、mon
和 osd
,基于主机上部署的服务。每一主机可以有多个标签。
您还可以添加以下主机标签,它们对 cephadm
具有特殊含义,它们以 _
开头:
-
_no_schedule
: 此标签会阻止cephadm
调度或部署主机上的守护进程。如果它被添加到已包含 Ceph 守护进程的现有主机中,它会导致cephadm
在其他位置移动这些守护进程,除了自动移除的 OSD 除外。当添加带有_no_schedule
标签的主机时,不会在其上部署守护进程。当守护进程在删除主机前排空时,在该主机上设置了_no_schedule
标签。 -
_no_autotune_memory
:此标签不会在主机上自动微调内存。即使为 host 上的一个或多个守护进程启用了osd_memory_target_autotune
选项,也会防止守护进程内存被调优。 -
_admin
: 默认情况下,_admin
标签应用于存储集群中的 bootstrapped 主机,client.admin
密钥被设置为使用ceph orch client-keyring {ls|set|rm}
功能分发到该主机。将此标签添加到其他主机通常会导致cephadm
在/etc/ceph
目录中部署配置和密钥环文件。
先决条件
- 已安装并引导的存储集群。
- 对存储集群中所有节点的根级别访问权限。
- 主机添加到存储集群中。
流程
登录到 Cephadm shell:
示例
[root@host01 ~]# cephadm shell
为主机添加标签:
语法
ceph orch host label add HOSTNAME LABEL
示例
[ceph: root@host01 /]# ceph orch host label add host02 mon
验证
列出主机:
示例
[ceph: root@host01 /]# ceph orch host ls
3.15.2. 从主机中删除标签
您可以使用 Ceph 编配器从主机移除标签。
先决条件
- 已安装并引导的存储集群。
- 对存储集群中所有节点的根级别访问权限。
流程
启动
cephadm
shell:[root@host01 ~]# cephadm shell [ceph: root@host01 /]#
删除标签。
语法
ceph orch host label rm HOSTNAME LABEL
示例
[ceph: root@host01 /]# ceph orch host label rm host02 mon
验证
列出主机:
示例
[ceph: root@host01 /]# ceph orch host ls
3.15.3. 使用主机标签在特定主机上部署守护进程
您可以使用主机标签将守护进程部署到特定的主机上。使用主机标签在特定主机上部署守护进程的方法有两种:
-
从命令行使用
--placement
选项。 - 通过使用 YAML 文件。
先决条件
- 已安装并引导的存储集群。
- 对存储集群中所有节点的根级别访问权限。
流程
登录到 Cephadm shell:
示例
[root@host01 ~]# cephadm shell
列出当前的主机和标签:
示例
[ceph: root@host01 /]# ceph orch host ls HOST ADDR LABELS STATUS host01 _admin mon osd mgr host02 mon osd mgr mylabel
方法 1:使用
--placement
选项从命令行部署守护进程:语法
ceph orch apply DAEMON --placement="label:LABEL"
示例
[ceph: root@host01 /]# ceph orch apply prometheus --placement="label:mylabel"
方法 2 将守护进程分配给 YAML 文件中的特定主机标签,请在 YAML 文件中指定服务类型和标签:
创建
placement.yml
文件:示例
[ceph: root@host01 /]# vi placement.yml
在
placement.yml
文件中指定服务类型和标签:示例
service_type: prometheus placement: label: "mylabel"
应用守护进程放置文件:
语法
ceph orch apply -i FILENAME
示例
[ceph: root@host01 /]# ceph orch apply -i placement.yml Scheduled prometheus update…
验证
列出守护进程的状态:
语法
ceph orch ps --daemon_type=DAEMON_NAME
示例
[ceph: root@host01 /]# ceph orch ps --daemon_type=prometheus NAME HOST PORTS STATUS REFRESHED AGE MEM USE MEM LIM VERSION IMAGE ID CONTAINER ID prometheus.host02 host02 *:9095 running (2h) 8m ago 2h 85.3M - 2.22.2 ac25aac5d567 ad8c7593d7c0