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