5.3. 使用规格文件引导 Ceph 集群
通过使用 spec 配置文件,将 CRUSH 位置设置为集群中的守护进程来部署常规扩展集群。
使用服务配置文件,将 CRUSH 位置设置为集群中的守护进程。在部署过程中,使用 配置文件将主机添加到正确的位置。
有关 Ceph bootstrap 和不同的 cephadm bootstrap
命令选项的更多信息,请参阅 Red Hat Ceph Storage 安装指南中的 引导新存储集群。
在您要作为集群中初始监控节点的节点上运行 cephadm bootstrap
。IP_ADDRESS
选项应该是您用于运行 cephadm bootstrap
的节点的 IP 地址。
- 如果存储集群包含多个网络和接口,请确定选择一个可供使用存储集群的任何节点访问的网络。
-
要使用 IPV6 地址部署存储集群,请将 IPV6 地址格式用于
--mon-ip <IP_ADDRESS>
选项。例如:cephadm bootstrap --mon-ip 2620:52:0:880:225:90ff:fefc:2536 --registry-json /etc/mylogin.json
。 -
要通过公共网络路由内部集群流量,请省略 the
-cluster-network SUBNET
选项。
在此过程中,网络无类别域间路由(CIDR)被称为 子网。
先决条件
确保具有对节点的 root 级别访问权限。
流程
创建服务配置 YAML 文件。YAML 文件将节点添加到 Red Hat Ceph Storage 集群,并为运行服务设置特定的标签。下例取决于所需的特定 OSD 和 Ceph 对象网关(RGW)配置。
语法
service_type: host hostname: HOST01 addr: IP_ADDRESS01 labels: ['alertmanager', 'osd', 'installer', '_admin', 'mon', 'prometheus', 'mgr', 'grafana'] location: root: default datacenter: DC1 --- service_type: host hostname: HOST02 addr: IP_ADDRESS02 labels: ['osd', 'mon', 'mgr', 'rgw'] location: root: default datacenter: DC1 --- service_type: host hostname: HOST03 addr: IP_ADDRESS03 labels: ['osd', 'mon', 'mds'] location: root: default datacenter: DC1 --- service_type: host hostname: HOST04 addr: IP_ADDRESS04 labels: ['osd', '_admin', 'mon', 'mgr'] location: root: default datacenter: DC2 --- service_type: host hostname: HOST05 addr: IP_ADDRESS05 labels: ['osd', 'mon', 'mgr', 'rgw'] location: root: default datacenter: DC2 --- service_type: host hostname: HOST06 addr: IP_ADDRESS06 labels: ['osd', 'mon', 'mds'] location: root: default datacenter: DC2 --- service_type: host hostname: HOST07 addr: IP_ADDRESS07 labels: ['osd', '_admin', 'mon', 'mgr'] location: root: default datacenter: DC3 --- service_type: host hostname: HOST08 addr: IP_ADDRESS08 labels: ['osd', 'mon', 'mgr', 'rgw'] location: root: default datacenter: DC3 --- service_type: host hostname: HOST09 addr: IP_ADDRESS09 labels: ['osd', 'mon', 'mds'] location: root: default datacenter: DC3 --- service_type: mon service_name: mon placement: label: mon spec: crush_locations: HOST01: - datacenter=DC1 HOST02: - datacenter=DC1 HOST03: - datacenter=DC1 HOST04: - datacenter=DC2 HOST05: - datacenter=DC2 HOST06: - datacenter=DC2 HOST07: - datacenter=DC3 HOST08: - datacenter=DC3 HOST09: - datacenter=DC3 --- service_type: mgr service_name: mgr placement: label: mgr ------ service_type: osd service_id: osds placement: label: osd spec: data_devices: all: true --------- service_type: rgw service_id: rgw.rgw.1 placement: label: rgw ------------
有关更改 OSD 和对象网关的自定义 spec 的更多信息,请参阅 Red Hat Ceph Storage Operations 指南中的使用高级服务规格部署 Ceph OSD。* 使用 Red Hat Ceph Storage Object Gateway 指南中的使用服务规格部署 Ceph 对象网关。
使用-
-apply-spec
选项引导存储集群。语法
cephadm bootstrap --apply-spec CONFIGURATION_FILE_NAME --mon-ip MONITOR_IP_ADDRESS --ssh-private-key PRIVATE_KEY --ssh-public-key PUBLIC_KEY --registry-url REGISTRY_URL --registry-username USER_NAME --registry-password PASSWORD
示例
[root@host01 ~]# cephadm bootstrap --apply-spec initial-config.yaml --mon-ip 10.10.128.68 --ssh-private-key /home/ceph/.ssh/id_rsa --ssh-public-key /home/ceph/.ssh/id_rsa.pub --registry-url registry.redhat.io --registry-username myuser1 --registry-password mypassword1
重要您可以将不同的命令选项用于
cephadm bootstrap
命令,但始终包含--apply-spec
选项,以使用服务配置文件并配置主机位置。登录
cephadm
shell。语法
cephadm shell
示例
[root@host01 ~]# cephadm shell
使用子网配置公共网络。有关为集群配置多个公共网络的更多信息,请参阅 Red Hat Ceph Storage 配置指南中的 为集群配置多个公共网络。
语法
ceph config set global public_network "SUBNET_1,SUBNET_2, ..."
示例
[ceph: root@host01 /]# ceph config global mon public_network "10.0.208.0/22,10.0.212.0/22,10.0.64.0/22,10.0.56.0/22"
可选:配置集群网络。有关为集群配置多个集群网络的更多信息,请参阅 Red Hat Ceph Storage 配置指南中的配置 专用网络。
语法
ceph config set global cluster_network "SUBNET_1,SUBNET_2, ..."
示例
[ceph: root@host01 /]# ceph config set global cluster_network "10.0.208.0/22,10.0.212.0/22,10.0.64.0/22,10.0.56.0/22"
可选:验证网络配置。
语法
ceph config dump | grep network
示例
[ceph: root@host01 /]# ceph config dump | grep network
重启守护进程。Ceph 守护进程动态绑定,因此如果更改特定守护进程的网络配置,不必一次重启整个集群。
语法
ceph orch restart mon
可选: 要以 root 用户身份在管理节点上重启集群,请运行
systemctl restart
命令。注意要获取集群的 FSID,请使用
ceph fsid
命令。语法
systemctl restart ceph-FSID_OF_CLUSTER.target
示例
[root@host01 ~]# systemctl restart ceph-1ca9f6a8-d036-11ec-8263-fa163ee967ad.target
验证
验证规格文件详情以及 bootstrap 是否已成功安装。
验证所有主机是否已放置在预期的数据中心中,如流程的第 1 步中指定的。
语法
ceph osd tree
检查 root 下有三个数据中心,并且主机已放置到每个预期的数据中心。
注意只有在使用规格文件引导过程中部署 OSD 时,只有 bootstrap 后带有 OSD 的主机才会存在。
示例
[root@host01 ~]# ceph osd tree ID CLASS WEIGHT TYPE NAME STATUS REWEIGHT PRI-AFF -1 0.87836 root default -3 0.29279 datacenter DC1 -2 0.09760 host host01-installer 0 hdd 0.02440 osd.0 up 1.00000 1.00000 12 hdd 0.02440 osd.12 up 1.00000 1.00000 21 hdd 0.02440 osd.21 up 1.00000 1.00000 29 hdd 0.02440 osd.29 up 1.00000 1.00000 -4 0.09760 host host02 1 hdd 0.02440 osd.1 up 1.00000 1.00000 9 hdd 0.02440 osd.9 up 1.00000 1.00000 18 hdd 0.02440 osd.18 up 1.00000 1.00000 28 hdd 0.02440 osd.28 up 1.00000 1.00000 -5 0.09760 host host03 8 hdd 0.02440 osd.8 up 1.00000 1.00000 16 hdd 0.02440 osd.16 up 1.00000 1.00000 24 hdd 0.02440 osd.24 up 1.00000 1.00000 34 hdd 0.02440 osd.34 up 1.00000 1.00000 -7 0.29279 datacenter DC2 -6 0.09760 host host04 4 hdd 0.02440 osd.4 up 1.00000 1.00000 13 hdd 0.02440 osd.13 up 1.00000 1.00000 20 hdd 0.02440 osd.20 up 1.00000 1.00000 27 hdd 0.02440 osd.27 up 1.00000 1.00000 -8 0.09760 host host05 3 hdd 0.02440 osd.3 up 1.00000 1.00000 10 hdd 0.02440 osd.10 up 1.00000 1.00000 19 hdd 0.02440 osd.19 up 1.00000 1.00000 30 hdd 0.02440 osd.30 up 1.00000 1.00000 -9 0.09760 host host06 7 hdd 0.02440 osd.7 up 1.00000 1.00000 17 hdd 0.02440 osd.17 up 1.00000 1.00000 26 hdd 0.02440 osd.26 up 1.00000 1.00000 35 hdd 0.02440 osd.35 up 1.00000 1.00000 -11 0.29279 datacenter DC3 -10 0.09760 host host07 5 hdd 0.02440 osd.5 up 1.00000 1.00000 14 hdd 0.02440 osd.14 up 1.00000 1.00000 23 hdd 0.02440 osd.23 up 1.00000 1.00000 32 hdd 0.02440 osd.32 up 1.00000 1.00000 -12 0.09760 host host08 2 hdd 0.02440 osd.2 up 1.00000 1.00000 11 hdd 0.02440 osd.11 up 1.00000 1.00000 22 hdd 0.02440 osd.22 up 1.00000 1.00000 31 hdd 0.02440 osd.31 up 1.00000 1.00000 -13 0.09760 host host09 6 hdd 0.02440 osd.6 up 1.00000 1.00000 15 hdd 0.02440 osd.15 up 1.00000 1.00000 25 hdd 0.02440 osd.25 up 1.00000 1.00000 33 hdd 0.02440 osd.33 up 1.00000 1.00000
- 在 cephadm shell 中,验证 mon 守护进程是否使用 CRUSH 位置部署,如流程的第 1 步所述。
语法
ceph mon dump
+ 检查所有 mon 守护进程是否在输出中,并且添加了正确的 CRUSH 位置。
+ .example --- [root@host01 ~]: ceph mon dump epoch 19 fsid b556497a-693a-11ef-b9d1-fa163e841fd7 last_changed 2024-09-03T12:47:08.419495+0000 created 2024-09-02T14:50:51.490781+0000 min_mon_release 19 (squid) election_strategy: 3 0: [v2:10.0.67.43:3300/0, v1:10.0.67.43:6789/0] mon.host01-installer; crush_location {datacenter=DC1} 1: [v2:10.0.67.20:3300/0,v1:10.0.67.20:6789/0] mon.host02; crush_location {datacenter=DC1} 2: [v2:10.0.64.242:3300/0, v1:10.0.64.242:6789/0] mon.host03; crush_location {datacenter=DC1} 3: [v2:10.0.66.17:3300/0,v1:10.0.66.17:6789/0] mon.host06; crush_location {datacenter=DC2} 4: [v2:10.0.66.228:3300/0, v1:10.0.66.228:6789/0] mon.host09; crush_location {datacenter=DC3} 5: [v2:10.0.65.125:3300/0,v1:10.0.65.125:6789/0] mon.host05; crush_location {datacenter=DC2} 6: [v2:10.0.66.252:3300/0, v1:10.0.66.252:6789/0] mon.host07; crush_location {datacenter=DC3} 7: [v2:10.0.64.145:3300/0,v1:10.0.64.145:6789/0] mon.host08; crush_location {datacenter=DC3} 8: [v2:10.0.64.125:3300/0, v1:10.0.64.125:6789/0] mon.host04; crush_location {datacenter=DC2} dumped monmap epoch 19 ---
验证服务 spec 和所有位置属性是否已正确添加。
使用
ceph orch ls
命令检查集群上的 mon 守护进程的服务名称。示例
[root@host01 ~]# ceph orch ls NAME PORTS RUNNING REFRESHED AGE PLACEMENT alertmanager ?:9093,9094 1/1 8m ago 6d count:1 ceph-exporter 9/9 8m ago 6d * crash 9/9 8m ago 6d * grafana ?:3000 1/1 8m ago 6d count:1 mds.cephfs 3/3 8m ago 6d label:mds mgr 6/6 8m ago 6d label:mgr mon 9/9 8m ago 5d label:mon node-exporter ?:9100 9/9 8m ago 6d * osd.all-available-devices 36 8m ago 6d label:osd prometheus ?:9095 1/1 8m ago 6d count:1 rgw.rgw.1 ?:80 3/3 8m ago 6d label:rgw
使用
ceph orch ls mon --export
命令确认 mon 守护进程服务。示例
[root@host01 ~]# ceph orch ls mon --export service_type: mon service_name: mon placement: label: mon spec: crush_locations: host01-installer: - datacenter=DC1 host02: - datacenter=DC1 host03: - datacenter=DC1 host04: - datacenter=DC2 host05: - datacenter=DC2 host06: - datacenter=DC2 host07: - datacenter=DC3 host08: - datacenter=DC3 host09: - datacenter=DC3
-
运行 cephadm shell
ceph -s
命令,验证 bootstrap 是否已成功安装。如需更多信息,请参阅验证集群安装。