物理磁盘没有灯,硬盘会亮灯是raid卡认为盘已出问题控制硬盘背板亮灯,另外定位硬盘也可以亮灯,这个功能是由raid卡的软件或服务器管理软件来提供的。
成都创新互联公司10多年成都定制网站服务;为您提供网站建设,网站制作,网页设计及高端网站定制服务,成都定制网站及推广,对成都VR全景等多个方面拥有丰富的网站制作经验的网站建设公司。
按照常理说,硬盘故障了,会自动亮红灯,故障消除后会自动恢复正常,这个本来是服务器自带的功能。但现实情况往往不是这样,即使硬盘故障了,现场通过外观也看不出来。
在运维的工作中,很大也是很重要的一项工作就是故障处理,而故障处理中以硬盘故障最为常见。如果更换错误,可能会造成数据丢失,后果很严重。那么如何能够准确快速的更换硬盘呢?给故障的硬盘点灯是一个非常好的选择。
无论是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到的数字,这里找了一张官方的表格,虽然我也没看懂。
硬盘点灯这个操作其实不难,稍微学习一下就能掌握。关键是如果把这个功能做成自动化的,减少人为干预,减少劳动力,这就需要动动脑子了。
例如可以写成一个脚本,做成定时任务,有故障后自动点灯,故障消除后自动关灯。再关联一下监控报警,再关联一下流程,做到自动报修等等。
Linux磁盘管理常用三个命令为df、du、fdisk。
df,全称:disk full,列出文件系统的整体磁盘使用量
du,全称:disk used,检查磁盘空间使用量
fdisk,用于磁盘分区。
1、df命令
检查文件系统的磁盘空间占用情况,可以利用该命令获取磁盘被占用了多少空间,目前还剩下多少空间等信息。
语法:df[-ahikHTm][目录或文件名]
参数:
-a 列出所有文件系统,包括系统特有的/proc等文件系统;
-k 以KBytes的容量显示各文件系统;
-m 以MBytes的容量显示各文件系统;
-h 以较易阅读的格式自行显示,比如:GBytes、MBytes、KBytes;
-H 以M=1000K取代M=1024K的进位方式;
-T 显示文件系统类型;
-i 不用磁盘容量,以inode的数量来显示。
2、du命令
也是查看使用空间的,但是与df命令不同的是,Linux du命令是对文件和目录磁盘使用的空间进行查看,和df命令有一定的区别。
语法:du[-ahskm]文件或目录名称
参数:
-a 列出所有的文件与目录容量;
-h 以较易阅读的格式显示;
-s 列出总量而已,而不列出每个各别的目录占用容量;
-S 不包括子目录下的统计,与-s存在差别;
-k 以KBytes列出容量显示;
-m 以MBytes列出容量显示。
3、fdisk命令
fdisk是Linux的磁盘分区表操作工具。
语法:fdisk[-l]装置名称
参数:
-l 输出后面接的装置所有的分区内容。若仅有fdisk -l时,则系统将会把整个系统内能够搜寻到的装置的分区均列出来。