ceph创建pools到指定的OSD上

本文介绍了如何在Ceph集群中根据需求将Pool创建在特定的OSD设备上,以实现不同业务对存储性能的要求。通过修改Crush map规则,并设置Pool的crush_ruleset,可以确保RBD和CephFS分别存储在SSD和HDD上。文中详细阐述了整个操作流程,包括查看默认规则、编辑Crush map、创建Pool以及验证对象分布。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

生产环境中有很多场景,是需要在指定的 OSD 设备上创建 Ceph Pool,或者说需要把pool限制在指定的OSD上。因为Ceph集群中允许使用混合类型的磁盘,比如一部分磁盘是SSD,一部分是HDD。如果针对某些业务需要高速磁盘SSD,而某些业务 HDD 就可以满足部署,在创建资源池 Pool 的时候可以指定它创建在某些OSD 设备上。或者为了不影响性能,通常一套ceph集群中需要RBD块存储和jcephFS文件系统同时使用,这样可以把RBD的pool指定到相应的OSD上,cephFS所使用的pool指定到另外的OSD上。

方法概述

  1. 修改Ceph集群的 crush map (可以导出crush map文件修改,然后导入生效)里的 rule section,该rule 选择哪个bucket路径 (实际上就是最终选择哪个osd device)
  2. 通过设定Pool的crush_ruleset 来指定该 Pool 使用crush map里的哪个rule(命令:ceph osd pool set crush_ruleset 4)

场景描述

现有环境:

主机 磁盘
test-ceph01 /dev/sdb,/dev/sdc
test-ceph02 /dev/sdb,/dev/sdc
test-ceph03 /dev/sdb,/dev/sdc

# ceph osd tree
ID CLASS WEIGHT  TYPE NAME            STATUS REWEIGHT PRI-AFF 
-1       0.29214 root default                                 
-7       0.09738     host test-ceph01                         
 0   hdd 0.04869         osd.0            up  1.00000 1.00000 
 4   hdd 0.04869         osd.4            up  1.00000 1.00000 
-5       0.09738     host test-ceph02                         
 2   hdd 0.04869         osd.2            up  1.00000 1.00000 
 5   hdd 0.04869         osd.5            up  1.00000 1.00000 
-3       0.09738     host test-ceph03                         
 1   hdd 0.04869         osd.1            up  1.00000 1.00000 
 3   hdd 0.04869         osd.3            up  1.00000 1.00000 

我们需要把RBD存储在/dev/sdb上,cephfs存储在/dev/sdc上

先查看下默认规则:

ceph osd crush rule dump

重新配置Crush map

1.获取Crush map

ceph osd getcrushmap -o ./crushmap

2.反编译C

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值