按照常理说,
硬盘故障了,会自动亮红灯,故障消除后会自动恢复正常,这个本来是服务器自带的功能。但现实情况往往不是这样,即使硬盘故障了,现场通过外观也看不出来。 在运维的工作中,很大也是很重要的一项工作就是故障处理,而故障处理中以硬盘故障最为常见。如果更换错误,可能会造成数据丢失,后果很严重。那么如何能够准确快速的更换硬盘呢?给故障的硬盘
点灯是一个非常好的选择。 无论是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下,我喜欢用命令让系统进入休眠:
$ echo mem | sudo tee /sys/power/state
当然,不用每次都要敲这么一长串,可以把它加入到一个脚本中。 再将该脚本命令加入到/etc/sudoers文件,就可以避免每次都需要输入用户密码了。
man hdparm
hdparm -Y /dev/hd*:使硬盘进入睡眠模式;
hdparm -y /dev/hd*:使硬盘进入省电模式;
hdparm -S[num] /dev/hd*:设置超时值使硬盘进入睡眠模式;
唤醒硬盘hdparm好像没有相应参数,实际上你去 *** 作硬盘就会自动唤醒硬盘,使用ioctl有个参数可以唤醒硬盘,你可以查看硬盘 *** 作的相应头文件。
具体看hdparm的源代码,实际是使用ioctl *** 作硬盘相应寄存器。
在 Linux 系统中,要使用硬盘上的某一空闲空间,一般需要经过以下步骤:
确认硬盘上的空闲空间,并找到要使用的目录,可以使用命令 df -h 查看硬盘使用情况。
确认要使用的空间的文件系统类型,一般为 ext2、ext3、ext4、NTFS 等。
在要使用的目录下创建一个新的挂载点,可以使用命令 mkdir 新目录名称。
将要使用的空间挂载到新创建的目录中,可以使用命令 mount 空间设备名称 挂载目录名称。
例如,假设要使用硬盘上的 /dev/sda2 分区的空闲空间,步骤如下:
确认空闲空间:可以使用 df -h 命令查看硬盘使用情况,找到 /dev/sda2 分区的空闲空间。
确认文件系统类型:可以使用命令 fdisk -l /dev/sda 查看分区信息,找到 /dev/sda2 分区的文件系统类型。
创建新的挂载点:可以使用命令 mkdir /mnt/sda2 创建一个新的挂载点。
挂载空间:可以使用命令 mount /dev/sda2 /mnt/sda2 将 /dev/sda2 分区的空间挂载到 /mnt/sda2 目录下。
经过上述步骤后,就可以在 /mnt/sda2 目录下使用硬盘上的空闲空间了。
评论列表(0条)