Ceph PG

概述

为了实现不同存储池之间的策略隔离,以及针对不同用途的存储池指定不同的容灾策略,ceph crush使用中间结构即Placement Group(后续均以PG简称)将应用数据对象进行映射后,写入OSD本地存储设备。PG也是我们日常运维当中,操作最多、关注最多、数据恢复和迁移的基本单位。

pg dump

以下几个pg信息中较常用的一些概念

pgid

pg唯一标识,由poolid+pg编号组成。

Acting set

一组osd组合,类似[0,1,2],代表osd.0,osd.1,osd.2这三个osd,代表这组osd当前正承担这个pg对应的副本,该组合是根据osd状态变化、历史pg归属等选择出来的(并非crush直接计算得出,有别于up set)。

Up set

根据crush 计算出来的osd组合,也表示该pg正常状态下应当由哪些osd承担副本,一般通过比对Up set和Acting set就可以得知该pg的大概状态。一般来说up set与acting set的osd组合一致。(表示集群当前承担数据的osd与计算得出应该存在的osd时一致的)。高版本后引入upmap工具,可以重映射或更改up set,从而实现pg迁移。
简单理解,集群的pg数据恢复,就是acting set 变为和up set一致且osd中对象完整的过程。

primary

up set和acting set组合中的一个osd,对应pg为主pg,osd即为主osd

replica

除了主osd外,副本组合中的其他osd成员

backfill

backfill的本质可以理解为pg的全量复制,往往是pg peering完成后,如果基于权威日志无法进行增量同步(坏盘,本身盘离线太久,或者新osd本身就没有日志和数据,pg的整体迁移),就会将acting primary中所有对象进行全量复制的方式进行同步恢复。
backfill是集群数据恢复非常重要的方式之一,该过程对集群的数据一致性,集群稳定性,业务性能都有重大意义。

recovery

同样也是集群数据恢复的方式之一,如果集群权威日志足够进行增量同步,副本间数据差异较小(常见于osd重启等),当peering成功完成后,对pg中的降级对象进行增量同步,最终达到clean状态。

epoch

osdmap版本号,集群monitor角色生成,是会不断增长的正整数。
epoch递增表示集群的osdmap发生了变化,该变化会通知到所有的客户端和osd。需要注意的是,集群中所有的osd的osdmap应该一致,即使这些osd不同属一个pool或者归置组。
通过osd status可以看到osd最老和最新的epoch版本号,两者间的差值即为osd一共保存的osdmap个数,一般来说在两千以内。(osdmap保存需要占用实际硬盘空间,而且每个osd都需要保存osdmap,所以需要控制该数量)。正常情况下,最老的版本会自动删除,向最新的靠近,当集群有osd异常时,osdmap会一直保留(认为离线和异常的osd还会重新up,因此会等待老版本osdmap),此时需要注意osdmap占用和集群健康问题。
此外在osd.log,osd init和start过程中,也经常能看到类似,"src have [1000,2000],i have 600 epoc"之类的日志,当该osdmap与集群同步后,该osd才能正常进入up 状态。

log

记录所有客户端写的简略信息,作为集群异常时,recovery的依赖

peering

归属同一个pg的所有副本队pg存储的所有对象和状态进行判断和达成一致的过程。一般peering后,pg会进入active状态,以接受客户端的读写请求。

pg temp

为避免业务中断,用来进行业务过度的临时机制。例如,当扩容新osd时,根据 crush计算,up primary为新osd,然后此时新osd上还没有pg数据,此时就需要选择有该完整副本的osd加入pg temp。由这些临时副本处理客户端的读写请求,指导副本全部同步完成。

常见pg状态

  • active:pg可以处理客户端读写请求
  • activing:pg peering结束,正在等待副本同步和返回peering结果
  • backfilling:正在进行副本的全量同步
  • backfill_wait:位于backfill队列中,等待系统资源
  • backfill-toofull:需要进行全量复制的osd空间不足(一般集群的backfill_full_ratio默认为90%)
  • clean:pg中所有副本都在线,且数据一致
  • creating:一般是刚创建pool时,pg正在创建
  • degraded:pg中有降级对象,或该pg所在的osd组合低于对应存储池的size,例如三副本pool,某个pg有一个osd离线
  • down:peering时,发现存活的副本不足以完成数据恢复
  • incomplete:peering时,无法选出权威日志,或acting set无法完成数据恢复(不完整)
  • inconsistent:集群scrub时,发现某些对象在副本之间有差异(不一致)
  • recovering:根据日志对降级对象进行数据恢复
  • remapped:pg重映射,up set与acting set不一致,常发生于pg迁移,重平衡过程
  • scrubbing:pg正在进行scrub
  • stale:pg所在主osd没有想monitor更新pg相关信息,或者osd down后没有切换到新osd进行io。
  • undersized:当前acting中副本数小于存储池副本数。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/5381.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

常见的 HTML 标准

常见的 HTML 标准 常见的 HTML 标准发布历史 HTML(Hypertext Markup Language)有多个版本和标准。以下是一些常见的 HTML 标准: HTML 2.0:于1995年发布,是 HTML 的第一个正式标准。HTML 3.2:于1997年发布…

刷代码随想录有感(50):路径总和

题干: 代码; class Solution { public:bool traversal(TreeNode* node, int count){if(node NULL)return false;if(!node -> left && !node -> right && count 0)return true;if(!node -> left && !node -> right &&…

python挑战10秒小程序

目录 一.前言 二.代码 三.分析 一.前言 >1.小程序开始时,会出现一个倒计时器,从10秒开始。 >2.玩家需要集中注意力并估计10秒钟过去的时间。 >3.当玩家认为10秒钟已经过去时,需要点击屏幕上的按钮。 >4.小程序会显示玩家的点击时间,以及与实际10秒钟的时间…

wetrtc简介

WebRTC(Web Real-Time Communication)是一种实时通信技术,它允许网络应用或站点在无需中间媒介的情况下,直接在浏览器之间建立点对点(Peer-to-Peer)的连接,实现音频、视频流或其他任意数据的实时…

泰勒创造力达到顶峰?(上)

hello,大家好!今天看一篇经济学人的一篇评论,说的是泰勒斯威夫特当前的创造力。经济学人总是语不惊人死不休,看看它对这位音乐天才做了怎样的评价。 事先声明哈,本文就是一种英语学习类讲述,没带任何个人色彩&#xff…

网络舆情分析:利用自然语言处理(NLP)洞察公众情绪

🌐 网络舆情分析:利用自然语言处理(NLP)洞察公众情绪 📊 概述 在数字化时代,公众情绪和舆论对企业品牌、政治决策乃至社会趋势都有着深远的影响。通过自然语言处理(NLP)技术&#…

北京金融大数据有限公司X百望云签署战略合作协议 共同发布“金数数据要素流通云平台”

随着数据资产与数据要素相关政策密集出台,资本与实业企业均跃跃欲试。但因为没有龙头企业的方案引领和成熟的落地实践,市场呈谨慎观望态势,热度无处安放。 北京金融大数据有限公司(以下简称“金融大数据公司”)作为市…

动手学深度学习——softmax分类

1. 分类问题 回归与分类的区别: 回归可以用于预测多少的问题, 比如"预测房屋被售出价格",它是个单值输出。softmax可以用来预测分类问题,例如"某个图片中是猫、鸡还是狗?",这是一个多…

深入理解正则表达式:从入门到精通

title: 深入理解正则表达式:从入门到精通 date: 2024/4/30 18:37:21 updated: 2024/4/30 18:37:21 tags: 正则Python文本分析日志挖掘数据清洗模式匹配工具推荐 第一章:正则表达式入门 介绍正则表达式的基本概念和语法 正则表达式是一种用于描述字符串…

Bert基础(二十一)--Bert实战:文本摘要

一、介绍 1.1 文本摘要简介 文本摘要(Text Summarization),作为自然语言处理(NLP)领域的一个分支,其核心目标是从长篇文档中提取关键信息,并生成简短的摘要,以提供对原始内容的高度…

Go语言map

map 概念 在Go语言中,map 是一种内建的数据结构,它提供了一种关联式的存储机制,允许你以键值对的形式存储数据。每个键都是唯一的,并且与一个值相关联。你可以通过键来查找、添加、更新和删除值,这类似于其他编程语言…

MAKEFILE 从易到难

相信一个简单的makefile, 只要用过C语言的都能写出来。 但是如果工程中包含了几十个文件夹, 上万个文件, 那用一般的方式就搞不定了。 在用dpdk 的时候, 会经常修改makefile要适配我们的工程。 最开始也是用dpdk中自带的makefil…

wpf 树形结构

Simplifying the WPF TreeView by Using the ViewModel Pattern - CodeProject 【原创】WPF TreeView带连接线样式的优化(WinFrom风格) - iDream2016 - 博客园 (cnblogs.com)

Android 音视频播放器 Demo(二)—— 音频解码与音视频同步

音视频编解码系列目录: Android 音视频基础知识 Android 音视频播放器 Demo(一)—— 视频解码与渲染 Android 音视频播放器 Demo(二)—— 音频解码与音视频同步 RTMP 直播推流 Demo(一)—— 项目…

selenium截屏代码

六、截屏应用场景:失败截图,让错误看的更直观方法: driver.get_screenshot_as_file(imgepath)参数:imagepath:为图片要保存的目录地址及文件名称如: 当前目录 ./test.png上一级目录 ../test.png扩展&#x…

Qt+Ubuntu20.04:打包qt

打包程序 参考 qt项目在Linux平台上面发布成可执行程序.run_qt.run不是虚拟机的配置文件-CSDN博客 Linux下Qt程序的打包发布(1)-不使用第三方工具 - 知乎 (zhihu.com) 过程 1、Release编译 先将你的程序在release下编译通过,保证下面打包的程序是你最新的。 2…

C#调用skiasharp操作并绘制图片

之前学习ViewFaceCore时采用Panel控件和GDI将图片及识别出的人脸方框和关键点绘制出来,本文将其修改为基于SKControl和SKCanvas实现相同的显示效果并支持保存为本地图片。   新建Winform项目,在Nuget包管理器中搜索并安装一下SkiaSharp和ViewFaceCore…

【AI工具合集】图片、文本、音视频工具与A I岗位面试资料

1、AI 工具集合 全球最新热门 Al 工具, AI 工具整合包,可以下载并在 Windows 系统私有化本地化运行,包括图片、文本、视频、音频等工具资源,按照功能、业务和行业来分类。 1.1 AI 图片工具 MoneyPrinter:一键生成短…

HTTP 多个版本

了解一下各个版本的HTTP。 上个世纪90年代初期,蒂姆伯纳斯-李(Tim Berners-Lee)及其 CERN的团队共同努力,制定了互联网的基础,定义了互联网的四个构建模块: 超文本文档格式(HTML) …

Linux基础——Linux开发工具(上)_vim

前言:在了解完Linux基本指令和Linux权限后,我们有了足够了能力来学习后面的内容,但是在真正进入Linux之前,我们还得要学会使用Linux中的几个开发工具。而我们主要介绍的是以下几个: yum, vim, gcc / g, gdb, make / ma…