ceph - crush map 与 pool

简介: 参考 openstack 与 ceph ( pool 管理 ) 常见 crush map 管理方法获得默认 crushmap (加密) ceph osd getcrushmap -o crushmap.dump转换 crushmap 格式 (加密 -> 明文格式) crushtool -d crushmap.dump -o crus

参考

openstack 与 ceph ( pool 管理 )

常见 crush map 管理方法

获得默认 crushmap (加密)
    ceph osd getcrushmap -o crushmap.dump

转换 crushmap 格式 (加密 -> 明文格式)
    crushtool -d crushmap.dump -o crushmap.txt

转换 crushmap 格式(明文 -> 加密格式)
    crushtool -c crushmap.txt -o crushmap.done

重新使用新 crushmap
    ceph osd setcrushmap -i crushmap.done

划分不同的物理存储区间, 需要以 crush map 进行定义, 如下

1 对主机进行物理空间划分
2 对主机组进行规则定义

1 物理主机划分

root default {
    id -1           # do not change unnecessarily
    # weight 264.000
    alg straw
    hash 0  # rjenkins1
    item 240.30.128.33 weight 12.000
    item 240.30.128.32 weight 12.000
    item 240.30.128.215 weight 12.000
    item 240.30.128.209 weight 12.000
    item 240.30.128.213 weight 12.000
    item 240.30.128.214 weight 12.000
    item 240.30.128.212 weight 12.000
    item 240.30.128.211 weight 12.000
    item 240.30.128.210 weight 12.000
    item 240.30.128.208 weight 12.000
    item 240.30.128.207 weight 12.000
    item 240.30.128.63 weight 12.000
    item 240.30.128.34 weight 12.000
    item 240.30.128.35 weight 12.000
    item 240.30.128.36 weight 12.000
    item 240.30.128.37 weight 12.000
    item 240.30.128.39 weight 12.000
    item 240.30.128.38 weight 12.000
    item 240.30.128.58 weight 12.000
    item 240.30.128.59 weight 12.000
    item 240.30.128.60 weight 12.000
    item 240.30.128.29 weight 12.000
}

root registry {
    id -26
    # weight 36.000
    alg straw
    item 240.30.128.206 weight 12.000
    item 240.30.128.40 weight 12.000
    item 240.30.128.30 weight 12.000
}

说明

上面划分了两个物理区域
1. root 区域, 包含了 264TB 空间
2. registry 区域,  包含了 36TB 空间

需要注意的问题:

建议在存放数据前就对物理池进行规划, 否则会出现大量数据迁移现象, 或者会出现 osd full 现象

2. 规则划分

rule replicated_ruleset {
    ruleset 0
    type replicated
    min_size 1
    max_size 10
    step take default
    step chooseleaf firstn 0 type host
    step emit
}

rule registry_ruleset {
    ruleset 1
    type replicated
    min_size 2
    max_size 3
    step take registry
    step chooseleaf firstn 0 type host
    step emit
}

pool 创建, 删除方法

创建

 ceph osd  pool  create  volumes 10240 10240
 ceph osd  pool  create  paas 2048 2048

删除

ceph osd pool delete paas paas --yes-i-really-really-mean-it

查询

[root@hh-ceph-128215 ~]# ceph osd dump | grep replica
pool 0 'rbd' replicated size 3 min_size 2 crush_ruleset 0 object_hash rjenkins pg_num 64 pgp_num 64 last_change 6655 flags hashpspool stripe_width 0
pool 1 'volumes' replicated size 3 min_size 2 crush_ruleset 0 object_hash rjenkins pg_num 10240 pgp_num 10240 last_change 634 flags hashpspool stripe_width 0
pool 4 'pppoe' replicated size 3 min_size 2 crush_ruleset 1 object_hash rjenkins pg_num 512 pgp_num 512 last_change 7323 flags hashpspool stripe_width 0

注意:
replicated size = 副本数量
crush_ruleset = 对应物理池规则(crush map)

指定

ceph osd pool set paas crush_ruleset 1
目录
相关文章
|
块存储
Ceph实验室:第八课:查看Ceph CRUSH map
查看CRUSH map及原理解释
3738 0
|
存储 算法 固态存储
ceph之crush map
编辑crush map:   1、获取crush map;   2、反编译crush map;   3、至少编辑一个设备,桶, 规则;   4、重新编译crush map;    5、重新注入crush map; 获取crush  map   要获取集群的crush map,执行命令...
1336 0
|
6月前
|
Dart
Dart之集合详解(List、Set、Map)
Dart之集合详解(List、Set、Map)
|
3月前
|
Go 定位技术 索引
Go 语言Map(集合) | 19
Go 语言Map(集合) | 19
|
3月前
|
存储 前端开发 API
ES6的Set和Map你都知道吗?一文了解集合和字典在前端中的应用
该文章详细介绍了ES6中Set和Map数据结构的特性和使用方法,并探讨了它们在前端开发中的具体应用,包括如何利用这些数据结构来解决常见的编程问题。
ES6的Set和Map你都知道吗?一文了解集合和字典在前端中的应用
|
4月前
|
存储 安全 Java
java集合框架复习----(4)Map、List、set
这篇文章是Java集合框架的复习总结,重点介绍了Map集合的特点和HashMap的使用,以及Collections工具类的使用示例,同时回顾了List、Set和Map集合的概念和特点,以及Collection工具类的作用。
java集合框架复习----(4)Map、List、set
|
4月前
|
Java
【Java集合类面试二十二】、Map和Set有什么区别?
该CSDN博客文章讨论了Map和Set的区别,但提供的内容摘要并未直接解释这两种集合类型的差异。通常,Map是一种键值对集合,提供通过键快速检索值的能力,而Set是一个不允许重复元素的集合。
|
4月前
|
算法 Java 索引
【Java集合类面试四】、 描述一下Map put的过程
这篇文章详细描述了HashMap中put操作的过程,包括首次扩容、计算索引、插入数据以及链表转红黑树和可能的再次扩容。
【Java集合类面试四】、 描述一下Map put的过程
|
4月前
|
存储