列出与集群关联的主机:
ceph orch host ls [--format yaml] [--host-pattern <name>] [--label <label>] [--host-status <status>]
其中可选参数“host-pattern”、“label”和“host-status”用于过滤。“host-pattern”是一个正则表达式,它将与主机名匹配,并且只返回匹配的主机。“label”将只返回具有给定标签的主机。“host-status”将只返回具有给定状态的主机(当前为“离线”或“维护”)。这些过滤标志的任何组合都是有效的。您可以同时过滤主机名、标签和/或状态。
添加主机
主机必须安装这些要求。没有所有必要要求的主机将无法添加到集群中。
要将每个新主机添加到集群,请执行两个步骤:
1.在新主机的 root 用户authorized_keys文件中安装集群的公共 SSH 密钥:
ssh-copy-id -f -i /etc/ceph/ceph.pub root@*<new-host>*
例如:
ssh-copy-id -f -i /etc/ceph/ceph.pub root@host2
ssh-copy-id -f -i /etc/ceph/ceph.pub root@host3
2.告诉 Ceph 新节点是集群的一部分:
ceph orch host add *<newhost>* [*<ip>*] [*<label1> ...*]
例如:
ceph orch host add host2 10.10.0.102
ceph orch host add host3 10.10.0.103
最好明确提供主机 IP 地址。如果未提供 IP,则主机名将立即通过 DNS 解析并使用该 IP。
还可以包含一个或多个标签以立即标记新主机。例如,默认情况下,_admin标签将使 cephadm 在/etc/ceph目录中维护ceph.conf文件的副本和 client.admin密钥环文件:
ceph orch host add host4 10.10.0.104 --labels _admin
删除主机
一旦从集群中删除所有守护程序,就可以安全地从集群中删除主机。
要从主机中删除所有守护程序,请执行以下操作:
ceph orch host drain *<host>*
'_no_schedule' 标签将应用于主机。请参阅特殊主机标签
主机上的所有 osd 都将被安排删除。您可以使用以下命令检查 osd 删除进度:
ceph orch osd rm status
有关 osd 删除的更多详细信息,请参阅删除 OSD
您可以使用以下方法检查主机上是否没有守护进程:
ceph orch ps <host>
删除所有守护程序后,您可以使用以下命令删除主机:
ceph orch host rm <host>
离线主机移除
如果主机处于脱机状态且无法恢复,仍可以通过以下方式将其从集群中删除:
ceph orch host rm <host> --offline --force
这可能会导致数据丢失,因为每个 osd 将通过调用 osd purge-actual 来强制从集群中清除。仍包含此主机的服务规范应手动更新。
主机标签
编排器支持为主机分配标签。标签是自由形式的,本身没有特殊含义,每个主机可以有多个标签。它们可用于指定守护程序的位置。请参见按标签放置
添加带有--labels标志的主机时可以添加标签:
ceph orch host add my_hostname --labels=my_label1
ceph orch host add my_hostname --labels=my_label1,my_label2
要为现有主机添加标签,请运行:
ceph orch host label add my_hostname my_label
要删除标签,请运行:
ceph orch host label rm my_hostname my_label
特殊主机标签
以下主机标签对 cephadm 具有特殊含义。一切以_开头:
- _no_schedule:不要在此主机上安排或部署守护进程。
这个标签防止 cephadm 在这个主机上部署守护进程。如果它被添加到已经包含 Ceph 守护进程的现有主机,它将导致 cephadm 将这些守护进程移动到其他地方(OSD 除外,它们不会自动删除)。
- _no_autotune_memory:不要在这台主机上自动调整内存。
即使为该主机上的一个或多个守护程序启用osd_memory_target_autotune或类似选项,此标签也将阻止调整守护程序内存。
- _admin:将 client.admin 和 ceph.conf 分发到这个主机。
默认情况下,将_admin标签应用于集群中的第一台主机(最初运行引导程序的地方),并且将client.admin密钥设置为通过该ceph orch client-keyring ...函数分发给该主机。将此标签添加到其他主机通常会导致 cephadm 将配置和密钥环文件部署到/etc/ceph.
维护模式
使主机进入和退出维护模式(停止主机上的所有 Ceph 守护进程):
ceph orch host maintenance enter <hostname> [--force]
ceph orch host maintenance exit <hostname>
进入维护时的强制标志允许用户绕过警告(但不是警报)
另请参阅完全限定域名与裸主机名。
一次创建多个主机
通过ceph orch apply -i提交多文档 YAML 文件可以一次添加多个主机 :
service_type: host
hostname: node-00
addr: 192.168.0.10
labels:
- example1
- example2
---
service_type: host
hostname: node-01
addr: 192.168.0.11
labels:
- grafana
---
service_type: host
hostname: node-02
addr: 192.168.0.12
这可以与服务规范(如下)相结合,以创建一个集群规范文件,以便在一个命令中部署整个集群。另请参阅cephadm bootstrap --apply-spec在引导期间执行此操作。必须先将集群 SSH 密钥复制到主机,然后再添加它们。
设置主机初始 CRUSH 位置
主机可以包含一个location标识符,它将指示 cephadm 创建一个位于指定层次结构中的新 CRUSH 主机。
service_type: host
hostname: node-00
addr: 192.168.0.10
location:
rack: rack1
笔记:该location属性只会影响初始 CRUSH 位置。属性的后续更改location将被忽略。此外,删除主机不会删除任何 CRUSH 存储桶。
另请参阅类型和存储桶。
https://docs.ceph.com/en/pacific/rados/operations/crush-map/#crush-map-default-types
SSH 配置
Cephadm 使用 SSH 连接到远程主机。SSH 使用密钥以安全的方式对这些主机进行身份验证。
默认行为
Cephadm 在监视器中存储一个 SSH 密钥,用于连接到远程主机。集群启动时,会自动生成此 SSH 密钥,无需额外配置。
可以使用以下命令生成新的 SSH密钥:
ceph cephadm generate-key
可以通过以下方式检索 SSH 密钥的公共部分:
ceph cephadm get-pub-key
当前存储的 SSH 密钥可以通过以下方式删除:
ceph cephadm clear-key
您可以通过以下方式直接导入现有密钥来使用它:
ceph config-key set mgr/cephadm/ssh_identity_key -i <key>
ceph config-key set mgr/cephadm/ssh_identity_pub -i <pub>
然后,您将需要重新启动 mgr 守护程序以重新加载配置:
ceph mgr fail
配置不同的 SSH 用户
Cephadm 必须能够以具有足够权限的用户身份登录所有 Ceph 集群节点,从而无需提示输入密码即可下载容器镜像、启动容器和执行命令。如果您不想使用“root”用户(cephadm 中的默认选项),则必须为 cephadm 提供将用于执行所有 cephadm 操作的用户名。使用命令:
ceph cephadm set-user <user>
在运行此之前,需要将集群 ssh 密钥添加到此用户的 authorized_keys 文件中,并且非 root 用户必须具有无密码的 sudo 访问权限。
自定义 SSH 配置
Cephadm 生成一个适当的ssh_config文件,用于连接到远程主机。此配置如下所示:
Host *
User root
StrictHostKeyChecking no
UserKnownHostsFile /dev/null
有两种方法可以为您的环境自定义此配置:
1.导入将由监视器存储的自定义配置文件:
ceph cephadm set-ssh-config -i <ssh_config_file>
要删除自定义的 SSH 配置并恢复为默认行为:
ceph cephadm clear-ssh-config
2.您可以使用以下命令配置 SSH 配置文件的文件位置:
ceph config set mgr mgr/cephadm/ssh_config_file <path>
我们不推荐这种方法。路径名必须对任何mgr 守护进程可见,并且 cephadm 将所有守护进程作为容器运行。这意味着该文件要么需要放置在您的部署的自定义容器映像中,要么手动分发到 mgr 数据目录(在主机上/var/lib/ceph/
完全限定域名与裸主机名
笔记:cephadm 要求ceph orch host add给出的主机名等于远程主机上hostname的输出。
否则 cephadm 无法确定ceph * metadata返回的名称与 cephadm 已知的主机匹配。这可能会导致CEPHADM_STRAY_HOST警告。
配置新主机时,有两种有效的方法来设置 hostname主机的属性:
1.使用裸主机名。在这种情况下:
-
hostname返回裸主机名。
-
hostname -f返回 FQDN。
2.使用完全限定域名作为主机名。在这种情况下:
-
hostname返回 FQDN
-
hostname -s返回裸主机名
请注意,man hostname建议使用hostname返回裸主机名:
系统的 FQDN(完全限定域名)是 resolver(3) 为主机名返回的名称,例如 ursula.example.com。它通常是主机名后跟 DNS 域名(第一个点之后的部分)。您可以使用 hostname --fqdn 检查 FQDN或使用dnsdomainname。
您不能使用主机名或 dnsdomainname 更改 FQDN。设置 FQDN 的推荐方法是使用 /etc/hosts、DNS 或新信息系统。 例如,如果主机名是“ursula”,则可能有/etc/hosts 中的一行内容为:
127.0.1.1 ursula.example.com ursula
这意味着,man hostname建议hostname返回裸主机名。这反过来意味着 Ceph 将在执行ceph * metadata时返回裸主机名。这反过来意味着 cephadm 在将主机添加到集群时也需要裸主机名: ceph orch host add