gpt4 book ai didi

Ceph:如何在特定的 OSD 上放置池?

转载 作者:行者123 更新时间:2023-12-04 12:39:15 25 4
gpt4 key购买 nike

我有一个带有 data_pool 的 66 个 OSD 的 Ceph 集群和一个 metadata_pool .

我想放置metadata_pool在 3 个具有 SSD 的特定 OSD 上,因为所有其他 63 个 OSD 都有较旧的磁盘。

如何强制 Ceph 放置 metadata_pool在特定的 OSD 上?

提前致谢。

最佳答案

您需要为您的池制定一个特殊的粉碎规则,该规则将定义要使用的存储类型。有一个nice answer in the proxmox forum .

归结为:

Ceph 知道哪个驱动器是 HDD 或 SDD。此信息反过来可用于创建粉碎规则,该规则将仅将 PG 放置在该类型的设备上。

ceph 的默认规则是replicated_rule:

# rules
rule replicated_rule {
id 0
type replicated
min_size 1
max_size 10
step take default
step chooseleaf firstn 0 type host
step emit
}

因此,如果您的 ceph 集群包含两种类型的存储设备,您可以使用以下命令创建新的粉碎规则:
$ ceph osd crush rule create-replicated replicated_hdd default host hdd
$ ceph osd crush rule create-replicated replicated_ssd default host ssd

新创建的规则看起来几乎相同。这是硬盘规则:
rule replicated_hdd {
id 1
type replicated
min_size 1
max_size 10
step take default class hdd
step chooseleaf firstn 0 type host
step emit
}

如果您的集群不包含 hdd 或 ssd 设备,则规则创建将失败。

在此之后,您将能够为现有池设置新规则:
$ ceph osd pool set YOUR_POOL crush_rule replicated_ssd

集群将进入 HEALTH_WARN 并将对象移动到 SSD 上的正确位置,直到集群再次健康。

此功能 was added with ceph 10.x aka Luminous .

关于Ceph:如何在特定的 OSD 上放置池?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58060333/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com