第⑬讲:OSD硬盘故障处理实战:从诊断到恢复的全流程指南

2024-04-11 11:20

本文主要是介绍第⑬讲:OSD硬盘故障处理实战:从诊断到恢复的全流程指南,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

    • 1.OSD坏盘更换操作
    • 2.判断OSD是否出现故障的思路
    • 3.模拟osd.5故障
    • 4.OSD故障更换硬盘流程
      • 4.1.将故障的osd.5从集群中删除
        • 4.1.1.从OSD Map中将故障的OSD删除
        • 4.1.2.从Crush Map中将故障的OSD删除
        • 4.1.3.在OSD列表中将故障的OSD删除
        • 4.1.4.将故障的OSD认证信息删除
        • 4.1.5.验证集群中是否已经将故障的OSD删除
      • 4.2.换盘操作

1.OSD坏盘更换操作

在实际环境中,可能会经常遇到OSD对应的硬盘出现了故障,此时就需要对这个OSD进行操作了。

坏盘更换中包括两个阶段:

  • 首先将OSD从Ceph集群中踢出,也就是所谓的缩减OSD。
  • 硬盘修复完成后再以新的OSD的方式加入到集群中。

OSD从集群中踢出时,也会触发Reblanceing数据重分布机制,将OSD中的数据迁移到其他的OSD中,当OSD的数据全部同步完成后,再将OSD彻底移除。

硬盘修复成功后,以新的OSD加入到集群中,此时也会触发Reblanceing机制,将数据再次同步到这个OSD中。

2.判断OSD是否出现故障的思路

比如说ceph-node-3节点中的osd.5出现了故障,对应的状态就会是down,首先去登陆上这台机器,看看系统日志有没有说明硬盘问题。

image-20220404114337782

如果硬盘出现了坏道的情况,就会影响整个集群的性能,从而拖垮整个Ceph集群,遇到这种情况执行上述命令不会显示down的状态,因为磁盘出现了坏道,磁盘还是可以用的,只不过性能有所下降。

此时我们可以通过以下命令看到OSD的延迟,如果值很高的话,就表示OSD可能出现了坏道,一定要把它从集群中删除。

image-20220404114717184

3.模拟osd.5故障

osd.5运行在ceph-node-3中,直接将服务停掉即可。

[root@ceph-node-1 ~]# ssh ceph-node-3
[root@ceph-node-3 ~]# systemctl stop ceph-osd@5@后面的数字表示osd的id号

此时osd.5已经出现了故障,下面我们来实现当osd出现故障的更换操作。

image-20220404115105610

当有一个OSD出现故障后,就会触发Reblanceing机制,大概在10分钟后才会真正的迁移数据,等数据同步完再进行更换操作。

image-20220404115313094

4.OSD故障更换硬盘流程

OSD故障更换硬盘的流程:

1、首先将硬盘坏掉的OSD从集群中删除。

2、修复硬盘。

3、将硬盘以新的OSD方式加入到集群中。

4.1.将故障的osd.5从集群中删除

和缩减OSD节点的方式一样。

4.1.1.从OSD Map中将故障的OSD删除
[root@ceph-node-1 ~]# ceph osd out osd.5
marked out osd.5. 

从OSD Map中删除故障的OSD后,此时这个OSD的权限就为0了,不再写入数据。

image-20220404115652152

4.1.2.从Crush Map中将故障的OSD删除

在Crush Map中会记录OSD的信息,我们需要在Crush Map中将OSD删除。

image-20220404120105114

在Crush Map中删除OSD。

[root@ceph-node-1 ~]# ceph osd crush rm osd.5
removed item id 5 name 'osd.5' from crush map
4.1.3.在OSD列表中将故障的OSD删除

虽然在Crush Map中已经将OSD删除了,但是在OSD列表中还是有故障的OSD的。

image-20220404120445298

将故障的OSD在OSD列表中删除。

[root@ceph-node-1 ~]# ceph osd rm osd.5
removed osd.5

再次查看,OSD列表中已经没有故障的OSD了。

image-20220404120539718

4.1.4.将故障的OSD认证信息删除

在OSD的认证信息中会记录所有OSD的认证凭据,在这里也需要将故障的OSD删除。

image-20220404120725184

删除故障的OSD认证信息。

[root@ceph-node-1 ~]# ceph auth rm osd.5
updated

再次查看认证信息列表,就会发现故障的OSD已经被删除了。

image-20220404120910253

4.1.5.验证集群中是否已经将故障的OSD删除

原来集群中有8个OSD,选择已经变成7个OSD了,删除成功。

[root@ceph-node-1 ~]# ceph -scluster:id:     a5ec192a-8d13-4624-b253-5b350a616041health: HEALTH_WARN1 nearfull osd(s)9 pool(s) nearfullDegraded data redundancy: 80/6966 objects degraded (1.148%), 4 pgs degraded, 2 pgs undersizedservices:mon: 3 daemons, quorum ceph-node-1,ceph-node-2,ceph-node-3 (age 81m)mgr: ceph-node-1(active, since 37h), standbys: ceph-node-2, ceph-node-3mds: cephfs-storage:1 {0=ceph-node-1=up:active} 2 up:standbyosd: 7 osds: 7 up (since 20m), 7 in (since 14m); 3 remapped pgsrgw: 1 daemon active (ceph-node-1)

4.2.换盘操作

将故障的OSD硬盘修复好之后,将该盘的LVM卷删除,然后通过添加OSD的方式,将该OSD重新加入集群即可。

这篇关于第⑬讲:OSD硬盘故障处理实战:从诊断到恢复的全流程指南的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/893939

相关文章

电脑不小心删除的文件怎么恢复?4个必备恢复方法!

“刚刚在对电脑里的某些垃圾文件进行清理时,我一不小心误删了比较重要的数据。这些误删的数据还有机会恢复吗?希望大家帮帮我,非常感谢!” 在这个数字化飞速发展的时代,电脑早已成为我们日常生活和工作中不可或缺的一部分。然而,就像生活中的小插曲一样,有时我们可能会在不经意间犯下一些小错误,比如不小心删除了重要的文件。 当那份文件消失在眼前,仿佛被时间吞噬,我们不禁会心生焦虑。但别担心,就像每个问题

笔记本电脑屏幕模糊?6招恢复屏幕清晰!

在数字化时代的浪潮中,笔记本电脑已成为我们生活、学习和工作中不可或缺的一部分。然而,当那曾经清晰明亮的屏幕逐渐变得模糊不清时,无疑给我们的使用体验蒙上了一层阴影。屏幕模糊不仅影响视觉舒适度,更可能对我们的工作效率和眼睛健康构成威胁。 遇到笔记本电脑屏幕模糊的情况时我们应该如何解决?本文将与大家分享6个简单易懂的解决方法。 方法一:调整Windows分辨率 电脑屏幕模糊显示不清晰怎

工作流Activiti初体验—流程撤回【二】

已经玩工作流了,打算还是研究一下撤回的功能。但是流程图里面并不带撤回的组件,所以需要自己动态改造一下,还是延续上一个流程继续试验撤回功能。《工作流Activiti初体验【一】》 完整流程图 我们研究一下分发任务撤回到发起任务,其他环节的撤回类似 撤回的原理大概如下: 将分发任务后面的方向清空,把发起任务拼接到原来的判断网关,然后结束分发任务,这样流程就到发起任务了 此时的流程如上图,

ROS话题通信流程自定义数据格式

ROS话题通信流程自定义数据格式 需求流程实现步骤定义msg文件编辑配置文件编译 在 ROS 通信协议中,数据载体是一个较为重要组成部分,ROS 中通过 std_msgs 封装了一些原生的数据类型,比如:String、Int32、Int64、Char、Bool、Empty… 但是,这些数据一般只包含一个 data 字段,结构的单一意味着功能上的局限性,当传输一些复杂的数据,比如:

React+TS前台项目实战(十七)-- 全局常用组件Dropdown封装

文章目录 前言Dropdown组件1. 功能分析2. 代码+详细注释3. 使用方式4. 效果展示 总结 前言 今天这篇主要讲全局Dropdown组件封装,可根据UI设计师要求自定义修改。 Dropdown组件 1. 功能分析 (1)通过position属性,可以控制下拉选项的位置 (2)通过传入width属性, 可以自定义下拉选项的宽度 (3)通过传入classN

百度OCR识别结构结构化处理视频

https://edu.csdn.net/course/detail/10506

如何在Java中处理JSON数据?

如何在Java中处理JSON数据? 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天我们将探讨在Java中如何处理JSON数据。JSON(JavaScript Object Notation)作为一种轻量级的数据交换格式,在现代应用程序中被广泛使用。Java通过多种库和API提供了处理JSON的能力,我们将深入了解其用法和最佳

打造坚固的SSH防护网:端口敲门入门指南

欢迎来到我的博客,代码的世界里,每一行都是一个故事 🎏:你只管努力,剩下的交给时间 🏠 :小破站 打造坚固的SSH防护网:端口敲门入门指南 前言什么是端口敲门端口敲门的优点1. 增强安全性2. 动态防火墙规则3. 隐匿服务4. 改善日志管理5. 灵活性和兼容性6. 低资源消耗7. 防御暴力破解和扫描8. 便于合法用户访问9. 适用于不同类型的服务 端口敲

AI学习指南机器学习篇-朴素贝叶斯处理连续特征和离散特征

AI学习指南机器学习篇-朴素贝叶斯处理连续特征和离散特征 在机器学习领域,朴素贝叶斯是一种常用的分类算法,它的简单性和高效性使得它在实际应用中得到了广泛的应用。然而,在使用朴素贝叶斯算法进行分类时,我们通常会面临一个重要的问题,就是如何处理连续特征和离散特征。因为朴素贝叶斯算法基于特征的条件独立性假设,所以对于不同类型的特征,我们需要采取不同的处理方式。 在本篇博客中,我们将探讨如何有效地处理

PyTorch模型_trace实战:深入理解与应用

pytorch使用trace模型 1、使用trace生成torchscript模型2、使用trace的模型预测 1、使用trace生成torchscript模型 def save_trace(model, input, save_path):traced_script_model = torch.jit.trace(model, input)<