ceph - crush map 与 pool

参考

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
时间: 2024-09-07 21:14:16

ceph - crush map 与 pool的相关文章

Ceph实验室:第八课:查看Ceph CRUSH map

查看CRUSH map 从monitor节点上获取CRUSH map [root@ceph ceph]# ceph osd getcrushmap -o crushmap_compiled_file 反编译CRUSH map [root@ceph ceph]# crushtool -d crushmap_compiled_file -o crushmap_decompiled_file 修改完成后,我们需要编译他 [root@ceph ceph]# crushtool -d crushmap_d

ceph之crush map

 编辑crush map: 1.获取crush map: 2.反编译crush map: 3.至少编辑一个设备,桶, 规则: 4.重新编译crush map: 5.重新注入crush map: 获取crush  map 要获取集群的crush map,执行命令: ceph osd  getcrushmap -o {compiled-crushmap-filename} ceph将crush输出(-o)到你指定的文件,由于crush map是已编译的,所以需要反编译: 反编译crush map 要

ceph - 索引

架构与部署 openstack 与 ceph (架构) openstack 与 ceph (monitor初始化) openstack 与 ceph (osd 部署) openstack 与 ceph ( pool 管理 ) openstack 管理二十二 - cinder 连接多个存储 backend openstack 管理二十三 - nova compute 连接 ceph 集群 ceph - crush map 与 pool ceph - 更改 ceph journal 位置 故障与测试

Ceph实验室:第五课:Ceph运维之换盘

在ceph集群里,磁盘出故障是不可避免,所以替换故障磁盘成为ceph日常运维不断重复的任务.本课程演示如何替换一个故障盘. 定位故障磁盘 #MegaCli -PDList -aALL|grep "Media Error" Enclosure Device ID: 0 Slot Number: 3 Enclosure position: 0 Device Id: 2 Sequence Number: 2 Media Error Count: 227 <- 物理故障 Other Er

ceph - 扩容记录

时间点与步骤 事件 相关信息 相关机器 详细信息 12/15 10:00 服务器重装,把原来 glusterfs 服务器重装成 el7 240.30.128.54,240.30.128.71,240.30.128.72 利用 kickstart 重装 12/15 11:30 基础配置 维护系统常用基础配置 240.30.128.54,240.30.128.71,240.30.128.72 详情参考 p1 12/16 01:00 ceph 基础配置 配置 ceph 基础信息 240.30.128.

openstack 与 ceph ( pool 管理 )

目标 管理 ceph 中的存储池, 保留 rbd 池, 创建 volumes 池, 删除其他存储池, 增加 pg_num 数量 查询当前池方法 [root@hh-yun-ceph-cinder015-128055 ~]# ceph osd lspools 0 data,1 metadata,2 rbd, 删除 data, metadata 池 [root@hh-yun-ceph-cinder015-128055 ~]# ceph osd pool delete metadata metadata

Ceph分布式存储实战3.3 CRUSH关系分析

3.3 CRUSH关系分析 从本质上讲,CRUSH算法是通过存储设备的权重来计算数据对象的分布的.在计算过程中,通过Cluster Map(集群映射).Data Distribution Policy(数据分布策略)和给出的一个随机数共同决定数据对象的最终位置. 1. Cluster Map Cluster Map记录所有可用的存储资源及相互之间的空间层次结构(集群中有多少个机架.机架上有多少服务器.每个机器上有多少磁盘等信息).所谓的Map,顾名思义,就是类似于我们生活中的地图.在Ceph存储

Ceph之数据分布:CRUSH算法与一致性Hash

转自于:http://www.cnblogs.com/shanno/p/3958298.html?utm_source=tuicool 数据分布是分布式存储系统的一个重要部分,数据分布算法至少要考虑以下三个因素: 1) 故障域隔离.同份数据的不同副本分布在不同的故障域,降低数据损坏的风险: 2) 负载均衡.数据能够均匀地分布在磁盘容量不等的存储节点,避免部分节点空闲部分节点超载,从而影响系统性能: 3) 控制节点加入离开时引起的数据迁移量.当节点离开时,最优的数据迁移是只有离线节点上的数据被迁移

ceph GLOSSARY

ceph文档里术语较多, 为了方便理解, 最好先了解一下ceph的术语. 以下摘自ceph doc, 少了PG. PG placement group      PG, 存储 object 的逻辑组. PG存储在OSD中. OSD包含journal和data. 写完journal后返回ack确认数据安全性.      一般journal使用SSD来存储, 需要高的响应速度(类型postgresql xlog)      Ceph stores a client's data as objects