Ceph 主机管理


列出与集群关联的主机:

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/ /mgr. , 从容器内部/var/lib/ceph/mgr/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


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM