引用地址:https://mp.weixin.qq.com/s/W1wgFKU3FFcdTR6d3Wl96A

1. 写在前头

一直以来都想写一些关于服务器硬盘维护的文档,但是由于各种原因,就一直搁置了。而且还有一个原因,我这语文不及格呢,语言该怎么组织?还想着找度娘学习借鉴一下高人写的文档,可惜都没找到我想要的,好吧不多扯,进入正题吧

2. 简介

大数据时代,如何保证数据安全性,显得更加重要。从简单的定期备份,到备份系统、到灾备解决方案等等,都是为了确保数据安全。而不论何种方案,都必须将数据存放在底层的物理设备(硬盘、磁带等),今天我们主要讲服务器硬盘故障时该如何维护。

3. 硬盘故障处理流程

一直以来都在一线处理各类设备故障,我把硬盘的故障流程整理成如下五个步骤,四个都缺一不可。

  • 故障定位及分析
  • 业务定位
  • 设备定位
  • 故障处理

3.1 故障定位及分析

3.1.1 名词解释

  • DSA :IBM日志收集工具
  • DSET :DELL日志收集工具
  • TTY :硬盘日志收集工具
  • Slot Number :服务器硬盘槽位号,dell/IBM服务器槽位号从O开始
  • Media Error Count:硬盘物理错误数
  • Other Error Count:硬盘逻辑错误数
  • Predictive Failure Count:预告警数
  • Raw Size:磁盘容量
  • PD Type: 磁盘类型(SAS,STAT)
  • Firmware state:硬盘状态
  • RAID Level :阵列等级
  • State :阵列状态

3.1.2 收集日志及阵列穿孔

不仅仅是硬盘故障的时候需要收集日志,在服务器诊断中,线索往往是扑所迷离的,凭借经验或者猜测,无法正确地判断设备故障原因,排除故障,收集日志提交给售后工程师,可以快速和有效的缩小问题范围,精准定位故障点。

服务器出现故障后,必须一步步检测解决,走捷径可能会付出巨大的代价!收集日志可以大大减少数据丢失风险,避免多次上门维修,反复沟通造成的时间和精力浪费。

好吧估计名眼人一看就知道,上面的这两段文字不是我自己写的,因为我语文不及格嘛,其实是从DELL的微信公众号(公众号:戴尔服务解码)文章中抄来的,目的仅仅是为了让大家知道收集日志的重要性!当然过保的机器,就需要我们自己学会查看日志文件了。

  • DSA日志
    DSA日志是IBM机器保修时候,必要的日志,他可以收集所有的硬件健康状态日志,这里不多做介绍,只要一个文件在系统里执行完成后可以顺利收到日志
  • DSET日志
    DSET日志是DELL机器保修时候,必要的日志,功能如同DSA日志,DSET日志可以收集所有硬件健康状态日志,还可以收集到硬件的部件号,售后可以根据部件号来确认故障配件是否属于本机原配,若不是原配配件,则需要另外提供采购的配件订单号。
  • TTY日志
    TTY日志是硬盘故障时,硬盘故障最怕的就是出现阵列穿孔,收集TTY日志,可以直观的看出阵列是否出现了穿孔(关键字:Puncturing bad block),自己可以收集TTY日志并查看。
#unzip MegaCli8.02.21forLinux.zip
#ll

-rw-r--r-- 1 root root 1588725 May 17  2011 Lib_Utils-1.00-09.noarch.rpm
-rw-r--r-- 1 root root 1272097 Oct 24  2011 MegaCli-8.02.21-1.noarch.rpm
-rw-r--r-- 1 root root 2848229 Sep  8 17:12 MegaCli8.02.21forLinux.zip
-r--r--r-- 1 root root    2683 Oct 24  2011 readme.txt
-rw-r--r-- 1 root root    7404 Apr 13  2012 Run-Linux-PERC6-v1.0.sh

#chmod +x Run-Linux-PERC6-v1.0.sh

#./Run-Linux-PERC6-v1.0.sh

日志存放在当前目录下,名称为PERCLINUX.tgz

接到服务器硬盘告警后要怎么做呢?(至于,如何做硬盘监控,以后有机会再讲),当然是直接上服务器确认故障啦,使用MegaCli64工具就可以了(SAS 5/i,SAS 6/i阵列卡使用lsiutil工具,这里不做介绍咯)

3.1.3 查看物理磁盘信息

MegaCli64工具安装

#rpm -i Lib_Utils-1.00-09.noarch.rpm
#rpm -i MegaCli-8.02.21-1.noarch.rpm

如下为MegaCli64工具查看物理磁盘信息的输出结果

#/opt/MegaRAID/MegaCli/MegaCli64 -Pdlist -a0     
Enclosure Device ID: 32
Slot Number: 2
Drive's position: DiskGroup: 0, Span: 0, Arm: 2
Enclosure position: 1
Device Id: 2
WWN: 5000C5007F56B880
Sequence Number: 3
Media Error Count: 0
Other Error Count: 3
Predictive Failure Count: 0
Last Predictive Failure Event Seq Number: 0
PD Type: SAS
Raw Size: 279.396 GB [0x22ecb25c Sectors]
Non Coerced Size: 278.896 GB [0x22dcb25c Sectors]
Coerced Size: 278.875 GB [0x22dc0000 Sectors]
Sector Size:  0
Firmware state: Failed   #就是这,固件状态提示硬盘Failed,就是说硬盘挂啦
Device Firmware Level: LS0A
Shield Counter: 0
Successful diagnostics completion on :  N/A
SAS Address(0): 0x5000c5007f56b881
SAS Address(1): 0x0
Connected Port Number: 2(path0) 
Inquiry Data: SEAGATE ST300MM0006     LS0AS0K3R7K1            
FDE Capable: Not Capable
FDE Enable: Disable
Secured: Unsecured
Locked: Unlocked
Needs EKM Attention: No
Foreign State: None 
Device Speed: 6.0Gb/s 
Link Speed: 6.0Gb/s 
Media Type: Hard Disk Device
Drive Temperature :27C (80.60 F)
PI Eligibility:  No 
Drive is formatted for PI information:  No
PI: No PI
Port-0 :
Port status: Active
Port's Linkspeed: 6.0Gb/s 
Port-1 :
Port status: Active
Port's Linkspeed: Unknown 
Drive has flagged a S.M.A.R.T alert : No

3.1.4 物理磁盘故障分析

  • Media Error Count>10
    这里为什么定位数字10呢,因为IBM的机器中,Media Error Count>10就当做是硬盘故障啦,可以直接收集DSA日志,找IBM售后处理了
  • Other Error Count>0
    这个Other Error Count就是真的没啥用处了,因为不论是DELL还是IBM都不认这个东东,数值再大,没其他的告警出现,都不会当回事的,但是在IBM的机器上,这个坑爹的东东有时候就会莫名其妙的突然暴涨,解决办法只有一个,就是自己升级阵列卡微码和硬盘微码后重启,至于怎么升级微码,这里就不多赘述咯
  • Predictive Failure Count>0
    这个预告警就要重点关注了,因为不论是DELL还是IBM,只要出现这个告警,肯定是硬盘已经出现故障了,这个时候各自收集日志保修吧
  • Firmware state
    固件状态,这里讲几种固件状态,需要特别关注Failed, Unconfigured(bad)
Failed                        #硬盘故障了 Unconfigured(bad), Spun Up    #硬盘还未配置,但是故障了
Unconfigured(good), Spun Up   #硬盘还未配置,可以使用
JBOD, Spun Up                 #硬盘使用non-Raid模式
Hotspare , Spun Up            #硬盘做热备使用 CopyBack                      #硬盘回写状态,这个在有热备盘的情况下才会出现,当有热备盘的阵列中,出现有一块硬盘出现故障,则热备盘会直接进入rebuiled状态,重建完成后,阵列状态就会恢复正常,这个时候,我们如果把故障硬盘替换掉,在有开启copyback模式的服务器上,这块刚刚替换上的新盘就会被标记为copyback状态,会将原来的热备盘的数据,全部回写到新盘上,而原来的热备盘,会重新变为热备

3.1.5 查看磁盘阵列信息

使用MegaCli64工具查看磁盘阵列信息

#/opt/MegaRAID/MegaCli/MegaCli64  -LDInfo -Lall -aALL
Adapter 0 -- Virtual Drive Information:
Virtual Drive: 0 (Target Id: 0)
Name                :
RAID Level          : Primary-1, Secondary-0, RAID Level Qualifier-0
Size                : 278.875 GB
Sector Size         : 512
Mirror Data         : 278.875 GB
State               : Optimal
Strip Size          : 64 KB
Number Of Drives    : 2
Span Depth          : 1
Default Cache Policy: WriteThrough, ReadAheadNone, Direct, No Write Cache if Bad BBU
Current Cache Policy: WriteThrough, ReadAheadNone, Direct, No Write Cache if Bad BBU
Default Access Policy: Read/Write
Current Access Policy: Read/Write
Disk Cache Policy   : Disk's Default
Encryption Type     : None
Default Power Savings Policy: Controller Defined
Current Power Savings Policy: None
Can spin up in 1 minute: Yes
LD has drives that support T10 power conditions: Yes
LD's IO profile supports MAX power savings with cached writes: No
Bad Blocks Exist: No
Is VD Cached: No
  • 常见的RAID Level
Primary-1, Secondary-0, RAID Level Qualifier-0 : RAID 10
Primary-5, Secondary-0, RAID Level Qualifier-3 :RAID 5
Primary-0, Secondary-0, RAID Level Qualifier-0 :RAID 0
  • 阵列状态
State: Optimal  :阵列正常
State: Degraded :阵列降级

3.1.6 磁盘阵列故障分析

当你根据物理磁盘故障分析,确认当前服务器上已经存在硬盘故障了,那还需要确认磁盘阵列才能够确认是否能够进行物理硬盘的更换

  • State: Optimal状态下
    并不是Optimal状态下,就说明该机器上就没有磁盘故障了,因为有的机器有热备盘,硬盘故障后,热备盘会直接进入rebulid状态(重建状态中,阵列等级是Degraded),rebulid完成后,阵列状态恢复正常,但是物理磁盘还会有故障提示,此时就要处理物理磁盘
  • State: Degraded

阵列进入降级状态,就能直接处理硬盘了吗?当然不是咯,还需要配合阵列等级的哦,当阵列进入降级状态,不同的阵列等级下我们都改如何处置

RAID 10: 在raid10中,最多允许N/2块硬盘故障,但是前提是这N/2块故障盘必须是分布在不同的raid1上的

RAID 5 :  在raid5中,最多允许1块硬盘故障,当然如果你的机器中有热备盘的话,最多可以允许热背叛数量+1块盘故障

RAID 0 : 在raid0中,你的硬盘挂了,那就死翘翘咯,换盘就以为这这块硬盘里的数据会丢失,祈祷你有做数据备份吧(当然也有冒险的办法,这里不讲咯)

3.2 业务定位

根据故障定位分析,你还是不能直接更换故障硬盘,因为换硬盘都会存在风险的,所以,在做所有的故障硬盘更换之前,都必须确认好业务,特别是在RAID0的时候!RAID0的硬盘出现故障,只要数据有备份,业务确认可以更换,那就可以直接处理

3.3 设备定位

设备定位,其实就是确认设备的物理位置,机房、机柜、机架位、故障硬盘槽位

3.4 故障处理

当经过上述的故障分析、定位,业务定位,设备定位后,就可以直接现场更换故障硬盘了,当然可能还有其他的细节问题,比如IDC机房人员进出权限问题(IDC机房需要工单才能正常进出),故障硬盘型号问题(尺寸、容量、转速等)……



最后修改:2022 年 01 月 28 日
如果觉得我的文章对你有用,请随意赞赏