故障硬盘点灯操作

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了故障硬盘点灯操作相关的知识,希望对你有一定的参考价值。

参考技术A 按照常理说,硬盘故障了,会自动亮红灯,故障消除后会自动恢复正常,这个本来是服务器自带的功能。但现实情况往往不是这样,即使硬盘故障了,现场通过外观也看不出来。

在运维的工作中,很大也是很重要的一项工作就是故障处理,而故障处理中以硬盘故障最为常见。如果更换错误,可能会造成数据丢失,后果很严重。那么如何能够准确快速的更换硬盘呢?给故障的硬盘点灯是一个非常好的选择。

无论是raid卡还是HBA卡,每块硬盘都有对应的LED灯,这些LED灯常用来指示磁盘的状态和行为。例如正常状态显示绿色,故障状态显示红色,rebuild状态显示粉色等等。
通过控制这些硬盘灯颜色的变化,现场操作时一眼就能定位到是哪块盘故障了,非常的直观(当然色盲可能有点难度,不过控制闪烁也能区分出来)。

除了定位故障硬盘更加直观以后,也减少了我们误操作的概率。因为这个点灯操作是在操作系统里触发的,在操作系统里定位的故障硬盘是要更准确的。为什么这么说呢?因为有些厂商服务器标识的硬盘ID号是错误的,尤其是国产的服务器。例如我在系统下看到的id号是[32:1],而服务器物理机上标识得可能是5号盘。

这里我只针对LSI的RAID卡和HBA卡进行讲解。

Raid卡的点灯操作用到如下命令:

MegaCli PdLocate start physdrv[32:1] -a0

使用如下命令可以查看到每块硬盘的具体信息。

不过信息有点多,我们过滤一下信息,得到我们关心的数据。

有了这些信息就可以给硬盘进行点灯了,例如我想给Enclosure Device ID: 252,Slot Number: 1的硬盘点灯。
那么只需要执行如下命令:

关灯使用如下命令:

这里我通过倒叙的方式讲解容易理解一些,也就是结果导向进行思考。
当然,我们先把必要的软件安装上再讲。可以直接通过yum安装两个软件lsscsi、sg3_utils。

获取硬盘灯的状态使用如下命令:
sg_ses --dev-slot-num=1 --get=ident /dev/sg12

一个整体的点灯例子如下:

使用lsscsi -gt获取硬盘信息和enclosu信息,确定故障硬盘的sg信息。这里我这台机器上有12块盘,并且都在都在/dev/sg12上。

根据上面的lsscsi -gt的显示结果,例如我们要给/dev/sdc点灯,那么我们在找到/dev/sdc的dev-slot-num。查找这个信息的命令如下:
sg_ses --sas-addr=0x500e004aaaaaaa02 /dev/sg12

其实sg_ses还有一些其它参数进行显示,可以了解一下。

这3条命令可以把所有硬盘的信息显示出来,从上到下,每条信息的显示结果越来越精简。官方的解释是:

通过这三个参数(clear、get、set)来控制和查看硬盘灯的状态。如何使用就不多解释了,相信大家都能知道。不过要了解一下get到的数字,这里找了一张官方的表格,虽然我也没看懂。

硬盘点灯这个操作其实不难,稍微学习一下就能掌握。关键是如果把这个功能做成自动化的,减少人为干预,减少劳动力,这就需要动动脑子了。
例如可以写成一个脚本,做成定时任务,有故障后自动点灯,故障消除后自动关灯。再关联一下监控报警,再关联一下流程,做到自动报修等等。

以上是关于故障硬盘点灯操作的主要内容,如果未能解决你的问题,请参考以下文章

硬盘物理故障开盘+RAID-5阵列瘫痪恢复数据过程

电脑系统优化硬盘分区软件安装缓存清理远程协助排查重装修复故障

HP P2000两块硬盘物理故障修复过程+raid条带分析方法

北亚一例服务器硬盘故障的数据恢复案例研究

Linux挂载故障

北亚针对服务器RAID5硬盘故障进行数据恢复案例