Ceph 定制crush map

定制化crush map简单实验

首先,查看原始osd目录树

[[email protected] ~]# ceph osd tree

# id    weight  type name       up/down reweight

-1      3.24    root default

-5      1.08            rack rack1

-2      1.08                    host bgw-os-node151

0       0.27                            osd.0   up      1

1       0.27                            osd.1   up      1

2       0.27                            osd.2   up      1

3       0.27                            osd.3   up      1

-6      1.08            rack rack2

-3      1.08                    host bgw-os-node152

4       0.27                            osd.4   up      1

5       0.27                            osd.5   up      1

6       0.27                            osd.6   up      1

7       0.27                            osd.7   up      1

-7      1.08            rack rack3

-4      1.08                    host bgw-os-node153

8       0.27                            osd.8   up      1

9       0.27                            osd.9   up      1

10      0.27                            osd.10  up      1

11      0.27                            osd.11  up      1

导出现有的crush map信息

[[email protected] ~]# ceph osd getcrushmap -o crushmap.obj

got crush map from osdmap epoch 98

对导出的map文件进行反编译

[[email protected] ~]# crushtool -d crushmap.obj -o decrushmap.obj

修改map信息

[[email protected] ~]# vim decrushmap.obj    #修改对象的权重,注意需要反编译后才能查看

<这里修改了bgw-os-node152和bgw-os-node153上osd的权重。>

# begin crush map

tunable choose_local_tries 0

tunable choose_local_fallback_tries 0

tunable choose_total_tries 50

tunable chooseleaf_descend_once 1

# devices

device 0 osd.0

device 1 osd.1

device 2 osd.2

device 3 osd.3

device 4 osd.4

device 5 osd.5

device 6 osd.6

device 7 osd.7

device 8 osd.8

device 9 osd.9

device 10 osd.10

device 11 osd.11

# types

type 0 osd

type 1 host

type 2 chassis

type 3 rack

type 4 row

type 5 pdu

type 6 pod

type 7 room

type 8 datacenter

type 9 region

type 10 root

# buckets

host bgw-os-node151 {

id -2           # do not change unnecessarily

# weight 1.080

alg straw

hash 0  # rjenkins1

item osd.0 weight 0.270

item osd.1 weight 0.270

item osd.2 weight 0.270

item osd.3 weight 0.270

}

rack rack1 {

id -5           # do not change unnecessarily

# weight 1.080

alg straw

hash 0  # rjenkins1

item bgw-os-node151 weight 1.080

}

host bgw-os-node152 {

id -3           # do not change unnecessarily

# weight 1.080

alg straw

hash 0  # rjenkins1

item osd.4 weight 0.540

item osd.5 weight 0.540

item osd.6 weight 0.540

item osd.7 weight 0.540

}

rack rack2 {

id -6           # do not change unnecessarily

# weight 1.080

alg straw

hash 0  # rjenkins1

item bgw-os-node152 weight 1.080

}

host bgw-os-node153 {

id -4           # do not change unnecessarily

# weight 1.080

alg straw

hash 0  # rjenkins1

item osd.8 weight 0.360

item osd.9 weight 0.360

item osd.10 weight 0.360

item osd.11 weight 0.360

}

rack rack3 {

id -7           # do not change unnecessarily

# weight 1.080

alg straw

hash 0  # rjenkins1

item bgw-os-node153 weight 1.080

}

root default {

id -1           # do not change unnecessarily

# weight 3.240

alg straw

hash 0  # rjenkins1

item rack1 weight 1.080

item rack2 weight 1.080

item rack3 weight 1.080

}

# rules

rule replicated_ruleset {

ruleset 0

type replicated

min_size 1

max_size 10

step take default

step chooseleaf firstn 0 type rack

step emit

}

# end crush map

对修改后的map信息进行编译

[[email protected] ~]# crushtool -c decrushmap.obj -o crushnew.obj

根据新map信息重新设置crush map

[[email protected] ~]# ceph osd setcrushmap -i crushnew.obj

查看新的osd目录树

[[email protected] ~]# ceph osd tree           #结果

# id    weight  type name       up/down reweight

-1      3.24    root default

-5      1.08            rack rack1

-2      1.08                    host bgw-os-node151

0       0.27                            osd.0   up      1

1       0.27                            osd.1   up      1

2       0.27                            osd.2   up      1

3       0.27                            osd.3   up      1

-6      1.08            rack rack2

-3      1.08                    host bgw-os-node152

4       0.54                            osd.4   up      1

5       0.54                            osd.5   up      1

6       0.54                            osd.6   up      1

7       0.54                            osd.7   up      1

-7      1.08            rack rack3

-4      1.08                    host bgw-os-node153

8       0.36                            osd.8   up      1

9       0.36                            osd.9   up      1

10      0.36                            osd.10  up      1

11      0.36                            osd.11  up      1

上面可修该的内容还有很多,可根据具体的要求进行相应的修改。

参考:http://ceph.com/docs/master/rados/operations/crush-map/#crush-map-bucket-types

时间: 2024-12-19 19:26:52

Ceph 定制crush map的相关文章

Ceph更改Crush map

操作命令: ceph osd getcrushmap -o map_old    导出map crushtool -d map_old -o map_old.txt  转化成可编辑格式 crushtool -c map_new.txt -o map_new  还原为map ceph osd setcrushmap -i map_new     将map导入ceph 更改Crush map流程: 1.修改配置文件,防止ceph自动更新crushmap echo 'osd_crush_update_

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之crush算法示例

[email protected]:~# ceph osd tree # id    weight  type name       up/down reweight -1      0.05997 root default -2      0.02998         host osd0 1       0.009995                        osd.1   up      1 2       0.009995                        osd.2

ceph

1.Ceph是分布式存储系统,支持三种接口. Object:有原生的API,而且也兼容Swift和S3的API Block:支持精简配置.快照.克隆 File:Posix接口,支持快照 Ceph也是分布式存储系统,它的特点是: 高扩展性:使用普通x86服务器,支持10~1000台服务器,支持TB到PB级的扩展. 高可靠性:没有单点故障,多数据副本,自动管理,自动修复. 高性能:数据分布均衡,并行化度高.对于objects storage和block storage,不需要元数据服务器. 目前In

让我们了解 Ceph 分布式存储

前言 最近在学习 kubernetes 过程中,想实现 pod 数据的持久化.在调研的过程中,发现 ceph 在最近几年发展火热,也有很多案例落地企业.在选型方面,个人更加倾向于社区火热的项目,GlusterFS.Ceph 都在考虑的范围之内,但是由于 GlusterFS 只提供对象存储和文件系统存储,而 Ceph 则提供对象存储.块存储以及文件系统存储.怀着对新事物的向往,果断选择 Ceph 来实现 Ceph 块存储对接 kubernetes 来实现 pod 的数据持久化. 一.初始 Ceph

zz``让我们了解 Ceph 分布式存储

https://www.cnblogs.com/yangxiaoyi/p/7795274.html 前言 最近在学习 kubernetes 过程中,想实现 pod 数据的持久化.在调研的过程中,发现 ceph 在最近几年发展火热,也有很多案例落地企业.在选型方面,个人更加倾向于社区火热的项目,GlusterFS.Ceph 都在考虑的范围之内,但是由于 GlusterFS 只提供对象存储和文件系统存储,而 Ceph 则提供对象存储.块存储以及文件系统存储.怀着对新事物的向往,果断选择 Ceph 来

Ceph概念介绍及组件介绍

一:Ceph基础介绍 Ceph是一个可靠地.自动重均衡.自动恢复的分布式存储系统,根据场景划分可以将Ceph分为三大块,分别是对象存储.块设备存储和文件系统服务. Ceph相比其它存储的优势点在于它不单单是存储,同时还充分利用了存储节点上的计算能力,在存储每一个数据时,都会通过计算得出该数据存储的位置,尽量将数据分布均衡,同时由于Ceph的良好设计,采用了CRUSH算法.HASH环等方法,使得它不存在传统的单点故障的问题,且随着规模的扩大性能并不会受到影响. 二:核心组件介绍 Ceph OSD(

打造高性能高可靠的块存储系统

块存储系统 分布式存储有出色的性能,可以扛很多故障,能够轻松扩展,所以我们使用Ceph构建了高性能.高可靠的块存储系统,并使用它支撑公有云和托管云的云主机.云硬盘服务. 由于使用分布式块存储系统,避免了复制镜像的过程,所以云主机的创建时间可以缩短到10秒以内,而且云主机还能快速热迁移,方便了运维人员对物理服务器上硬件和软件的维护. 用户对于块存储系统最直观的感受来源于云硬盘服务,现在我们的云硬盘的特点是: 每个云硬盘最大支持 6000 IOPS和170 MB/s的吞吐率,95%的4K随机写操作的

打造高性能高可靠块存储系统

块存储系统 分布式存储有出色的性能,可以扛很多故障,能够轻松扩展,所以我们使用Ceph构建了高性能.高可靠的块存储系统,并使用它支撑公有云和托管云的云主机.云硬盘服务. 由于使用分布式块存储系统,避免了复制镜像的过程,所以云主机的创建时间可以缩短到10秒以内,而且云主机还能快速热迁移,方便了运维人员对物理服务器上硬件和软件的维护. 用户对于块存储系统最直观的感受来源于云硬盘服务,现在我们的云硬盘的特点是: 每个云硬盘最大支持 6000 IOPS和170 MB/s的吞吐率,95%的4K随机写操作的