首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Ceph:如何在特定的OSD上放置一个池?

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

Stack Overflow用户
提问于 2019-09-23 18:24:37
回答 1查看 3.5K关注 0票数 4

我有一个包含66个OSD的Ceph集群,带有一个data_pool和一个metadata_pool

我想把metadata_pool放在3个有固态硬盘的特定固态硬盘上,因为所有其他63个固态硬盘都有较旧的磁盘。

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

谢谢您的提前付款。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-09-23 21:21:33

对于您的池,您需要一个特殊的压缩规则来定义要使用的存储类型。有一个nice answer in the proxmox forum

归根结底就是:

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

ceph附带的默认规则是replicated_rule:

代码语言:javascript
运行
复制
# 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集群包含这两种类型的存储设备,您可以使用以下命令创建新的压缩规则:

代码语言:javascript
运行
复制
$ ceph osd crush rule create-replicated replicated_hdd default host hdd
$ ceph osd crush rule create-replicated replicated_ssd default host ssd

新创建的规则看起来几乎相同。这是hdd规则:

代码语言:javascript
运行
复制
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设备,则规则创建将失败。

在此之后,您将能够将新规则设置到现有池:

代码语言:javascript
运行
复制
$ ceph osd pool set YOUR_POOL crush_rule replicated_ssd

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

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

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58060333

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档