记录日常工作关于系统运维,虚拟化云计算,数据库,网络安全等各方面问题。
 
0

服务器RAID硬盘故障处理

发表者:admin分类:Devops2020-08-18 09:05:30 阅读[1642]

1. 写在前头
2. 简介
3. 硬盘故障处理流程
3.1 故障定位及分析
3.1.1 名词解释
3.1.2 收集日志及阵列穿孔
3.1.3 查看物理磁盘信息
3.1.4 物理磁盘故障分析
3.1.5 查看磁盘阵列信息
3.1.6 磁盘阵列故障分析
3.2 业务定位
3.3 设备定位
3.4 故障处理



标签:PC服务器, 硬盘故障

1. 写在前头

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

2. 简介

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

3. 硬盘故障处理流程

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

  • 故障定位及分析

  • 业务定位

  • 设备定位

  • 故障处理

3.1 故障定位及分析

3.1.1 名词解释

  1. - DSA IBM日志收集工具

  2. - DSET DELL日志收集工具

  3. - TTY :硬盘日志收集工具

  4. - Slot Number :服务器硬盘槽位号,dell/IBM服务器槽位号从O开始

  5. - Media Error Count:硬盘物理错误数

  6. - Other Error Count:硬盘逻辑错误数

  7. - Predictive Failure Count:预告警数

  8. - Raw Size:磁盘容量

  9. - PD Type: 磁盘类型(SAS,STAT)

  10. - Firmware state:硬盘状态

  11. - RAID Level :阵列等级

  12. - State :阵列状态

3.1.2 收集日志及阵列穿孔

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

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

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

  • DSA日志

  1. DSA日志是IBM机器保修时候,必要的日志,他可以收集所有的硬件健康状态日志,这里不多做介绍,只要一个文件在系统里执行完成后可以顺利收到日志

  • DSET日志

  1. DSET日志是DELL机器保修时候,必要的日志,功能如同DSA日志,DSET日志可以收集所有硬件健康状态日志,还可以收集到硬件的部件号,售后可以根据部件号来确认故障配件是否属于本机原配,若不是原配配件,则需要另外提供采购的配件订单号。

  • TTY日志

  1. TTY日志是硬盘故障时,硬盘故障最怕的就是出现阵列穿孔,收集TTY日志,可以直观的看出阵列是否出现了穿孔(关键字:Puncturing bad block),自己可以收集TTY日志并查看。

  1. #unzip MegaCli8.02.21forLinux.zip

  2. #ll

  3. -rw-r--r-- 1 root root 1588725 May 17  2011 Lib_Utils-1.00-09.noarch.rpm

  4. -rw-r--r-- 1 root root 1272097 Oct 24  2011 MegaCli-8.02.21-1.noarch.rpm

  5. -rw-r--r-- 1 root root 2848229 Sep  8 17:12 MegaCli8.02.21forLinux.zip

  6. -r--r--r-- 1 root root    2683 Oct 24  2011 readme.txt

  7. -rw-r--r-- 1 root root    7404 Apr 13  2012 Run-Linux-PERC6-v1.0.sh

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

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

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

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

3.1.3 查看物理磁盘信息

MegaCli64工具安装

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

  2. #rpm -i MegaCli-8.02.21-1.noarch.rpm

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

  1. #/opt/MegaRAID/MegaCli/MegaCli64 -Pdlist -a0    

  2. Enclosure Device ID: 32

  3. Slot Number: 2

  4. Drive's position: DiskGroup: 0, Span: 0, Arm: 2

  5. Enclosure position: 1

  6. Device Id: 2

  7. WWN: 5000C5007F56B880

  8. Sequence Number: 3

  9. Media Error Count: 0

  10. Other Error Count: 3

  11. Predictive Failure Count: 0

  12. Last Predictive Failure Event Seq Number: 0

  13. PD Type: SAS

  14. Raw Size: 279.396 GB [0x22ecb25c Sectors]

  15. Non Coerced Size: 278.896 GB [0x22dcb25c Sectors]

  16. Coerced Size: 278.875 GB [0x22dc0000 Sectors]

  17. Sector Size:  0

  18. Firmware state: Failed   #就是这,固件状态提示硬盘Failed,就是说硬盘挂啦

  19. Device Firmware Level: LS0A

  20. Shield Counter: 0

  21. Successful diagnostics completion on :  N/A

  22. SAS Address(0): 0x5000c5007f56b881

  23. SAS Address(1): 0x0

  24. Connected Port Number: 2(path0)

  25. Inquiry Data: SEAGATE ST300MM0006     LS0AS0K3R7K1            

  26. FDE Capable: Not Capable

  27. FDE Enable: Disable

  28. Secured: Unsecured

  29. Locked: Unlocked

  30. Needs EKM Attention: No

  31. Foreign State: None

  32. Device Speed: 6.0Gb/s

  33. Link Speed: 6.0Gb/s

  34. Media Type: Hard Disk Device

  35. Drive Temperature :27C (80.60 F)

  36. PI Eligibility:  No

  37. Drive is formatted for PI information:  No

  38. PI: No PI

  39. Port-0 :

  40. Port status: Active

  41. Port'Linkspeed: 6.0Gb/s

  42. Port-1 :

  43. Port status: Active

  44. Port's Linkspeed: Unknown

  45. Drive has flagged a S.M.A.R.T alert : No

3.1.4 物理磁盘故障分析

  • Media Error Count>10

  1. 这里为什么定位数字10呢,因为IBM的机器中,Media Error Count>10就当做是硬盘故障啦,可以直接收集DSA日志,找IBM售后处理了

  • Other Error Count>0

  1. 这个Other Error Count就是真的没啥用处了,因为不论是DELL还是IBM都不认这个东东,数值再大,没其他的告警出现,都不会当回事的,但是在IBM的机器上,这个坑爹的东东有时候就会莫名其妙的突然暴涨,解决办法只有一个,就是自己升级阵列卡微码和硬盘微码后重启,至于怎么升级微码,这里就不多赘述咯

  • Predictive Failure Count>0

  1. 这个预告警就要重点关注了,因为不论是DELL还是IBM,只要出现这个告警,肯定是硬盘已经出现故障了,这个时候各自收集日志保修吧

  • Firmware state 
    固件状态,这里讲几种固件状态,需要特别关注Failed, Unconfigured(bad)

  1. Failed                        #硬盘故障了

  2. Unconfigured(bad), Spun Up    #硬盘还未配置,但是故障了

  3. Unconfigured(good), Spun Up   #硬盘还未配置,可以使用

  4. JBOD, Spun Up                 #硬盘使用non-Raid模式

  5. Hotspare , Spun Up            #硬盘做热备使用

  6. CopyBack                      #硬盘回写状态,这个在有热备盘的情况下才会出现,当有热备盘的阵列中,出现有一块硬盘出现故障,则热备盘会直接进入rebuiled状态,重建完成后,阵列状态就会恢复正常,这个时候,我们如果把故障硬盘替换掉,在有开启copyback模式的服务器上,这块刚刚替换上的新盘就会被标记为copyback状态,会将原来的热备盘的数据,全部回写到新盘上,而原来的热备盘,会重新变为热备

3.1.5 查看磁盘阵列信息

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

  1. #/opt/MegaRAID/MegaCli/MegaCli64  -LDInfo -Lall -aALL

  2. Adapter 0 -- Virtual Drive Information:

  3. Virtual Drive: 0 (Target Id: 0)

  4. Name                :

  5. RAID Level          : Primary-1, Secondary-0, RAID Level Qualifier-0

  6. Size                : 278.875 GB

  7. Sector Size         : 512

  8. Mirror Data         : 278.875 GB

  9. State               : Optimal

  10. Strip Size          : 64 KB

  11. Number Of Drives    : 2

  12. Span Depth          : 1

  13. Default Cache Policy: WriteThrough, ReadAheadNone, Direct, No Write Cache if Bad BBU

  14. Current Cache Policy: WriteThrough, ReadAheadNone, Direct, No Write Cache if Bad BBU

  15. Default Access Policy: Read/Write

  16. Current Access Policy: Read/Write

  17. Disk Cache Policy   : Disk's Default

  18. Encryption Type     : None

  19. Default Power Savings Policy: Controller Defined

  20. Current Power Savings Policy: None

  21. Can spin up in 1 minute: Yes

  22. LD has drives that support T10 power conditions: Yes

  23. LD's IO profile supports MAX power savings with cached writes: No

  24. Bad Blocks Exist: No

  25. Is VD Cached: No

  • 常见的RAID Level

  1. Primary-1, Secondary-0, RAID Level Qualifier-0 : RAID 10

  2. Primary-5, Secondary-0, RAID Level Qualifier-3 RAID 5

  3. Primary-0, Secondary-0, RAID Level Qualifier-0 RAID 0

  • 阵列状态

  1. State: Optimal  :阵列正常

  2. State: Degraded :阵列降级

3.1.6 磁盘阵列故障分析

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

  • State: Optimal状态下

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

  • State: Degraded

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

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

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

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

3.2 业务定位

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

3.3 设备定位

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

3.4 故障处理

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



文章转自老叶茶馆公众号,原文链接:https://mp.weixin.qq.com/s/W1wgFKU3FFcdTR6d3Wl96A



转载请标明出处【服务器RAID硬盘故障处理】。

《www.micoder.cc》 虚拟化云计算,系统运维,安全技术服务.

网站已经关闭评论