注意
本文档适用于 Ceph 开发版本。
主机管理
列出主机
运行以下命令以列出与集群关联的主机:
ceph orch host ls [--format yaml] [--host-pattern <name>] [--label <label>] [--host-status <status>] [--detail]
在此形式的命令中,“host-pattern”、“label”和“host-status”是可选的,用于过滤。
“host-pattern”是一个正则表达式,它匹配主机名并仅返回匹配的主机。
“label”仅返回具有指定标签的主机。
“host-status”仅返回具有指定状态的主机(目前为“离线”或“维护”)。
这些过滤标志的任何组合都是有效的。可以同时按名称、标签和状态进行过滤,或者按名称、标签和状态的任何适当子集进行过滤。
“detail”参数为基于 cephadm 的集群提供更多与主机相关的信息。例如:
ceph orch host ls --detail
HOSTNAME ADDRESS LABELS STATUS VENDOR/MODEL CPU HDD SSD NIC
ceph-master 192.168.122.73 _admin QEMU (Standard PC (Q35 + ICH9, 2009)) 4C/4T 4/1.6TB - 1
1 hosts in cluster
添加主机
主机必须安装这些要求软件包。
要将每个新主机加入集群,执行两个步骤:
在新主机的 root 用户的 SSH 公钥中安装集群的
authorized_keys
文件: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
公钥:
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 地址。如果未提供地址,则主机名将通过 DNS 立即解析,并将使用解析结果。
也可以包含一个或多个标签,以立即标记新主机。例如,默认情况下,
_admin
标签将使ceph.conf
文件和client.admin
密钥环文件的副本在/etc/ceph
:ceph orch host add host4 10.10.0.104 --labels _admin
移除主机
A host can safely be removed from the cluster after all daemons are removed from it.
要从主机中撤出所有守护进程,运行以下命令:
ceph orch host drain *<host>*
The _no_schedule
和_no_conf_keyring
标签将应用于主机。参见特殊主机标签.
如果您想撤出守护进程但保留主机上的管理ceph.conf和密钥环--keep-conf-keyring
标志传递给
ceph orch host drain *<host>* --keep-conf-keyring
这将应用_no_schedule
标签到主机,但不会应用_no_conf_keyring
标签。
主机上的所有 OSD 都将被安排移除。您可以使用以下命令检查 OSD 移除操作的进度:
ceph orch osd rm status
请参阅移除一个 OSD关于 OSD 移除的更多详细信息。
The orch host drain
命令还支持一个--zap-osd-devices
标志。在撤出主机时设置此标志将导致 cephadm 在撤出过程中擦除 OSD 的设备
ceph orch host drain *<host>* --zap-osd-devices
使用以下命令确定主机上是否还有守护进程:
ceph orch ps <host>
从主机中移除所有守护进程后,通过运行以下命令将主机从集群中移除:
ceph orch host rm <host>
离线主机移除
如果主机离线且无法恢复,可以通过运行以下形式的命令将其从集群中移除:
ceph orch host rm <host> --offline --force
警告
这可能会导致数据丢失。此命令通过调用osd purge-actual
强制从集群中清除每个 OSD。
主机标签
Orchestration 支持为主机分配标签。标签是自由形式的,本身没有特定含义,每个主机可以有多个标签。它们可用于指定守护进程的放置位置。参见标签放置
添加主机时可以添加标签,使用--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_conf_keyring
: Do not deploy config files or keyrings on this host.此标签实际上与
_no_schedule
相同,但它是针对客户端密钥环和 cephadm 管理的 ceph 配置文件,而不是针对守护进程。_no_autotune_memory
: Do not autotune memory on this host.此标签将防止即使为该主机上的一个或多个守护进程启用了
osd_memory_target_autotune
或类似选项,守护进程内存也不会被调整。_admin
: Distribute client.admin and ceph.conf to this host.默认情况下,将
_admin
标签应用于集群中的第一个主机(其中client.admin
密钥设置为通过ceph orch client-keyring ...
函数分发给该主机。将此标签添加到其他主机通常会导致 cephadm 在/etc/ceph
. 从版本 16.2.10(太平洋)和 17.2.1(昆西)开始,除了默认位置/etc/ceph/
cephadm 还将配置文件和密钥环文件存储在/var/lib/ceph/<fsid>/config
目录中运行此命令。
维护模式
Place a host in and out of maintenance mode (stops all Ceph daemons on host):
ceph orch host maintenance enter <hostname> [--force] [--yes-i-really-mean-it]
ceph orch host maintenance exit <hostname> [--force] [--offline]
The --force
标志允许用户绕过警告(但不会绕过警报)。enter
command allows the user to bypass warnings (but not alerts).
The --yes-i-really-mean-it
标志绕过所有安全检查,并将尝试强制主机进入维护模式,无论什么情况。The--force
和--offline
标志到exit
命令可用于让 cephadm 将处于维护模式且离线的主机标记为不再处于维护模式。请注意,在这种情况下,如果主机上线,主机上的 Ceph 守护进程将保持停止状态。The--force
和--offline
标志到exit
命令旨在用于在完全离线的主机之前使用ceph orch host rm
command.
警告
使用 --yes-i-really-mean-it 标志强制主机进入维护模式可能会导致数据可用性丢失、mon quorum 因运行监视器太少而崩溃、mgr 模块命令(例如ceph orch . . .
命令)变得无响应以及其他一些可能的问题。请仅在您绝对确定自己知道自己在做什么的情况下使用此标志。
重新扫描主机设备
一些服务器和外部机箱可能不会向内核注册设备移除或插入。在这些情况下,您需要在适当的主机上执行设备重扫描。重扫描通常是破坏性的,可以使用以下 CLI 命令执行:
ceph orch host rescan <hostname> [--with-summary]
The with-summary
标志提供发现的 HBA 数量和扫描数量的分解,以及任何失败的:
ceph orch host rescan rh9-ceph1 --with-summary
Ok. 2 adapters detected: 2 rescanned, 0 skipped, 0 failed (0.32s)
一次性创建多个主机
可以使用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:
root: default
rack: rack1
Note
The location
属性仅影响初始 CRUSH 位置。对location
属性的后续更改将被忽略。--rm-crush-entry
标志到orch host rm
command.
参见类型与桶.
从 CRUSH 映射中移除一个主机
The ceph orch host rm
命令支持从 CRUSH 映射中移除关联的主机桶。这是通过提供--rm-crush-entry
标志指示 cephadm 移除主机以及 CRUSH 桶。
ceph orch host rm host1 --rm-crush-entry
当指定此标志时,cephadm 将尝试作为主机移除过程的一部分从 CRUSH 映射中移除主机桶。请注意,如果它未能这样做,cephadm 将报告失败,并且主机将保持在 cephadm 控制之下。
Note
如果主机上部署了 OSD,则从 CRUSH 映射中移除将失败。如果您想移除该主机的所有 OSD,请首先使用ceph orch host drain
命令来完成。一旦 OSD 被移除,然后您可以使用--rm-crush-entry
标志指示 cephadm 移除主机以及 CRUSH 桶。
操作系统调整配置文件
Cephadm 可以用来管理应用sysctl
设置到主机集的操作系统调整配置文件。
要这样做,请以以下格式创建一个 YAML 规范文件:
profile_name: 23-mon-host-profile
placement:
hosts:
- mon-host-01
- mon-host-02
settings:
fs.file-max: 1000000
vm.swappiness: '13'
使用以下命令应用调整配置文件:
ceph orch tuned-profile apply -i <tuned-profile-file-name>
此配置文件将写入到每个在/etc/sysctl.d/
文件中,然后placement
块中指定的主机下的sysctl --system
在主机上运行。
Note
配置文件写入到/etc/sysctl.d/
是<profile-name>-cephadm-tuned-profile.conf
,其中<profile-name>
内的确切文件名是您在 YAML 规范中指定的profile_name
设置。我们建议按照通常的sysctl.d
NN-xxxxx格式命名这些配置文件。由于 sysctl 设置按文件名(在指定设置的文件中)的字典顺序应用(排序),因此您可能需要仔细选择您的 spec 中的profile_name
以确保它在其他 conf 文件之前或之后应用。仔细选择可确保此处提供的值覆盖或不会覆盖其他sysctl.d
文件中的值。
Note
这些设置仅在主机级别应用,并且不针对任何特定的守护进程或容器。
Note
当传递--no-overwrite
选项时,应用调整配置文件是幂等的。此外,如果传递--no-overwrite
选项,则不会覆盖具有相同名称的现有配置文件。
查看配置文件
运行以下命令以查看 cephadm 当前管理的所有配置文件:
ceph orch tuned-profile ls
Note
要进行修改并重新应用配置文件,请将--format yaml
传递给tuned-profile ls
命令。Thetuned-profile ls --format yaml
命令以易于复制和重新应用的形式显示配置文件。
移除配置文件
要移除先前应用的配置文件,请运行此命令:
ceph orch tuned-profile rm <profile-name>
当配置文件被移除时,cephadm 将清理先前写入到/etc/sysctl.d
.
修改配置文件
配置文件可以通过重新应用与要修改的配置文件具有相同名称的 YAML 规范来修改,但可以使用以下命令调整现有配置文件中的设置。
要在现有配置文件中添加或修改设置:
ceph orch tuned-profile add-setting <profile-name> <setting-name> <value>
要从现有配置文件中移除设置:
ceph orch tuned-profile rm-setting <profile-name> <setting-name>
Note
修改位置需要重新应用具有相同名称的配置文件。请记住,配置文件按其名称进行跟踪,因此当应用与现有配置文件具有相同名称的配置文件时,除非传递--no-overwrite
标志,否则它将覆盖旧配置文件。
SSH 配置
Cephadm 使用 SSH 连接到远程主机。SSH 使用密钥以安全的方式对主机进行身份验证。
默认行为
Cephadm 在监视器中存储一个 SSH 密钥,用于连接到远程主机。当集群引导时,此 SSH 密钥会自动生成,无需额外的配置。
A newSSH 密钥可以使用:
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 密钥添加到此用户的
自定义 SSH 配置
Cephadm 生成一个适当的ssh_config
文件,用于连接到远程主机。此配置看起来像这样:
Host *
User root
StrictHostKeyChecking no
UserKnownHostsFile /dev/null
有两种方法可以自定义此配置以适应您的环境:
导入定制的配置文件,该文件将由监视器存储:
ceph cephadm set-ssh-config -i <ssh_config_file>
要移除定制的 SSH 配置并恢复到默认行为:
ceph cephadm clear-ssh-config
可以使用以下命令配置 SSH 配置文件的位置:
ceph config set mgr mgr/cephadm/ssh_config_file <path>
我们不推荐not recommend这种方法。路径名必须对任何mgr 守护进程可见,并且 cephadm 将所有守护进程作为容器运行。这意味着文件必须放置在您的部署的自定义容器镜像中,或者手动分发给主机上的 mgr 数据目录
/var/lib/ceph/<cluster-fsid>/mgr.<id>
从容器内部可见/var/lib/ceph/mgr/ceph-<id>
)。
为集群设置 CA 签名密钥
Cephadm 还支持使用 CA 签名密钥进行集群节点之间的 SSH 身份验证。在此设置中,我们不再需要私钥和公钥,而是需要一个私钥和由 CA 密钥签名的证书。有关设置节点以使用 CA 签名密钥进行身份验证的更多信息,请参阅使用 CA 签署的 SSH 密钥部署。一旦您有了私钥和已签名的证书,就可以通过运行以下命令将其设置用于 cephadm 使用:
ceph config-key set mgr/cephadm/ssh_identity_key -i <private-key-file>
ceph config-key set mgr/cephadm/ssh_identity_cert -i <signed-cert-file>
完全限定域名与裸主机名
Note
cephadm 要求通过ceph orch host add
提供的主机名称等于远程主机上的hostname
输出。
否则 cephadm 无法确定ceph * metadata
返回的名称是否与 cephadm 知道的主机匹配。这可能导致CEPHADM_STRAY_HOST警告。
在配置新主机时,有两种有效方法来设置主机的hostname
名称:
使用裸主机名。在这种情况下:
hostname
返回裸主机名。hostname -f
返回 FQDN。
使用完全限定域名作为主机名。在这种情况下:
hostname
返回 FQDNhostname -s
返回裸主机名
注意man hostname
推荐返回裸主机名。这意味着 Ceph 在执行hostname
to return the bare
host name:
系统的 FQDN(完全限定域名)是解析器(3)返回的主机名的名称,例如
ursula.example.com
。它通常是短主机名后跟 DNS 域名(第一个点之后的部分)。您可以使用hostname --fqdn
检查 FQDN 或使用dnsdomainname
.You cannot change the FQDN with hostname or dnsdomainname. The recommended method of setting the FQDN is to make the hostname be an alias for the fully qualified name using /etc/hosts, DNS, or NIS. For example, if the hostname was "ursula", one might have a line in /etc/hosts which reads 127.0.1.1 ursula.example.com ursula
检查域名。这意味着,man hostname
推荐返回裸主机名。这意味着 Ceph 在执行hostname
to return the bare
host name. This in turn means that Ceph will return the bare host names
when executing ceph * metadata
时将返回裸主机名。这意味着 cephadm 在将主机添加到集群时也需要裸主机名:ceph orch host add <bare-name>
.
由 Ceph 基金会带给您
Ceph 文档是一个社区资源,由非盈利的 Ceph 基金会资助和托管Ceph Foundation. 如果您想支持这一点和我们的其他工作,请考虑加入现在加入.