当前位置: 首页 > article >正文

别再死记硬背Ceph架构图了!从PG、Pool到CRUSH,用大白话讲清数据到底怎么存的

从快递分拣系统理解Ceph存储PG、Pool与CRUSH的实战逻辑当你第一次看到Ceph架构图中那些密密麻麻的PG、Pool、OSD和CRUSH规则时是否感觉像在解读天书别担心这就像让一个从没见过快递分拣中心的人直接看自动化物流系统的电路图。今天我们不画架构图而是用快递行业的运作逻辑带你真正理解Ceph存储数据的核心机制。你会发现那些晦涩的术语背后其实是一套精妙的数据物流系统。1. Ceph存储的本质分布式数据物流网络想象你经营着一家全国性的电商平台每天要处理数百万订单。这些订单数据需要安全、高效地存储在全国各地的仓库OSD中。传统集中式存储就像把所有商品堆放在同一个巨型仓库——取货时排队时间长IO延迟一旦发生火灾硬件故障就全盘皆失。而Ceph的解决方案是在每个城市建立智能分仓通过算法自动优化存储路径。关键组件对照表快递系统Ceph存储核心作用分拣中心Pool存储池按商品类型划分存储区域如3C数码池、服饰池快递员OSD守护进程实际搬运和保管货物的工作人员每个OSD对应一块硬盘配送区域划分PG归置组将订单按区域分组管理如华东-001组负责上海浦东所有订单智能调度系统CRUSH算法根据实时路况集群状态动态计算最优配送路径监控大屏Monitor集群实时显示全国仓库运营状态哪些快递员休假、哪些分拣中心拥堵在实际操作中当客户端上传一个文件时Ceph会执行类似这样的物流流程文件被拆分为多个固定大小的包裹对象默认4MB每个对象获得唯一快递单号对象ID通过哈希计算确定负责的分拣中心Pool IDCRUSH算法根据当前路况选择三个配送站OSD主快递员Primary OSD签收包裹后复制给两名同事Replica OSD提示就像快递行业有三通一达不同服务类型Ceph的Pool也支持副本池Replicated和纠删码池Erasure Coded前者相当于顺丰的保价服务多副本更安全后者类似普通快递空间利用率高但恢复能力弱。2. PG归置组数据存储的网格化管理PGPlacement Group是Ceph最容易被误解的概念之一。把它想象成快递行业的网格化管理系统——将整个城市划分为若干责任区每个PG组就是负责特定区域配送的团队。这个设计解决了海量数据管理的规模化问题。PG的智能特性体现在动态负载均衡当某个区域PG订单暴增时系统会自动调整配送员OSD配置故障隔离一个配送站OSD故障只会影响其负责的特定区域PG不会导致全网瘫痪并行处理不同区域的快递团队PG可以同时工作提高整体吞吐量配置PG数量时需要遵循Goldilocks原则不多不少刚刚好# 计算公式(每个OSD目标PG数) × (OSD总数) × (池占比) / 副本数 # 示例9个OSD、占集群10%空间、3副本的池 ceph osd pool set my_pool pg_num 30 # 100×9×0.1/330常见PG配置误区错误做法后果正确方案PG数OSD数大量硬盘闲置每个OSD承载100-200个PG所有池PG数相同小池响应慢大池资源浪费按数据量比例分配PG频繁调整PG数引发大规模数据迁移提前规划使用pgcalc工具计算记得去年我们有个客户将PG数设为OSD数量的10倍结果导致每个OSD守护进程内存占用从2GB飙升到15GB简单的硬盘故障触发全集群数据迁移恢复速度从每小时1TB降至200GB这就像让一个快递员同时负责100个小区看似覆盖广实则效率低下。3. CRUSH算法智能物流调度引擎CRUSHControlled Replication Under Scalable Hashing是Ceph的高德地图它不维护路由表而是通过计算实时确定数据路径。这种去中心化设计使得Ceph集群可以扩展到数千节点。CRUSH规则示例解析# 定义故障域为机架的规则 rule my_rack_rule { id 1 type replicated min_size 1 max_size 10 step take root # 从根节点开始查找 step chooseleaf firstn 0 type rack # 选择不同机架的OSD step emit }这个规则相当于告诉物流系统从全国总仓root开始查找必须选择不同城市rack的三个分仓确保没有两个副本存放在同一城市故障域层级对比故障域级别类比意义适用场景host同一快递站点测试环境rack同一城市不同站点中小规模生产环境row同一省份不同城市大型数据中心datacenter不同省份异地多活架构实际案例某互联网金融公司最初使用host级故障域结果一次机柜断电导致3个副本中有2个位于同一机柜触发Ceph的紧急恢复模式集群性能下降70%持续6小时调整到rack级别后同样事件仅影响读取性能约15%且自动触发副本重建。4. 数据恢复Ceph的自我修复机制Ceph的恢复机制就像快递公司的灾备预案分为两种模式1. 增量恢复Recovering场景快递员短暂离线后重新上岗过程只同步离线期间的新包裹命令监控ceph pg dump | grep recovering2. 全量恢复Backfilling场景新快递员接手某个区域过程复制全部历史包裹限速配置避免影响业务ceph tell osd.* injectargs --osd-max-backfills4 ceph tell osd.* injectargs --osd-recovery-max-active6恢复过程状态机[OSD下线] -- [Degraded状态] -- 300秒超时 -- [Out状态] | | |--[5分钟内恢复]-- [Recovering]-- [Clean状态] | \-- [触发Backfill] -- [Remapped状态] -- [Clean状态]去年双十一期间我们通过以下优化将恢复时间缩短60%错峰执行恢复操作业务低峰期调整osd_recovery_sleep参数从0.1改为0.01优先恢复关键池通过设置pool recovery_priority5. 性能调优实战从理论到落地理解了核心原理后让我们看几个真实场景的优化案例案例一小文件存储优化问题某AI公司存储百万级小图片IOPS仅500分析默认4MB对象大小导致空间浪费解决方案# 调整bluestore配置 osd_bluestore_min_alloc_size 4096 # 4KB最小分配单元 osd_op_num_threads_per_shard 4 # 增加处理线程案例二混合负载优化问题同一集群同时运行VM和对象存储方案通过CRUSH规则实现物理隔离# 创建SSD规则 rule ssd_rule { id 2 type replicated step take default class ssd # 只选择SSD硬盘 step chooseleaf firstn 0 type host step emit }关键性能指标监控表指标健康阈值监控命令PG状态异常比例1%ceph pg statOSD延迟50msceph osd perf恢复IO占比30%ceph osd df内存使用率70%ceph tell osd.* heap stats记得定期检查这些物流系统健康指标就像快递公司每天查看网点吞吐量报表。某次我们发现一个OSD的延迟持续高于200ms排查后发现是硬盘S.M.A.R.T预警及时更换避免了数据丢失。

相关文章:

别再死记硬背Ceph架构图了!从PG、Pool到CRUSH,用大白话讲清数据到底怎么存的

从快递分拣系统理解Ceph存储:PG、Pool与CRUSH的实战逻辑 当你第一次看到Ceph架构图中那些密密麻麻的PG、Pool、OSD和CRUSH规则时,是否感觉像在解读天书?别担心,这就像让一个从没见过快递分拣中心的人直接看自动化物流系统的电路图…...

别再死记硬背遗传算法了!用Python实战POX/JBX交叉,搞定流水车间调度

用Python实战遗传算法:POX/JBX交叉算子解决流水车间调度问题 每次看到遗传算法的理论推导都头大?论文里的数学公式让人望而生畏?今天我们就用Python代码,手把手带你实现POX和JBX这两种经典交叉算子,解决实际的流水车间…...

企业财务数字化转型:从RPA到AI Agent的落地路径

在企业数字化转型中,财务一直是最优先落地的场景之一。原因很现实:流程标准、数据集中、效果可量化。但也正因为“好做”,很多企业对财务自动化的理解,长期停留在一个比较初级的阶段,随着AI能力的引入,财务…...

乳腺癌生存预测模型开发与实践指南

1. 乳腺癌患者生存概率模型开发指南在临床医学研究中,预测患者生存概率一直是肿瘤学领域的核心课题。乳腺癌作为全球女性最常见的恶性肿瘤,其生存率预测对治疗方案选择、预后评估和医疗资源分配都具有重要意义。本文将系统介绍如何构建一个科学可靠的乳腺…...

从ZBrush高模到游戏引擎:3dMax UV展开全流程避坑指南(含Headus UVLayout实战)

从ZBrush高模到游戏引擎:3dMax UV展开全流程避坑指南(含Headus UVLayout实战) 在次世代游戏角色与道具制作中,UV展开往往是决定贴图质量的关键环节。当艺术家们花费数十小时在ZBrush中雕琢出高精度模型后,如何将这些细…...

别再傻傻重编译了!Vivado 2023.2 与 ModelSim 10.7c 联合仿真报错 vsim-19 的快速定位与修复

从根源解决Vivado与ModelSim联合仿真中的vsim-19报错 遇到vsim-19报错时,很多工程师的第一反应是重新编译整个库——这就像发现电脑卡顿就立刻重装系统一样,虽然可能解决问题,但效率极低。本文将带你深入理解Vivado与ModelSim联合仿真的工作机…...

WarcraftHelper终极指南:让魔兽争霸3在Win10/Win11上完美运行的完整方案

WarcraftHelper终极指南:让魔兽争霸3在Win10/Win11上完美运行的完整方案 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 还在为魔兽争霸3在…...

别再死记硬背Apriori了!用Python手把手带你跑通超市购物篮分析(附完整代码和数据集)

从超市购物篮到商业洞察:Python实战Apriori算法全流程解析 走进任何一家现代超市,货架上的商品摆放绝非随意为之。当你在购买啤酒时顺手拿了一袋薯片,或是选购婴儿奶粉时带上了尿不湿,这些看似偶然的消费行为背后,隐藏…...

Qwen3-4B-Instruct部署案例:混合精度推理(AMP)开启与吞吐量提升实测

Qwen3-4B-Instruct部署案例:混合精度推理(AMP)开启与吞吐量提升实测 1. 模型概述 Qwen3-4B-Instruct-2507是Qwen3系列的端侧/轻量旗舰模型,专为高效推理和实际应用场景优化。该模型原生支持256K token(约50万字&…...

python代码:基于DDPG(深度确定性梯度策略)算法的售电公司竞价策略研究

python代码:基于DDPG(深度确定性梯度策略)算法的售电公司竞价策略研究 关键词:DDPG 算法 深度强化学习 电力市场 发电商 竞价 说明文档:完美复现英文文档,可找我看文档 主要内容: 代码主要…...

SCons构建MDK工程翻车实录:从‘No module named building’到完美运行的踩坑全指南

SCons构建MDK工程实战:从报错排查到工程定制的完整指南 第一次接触SCons构建MDK工程时,那种从满屏红色报错到最终看到"Build Complete"的成就感,至今记忆犹新。作为替代传统IDE手动配置的自动化方案,SCons确实能显著提升…...

Jetson Nano新手必看:jtop命令报错‘jetson_stats.service not active’的完整解决流程

Jetson Nano新手必看:jtop命令报错‘jetson_stats.service not active’的完整解决流程 刚拿到Jetson Nano的开发者,往往迫不及待想体验这款强大边缘计算设备的性能监控功能。作为官方推荐的系统监控工具,jtop以其直观的界面和丰富的参数展示…...

避坑指南:GD32F470的SPI FIFO与DMA刷屏时,为何屏幕会闪烁或花屏?

GD32F470 SPI DMA刷屏异常全解析:从FIFO机制到数据对齐的深度避坑指南 当你在GD32F470上实现SPI DMA刷屏时,是否遇到过屏幕闪烁、花屏或数据错位的诡异现象?这背后往往隐藏着SPI FIFO机制、DMA传输边界、数据宽度匹配等关键技术细节。本文将带…...

Windows服务器修改默认远程端口3389

修改默认远程访问端口(如Windows的RDP,默认端口3389 )可以增强系统安全性,通过避免自动化攻击和恶意扫描针对常用端口的攻击,从而保护服务器或服务免受未授权访问的风险服务器系统:Windows Server 2022 修改…...

【windows命令-网络命令、系统管理命令】

windows命令-网络命令、系统管理命令一、网络命令二、系统管理命令三、其他一、网络命令 1.ipconfig:查看本机IP信息(ipconfig /all:完整信息(MAC、DNS、DHCP等)、ipconfig /release:释放当前IP、ipconfig…...

回顾AQATrack模型遇到的问题

1.环境 (1)如果只是pytorch的版本是CPU,直接在这个环境里面去修改那个版本改为GPU就可以了,不用整个环境去打包,打包环境进行迁移的灵感💡来源于deepseek的离谱建议 具体操作步骤: 确认 CUDA …...

2026年怎么从培训学员反馈辨真假?这3个判断标准很实用

"做HR快6年,年年牵头做内部培训,每次收完学员反馈,我都头疼——哪是真满意哪是随便应付交差?以前踩过好多坑,白瞎培训预算不说,改方案也改不到点子上。今天把我摸出来的3个判断标准放这,看…...

记录生活&学习Day15深度强化学习第十六集:Advantage Actor-Critic(A2C)

生活我让Y把我拉黑了,我们应该结束了,心里好难受,觉得很可惜,不知道怎么办...五一我想去找L但是她已经拒绝我三次了,那就不去了吧...我现在不知道怎么办了,什么也做不下去。...

5款主流SaaS建站平台实测横评:兜客互动凭借全链路服务与高性价比,成为中小企业数字化入门首选

# 中小企业如何选对数字化“第一站”?一场关乎效率与成本的关键抉择在数字经济加速渗透的今天,一个官网、一个小程序、一场微信营销活动,已成为中小企业触达客户的基本配置。然而面对市面上琳琅满目的SaaS建站平台,功能重叠、价格…...

5分钟搭建专属OCR服务:cv_resnet18_ocr-detection部署与使用详解

5分钟搭建专属OCR服务:cv_resnet18_ocr-detection部署与使用详解 1. 为什么选择cv_resnet18_ocr-detection 在日常工作和生活中,我们经常需要从图片中提取文字信息。无论是处理发票、识别证件,还是分析商品包装,传统的手动录入方…...

Weka机器学习实战:鸢尾花分类完整教程

1. 使用Weka完成多类别分类项目的完整指南Weka作为一款开源的机器学习工作台,以其直观的图形界面和丰富的算法库,成为了许多数据科学初学者的首选工具。今天我将通过经典的鸢尾花分类案例,带大家走完一个完整的机器学习项目流程 - 从数据加载…...

别再死记硬背了!一张图看懂DDR到DDR4内存的演变史(附关键参数对比)

从DDR到DDR4:内存技术的进化图谱与设计哲学 在计算机硬件发展的长河中,内存技术的迭代如同一部微缩的科技史诗。从2000年DDR标准的诞生到如今DDR4的普及,每一次升级都不仅仅是数字的跃进,更是工程智慧的结晶。对于硬件爱好者、嵌入…...

BitNet b1.58-2B-4T-gguf部署教程:SELinux严格模式下服务权限配置指南

BitNet b1.58-2B-4T-gguf部署教程:SELinux严格模式下服务权限配置指南 1. 项目概述 BitNet b1.58-2B-4T-gguf是一款极致高效的1.58-bit量化开源大模型,采用独特的权重三值化技术(-1, 0, 1),平均仅需1.58 bit存储每个…...

长芯微LDC2654完全P2P替代LTC2654,是一款具有±4LSB(最大值)INL、10ppm/℃内部温度系数的16位4通道DAC

概述 LDC2654是一款具有4LSB(最大值)INL、10ppm/℃(最大值)内部温度系数的16位4通道DAC。LDC2654具有内置的高性能、轨至轨输出缓冲器,并保证具有单调性。LDC2654具有一个2.5V的全标度输出和集成基准,并采用4.5V至5.5V的单电源工作。每个DAC也可以采用一…...

C 盘突然爆满?一次彻底排查与迁移实战:从仅剩 12GB 到释放到 46GB

前言很多人都有一个误区: “软件安装到了 D 盘,C 盘就不会继续变大。”我之前也是这么认为的。 结果实际使用一段时间后,C 盘空间还是一路被吃掉,最后只剩下 12GB 左右,已经开始明显影响系统流畅度和开发环境使用。这次…...

爆火的“养马”是什么?Hermes Agent 全面解析+一键部署实操

前言:最近AI圈“养马”热潮席卷而来,不少开发者调侃“从养虾到养马,AI智能体迭代太快”。这里的“马”并非奢侈品爱马仕,而是美国Nous Research团队研发的开源AI智能体——Hermes Agent,“养马”就是搭建、调试并使用这…...

逆向知乎x-zse-96时,我踩过的那些‘环境检测’坑:从Canvas到Window原型链

逆向知乎x-zse-96时,我踩过的那些‘环境检测’坑:从Canvas到Window原型链 在JS逆向工程领域,知乎的x-zse-96参数加密一直以其复杂的环境检测机制闻名。许多开发者在成功提取核心加密逻辑后,往往会在Node.js环境中遭遇各种难以调试…...

去哪个嵌入式培训机构学习比较好

在郑州嵌入式培训领域,结合课程体系、师资实力、实战项目、就业保障四大核心维度,整理出2026年优质机构参考榜,以下是详细对比,供嵌入式学习者参考(数据真实可查,无夸大)。1. 参考依据&#xf…...

【5G Modem】从协议栈到天线阵列:揭秘5G Modem的完整架构与协同设计

1. 5G Modem的架构全景图 当你用手机刷视频、打游戏时,背后有个"隐形交通指挥官"在默默工作——它就是5G Modem。这个比硬币还小的芯片,内部却像一座精密的现代城市:协议栈是交通法规,基带处理器是调度中心,…...

x86-64数据传送指令精解

仅用于个人复习计算机基础,一、核心概览这份文档的核心是讲解如何在不同位置(寄存器、内存)之间移动数据,以及移动时如何处理数据的大小和符号问题。关键在于理解 “数据大小” 和 “符号扩展/零扩展” 这两个概念。二、通用数据传…...