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_decompiled_file -o newcrushmap

  • 将新CRUSH map导入集群中
    [root@ceph ceph]# ceph osd setcrushmap -i newcrushmap

    [root@ceph ceph]# cat crushmap_decompiled_file

# begin crush map
tunable choose_local_tries 0
tunable choose_local_fallback_tries 0
tunable choose_total_tries 50
tunable chooseleaf_descend_once 1
tunable chooseleaf_vary_r 1
tunable straw_calc_version 1

# devices
device 0 osd.0
device 1 osd.1
device 2 osd.2

# 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 ceph-node1 {
	id -2		# do not change unnecessarily
	# weight 0.000
	alg straw
	hash 0	# rjenkins1
}
host ceph {
	id -3		# do not change unnecessarily
	# weight 0.044
	alg straw
	hash 0	# rjenkins1
	item osd.2 weight 0.015
	item osd.1 weight 0.015
	item osd.0 weight 0.015
}
root default {
	id -1		# do not change unnecessarily
	# weight 0.044
	alg straw
	hash 0	# rjenkins1
	item ceph-node1 weight 0.000
	item ceph weight 0.044
}

# rules
rule replicated_ruleset {
	ruleset 0   #rule编号
	type replicated   #定义pool类型为replicated(还有esurecode模式)
	min_size 1        #pool中最小指定的副本数量不能小1
	max_size 10            #pool中最大指定的副本数量不能大于10 
	step take default #定义pg查找副本的入口点
	step chooseleaf firstn 0 type host  #选叶子节点、深度优先、隔离host
	step emit  #结束

}

# end crush map

注:

下面解释来自:https://my.oschina.net/u/2460844/blog/531722

影响crush算法结果的有两种因素,一个就是OSD Map的结构,另外一个就是crush rule。
OSDMap其实就是一个树形的结构,叶子节点是device(也就是osd),其他的节点称为bucket节点,这些bucket都是虚构的节点,可以根据物理结构进行抽象,当然树形结构只有一个最终的根节点称之为root节点,中间虚拟的bucket节点可以是数据中心抽象、机房抽象、机架抽象、主机抽象等。

上图中红色框内的节点都是bucket节点,这些节点都是根据实际情况进行抽象得来的。
其实也就是实际中整个物理拓扑结构。这个拓扑里的每个节点都有一个权重值,这个权重值等于所有子节点的权重之和,叶子节点的重量由osd的容量决定,一般设定1T的权重为1。
对于bucket节点不只是虚设的节点,bucket同样有type。bucket的type有四种类型结构,uniform、list、tree、straw。这四种bucket有着不同的特性,bucket的type设定同样也影响着crush算法。不同 类型定位数据在哪个子节点的过程不同。
crush rule主要作用:
1 从OSD Map中的哪个节点开始查找
2 使用那个节点作为故障隔离域
3 定位副本的搜索模式(广度优先 or 深度优先)

时间: 2024-09-20 01:12:29

Ceph实验室:第八课:查看Ceph CRUSH map的相关文章

Ceph实验室:第二课:集成ceph与openstack

本课程介绍如何配置ceph作为Nova的后端存储,用来存放vm的临时磁盘. 集成ceph与Openstack Nova 安装ceph客户端集成ceph与Openstack的第一步就是要在openstack的节点上安装ceph客户端(一些ceph命令行工具和连接ceph集群需要的libraries). $ ceph-deploy install --cli --no-adjust-repos openstack $ ceph-deploy config push openstack 创建pool

Ceph实验室:第一课:快速部署ceph集群

本次实验演示如何快速地在centos上部署ceph分布式存储集群.目标是在ceph-node1和ceph-node2上创建一个两节点的集群. 环境 硬件环境 主机名 IP 功能 备注 ceph-node1 192.168.1.120 deploy,mon*1,osd*3 ceph-node2 192.168.1.121 deploy,mon*1,osd*3 ceph-node3 192.168.1.122 横向扩展节点 cloud 192.168.1.102 openstack ocata te

Ceph实验室:第四课:Ceph监控

本课程演示如何监控一个Ceph集群.我们将学习如何用ceph的命令行工具进行监控. 监控集群的整体状态 健康状态 ceph命令的health选项查看集群的健康状态. # ceph health detail HEALTH_WARN clock skew detected on mon.ceph-node2; Monitor clock skew detected mon.ceph-node2 addr 192.168.1.121:6789/0 clock skew 0.194536s > max

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之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 实验室:概述

本实验室目标是构建一个完整的Ceph学习,开发环境,帮助立志学习Ceph的同学们,快速入门,快速提高! 包括博客文字部分和录制的相关视频.主要内容包括: 快速部署一个ceph集群 ceph与Openstack ocata的集成 ceph集群横向扩展 ceph集群管理 ceph集群问题解决 ceph集群性能调优 ceph集群原理 云计算存储理论深入解析 实验室环境      在ubuntu16操作系统上用vagrant起动五台vm构成了实验室环境.为了保证Openstack aio能正常运行,最好

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 重

Ceph分布式存储实战1.2 Ceph的功能组件

1.2 Ceph的功能组件 Ceph提供了RADOS.OSD.MON.Librados.RBD.RGW和Ceph FS等功能组件,但其底层仍然使用RADOS存储来支撑上层的那些组件,如图1-2所示.   图1-2 Ceph功能组件的整体架构 下面分为两部分来讲述Ceph的功能组件. (1)Ceph核心组件 在Ceph存储中,包含了几个重要的核心组件,分别是Ceph OSD.Ceph Monitor和Ceph MDS.一个Ceph的存储集群至少需要一个Ceph Monitor和至少两个Ceph的O

Ceph分布式存储实2.1 Ceph功能模块与RADOS

存储基石RADOS 分布式对象存储系统RADOS是Ceph最为关键的技术,它是一个支持海量存储对象的分布式对象存储系统.RADOS层本身就是一个完整的对象存储系统,事实上,所有存储在Ceph系统中的用户数据最终都是由这一层来存储的.而Ceph的高可靠.高可扩展.高性能.高自动化等特性,本质上也是由这一层所提供的.因此,理解RADOS是理解Ceph的基础与关键. Ceph的设计哲学如下. 每个组件必须可扩展. 不存在单点故障. 解决方案必须是基于软件的. 可摆脱专属硬件的束缚即可运行在常规硬件上.