5.4. 在池中启用三个可用区
使用这些信息在常规扩展集群配置中启用和集成三个可用区。
先决条件
开始之前,请确保您有以下先决条件:Ceph Root 级别对节点的访问权限。* CRUSH 位置设置为主机。
流程
获取最新的 CRUSH map,并将 map 解译为文本文件。
语法
ceph osd getcrushmap > COMPILED_CRUSHMAP_FILENAME crushtool -d COMPILED_CRUSHMAP_FILENAME -o DECOMPILED_CRUSHMAP_FILENAME
ceph osd getcrushmap > COMPILED_CRUSHMAP_FILENAME crushtool -d COMPILED_CRUSHMAP_FILENAME -o DECOMPILED_CRUSHMAP_FILENAME
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
[ceph: root@host01 /]# ceph osd getcrushmap > crush.map.bin [ceph: root@host01 /]# crushtool -d crush.map.bin -o crush.map.txt
[ceph: root@host01 /]# ceph osd getcrushmap > crush.map.bin [ceph: root@host01 /]# crushtool -d crush.map.bin -o crush.map.txt
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将新的 CRUSH 规则添加到上一文件中解译的 CRUSH map 文件中。在本例中,规则名称为
3az_rule
。语法
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用这个规则,放置组将复制三个数据中心中的每个副本。
注入 CRUSH map,使规则可供集群使用。
语法
crushtool -c DECOMPILED_CRUSHMAP_FILENAME -o COMPILED_CRUSHMAP_FILENAME ceph osd setcrushmap -i COMPILED_CRUSHMAP_FILENAME
crushtool -c DECOMPILED_CRUSHMAP_FILENAME -o COMPILED_CRUSHMAP_FILENAME ceph osd setcrushmap -i COMPILED_CRUSHMAP_FILENAME
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
[ceph: root@host01 /]# crushtool -c crush.map.txt -o crush2.map.bin [ceph: root@host01 /]# ceph osd setcrushmap -i crush2.map.bin
[ceph: root@host01 /]# crushtool -c crush.map.txt -o crush2.map.bin [ceph: root@host01 /]# ceph osd setcrushmap -i crush2.map.bin
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 您可以按照以下步骤验证规则是否已成功注入。
列出集群中的规则。
语法
ceph osd crush rule ls
ceph osd crush rule ls
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
[ceph: root@host01 /]# ceph osd crush rule ls replicated_rule ec86_pool 3az_rule
[ceph: root@host01 /]# ceph osd crush rule ls replicated_rule ec86_pool 3az_rule
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
转储 CRUSH 规则。
语法
ceph osd crush rule dump CRUSH_RULE
ceph osd crush rule dump CRUSH_RULE
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将 MON 选择策略设置为 connectivity。
语法
ceph mon set election_strategy connectivity
ceph mon set election_strategy connectivity
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 成功更新后,election_strategy 被更新为
3
。默认的 election_strategy 为1
。可选:验证上一步中设置的选择策略。
语法
ceph mon dump
ceph mon dump
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 检查输出中是否添加了所有 mon 守护进程,并且是否添加了正确的 CRUSH 位置。
示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将池设置为与三个可用区扩展集群关联。有关可用池值的更多信息,请参阅 Red Hat Ceph Storage 策略指南中的池 值。
语法
ceph osd pool stretch set _POOL_NAME_ _PEERING_CRUSH_BUCKET_COUNT_ _PEERING_CRUSH_BUCKET_TARGET_ _PEERING_CRUSH_BUCKET_BARRIER_ _CRUSH_RULE_ _SIZE_ _MIN_SIZE_ [--yes-i-really-mean-it]
ceph osd pool stretch set _POOL_NAME_ _PEERING_CRUSH_BUCKET_COUNT_ _PEERING_CRUSH_BUCKET_TARGET_ _PEERING_CRUSH_BUCKET_BARRIER_ _CRUSH_RULE_ _SIZE_ _MIN_SIZE_ [--yes-i-really-mean-it]
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 按如下方式替换变量:
- POOL_NAME
- 池的名称。它必须是现有的池,此命令不会创建新池。
- PEERING_CRUSH_BUCKET_COUNT
- 该值与 peering_crush_bucket_barrier 一起使用,以确定所选执行集合中 OSD 集合是否可以相互对等,具体取决于操作集合中的不同 bucket 的数量。
- PEERING_CRUSH_BUCKET_TARGET
- 这个值与 peering_crush_bucket_barrier 和 size 一起使用,以计算值 bucket_max,限制同一 bucket 中的 OSD 数量被选择处于 PG 执行的集合中。
- PEERING_CRUSH_BUCKET_BARRIER
- 池在其中扩展的 bucket 类型。例如,机架、行或数据中心。
- CRUSH_RULE
- 用于扩展池的 crush 规则。池的类型必须与 crush_rule (replicated 或 erasure)的类型匹配。
- SIZE
- 扩展池中对象的副本数量。
- MIN_SIZE
扩展池中 I/O 所需的最小副本数。
重要当将 PEERING_CRUSH_BUCKET_COUNT 和 PEERING_CRUSH_BUCKET_COUNT 和 PEERING_CRUSH_BUCKET_TARGET 设置为 CRUSH 映射中的 bucket 数量时,需要 '--yes-i-really-mean-it 标志。使用可选标志确认您要绕过安全检查并为扩展池设置值。
示例
[ceph: root@host01 /]# ceph osd pool stretch set pool01 2 3 datacenter 3az_rule 6 3
[ceph: root@host01 /]# ceph osd pool stretch set pool01 2 3 datacenter 3az_rule 6 3
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意要将池恢复到非扩展集群,请使用
ceph osd pool stretch unset POOL_NAME
命令。使用此命令不会取消设置crush_rule
、大小
、和min_size
值。如果需要,需要手动重置它们。发出了一个成功消息,说明池扩展值设置正确。
可选:使用
ceph osd pool stretch show
show 命令,验证与扩展集群关联的池。示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow