Ceph:pg peering过程分析】的更多相关文章

转自:https://www.ustack.com/blog/ceph%ef%bc%8dpg-peering/ Peering:互为副本的三个(此处为设置的副本个数,通常设置为3)pg的元数据达到一致的过程.官方解释如下: the process of bringing all of the OSDs that store a Placement Group (PG) into agreement about the state of all of the objects (and their…
集群中的设备异常(异常OSD的添加删除操作),会导致PG的各个副本间出现数据的不一致现象,这时就需要进行数据的恢复,让所有的副本都达到一致的状态. 一.OSD的故障和处理办法: 1. OSD的故障种类: 故障A:一个正常的OSD 因为所在的设备发生异常,导致OSD不能正常工作,这样OSD超过设定的时间 就会被 out出集群. 故障B: 一个正常的OSD因为所在的设备发生异常,导致OSD不能正常工作,但是在设定的时间内,它又可以正常的工作,这时会添加会集群中. 2. OSD的故障处理: 故障A:O…
优化: PG Number PG和PGP数量一定要根据OSD的数量进行调整,计算公式如下,但是最后算出的结果一定要接近或者等于一个2的指数.调整PGP不会引起PG内的对象的分裂,但是会引起PG的分布的变动三.总结PG是指定存储池存储对象的目录有多少个,PGP是存储池PG的OSD分布组合个数PG的增加会引起PG内的数据进行分裂,分裂到相同的OSD上新生成的PG当中PGP的增加会引起部分PG的分布进行变化,但是不会引起PG内对象的变动 Total PGs = (Total_number_of_OSD…
1 PG介绍pg的全称是placement group,中文译为放置组,是用于放置object的一个载体,pg的创建是在创建ceph存储池的时候指定的,同时跟指定的副本数也有关系,比如是3副本的则会有3个相同的pg存在于3个不同的osd上,pg其实在osd的存在形式就是一个目录,可以列出来看下: [root@abc ~]# ll /var/lib/ceph/osd/ceph-/current/ total drwxr-xr-x root root Sep : .11_head drwxr-xr-…
前言 性能优化大神Brendan Gregg发明了火焰图来定位性能问题,通过图表就可以发现问题出在哪里,通过svg矢量图来查看性能卡在哪个点,哪个操作占用的资源最多 在查看了原始数据后,这个分析的原理是按层级来对调用进行一个计数,然后以层级去做比对,来看横向的占用的比例情况 基于这个原理,把osd tree的数据和pg数据可以做一个层级的组合,从而可以很方便的看出pg的分布情况,主机的分布情况,还可以进行搜索,在一个简单的图表内汇聚了大量的信息 实践 获取需要的数据,这个获取数据是我用一个脚本解…
今天检查ceph集群,发现有pg丢失,于是就有了本文~~~ 1.查看集群状态 [root@k8snode001 ~]# ceph health detail HEALTH_ERR 1/973013 objects unfound (0.000%); 17 scrub errors; Possible data damage: 1 pg recovery_unfound, 8 pgs inconsistent, 1 pg repair; Degraded data redundancy: 1/29…
本系列文章会深入研究 Ceph 以及 Ceph 和 OpenStack 的集成: (1)安装和部署 (2)Ceph RBD 接口和工具 (3)Ceph 物理和逻辑结构 (4)Ceph 的基础数据结构 (5)Ceph 与 OpenStack 集成的实现 (6)QEMU-KVM 和 Ceph RBD 的 缓存机制总结 (7)Ceph 的基本操作和常见故障排除方法 (8)关于Ceph PGs https://docs.google.com/presentation/d/1_0eIWNYWvJON4Gr…
转自:https://www.ustack.com/blog/ceph-pg-fenlie/ 1 pg分裂 Ceph作为一个scalable的分布式系统,集群规模会逐渐增大,为了保证数据分布的均匀性,好的做法是在扩容时根据集群规模适当调整pg_num和pgp_num的值. PG作为Ceph数据流过程的中间层,它的数目pg_num和另一个值pgp_num(二者一般是相等的)直接影响集群的数据分布情况.pgp_num决定了多少pg会拿来存放数据,也就是说并不是所有创建出来的pg都会存放数据.理论上来…
本系列文章会深入研究 Ceph 以及 Ceph 和 OpenStack 的集成: (1)安装和部署 (2)Ceph RBD 接口和工具 (3)Ceph 物理和逻辑结构 (4)Ceph 的基础数据结构 (5)Ceph 与 OpenStack 集成的实现 (6)QEMU-KVM 和 Ceph RBD 的 缓存机制总结 (7)Ceph 的基本操作和常见故障排除方法 1. Ceph 集群的物理结构 1.1 Ceph 内部集群 从前一篇文章 我们知道,从物理上来讲,一个 Ceph 集群内部其实有几个子集群…
https://www.jianshu.com/p/36c2d5682d87 1. PG介绍 继上次分享的<Ceph介绍及原理架构分享>,这次主要来分享Ceph中的PG各种状态详解,PG是最复杂和难于理解的概念之一,PG的复杂如下: 在架构层次上,PG位于RADOS层的中间. a. 往上负责接收和处理来自客户端的请求. b. 往下负责将这些数据请求翻译为能够被本地对象存储所能理解的事务. 是组成存储池的基本单位,存储池中的很多特性,都是直接依托于PG实现的. 面向容灾域的备份策略使得一般而言的…
1. 查看PG (ceph-mon)[root@controller /]# ceph pg stat 512 pgs: 512 active+clean; 0 bytes data, 1936 MB used, 447 GB / 449 GB avail (ceph-mon)[root@controller /]# ceph pg dump 2. pg映射OSD位置 (ceph-mon)[root@controller /]# ceph pg map 3.5d osdmap e53 pg 3.…
一.概述 osd上pg的分布决定了数据分布的均匀与否,所以能直观的看到pg到osd的上分布是很有必要的: ceph只身提供了相关的命令: #ceph pg ls-by-osd.{osd_id} #for i in `ceph osd ls`; do ceph pg ls-by-osd osd.$i |awk '{print $1}' >> /tmp/aaa ;done #NOTE: 每次osd输出,第一行有一个pg_stat,需要去掉之后,就可以获取pg总数是ceph -s中 pg个数*副本数…
http://www.zphj1987.com/2016/10/19/Ceph%E4%B8%ADPG%E5%92%8CPGP%E7%9A%84%E5%8C%BA%E5%88%AB/ 一.前言 首先来一段英文关于PG和PGP区别的解释: PG = Placement GroupPGP = Placement Group for Placement purpose pg_num = number of placement groups mapped to an OSD When pg_num is…
前言 在ceph 的jewel版本以及之前的版本,通过ceph -w命令是可以拿到每秒钟ceph集群的io状态的,现在的版本是ceph -s一秒秒手动去刷,ceph -w也不监控io的状态了,有的时候需要看io是否平滑,或者恢复还剩多少,能够比较直观的去看 实际上通过简单的脚本就可以实现之前差不多的效果 每秒查看状态 [root@lab201 ~]# sh ceph-s.sh Wed Sep 9 10:44:57 CST 2020 192 pgs: 192 active+clean; 1.30G…
前言 本篇的内容实际上是另外一篇文章的字篇章,在另外一篇文章当中,将会对crush的分布的调整的做一次总结,用比较简单的方式来展示各种crush的区别 在做这个工作过程中,为了更好的能展示出效果,就有了下面的这个小工具的出现 工具来源 假如我现在想查看一个存储池内的pg的分布,那么我们需要下面的几个步骤 1.随机获取一个pg的id [root@lab101 ~]# ceph pg dump|grep ^0 后面的是存储池的编号 从输出中拿到0.196开头的这个pg 0.196 0 0 0 0 0…
一.归置组状态 1. Creating 创建存储池时,它会创建指定数量的归置组.ceph 在创建一或多个归置组时会显示 creating;创建完后,在其归置组的 Acting Set 里的 OSD 将建立互联;一旦互联完成,归置组状态应该变为 active+clean,意思是ceph 客户端可以向归置组写入数据了. 2. peering ceph 为归置组建立互联时,会让存储归置组副本的 OSD 之间就其中的对象和元数据状态达成一致.ceph 完成了互联,也就意味着存储着归置组的 OSD 就其当…
使用命令检查ceph集群的监控状态,得到 [root@node1 ~]# ceph -s cluster c4898b1c-7ac1-406d-bb5d-d3c7980de438 health HEALTH_ERR 4 pgs inconsistent; 8 scrub errors; mds cluster is degraded; mds alpha is laggy monmap e5: 1 mons at {node1=172.17.44.22:6789/0}, election epo…
结合网络.官网.手动查询等多方渠道,整理ceph维护管理常用命令,并且梳理常规命令在使用过程中的逻辑顺序.另外整理期间发现ceph 集群的命令体系有点乱,详细情况各自体验. 一:ceph集群启动.重启.停止 1:ceph 命令的选项如下: 选项简写描述 --verbose-v详细的日志. --valgrindN/A(只适合开发者和质检人员)用 Valgrind 调试. --allhosts-a在 ceph.conf 里配置的所有主机上执行,否 则它只在本机执行. --restartN/A核心转储…
格式 json 数据增强可读性 --format json-pretty -f json-pretty ceph quorum_status -f json-pretty ceph mon_status -f json-pretty ceph集群报 Monitor clock skew detected 错误问题排查 产生问题的原因,monitor的时钟同步出现时间偏差,ceph默认偏差大于0.05s就会出现这个报警. $ ceph health detail HEALTH_WARN clock…
Ceph集群管理 每次用命令启动.重启.停止Ceph守护进程(或整个集群)时,必须指定至少一个选项和一个命令,还可能要指定守护进程类型或具体例程. **命令格式如 {commandline} [options] [commands] [daemons] 常用的commandline为"ceph",对应的options如下表: 对应的commands如下表: 能指定的daemons(守护进程)类型包括mon,osd及mds. 通过SysVinit机制运行ceph: 在 CentOS.Re…
集群 启动一个ceph 进程 启动mon进程 service ceph start mon.node1 启动msd进程 service ceph start mds.node1 启动osd进程 service ceph start osd.0 查看机器的监控状态 [root@client ~]# ceph health HEALTH_OK 查看ceph的实时运行状态 [root@client ~]# ceph -w cluster be1756f2-54f7-4d8f-8790-820c8272…
一.集群 1.启动一个ceph 进程 启动mon进程 service ceph start  mon.node1 启动msd进程 service ceph start mds.node1 启动osd进程 service ceph start osd.0 2.查看机器的监控状态 [root@client ~]# ceph health HEALTH_OK 3.查看ceph的实时运行状态 [root@client ~]# ceph -w cluster be1756f2-54f7-4d8f-8790…
原文:http://michaelkang.blog.51cto.com/1553154/1698287 一:ceph集群启动.重启.停止 1:ceph 命令的选项如下: 选项简写描述 --verbose-v详细的日志. --valgrindN/A(只适合开发者和质检人员)用 Valgrind 调试. --allhosts-a在 ceph.conf 里配置的所有主机上执行,否 则它只在本机执行. --restartN/A核心转储后自动重启. --norestartN/A核心转储后不自动重启. -…
作者:张华  发表于:2014-06-23版权声明:能够随意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本版权声明 (http://blog.csdn.net/quqi99 ) Ceph理论    见我的博客:http://blog.csdn.net/quqi99/article/details/32939509 注意点: a, 一个ceph cluster至少须要1个mon节点和2个osd节点才干达到active + clean状态(故osd pool default size得…
目录 文章目录 目录 Ceph 简介 Ceph 的架构:分布式服务进程 Ceph Monitor(MON) Ceph Object Storage Device Daemon(OSD) Ceph Metadata Server(MDS)[可选] Ceph 的架构:核心组件 Ceph RADOS(Reliable, Autonomic, Distributed Object Store) LIBRADOS Ceph Reliable Block Storage(RBD) Ceph RADOS Ga…
在一个ceph集群中,操作创建一个池后,发现ceph的集群状态处于warn状态,信息如下 检查集群的信息 查看看池 [root@serverc ~]# ceph osd pool ls images #只有一个池 [root@serverc ~]# ceph osd tree ID CLASS WEIGHT TYPE NAME STATUS REWEIGHT PRI-AFF -1 0.13129 root default -5 0.04376 host serverc 2 hdd 0.01459…
一.验证OSD 1.1 osd状态 运行状态有:up,in,out,down 正常状态的OSD为up且in 当OSD故障时,守护进程offline,在5分钟内,集群仍会将其标记为up和in,这是为了防止网络抖动 如果5分钟内仍未恢复,则会标记为down和out.此时该OSD上的PG开始迁移.这个5分钟的时间间隔可以通过mon_osd_down_out_interval配置项修改 当故障的OSD重新上线以后,会触发新的数据再平衡 当集群有noout标志位时,则osd下线不会导致数据重平衡 OSD每…
一.Ceph集群的运行状态 集群状态:HEALTH_OK,HEALTH_WARN,HEALTH_ERR 1.1 常用查寻状态指令 [root@ceph2 ~]#    ceph health detail HEALTH_OK [root@ceph2 ~]# ceph -s cluster: -4e96-a7ee-980ab989d20d health: HEALTH_OK services: mon: daemons, quorum ceph2,ceph3,ceph4 mgr: ceph4(ac…
Ceph日常运维管理 集群监控管理 集群整体运行状态 [root@cephnode01 ~]# ceph -s cluster: id: 8230a918-a0de-4784-9ab8-cd2a2b8671d0 health: HEALTH_WARN application not enabled on 1 pool(s) services: mon: 3 daemons, quorum cephnode01,cephnode02,cephnode03 (age 27h) mgr: cephno…
一.数据归置概览 Ceph 通过 RADOS 集群动态地存储.复制和重新均衡数据对象.很多不同用户因不同目的把对象存储在不同的存储池里,而它们都坐落于无数的 OSD 之上,所以 Ceph 的运营需要些数据归置计划. Ceph 的数据归置计划概念主要有: 存储池( Pool ): Ceph 在存储池内存储数据,它是对象存储的逻辑组:存储池管理着归置组数量.副本数量.和存储池规则集. 要往存储池里存数据,用户必须通过认证.且权限合适,存储池可做快照.详情参见存储池. 归置组( Placement G…