ceph crushmap

实验环境中修改后的crushmap如下:

# 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

# 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 osd0 {
	id -2		# do not change unnecessarily
	# weight 0.020
	alg straw
	hash 0	# rjenkins1
	item osd.0 weight 0.010
	item osd.1 weight 0.010
}
host osd1 {
	id -3		# do not change unnecessarily
	# weight 0.020
	alg straw
	hash 0	# rjenkins1
	item osd.2 weight 0.010
	item osd.3 weight 0.010
}
host osd2 {
	id -4		# do not change unnecessarily
	# weight 0.020
	alg straw
	hash 0	# rjenkins1
	item osd.4 weight 0.010
	item osd.5 weight 0.010
}

host osd3 {
	id -5
	alg straw
	hash 0
	item osd.0 weight 0.010
	item osd.2 weight 0.010
	item osd.4 weight 0.010
}

root default {
	id -1		# do not change unnecessarily
	# weight 0.060
	alg straw
	hash 0	# rjenkins1
#     	item osd0 weight 0.020
#	item osd1 weight 0.020
#	item osd2 weight 0.020
	item osd3 weight 0.030
}

# rules
rule replicated_ruleset {
	ruleset 0
	type replicated
	min_size 1
	max_size 10
	step take default
	step chooseleaf firstn 0 type osd
	step emit
}
# end crush map

这里我自定义了一个osd3,osd3中包含了其他3台机器中的各一块盘。然后在默认桶中加入osd3,修改rule,需要注意的是,rule中的type要改成osd!

按照以上套路,就可以很方便的定义自己的crushmap了。

ceph crushmap

时间: 2024-10-21 04:16:52

ceph crushmap的相关文章

Openstack 之 kolla 部署ceph

如果首次安装没有使用ceph作为存储,同样也可以重新部署为存储使用ceph,注意,在本例中,重新部署后,所有的后端存储都使用ceph,包括虚拟机文件.cinder.glance.对象存储.另外,本示例的前提是一开始就使用kolla作为部署工具. 下面是简单步骤: 1.增加一块硬盘,/dev/sdb,然后分区: parted /dev/sdb -s -- mklabel gpt mkpart KOLLA_CEPH_OSD_BOOTSTRAP 1 -1 查看结果: parted /dev/sdb p

007 Ceph手动部署单节点

前面已经介绍了Ceph的自动部署,本次介绍一下关于手动部署Ceph节点操作 一.环境准备 一台虚拟机部署单节点Ceph集群 IP:172.25.250.14 内核: Red Hat Enterprise Linux Server release 7.4 (Maipo) 磁盘:/dev/vab,/dev/vac,/dev/vad 二.部署mon 2.1 安装Ceph软件包 [root@cepe5 ~]#  yum install -y ceph-common ceph-mon ceph-mgr c

Ceph剔除主机,Crushmap遗留脏数据

背景: 1. 一个集群总共有5台主机(Host11,Host12,Host13,Host14,Host16),由于资源过剩,需要剔除两台主机用于其他用途,host11-13都是monitor+node,Pool的副本数目是2.所以优先考虑剔除主机14和16 操作步骤: 1. Monitor操作,将OSD的状态设置Out 2. 登录对应OSD节点 ,停止OSD守护进程 3. Crushmap中删除OSD 4. 删除OSD的认证信息 5. 登录对应OSD节点 ,取消挂载文件系统 注意事项: 1. 由

015 Ceph管理和自定义CRUSHMAP

一.概念 1.1 Ceph集群写操作流程 client首先访问ceph monitor获取cluster map的一个副本,知晓集群的状态和配置 数据被转化为一个或多个对象,每个对象都具有对象名称和存储池名称 以PG数为基数做hash,将对象映射到一个PG 根据计算出的PG,再通过CRUSH算法得到存放数据的一组OSD位置(副本个数),第一个是主,后面是从 客户端获得OSD ID,直接和这些OSD通信并存放数据 注: 以上所有操作都是在客户端完成 的,不会影响ceph集群服务端性能 1.2 Cr

ceph集群osd故障修复实例演示

集群安装方式:1: ceph-deploy 方式安装ceph集群,模拟osd磁盘损坏: 分别采用如下两种方式修复: 1:使用ceph-deploy 方式修复故障osd: 2:手动修复故障osd: #######使用ceph-deploy方式修复过程演示######## 1:停止osd/etc/init.d/ceph stop osd.3 2:查看osd磁盘挂载情况:[[email protected] ceph]# lsblk NAME   MAJ:MIN RM  SIZE RO TYPE MO

ceph cache pool配置

0.引入 本文介绍如何配置cache pool tiering. cache pool的作用是提供可扩展的cache,用来缓存ceph的热点数据或者直接用来作为高速pool.如何建立一个cache pool:首先利用ssd盘做一个虚拟的bucket tree, 然后创建一个cache pool,设置其crush映射rule和相关配置,最后关联需要用到的pool到cache pool. 1.建立ssd bucket tree 这是新增ssd bucket(vrack)后的osd tree.其中os

ceph

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

Ceph架构及性能优化

对分布式存储系统的优化离不开以下几点: 1. 硬件层面 硬件规划 SSD选择 BIOS设置 2. 软件层面 Linux OS Ceph Configurations PG Number调整 CRUSH Map 其他因素 硬件层面 1.  CPU ceph-osd进程在运行过程中会消耗CPU资源,所以一般会为每一个ceph-osd进程绑定一个CPU核上. ceph-mon进程并不十分消耗CPU资源,所以不必为ceph-mon进程预留过多的CPU资源. ceph-msd也是非常消耗CPU资源的,所以

CEPH之osd批量创建

一直出差都没时间写了... 今天创建150个osd,发现手动写ceph.conf有点头大,研究了下vim的递增功能. 很简单就是一条命令: :let i=0|g/REG/s//\=i/|let i=i+1 它可以匹配你文本中的REG,然后按照你i+n,每次递增加+n 上面这条命令的作用就是,查找文本中的REG字符,然后从第一个开始替换成0,然后依次+1 这样在ceph.conf中,我们可以首先复制出来150个[osd.gggg],然后在使用上面的命令来递增,同时vim还支持ctrl+A来对数字+