博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ceph 指定OSD创建pool
阅读量:7080 次
发布时间:2019-06-28

本文共 4340 字,大约阅读时间需要 14 分钟。

hot3.png

    ceph集群中允许使用混合类型的磁盘,比如一部分磁盘是SSD,一部分是STAT。如果针对某些业务小高速磁盘SSD,某些业务需要STAT,在创建资源池的时候可以指定创建在某些OSD上。

    基本步骤有8步:

        当前只有STAT没有SSD,但是不影响实验结果。

152523_zdv8_2917803.png

1    获取crush map

[root@ceph-admin getcrushmap]# ceph osd getcrushmap -o /opt/getcrushmap/crushmapgot crush map from osdmap epoch 2482

2    反编译crush map

[root@ceph-admin getcrushmap]# crushtool -d crushmap -o decrushmap

3    修改crush map

    在root default 后面添加下面两个bucket

root ssd {	id -5	alg straw	hash 0	item osd.0 weight 0.01}root stat {        id -6        alg straw        hash 0        item osd.1 weight 0.01}

    在rules部分添加如下规则:

rule ssd{	ruleset 1	type replicated	min_size 1	max_size 10	step take ssd	step chooseleaf firstn 0 type osd	step emit}rule stat{        ruleset 2        type replicated        min_size 1        max_size 10        step take stat        step chooseleaf firstn 0 type osd        step emit}

4    编译crush map

[root@ceph-admin getcrushmap]# crushtool -c decrushmap -o newcrushmap

5    注入crush map

[root@ceph-admin getcrushmap]# ceph osd setcrushmap -i /opt/getcrushmap/newcrushmap set crush map
[root@ceph-admin getcrushmap]# ceph osd treeID WEIGHT  TYPE NAME           UP/DOWN REWEIGHT PRIMARY-AFFINITY -6 0.00999 root stat                                              1 0.00999     osd.1                up  1.00000          1.00000 -5 0.00999 root ssd                                               0 0.00999     osd.0                up  1.00000          1.00000 -1 0.58498 root default                                          -2 0.19499     host ceph-admin                                    2 0.19499         osd.2            up  1.00000          1.00000 -3 0.19499     host ceph-node1                                    0 0.19499         osd.0            up  1.00000          1.00000 -4 0.19499     host ceph-node2                                    1 0.19499         osd.1            up  1.00000          1.00000 # 重新查看osd tree 的时候已经看见这个树已经变了。添加了名称为stat和SSD的两个bucket

6    创建资源池

[root@ceph-admin getcrushmap]# ceph osd pool create ssd_pool 8 8pool 'ssd_pool' created[root@ceph-admin getcrushmap]# ceph osd pool create stat_pool 8 8pool 'stat_pool' created[root@ceph-admin getcrushmap]# ceph osd dump|grep ssdpool 28 'ssd_pool' replicated size 3 min_size 2 crush_ruleset 0 object_hash rjenkins pg_num 8 pgp_num 8 last_change 2484 flags hashpspool stripe_width 0[root@ceph-admin getcrushmap]# ceph osd dump|grep statpool 29 'stat_pool' replicated size 3 min_size 2 crush_ruleset 0 object_hash rjenkins pg_num 8 pgp_num 8 last_change 2486 flags hashpspool stripe_width 0

注意:刚刚创建的两个资源池ssd_pool 和stat_pool 的 crush_ruleset  都是0,下面需要修改。

7    修改资源池存储规则

[root@ceph-admin getcrushmap]# ceph osd pool set ssd_pool crush_ruleset 1set pool 28 crush_ruleset to 1[root@ceph-admin getcrushmap]# ceph osd pool set stat_pool crush_ruleset 2set pool 29 crush_ruleset to 2[root@ceph-admin getcrushmap]# ceph osd dump|grep ssdpool 28 'ssd_pool' replicated size 3 min_size 2 crush_ruleset 1 object_hash rjenkins pg_num 8 pgp_num 8 last_change 2488 flags hashpspool stripe_width 0[root@ceph-admin getcrushmap]# ceph osd dump|grep statpool 29 'stat_pool' replicated size 3 min_size 2 crush_ruleset 2 object_hash rjenkins pg_num 8 pgp_num 8 last_change 2491 flags hashpspool stripe_width 0# luminus 版本设置pool规则的语法是[root@ceph-admin ceph]# ceph osd pool set ssd crush_rule ssdset pool 2 crush_rule to ssd[root@ceph-admin ceph]# ceph osd pool set stat crush_rule statset pool 1 crush_rule to stat

8    验证

    验证前先看看ssd_pool 和stat_pool 里面是否有对象

[root@ceph-admin getcrushmap]# rados ls -p ssd_pool[root@ceph-admin getcrushmap]# rados ls -p stat_pool#这两个资源池中都没有对象

    用rados命令 添加对象到两个资源池中

[root@ceph-admin getcrushmap]# rados -p ssd_pool put test_object1 /etc/hosts[root@ceph-admin getcrushmap]# rados -p stat_pool put test_object2 /etc/hosts[root@ceph-admin getcrushmap]# rados ls -p ssd_pooltest_object1[root@ceph-admin getcrushmap]# rados ls -p stat_pooltest_object2#对象添加成功
[root@ceph-admin getcrushmap]# ceph osd map ssd_pool test_object1osdmap e2493 pool 'ssd_pool' (28) object 'test_object1' -> pg 28.d5066e42 (28.2) -> up ([0], p0) acting ([0,1,2], p0)[root@ceph-admin getcrushmap]# ceph osd map stat_pool test_object2osdmap e2493 pool 'stat_pool' (29) object 'test_object2' -> pg 29.c5cfe5e9 (29.1) -> up ([1], p1) acting ([1,0,2], p1)

上面验证结果可以看出,test_object1 存入osd.0中,test_object2 存入osd.1中。达到预期目的。

转载于:https://my.oschina.net/wangzilong/blog/1549690

你可能感兴趣的文章
Java 只有传值
查看>>
Jenkins部署Web项目到远程tomcat
查看>>
在线支付资料
查看>>
iMatrix6.0.0功能更新说明
查看>>
js 中的 Data() 对象
查看>>
发送字符与字符串v
查看>>
在局域网部署git
查看>>
百度外卖面试记录
查看>>
IOS开发网络第一天之02NSThread的基本使用
查看>>
静态页面时用js获取后台信息
查看>>
解决linux环境下,atom编辑器不支持中文的问题
查看>>
pyspider爬虫学习-文档翻译-Frequently-Asked-Questions.md
查看>>
小众时代的定制服务器来临了么
查看>>
IPv4/IPv6 socket
查看>>
#pragma once与#ifndef #define ...#endif的区别
查看>>
模拟复数及其运算
查看>>
IOS上路_01-Win7+VMWare9+MacOSX10.8+XCode4.6.3
查看>>
给Visual Studio 2010添加Windows Phone 7模板
查看>>
一次 web 工程性能测试
查看>>
wordpress 伪静态nginx设置
查看>>