3.5. 使用 Cephadm 进行集群引导和服务部署
cephadm 实用程序将安装并启动一个单独的 Ceph Monitor 守护进程,以及运行 cephadm bootstrap 命令本地节点上的新 Red Hat Ceph Storage 集群的 Ceph 管理器守护进程。
有关 bootstrap 过程的更多信息,请参阅引导新存储集群。
步骤
使用 json 文件创建 json 文件以针对容器 registry 进行身份验证,如下所示:
$ cat <<EOF > /root/registry.json { "url":"registry.redhat.io", "username":"User", "password":"Pass" } EOF
创建
cluster-spec.yaml
,将节点添加到 RHCS 集群,并为该服务应该运行下表 3.1 设置特定的标签。cat <<EOF > /root/cluster-spec.yaml service_type: host addr: 10.0.40.78 ## <XXX.XXX.XXX.XXX> hostname: ceph1 ## <ceph-hostname-1> location: root: default datacenter: DC1 labels: - osd - mon - mgr --- service_type: host addr: 10.0.40.35 hostname: ceph2 location: datacenter: DC1 labels: - osd - mon --- service_type: host addr: 10.0.40.24 hostname: ceph3 location: datacenter: DC1 labels: - osd - mds - rgw --- service_type: host addr: 10.0.40.185 hostname: ceph4 location: root: default datacenter: DC2 labels: - osd - mon - mgr --- service_type: host addr: 10.0.40.88 hostname: ceph5 location: datacenter: DC2 labels: - osd - mon --- service_type: host addr: 10.0.40.66 hostname: ceph6 location: datacenter: DC2 labels: - osd - mds - rgw --- service_type: host addr: 10.0.40.221 hostname: ceph7 labels: - mon --- service_type: mon placement: label: "mon" --- service_type: mds service_id: fs_name placement: label: "mds" --- service_type: mgr service_name: mgr placement: label: "mgr" --- service_type: osd service_id: all-available-devices service_name: osd.all-available-devices placement: label: "osd" spec: data_devices: all: true --- service_type: rgw service_id: objectgw service_name: rgw.objectgw placement: count: 2 label: "rgw" spec: rgw_frontend_port: 8080 EOF
检索从 bootstrap 节点配置的 RHCS 公共网络的 NIC 的 IP。将
10.0.40.0
替换为您在 ceph 公共网络中定义的子网后,执行以下命令。$ ip a | grep 10.0.40
输出示例:
10.0.40.78
以 root 用户身份在将作为集群中初始 monitor 节点的节点运行
Cephadm
bootstrap 命令。IP_ADDRESS
选项是您用于运行cephadm bootstrap
命令的节点 IP 地址。注意如果您配置了不同的用户而不是
root
进行免密码 SSH 访问,则使用带有cepadm bootstrap
命令的--ssh-user=
标志。$ cephadm bootstrap --ssh-user=deployment-user --mon-ip 10.0.40.78 --apply-spec /root/cluster-spec.yaml --registry-json /root/registry.json
重要如果本地节点使用完全限定域名 (FQDN),则将
--allow-fqdn-hostname
选项添加到命令行上的cephadm bootstrap
。bootstrap 完成后,您将看到来自之前 cephadm bootstrap 命令的以下输出:
You can access the Ceph CLI with: sudo /usr/sbin/cephadm shell --fsid dd77f050-9afe-11ec-a56c-029f8148ea14 -c /etc/ceph/ceph.conf -k /etc/ceph/ceph.client.admin.keyring Please consider enabling telemetry to help improve Ceph: ceph telemetry on For more information see: https://docs.ceph.com/docs/pacific/mgr/telemetry/
使用 ceph1 中的 ceph cli 客户端,验证 Red Hat Ceph Storage 集群部署的状态:
$ ceph -s
输出示例:
cluster: id: 3a801754-e01f-11ec-b7ab-005056838602 health: HEALTH_OK services: mon: 5 daemons, quorum ceph1,ceph2,ceph4,ceph5,ceph7 (age 4m) mgr: ceph1.khuuot(active, since 5m), standbys: ceph4.zotfsp osd: 12 osds: 12 up (since 3m), 12 in (since 4m) rgw: 2 daemons active (2 hosts, 1 zones) data: pools: 5 pools, 107 pgs objects: 191 objects, 5.3 KiB usage: 105 MiB used, 600 GiB / 600 GiB avail 105 active+clean
注意启动所有服务可能需要几分钟时间。
在您未配置任何 osds 时出现一个全局恢复事件是正常的。
您可以使用
ceph orch ps
和ceph orch ls
来进一步检查服务的状态。验证所有节点是否是
cephadm
集群的一部分。$ ceph orch host ls
输出示例:
HOST ADDR LABELS STATUS ceph1 10.0.40.78 _admin osd mon mgr ceph2 10.0.40.35 osd mon ceph3 10.0.40.24 osd mds rgw ceph4 10.0.40.185 osd mon mgr ceph5 10.0.40.88 osd mon ceph6 10.0.40.66 osd mds rgw ceph7 10.0.40.221 mon
注意您可以直接从主机运行 Ceph 命令,因为
ceph1
在cephadm-ansible
清单中配置,作为 [admin] 组的一部分。Ceph 管理密钥在cephadm bootstrap
过程中复制到主机。检查数据中心的 Ceph 监控服务的当前位置。
$ ceph orch ps | grep mon | awk '{print $1 " " $2}'
输出示例:
mon.ceph1 ceph1 mon.ceph2 ceph2 mon.ceph4 ceph4 mon.ceph5 ceph5 mon.ceph7 ceph7
检查数据中心的 Ceph 管理器服务的当前位置。
$ ceph orch ps | grep mgr | awk '{print $1 " " $2}'
输出示例:
mgr.ceph2.ycgwyz ceph2 mgr.ceph5.kremtt ceph5
检查 ceph osd crush map 布局,以确保每个主机都配置了 OSD,其状态为
UP
。此外,再次检查每个节点在表 3.1 中指定的右侧数据中心 bucket 下。$ ceph osd tree
输出示例:
ID CLASS WEIGHT TYPE NAME STATUS REWEIGHT PRI-AFF -1 0.87900 root default -16 0.43950 datacenter DC1 -11 0.14650 host ceph1 2 ssd 0.14650 osd.2 up 1.00000 1.00000 -3 0.14650 host ceph2 3 ssd 0.14650 osd.3 up 1.00000 1.00000 -13 0.14650 host ceph3 4 ssd 0.14650 osd.4 up 1.00000 1.00000 -17 0.43950 datacenter DC2 -5 0.14650 host ceph4 0 ssd 0.14650 osd.0 up 1.00000 1.00000 -9 0.14650 host ceph5 1 ssd 0.14650 osd.1 up 1.00000 1.00000 -7 0.14650 host ceph6 5 ssd 0.14650 osd.5 up 1.00000 1.00000
创建并启用新的 RDB 块池。
$ ceph osd pool create rbdpool 32 32 $ ceph osd pool application enable rbdpool rbd
注意命令末尾的数字 32 是分配给这个池的 PG 数量。PG 数量可能会因集群中的 OSD 数量、使用池的预期%的不同而有所不同。您可以使用以下计算器来确定所需的 PG 数量:Ceph Placement Groups(PG)per Pool Calculator。
验证 RBD 池已创建好。
$ ceph osd lspools | grep rbdpool
输出示例:
3 rbdpool
验证 MDS 服务处于活动状态,并且每个数据中心上具有一个服务。
$ ceph orch ps | grep mds
输出示例:
mds.cephfs.ceph3.cjpbqo ceph3 running (17m) 117s ago 17m 16.1M - 16.2.9 mds.cephfs.ceph6.lqmgqt ceph6 running (17m) 117s ago 17m 16.1M - 16.2.9
创建 CephFS 卷。
$ ceph fs volume create cephfs
注意ceph fs volume create
命令还会创建所需的数据和 meta CephFS 池。如需更多信息,请参阅配置和挂载 Ceph 文件系统。检查
Ceph
状态,以验证 MDS 守护进程的部署方式。确保状态为 active,其中ceph6
是这个文件系统的主 MDS,ceph3
是次 MDS。$ ceph fs status
输出示例:
cephfs - 0 clients ====== RANK STATE MDS ACTIVITY DNS INOS DIRS CAPS 0 active cephfs.ceph6.ggjywj Reqs: 0 /s 10 13 12 0 POOL TYPE USED AVAIL cephfs.cephfs.meta metadata 96.0k 284G cephfs.cephfs.data data 0 284G STANDBY MDS cephfs.ceph3.ogcqkl
验证 RGW 服务是否处于活动状态。
$ ceph orch ps | grep rgw
输出示例:
rgw.objectgw.ceph3.kkmxgb ceph3 *:8080 running (7m) 3m ago 7m 52.7M - 16.2.9 rgw.objectgw.ceph6.xmnpah ceph6 *:8080 running (7m) 3m ago 7m 53.3M - 16.2.9