3.14. 添加主机
启动 Red Hat Ceph Storage 安装会创建一个可正常工作的存储集群,该集群由同一容器中的一个 monitor 守护进程和一个管理器守护进程组成。作为存储管理员,您可以向存储集群添加额外的主机并进行配置。
-
运行 preflight playbook 将
podman、lvm2、chrony和cephadm安装到 Ansible 清单文件中列出的所有主机上。 使用自定义 registry 时,请务必在添加任何 Ceph 守护进程前登录到新添加的节点上的自定义 registry。
.Syntax [source,subs="verbatim,quotes"] ---- # ceph cephadm registry-login --registry-url _CUSTOM_REGISTRY_NAME_ --registry_username _REGISTRY_USERNAME_ --registry_password _REGISTRY_PASSWORD_ ----.Example ---- # ceph cephadm registry-login --registry-url myregistry --registry_username myregistryusername --registry_password myregistrypassword1 ----
先决条件
- 一个正在运行的 Red Hat Ceph Storage 集群。
- 对存储集群中所有节点具有 sudo 访问权限的 root 级别或用户。
- 将节点注册到 CDN 并附加订阅。
-
具有 sudo 的 Ansible 用户,对存储集群中所有节点的
ssh访问和免密码访问。
流程
+
在以下步骤中,按指示使用 root 用户,或使用用户启动的用户名。
从包含 admin 密钥环的节点,在新主机的 root 用户的
authorized_keys文件中安装存储集群的公共 SSH 密钥:语法
ssh-copy-id -f -i /etc/ceph/ceph.pub user@NEWHOST示例
[root@host01 ~]# ssh-copy-id -f -i /etc/ceph/ceph.pub root@host02 [root@host01 ~]# ssh-copy-id -f -i /etc/ceph/ceph.pub root@host03进入 Ansible 管理节点上的
/usr/share/cephadm-ansible目录。示例
[ceph-admin@admin ~]$ cd /usr/share/cephadm-ansible从 Ansible 管理节点,将新主机添加到 Ansible 清单文件。该文件的默认位置为
/usr/share/cephadm-ansible/hosts。以下示例显示了典型的清单文件的结构:示例
[ceph-admin@admin ~]$ cat hosts host02 host03 host04 [admin] host01注意如果您之前已将新主机添加到 Ansible 清单文件,并在主机上运行 preflight playbook,请跳至第 4 步。
使用
--limit选项运行 preflight playbook:语法
ansible-playbook -i INVENTORY_FILE cephadm-preflight.yml --extra-vars "ceph_origin=rhcs" --limit NEWHOST示例
[ceph-admin@admin cephadm-ansible]$ ansible-playbook -i hosts cephadm-preflight.yml --extra-vars "ceph_origin=rhcs" --limit host02preflight playbook 在新主机上安装
podman、lvm2、chrony和cephadm。安装完成后,cephadm驻留在/usr/sbin/目录中。从 bootstrap 节点,使用
cephadm编排器将新主机添加到存储集群中:语法
ceph orch host add NEWHOST示例
[ceph: root@host01 /]# ceph orch host add host02 Added host 'host02' with addr '10.10.128.69' [ceph: root@host01 /]# ceph orch host add host03 Added host 'host03' with addr '10.10.128.70'可选: 您还可以在运行 preflight playbook 前和之后按 IP 地址添加节点。如果您在存储集群环境中没有配置 DNS,您可以根据 IP 地址添加主机,以及主机名。
语法
ceph orch host add HOSTNAME IP_ADDRESS示例
[ceph: root@host01 /]# ceph orch host add host02 10.10.128.69 Added host 'host02' with addr '10.10.128.69'验证
查看存储集群的状态,并验证是否已添加新主机。主机 STATUS 为空,在
ceph orch host ls命令的输出中。示例
[ceph: root@host01 /]# ceph orch host ls
3.14.1. 使用 addr 选项来识别主机 复制链接链接已复制到粘贴板!
addr 选项提供了联系主机的其他方法。将主机的 IP 地址添加到 addr 选项。如果 ssh 无法通过其主机名连接到主机,则它将使用 addr 中存储的值通过 IP 地址访问主机。
先决条件
- 已安装并引导的存储集群。
- 对存储集群中所有节点的根级别访问权限。
流程
从 cephadm shell 内运行此步骤。
添加 IP 地址:
语法
ceph orch host add HOSTNAME IP_ADDR示例
[ceph: root@host01 /]# ceph orch host add host01 10.10.128.68
如果通过主机名添加主机会导致该主机使用 IPv6 地址而不是 IPv4 地址添加,请使用 ceph orch host 来指定该主机的 IP 地址:
ceph orch host set-addr HOSTNAME IP_ADDR
要将添加主机的 IPv6 格式的 IP 地址转换为 IPv4 格式,请使用以下命令:
ceph orch host set-addr HOSTNAME IPV4_ADDRESS
3.14.2. 添加多个主机 复制链接链接已复制到粘贴板!
使用 YAML 文件同时将多个主机添加到存储集群。
务必在本地主机上创建 hosts.yaml 文件,或者在本地主机上创建 文件,然后使用 cephadm shell 在容器内挂载 文件。cephadm shell 会自动将挂载的文件放置在 /mnt 中。如果您直接在本地主机上创建该文件,然后应用 hosts.yaml 文件而不是挂载它,您可能会看到 File does not exist 错误。
先决条件
- 已安装并引导的存储集群。
- 对存储集群中所有节点的根级别访问权限。
流程
-
将公共
ssh密钥复制到您要添加的每个主机。 -
使用文本编辑器创建
hosts.yaml文件。 将主机描述添加到
hosts.yaml文件中,如下例所示。包含标签,以标识您要在每个主机上部署的守护进程的放置。使用三个短划线 (---) 分隔每个主机描述。示例
service_type: host addr: hostname: host02 labels: - mon - osd - mgr --- service_type: host addr: hostname: host03 labels: - mon - osd - mgr --- service_type: host addr: hostname: host04 labels: - mon - osd如果在主机容器中创建了
hosts.yaml文件,请调用ceph orch apply命令:示例
[root@host01 ~]# ceph orch apply -i hosts.yaml Added host 'host02' with addr '10.10.128.69' Added host 'host03' with addr '10.10.128.70' Added host 'host04' with addr '10.10.128.71'如果您直接在本地主机上创建了
hosts.yaml文件,请使用cephadmshell 来挂载该文件:示例
[root@host01 ~]# cephadm shell --mount hosts.yaml -- ceph orch apply -i /mnt/hosts.yaml查看主机及其标签列表:
示例
[root@host01 ~]# ceph orch host ls HOST ADDR LABELS STATUS host02 host02 mon osd mgr host03 host03 mon osd mgr host04 host04 mon osd注意如果主机在线且正常运行,则其状态为空。脱机主机显示 OFFLINE 状态,处于维护模式的主机则显示 MAINTENANCE 状态。
3.14.3. 在断开连接的部署中添加主机 复制链接链接已复制到粘贴板!
如果您在专用网络上运行存储集群,且无法通过专用 IP 访问您的主机名 (DNS),您必须同时包含您要添加到存储集群的每个主机的主机名和 IP 地址。
先决条件
- 正在运行的存储群集。
- 对存储集群中所有主机的根级别访问权限。
流程
调用
cephadmshell。语法
[root@host01 ~]# cephadm shell添加主机:
语法
ceph orch host add HOST_NAME HOST_ADDRESS示例
[ceph: root@host01 /]# ceph orch host add host03 10.10.128.70
3.14.4. 删除主机 复制链接链接已复制到粘贴板!
您可以使用 Ceph 编排器删除 Ceph 集群的主机。所有守护进程都会使用 drain 选项删除,该选项添加了 _no_schedule 标签,以确保您无法部署任何守护进程或集群完成这个操作。
如果您要删除 bootstrap 主机,请确保在删除主机前将 admin 密钥环和配置文件复制到存储集群中的另一主机上。
先决条件
- 一个正在运行的 Red Hat Ceph Storage 集群。
- 所有节点的根级别访问权限。
- 主机添加到存储集群中。
- 部署所有服务。
- Cephadm 部署在必须移除服务的节点上。
流程
登录到 Cephadm shell:
示例
[root@host01 ~]# cephadm shell获取主机详情:
示例
[ceph: root@host01 /]# ceph orch host ls排空主机中的所有守护进程:
语法
ceph orch host drain HOSTNAME示例
[ceph: root@host01 /]# ceph orch host drain host02_no_schedule标签自动应用到阻止部署的主机。检查移除 OSD 的状态:
示例
[ceph: root@host01 /]# ceph orch osd rm status当 OSD 上没有剩余的放置组(PG)时,该 OSD 会停用并从存储集群中移除。
检查所有守护进程是否已从存储集群中移除:
语法
ceph orch ps HOSTNAME示例
[ceph: root@host01 /]# ceph orch ps host02删除主机:
语法
ceph orch host rm HOSTNAME示例
[ceph: root@host01 /]# ceph orch host rm host02