【ceph】pg down的处理流程

本文介绍了在Ceph存储系统中,当OSD出现故障导致PGDown时,如何通过查询备用副本、停止OSD、导出和导入PG数据以及标记操作来恢复数据的过程。涉及Python脚本和Linux命令的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 本站以分享各种运维经验和运维所需要的技能为主

《python零基础入门》:python零基础入门学习

《python运维脚本》: python运维脚本实践

《shell》:shell学习

《terraform》持续更新中:terraform_Aws学习零基础入门到最佳实战

《k8》暂未更新

《docker学习》暂未更新

《ceph学习》ceph日常问题解决分享

《日志收集》ELK+各种中间件

《运维日常》运维日常

《linux》运维面试100问

背景

当pg down,在换故障盘的时候,另外一个盘也出现问题,这时query发现,两个up的osd都挂了,只能从其他osd备用的副本上导出pg之后手动导入到故障盘更换好的新盘上进行up起来

如果osd突然挂,如果你不彻底铲除也有可能会存在pg down的情况,op卡住了。

操作流程

1.在到处pg数据时,使用query查看备用副本的所在的osd

ceph pg 7.39 query

2.之后再stop该osd

systemctl stop ceph-osd@x

3.最后开始导数据

#查看是否有数据(此时是看备用副本上的osd)

ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-x --pgid x --op list --no-mon-config

#导出

ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-x  --pgid x --op export --file xxx --no-mon-config

#导入(导入到更换的新盘上)

ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-x --pgid x  --op import --file xxx --no-mon-config

#将pg状态标记回完成

ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-x --pgid x --op mark-complete --no-mon-config

4.注意找不到数据的,标记删除

ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-x --pgid x --op remove  --force

ceph pg xxx mark_unfound_lost revert | delete

revert: 将object revert到之前的版本(单副本运行期间写入的数据会丢失)

delete: 将object 删除

<think>好的,用户想了解Ceph运维工程师和Ceph测试工程师的区别。首先,我需要回忆这两个职位的核心职责和技能要求,然后整理成结构化的回答。 Ceph运维工程师主要负责生产环境的部署、监控和故障处理。需要熟悉Ceph的架构,比如Monitor、OSD、MDS这些组件,以及存储池、CRUSH算法等。日常工作中可能涉及性能调优、容量规划,还有自动化运维工具的使用。比如使用Ansible或SaltStack来自动化部署,用Prometheus和Grafana监控集群状态。遇到故障时,要能快速定位问题,比如OSD下线或者网络分区,并恢复服务。需要具备Linux系统管理、Shell/Python脚本编写能力,还有对分布式系统原理的理解。 然后是Ceph测试工程师,他们更关注软件质量。需要设计测试用例,覆盖功能、性能、稳定性等方面。比如新版本的功能验证,或者升级后的兼容性测试。性能测试方面,可能用fio或cosbench来压测,找出瓶颈。自动化测试框架的开发也很重要,比如用Jenkins做CI/CD,编写自动化测试脚本。还要跟踪和分析测试结果,提交缺陷报告。需要熟悉测试理论,掌握自动化测试工具,了解Ceph源码结构,可能还要参与社区测试工作。 接下来要区分两者的区别。运维侧重生产环境的稳定运行,属于保障角色;测试则关注软件质量,属于质量控制。运维需要7x24小时响应,处理突发事件;测试更多按计划执行测试,分析结果。技能方面,运维强调系统管理和故障处理,测试需要测试方法和工具开发。 协同方面,测试工程师在版本发布前验证,运维负责升级后的稳定;测试提供性能数据帮助运维调优,运维反馈生产问题给测试改进用例。 最后给职业发展建议,运维可以往架构师或SRE发展,测试可以转向测试开发或质量管理。需要根据兴趣选择,同时掌握对方领域的基础知识会有帮助。 检查是否有遗漏,是否需要补充具体工具或案例。确保回答结构清晰,分点明确,符合用户要求的中文回答,使用正确的LaTeX格式。</think>以下从职责、技能和发展方向三个维度对比分析Ceph运维工程师与Ceph测试工程师: $$ \text{职位对比矩阵} = \begin{cases} \text{运维工程师} & \text{聚焦生产环境稳定性保障} \\ \text{测试工程师} & \text{专注软件质量验证与提升} \end{cases} $$ 一、核心职责对比 1. **Ceph运维工程师** - 生产环境部署:完成$n \geq 3$个Monitor节点的高可用部署 - 集群监控:通过Prometheus+AlertManager实现$\text{OSD状态} \in \{up, down\}$的实时告警 - 故障处理:解决$\exists$ OSD异常导致$\text{PG状态} \notin \{active+clean\}$的问题 - 性能优化:调整CRUSH规则使$\sum \text{OSD负载} \approx \text{均衡分布}$ 2. **Ceph测试工程师** - 功能验证:验证$\forall$新功能满足$\text{需求规格} \subseteq \text{测试用例}$ - 压力测试:构造$\text{IOPS} \geq 100k$的高并发场景 - 异常模拟:注入$\text{网络延迟} \sim \mathcal{N}(\mu=500ms, \sigma^2=100)$的故障 - 版本验证:确保$\text{升级兼容性} \Rightarrow \text{API接口} \times \text{数据持久性}$ 二、关键技术栈要求 $$ \begin{array}{|c|c|c|} \hline \text{维度} & \text{Ceph运维工程师} & \text{Ceph测试工程师} \\ \hline 核心工具 & \text{Ansible, Cephadm, Rook} & \text{Teuthology, Ceph-test} \\ \hline 编程能力 & \text{Shell/Python运维脚本} & \text{Pytest自动化测试框架} \\ \hline 专业知识 & \text{CRUSH算法调优} & \text{单元/集成测试覆盖率} \\ \hline 典型指标 & \text{MTTR < 1小时} & \text{缺陷检出率 > 95\%} \\ \hline \end{array} $$ 三、协同工作场景示例 当$\exists$新版本发布时: 1. 测试工程师构造$\text{测试集}T=\{t_1,t_2,...,t_n\}$,验证$\forall t_i \in T$是否通过 2. 运维工程师执行$\text{升级操作}f: \text{版本}v_x \rightarrow v_y$,监控$\frac{\text{异常事件}}{\text{总操作}} < 0.1\%$ 3. 双方联合分析$\text{日志}L=\bigcup_{i=1}^k \text{osd.\$i.log}$,确保$\text{数据一致性}C \equiv \text{SHA1校验}$ 四、职业发展路径 - 运维方向:初级→高级→架构师(需掌握$\nabla\text{分布式系统理论}$) - 测试方向:功能测试→自动化测试专家→质量总监(需精通$\prod\text{测试方法论}$) 建议从业者根据自身特点选择: - 偏好$\text{线上运维} \propto \text{应急响应能力}$选择运维 - 擅长$\text{质量保障} \propto \text{缺陷建模能力}$选择测试 两类岗位都需要持续学习Ceph新特性,建议定期参加$\text{Cephalocon} \cup \text{社区代码审查}$活动提升技能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值