第⑬讲: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

相关文章

Spring Boot @RestControllerAdvice全局异常处理最佳实践

《SpringBoot@RestControllerAdvice全局异常处理最佳实践》本文详解SpringBoot中通过@RestControllerAdvice实现全局异常处理,强调代码复用、统... 目录前言一、为什么要使用全局异常处理?二、核心注解解析1. @RestControllerAdvice2

Python设置Cookie永不超时的详细指南

《Python设置Cookie永不超时的详细指南》Cookie是一种存储在用户浏览器中的小型数据片段,用于记录用户的登录状态、偏好设置等信息,下面小编就来和大家详细讲讲Python如何设置Cookie... 目录一、Cookie的作用与重要性二、Cookie过期的原因三、实现Cookie永不超时的方法(一)

Java进程异常故障定位及排查过程

《Java进程异常故障定位及排查过程》:本文主要介绍Java进程异常故障定位及排查过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、故障发现与初步判断1. 监控系统告警2. 日志初步分析二、核心排查工具与步骤1. 进程状态检查2. CPU 飙升问题3. 内存

Linux中压缩、网络传输与系统监控工具的使用完整指南

《Linux中压缩、网络传输与系统监控工具的使用完整指南》在Linux系统管理中,压缩与传输工具是数据备份和远程协作的桥梁,而系统监控工具则是保障服务器稳定运行的眼睛,下面小编就来和大家详细介绍一下它... 目录引言一、压缩与解压:数据存储与传输的优化核心1. zip/unzip:通用压缩格式的便捷操作2.

从原理到实战深入理解Java 断言assert

《从原理到实战深入理解Java断言assert》本文深入解析Java断言机制,涵盖语法、工作原理、启用方式及与异常的区别,推荐用于开发阶段的条件检查与状态验证,并强调生产环境应使用参数验证工具类替代... 目录深入理解 Java 断言(assert):从原理到实战引言:为什么需要断言?一、断言基础1.1 语

使用Python实现可恢复式多线程下载器

《使用Python实现可恢复式多线程下载器》在数字时代,大文件下载已成为日常操作,本文将手把手教你用Python打造专业级下载器,实现断点续传,多线程加速,速度限制等功能,感兴趣的小伙伴可以了解下... 目录一、智能续传:从崩溃边缘抢救进度二、多线程加速:榨干网络带宽三、速度控制:做网络的好邻居四、终端交互

Spring Security中用户名和密码的验证完整流程

《SpringSecurity中用户名和密码的验证完整流程》本文给大家介绍SpringSecurity中用户名和密码的验证完整流程,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定... 首先创建了一个UsernamePasswordAuthenticationTChina编程oken对象,这是S

Java MQTT实战应用

《JavaMQTT实战应用》本文详解MQTT协议,涵盖其发布/订阅机制、低功耗高效特性、三种服务质量等级(QoS0/1/2),以及客户端、代理、主题的核心概念,最后提供Linux部署教程、Sprin... 目录一、MQTT协议二、MQTT优点三、三种服务质量等级四、客户端、代理、主题1. 客户端(Clien

Linux中SSH服务配置的全面指南

《Linux中SSH服务配置的全面指南》作为网络安全工程师,SSH(SecureShell)服务的安全配置是我们日常工作中不可忽视的重要环节,本文将从基础配置到高级安全加固,全面解析SSH服务的各项参... 目录概述基础配置详解端口与监听设置主机密钥配置认证机制强化禁用密码认证禁止root直接登录实现双因素

在Spring Boot中集成RabbitMQ的实战记录

《在SpringBoot中集成RabbitMQ的实战记录》本文介绍SpringBoot集成RabbitMQ的步骤,涵盖配置连接、消息发送与接收,并对比两种定义Exchange与队列的方式:手动声明(... 目录前言准备工作1. 安装 RabbitMQ2. 消息发送者(Producer)配置1. 创建 Spr