在运维的工作中,很大也是很重要的一项工作就是故障处理,而故障处理中以硬盘故障最为常见。如果更换错误,可能会造成数据丢失,后果很严重。那么如何能够准确快速的更换硬盘呢?给故障的硬盘点灯是一个非常好的选择。
无论是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到的数字,这里找了一张官方的表格,虽然我也没看懂。
硬盘点灯这个 *** 作其实不难,稍微学习一下就能掌握。关键是如果把这个功能做成自动化的,减少人为干预,减少劳动力,这就需要动动脑子了。
例如可以写成一个脚本,做成定时任务,有故障后自动点灯,故障消除后自动关灯。再关联一下监控报警,再关联一下流程,做到自动报修等等。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)