Ceph 不同的osd盘 创建不同类型的pool

分布式存储ceph集群osd容量不一致或不同节点osd数量不一致的处理方法,避免集群节点卡死 因分布式存储ceph集群可加入任意大小和性能的磁盘,所以我们误以为可以随意添加osd,只需要平衡一下weight值就行, 但实际操作中是会出现各种麻烦的,数据平衡或者恢复时可能造成节点直接卡死。 阅读详情
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.youkuaiyun.com/zuopiezia/article/details/102394022

###查看crushmap


 
  1. [root@ceph01 ~]# ceph osd getcrushmap -o crushmap .txt
  2. 97
  3. [root@ceph01 ~]# crushtool -d crushmap .txt -o crushmap-decompile
  4. [root@ceph01 ~]# ls
  5. anaconda-ks .cfg crushmap-decompile crushmap .txt


# types bucket(桶)的类型有11 种,
 


 
  1. type 0 osd
  2. type 1 host
  3. type 2 chassis
  4. type 3 rack
  5. type 4 row
  6. type 5 pdu
  7. type 6 pod
  8. type 7 room
  9. type 8 datacenter
  10. type 9 region
  11. type 10 root

 

###查看 osd 设备类型


 
  1. [ root@ceph01 ~]# ceph osd crush class ls-osd hdd
  2. 0
  3. 1
  4. 2
  5. 3
  6. 4
  7. 5
  8. 6
  9. 7


###删除某些osd设备类型


 
  1. [ root@ceph01 ~]# ceph osd crush rm-device- class 0
  2. done removing class of osd(s): 0
  3. [ root@ceph01 ~]# ceph osd crush rm-device- class 2
  4. done removing class of osd(s): 2
  5. [ root@ceph01 ~]# ceph osd crush rm-device- class 4
  6. done removing class of osd(s): 4
  7. [ root@ceph01 ~]# ceph osd crush rm-device- class 6
  8. done removing class of osd(s): 6


###新增osd 设备类型


 
  1. [ root@ceph01 ~]# ceph osd crush set-device- class ssd 0
  2. set osd(s) 0 to class 'ssd'
  3. [ root@ceph01 ~]# ceph osd crush set-device- class ssd 2
  4. set osd(s) 2 to class 'ssd'
  5. [ root@ceph01 ~]# ceph osd crush set-device- class ssd 4
  6. set osd(s) 4 to class 'ssd'
  7. [ root@ceph01 ~]# ceph osd crush set-device- class ssd 6
  8. set osd(s) 6 to class 'ssd'

###查看osd 类型是否修改
 


 
  1. [root@ceph01 ~]# ceph osd tree
  2. ID CLASS WEIGHT TYPE NAME STATUS REWEIGHT PRI-AFF
  3. -1 0 .39038 root default
  4. -3 0 .09760 host ceph01
  5. 1 hdd 0 .04880 osd .1 up 1 .00000 1 .00000
  6. 0 ssd 0 .04880 osd .0 up 1 .00000 1 .00000
  7. -5 0 .09760 host ceph02
  8. 3 hdd 0 .04880 osd .3 up 1 .00000 1 .00000
  9. 2 ssd 0 .04880 osd .2 up 1 .00000 1 .00000
  10. -7 0 .09760 host ceph03
  11. 5 hdd 0 .04880 osd .5 up 1 .00000 1 .00000
  12. 4 ssd 0 .04880 osd .4 up 1 .00000 1 .00000
  13. -9 0 .09760 host ceph04
  14. 7 hdd 0 .04880 osd .7 up 1 .00000 1 .00000
  15. 6 ssd 0 .04880 osd .6 up 1 .00000 1 .00000
  16. [root@ceph01 ~]#

###osd 类型 有原来的hdd 变为2个类型


 
  1. [ root@ceph01 ~] # ceph osd crush class ls
  2. [
  3. "hdd",
  4. "ssd"
  5. ]


###创建一个类型为root 的bucket
 


 
  1. [root@ceph01 ~] # ceph osd crush add-bucket ceph-ssd root
  2. added bucket ceph-ssd type root to crush map

####创建一个rule
 

[root@ceph01 ~]# ceph osd crush rule create-simple ssd ceph-ssd host firstn
 


##创建4个类型为host 的 4个bucket
 


 
  1. [root@ceph01 ~] # ceph osd crush add-bucket ceph01-ssd host
  2. added bucket ceph01-ssd type host to crush map
  3. [root@ceph01 ~] # ceph osd crush add-bucket ceph02-ssd host
  4. added bucket ceph02-ssd type host to crush map
  5. [root@ceph01 ~] # ceph osd crush add-bucket ceph03-ssd host
  6. added bucket ceph03-ssd type host to crush map
  7. [root@ceph01 ~] # ceph osd crush add-bucket ceph04-ssd host
  8. added bucket ceph04-ssd type host to crush map


##把 4个bucket 放到 类型为root 的bucket 中
 


 
  1. ##ceph osd crush move {bucket-name} {bucket-type}={bucket-name}, [...]
  2. [root@ceph01 ~] # ceph osd crush move ceph04-ssd root=ceph-ssd
  3. moved item id - 35 name 'ceph04-ssd' to location {root=ceph-ssd} in crush map
  4. [root@ceph01 ~] # ceph osd crush move ceph03-ssd root=ceph-ssd
  5. moved item id - 34 name 'ceph03-ssd' to location {root=ceph-ssd} in crush map
  6. [root@ceph01 ~] # ceph osd crush move ceph02-ssd root=ceph-ssd
  7. moved item id - 33 name 'ceph02-ssd' to location {root=ceph-ssd} in crush map
  8. [root@ceph01 ~] # ceph osd crush move ceph01-ssd root=ceph-ssd
  9. moved item id - 32 name 'ceph01-ssd' to location {root=ceph-ssd} in crush map
  10. [root@ceph01 ~] #

####把ssd 类型的盘全部移到相应的ceph0X-ssd 下面
 


 
  1. ##ceph osd crush move osd.x {bucket-type}={bucket-name}, [...]
  2. [root@ceph01 ~] # ceph osd crush move osd.0 host=ceph01-ssd
  3. moved item id 0 name 'osd.0' to location {host=ceph01-ssd} in crush map
  4. [root@ceph01 ~] # ceph osd crush move osd.2 host=ceph02-ssd
  5. moved item id 2 name 'osd.2' to location {host=ceph02-ssd} in crush map
  6. [root@ceph01 ~] # ceph osd crush move osd.4 host=ceph03-ssd
  7. moved item id 4 name 'osd.4' to location {host=ceph03-ssd} in crush map
  8. [root@ceph01 ~] # ceph osd crush move osd.6 host=ceph04-ssd
  9. moved item id 6 name 'osd.6' to location {host=ceph04-ssd} in crush map
  10. [root@ceph01 ~] #

####查看osd 分布情况
 


 
  1. [root@ceph01 ~]# ceph osd tree
  2. ID CLASS WEIGHT TYPE NAME STATUS REWEIGHT PRI-AFF
  3. -31 0 .19519 root ceph-ssd
  4. -32 0 .04880 host ceph01-ssd
  5. 0 ssd 0 .04880 osd .0 up 1 .00000 1 .00000
  6. -33 0 .04880 host ceph02-ssd
  7. 2 ssd 0 .04880 osd .2 up 1 .00000 1 .00000
  8. -34 0 .04880 host ceph03-ssd
  9. 4 ssd 0 .04880 osd .4 up 1 .00000 1 .00000
  10. -35 0 .04880 host ceph04-ssd
  11. 6 ssd 0 .04880 osd .6 up 1 .00000 1 .00000
  12. -1 0 .19519 root default
  13. -3 0 .04880 host ceph01
  14. 1 hdd 0 .04880 osd .1 up 1 .00000 1 .00000
  15. -5 0 .04880 host ceph02
  16. 3 hdd 0 .04880 osd .3 up 1 .00000 1 .00000
  17. -7 0 .04880 host ceph03
  18. 5 hdd 0 .04880 osd .5 up 1 .00000 1 .00000
  19. -9 0 .04880 host ceph04
  20. 7 hdd 0 .04880 osd .7 up 1 .00000 1 .00000
  21. [root@ceph01 ~]#


####创建一个后端类型是ssd 的pool


 
  1. [root@ceph01 ~] # ceph osd pool create pool_ssd 32 replicated ssd
  2. pool 'pool_ssd' created

###查看pool
 


 
  1. [root@ceph01 ~]# ceph osd pool ls
  2. images
  3. images2
  4. images3
  5. .rgw .root
  6. default .rgw .control
  7. default .rgw .meta
  8. default .rgw .log
  9. cephfs_data
  10. cephfs_metadata
  11. pool_ssd
  12. [root@ceph01 ~]#


##https://docs.ceph.com/docs/master/rados/operations/crush-map/#crush-map-bucket-types

ceph创建pool 概述 一个ceph集群可以有多个pool,每个pool是逻辑上的隔离单位,不同的pool可以有完全不一样的数据处理方式,比如Replica Size(副本数)、Placement Groups、CRUSH Rules、快照、所属者等。 正文 查看现有pool列表,删除默认的pool ceph osd lspools 删除默认pool rbd rados rmpool rbd rbd --yes-... 阅读详情

相关推荐

【分布式系统】Ceph应用之资源池pool管理

如果你是一篇千里马,那么请做你自己的伯乐

F12138X的博客 1838

第二课 ceph基础学习-OSD扩容换盘和集群运维

osd扩容还盘和集群运维

QnHyn 2584

Ceph 进阶系列(二):如何让某个 pool使用特定的OSD设备 (1 of 2,手动版,早于luminous版本)

从GitHub上Clone Ceph项目,我是基于(ceph version 12.2.11 luminous 版本)的代码来分析的 一、前言: 有很多场景,你需要在指定的 OSD 设备上创建 Ceph Pool。因为Ceph集群中允许使用混合类型的磁盘,比如一部分磁盘是NVME SSD,一部分是SATA HDD。如果针对某些业务需要高速磁盘SSD,而某些业务 HDD 就可以满足部署,在创建资...

Yannick Jiang 的专栏 2351

ceph的osd盘删除操作和iscsi扩展

​defaults {​​wwid 360000000000000000e00000000010001  wwid值alias data1 自定义绑定的名字path_grouping_policy failover HA模式。

qq_57747969的博客 807

ceph delete pool

注:报错原因需要加上: --yes-i-really-really-mean-it。#需要通过asock查看mon_allow_pool_delete的设置值 /查看。前言:网上的写的乱七八糟不是你抄我就是我抄你 写的完全瞎扯 简直看不下去。mon_allow_pool_delete为flase禁止删pool。注:集群有多个mon其他的mon节点也需要执行同样的操作。mon_allow_pool_delete设置。#创建一个pool用于做测试/设置分类。#再次执行删除操作(成功)释义我确实要把它给删了。

m0_59586152的博客 3284

基于ceph-deploy部署Ceph 集群

基于ceph-deploy部署Ceph 集群

m0_71593537的博客 1912

分布式存储Ceph中的逻辑结构Pool和PG

Ceph中的逻辑对象有Object、Pool、PG,本文简单介绍相关的概念以及之间的关系,PG状态变化过程等。

牧羊人的方向 6294

Ceph 中Pool、PG、OSD的关系

Pool是存储对象的逻辑分区,它规定了数据冗余的类型和对应的副本分布策略;支持两种类型:副本(replicated)和 纠删码( Erasure Code);目前我们公司内部使用的Pool都是副本类型(3副本); PG( placement group)是一个放置策略组,它是对象的集合,该集合里的所有对象都具有相同的放置策略;简单点说就是相同PG内的对象都会放到相同的硬盘上; PG是 ceph的...

专注基础架构领域 6851

ceph创建pools到指定的OSD上

生产环境中有很多场景,是需要在指定的 OSD 设备上创建 Ceph Pool,或者说需要把pool限制在指定的OSD上。因为Ceph集群中允许使用混合类型的磁盘,比如一部分磁盘是SSD,一部分是HDD。如果针对某些业务需要高速磁盘SSD,而某些业务 HDD 就可以满足部署,在创建资源池 Pool 的时候可以指定它创建在某些OSD 设备上。或者为了不影响性能,通常一套ceph集群中需要RBD块存储和...

weillee9000的博客 2940

【EtherCAT实践篇一】TwinCAT 3安装、使用

FULL(XAE)安装包:包含了XAR的功能,并能进行多种语言的编程和硬件组态,通常安装在编程电脑上;XAR安装包:包含了ADS的功能,是实时运行环境,对 TwinCAT 模块进行加载、执行、管理、实时运行与调用,通常安装在PLC中;RM安装包:在装了高版本的TwinCAT 3后,发现PLC中的TwinCAT版本较低,就需要安装相应低版本的RM安装包切换版本使用(注:4024无法使用RM安装包切换到低于4022的版本,如4020/4018/4016版本。

JXES智能生态系统 5120

GradNorm:Gradient Normalization for Adaptive Loss Balancing in Deep Multitask Networks,梯度归一化

文章目录引言gradnorm   gradnorm论文地址:https://arxiv.org/abs/1711.02257   gradnorm是一种优化方法,在多任务学习(Multi-Task Learning)中,解决 1. 不同任务loss梯度的量级(magnitude)不同,造成有的task在梯度反向传播中占主导地位,模型过分学习该任务而忽视其它任务;2. 不同任务收敛速度不一致;这两个...

Leon_winter的博客 2万+

ceph存储pg、object、pool、osd、image对应存储位置查询

pg, osd, pool 之间的一些查找方法 1. pg --> osd: 通过 pg 查找 osd ceph pg map {pgid} 2. osd --> pg: 通过 osd 查找 pg ceph pg ls-by-osd osd.{osdid} 3. pg --> pool: 通过 pg 查找 pool ceph pg dump | grep "^{po...

pansaky的博客 1万+

POWER SI仿真流程

一、打开软件Power SI二、加载PCB,可以直接使用brd文件,不用再进行格式转换三、check Stackup,与原来的PCB叠层对照一遍,检查数据加载后有没有出错。四、select Nets,加载brd文件后,可能所有的网络都处于使用状态,先在右侧net manager下面右键disable all nets,再使能需要仿真的电源网络(如果要仿真的网络没有归属到电源网络,在其上右键,选classfy as power \ground nets)

lx5213的博客 1318

ceph 指定OSD创建pool

https://my.oschina.net/wangzilong/blog/1549690 ceph集群中允许使用混合类型的磁盘,比如一部分磁盘是SSD,一部分是STAT。如果针对某些业务小高速磁盘SSD,某些业务需要STAT,在创建资源池的时候可以指定创建在某些OSD上。 基本步骤有8步: 当前只有STAT没有SSD,但是不影响实验结果。 1 获...

weixin_30950607的博客 1355

从‘炼丹’到‘讲理’:物理信息神经网络(PINN)的硬约束 vs 软约束,我该选哪个?

本文深入探讨了物理信息神经网络(PINN)中硬约束与软约束的选择策略,帮助研究者在深度学习中有效融入物理先验知识。通过对比两种约束方法的实现复杂度、数据效率和计算性能,提供了针对材料科学和流体动力学等领域的实用决策指南,并介绍了自适应约束和混合约束等前沿技术。

weixin_42535703的博客 526

OpenBmc开发2:构建开发环境

编译环境VMware + ubuntu 18.04 编译环境构建:参考OpenBmc开发1:构建开发环境 1、打开一个Ternimal,进入openbmc目录下 2、查看有哪些不同的编译配置 find meta-* -name local.conf.sample 可以看到如下编译配置 3、生成编译配置 插入TEMPLATECONF,上边查询到的配置有很多,但是有一些...

master 2万+

Ceph集群中指定OSD 创建 pool

在我们的ceph集群中,可能不只有sata盘或者ssd盘,有些时候服务器上同时插了ssd和sata盘用作osd,那如果我们按照默认的crush分布规则,那会使所有pg均分在ssd和sata盘上,造成sata盘的存储空间浪费和整个ceph集群的性能浪费,其实我们可以改变ceph的默认存储规则,来使那些io要求较高的数据存储在由ssd的osd组成的存储池上,将备份数据或者时效性要求不高的数据存储在由sata的osd组成的存储池上,既提高了性能,又可以减少较大数据量存储的成本。查看crush_rule为0。

Free雅轩的博客 1199

【速通版!语义通信基础与前沿学习计划】

🧠语义通信基础与前沿学习计划

dally2的博客 1412

ceph的pg,osd和pool之间的关系查找

使用ceph时,经常碰到某个pg有问题,但是这个pg属于哪个存储池呢,到处翻命令,在此记录下常用的几个命令,用于查找pg os和pool之间的映射关系。 1. 通过pg查找所属的pool ceph pg dump |grep "^{poolid}\." #poolid通过ceph osd pool ls detail 可查看到 2. 通过pg查找pg ceph pg ls-by-pool {poolname} 或者 ceph pg ls {poolid} 3. 通过pg查看其所在的osd

Be_Nice的博客 5430

Transformer在CV里太耗算力?手把手拆解Restormer的MDTA与GDFN模块

本文深度解析了CVPR2022最佳论文提名作品Restormer的创新模块MDTA与GDFN,有效解决了Transformer在计算机视觉领域的高计算复杂度问题。通过通道注意力降维和门控前馈网络设计,Restormer在图像恢复重建任务中显著降低计算量,同时保持高性能,为实时图像处理提供了可行方案。

weixin_30258901的博客 445

【ComfyUI】Flux 图像扩展

本文介绍了一个基于Flux扩图技术的ComfyUI工作流,能够智能扩展图像尺寸并保持内容连贯性。该流程通过扩散模型与条件编码的结合,对图像边缘进行语义填充生成,适用于艺术创作、海报设计等场景。工作流包含图像加载、外扩填充、文本编码、扩散采样等核心节点,采用Flux1-fill-dev等专业模型确保生成质量。演示效果显示,系统能自然延伸原图内容,保持风格统一。该技术可广泛应用于插画扩展、摄影增强、游戏场景构建等领域,显著提升创意工作效率。

Mr数据杨 928

ceph osd pool创建池子命令解析

为什么80%的码农都做不了架构师?>>> ...

weixin_33857230的博客 1691

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

ceph pool的创建和删除过程

ceph pool的创建和删除过程 pool的删除过程 ceph中一个pool的删除过程如下: ceph osd pool rm testpool testpool --yes-i-really-really-mean-it 命令行请求直接发送请求给monitor monitor接收的请求的处理流程如下: void Monitor::_ms_dispatch(Message *m){ ......

changtao381的专栏 1471

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

ceph 中的OSD

摘要:Ceph采用对象存储架构,数据被切分为固定大小的对象(Object),每个对象通过唯一OID标识。对象通过哈希算法映射到归置组(PG),PG作为逻辑容器优化数据寻址和迁移。多个PG组成存储池(Pool),可设置不同副本策略。数据最终通过CRUSH算法分布到OSD节点,采用主从模型保证强一致性:写操作需同步所有副本,读操作仅访问主OSD。这种设计实现了数据均匀分布和高可靠性,但可能影响写入性能,为此采用日志(journal)机制提升性能。(149字)

1257

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Ceph资源池pool管理

OSD总数 小于 5 个,官方推荐 PG数 为 1285 ~ 10 个,官方推荐 PG数 为 51210 ~ 50 个,官方推荐 PG数 为 1024大于 50 个,参考公式 PG数=( Target PGs per OSD ) x ( OSD # ) x ( %Data ) / ( Size )Target PGs per OSD :表示每个OSD对应的PG数(如近期不扩容OSD数量可设置为100,如近期要扩容OSD数量可设置为200)OSD # :表示当前OSD总数。

qq_54188720的博客 1348
上一篇: 为什么cinder-volume在删除volume时无反应
下一篇: OpenStack 的 metadata 服务机制
鲁班七十七号
博客等级 码龄10年 1粉丝 9原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值