一种快速有效进行系统硬盘失效分析及修复的方法

文档序号:9432419阅读:398来源:国知局
一种快速有效进行系统硬盘失效分析及修复的方法
【技术领域】
[0001]本发明涉及计算机技术领域,具体地说是一种快速有效进行系统硬盘失效分析及修复的方法。
【背景技术】
[0002]存储子系统失效一直以来是影响我们系统厂商的一个大问题,从部件厂商反馈数据来看,至少有60%以上的失效是可以避免的或者说是可以做改善后减少失效数据的,在这种背景下为提高硬盘利用率,减少数据丢失,急需一种快速有效的改善硬盘失效数据和提高硬盘利用率的方法。
[0003]众所周知,硬盘作为一个部件,对用户留有SMART信息接口和硬盘协议都遵守SATA Spec协议或者SAS Spec协议。如何通过该协议读出硬盘出现了什么异常,或者该异常问题出现在什么地方、如何通过异常后检查或者SMART check后检查硬盘健康状态以及如何根据SMART结果进行对应的操作后,判断失效是否为真正的失效,并对子系统进行修复是目前急需解决的技术问题。
[0004]

【发明内容】

本发明的技术任务是针对以上不足之处,提供一种结构简单、生产成本低、易于加工以及判断硬盘是否真正的失效,并且对硬盘或者存储子系统进行修复的快速有效进行系统硬盘失效分析及修复的方法。
[0005]本发明解决其技术问题所采用的技术方案是:一种快速有效进行系统硬盘失效分析及修复的方法,步骤如下:
(1)Linux下查看硬盘是否支持SMART ;
(2)根据步骤(I)的结果,如果支持,直接执行步骤(4);如果不支持SMART,通过指令:smartctl —smart=on —offlineauto=on —saveauto=on /dev/sdxx ;
(3 )经过步骤(2 )便可打开SMART支持;
(4)检测硬盘是否失效执行指令,smartctl-A /dev/sdxx ;
(5)经过步骤(4)便可查看该硬盘的所有SMART信息,可以读出SMART5和197项目分别是G--List和Pending List使用这两项判断硬盘状态,如果都PASS,表示硬盘健康,可以继续使用,如果有pending list需要对pending List进行处理进行坏的Sector修复;
(6)如果步骤(5)出现197pending List后,使用以下指令进行硬盘修复:执行sd_raw ID指令进行修复,ID为SMART信息里出现Pending_Sector的地址;或者使用修复命令:hdparm —yes-1-know-what-1-am-doing —write-sector123456654 /dev/sdxD
[0006]本发明的一种快速有效进行系统硬盘失效分析及修复的方法和现有技术相比,具有以下有益效果:本发明通过SATA Spec协议或者SAS Spec协议读出硬盘出现了什么异常,或者该异常问题出现在什么地方。可以通过异常后检查或者SMART check后检查硬盘健康状态。根据SMART结果进行对应的操作后,判断失效是否为真正的失效,并对子系统进行修复。因而,具有很好的推广使用价值。
【具体实施方式】
[0007]下面结合具体实施例对本发明作进一步说明。
[0008]实施例1
一种快速有效进行系统硬盘失效分析及修复的方法,步骤如下:
(1)Linux下查看硬盘是否支持SMART;
smartctl -1 /dev/sdx x为具体的盘符,返回值为enable证明支持SMART ;
(2)根据步骤(I)的结果,如果支持,直接执行步骤(4);如果不支持SMART,通过指令:smartctl —smart=on —offlineauto=on —saveauto=on /dev/sdxx ;
(3 )经过步骤(2 )便可打开SMART支持;
(4)检测硬盘是否失效执行指令,smartctl-A /dev/sdxx ;
(5)经过步骤(4)便可查看该硬盘的所有SMART信息,可以读出SMART5和197项目分别是G--List和Pending List使用这两项判断硬盘状态,如果都PASS,表示硬盘健康,可以继续使用,如果有pending list需要对pending List进行处理进行坏的Sector修复;
(6)如果步骤(5)出现197pending List后,使用以下指令进行硬盘修复:执行sd—raw ID指令进行修复,ID为SMART信息里出现Pending—Sector的地址。
[0009]说明:123456654是具体的pending sector,如是4K扇区的,会打印出来8个setctor,需要修复8个sector ;sdx中x替换为实际执行测试的盘符
其中,步骤(5)查看SMART信息也可以使用如下的脚本实现: if [ $type == SATA ]; then# 判断 SATA 硬盘
smartctl—all—device=sat+megaraid,$id/dev/$sd>>$HDD—Dir/raid/raid—logelif [ $type == SAS ] ; then # 判断 SAS 硬盘
smartctl —all —device=megaraid, $id /dev/$sd>>$HDD_Dir/raid/raid_logelse
echo -e ,,wrong PD Type\n〃 # 输出 pending sectorfi
done
}
funct1nhbainfo ()
{
if [ -d $HDD—Dir/hba ];thenmv $HDD—Dir/hba $HDD—Dir/hba—beforefi
mkdir -p $HDD—Dir/hba
date 〃+%m_%d %H:%M:%S〃 >>$HDD_Dir/hba/hbaresultdate 〃+%m-%d %H:%M:%S" ?$HDD_Dir/hba/hbalogfori in 'ls /dev | grep ?, | sed,s/[0_9]//g,| uniq'do
smartctl —all /dev/$i>>$HDD_Dir/hba/hbalogecho $i>>$HDD_Dir/hba/hbaresult
smartctl —all /dev/$i | grep ,,SMART Error Log Vers1n,, _A# 输出 log I>>$HDD_Dir/hba/hbaresultdone
实施例2
一种快速有效进行系统硬盘失效分析及修复的方法,步骤如下:
(1)Linux下查看硬盘是否支持SMART;
smartctl -1 /dev/sdx x为具体的盘符,返回值为enable证明支持SMART ;
(2)根据步骤(I)的结果,如果支持,直接执行步骤(4);如果不支持SMART,通过指令:smartctl —smart=on —offlineauto=on —saveauto=on /dev/sdxx ;
(3 )经过步骤(2 )便可打开SMART支持;
(4)检测硬盘是否失效执行指令,smartctl-A /dev/sdxx ;
(5)经过步骤(4)便可查看该硬盘的所有SMART信息,可以读出SMART5和197项目分别是G--List和Pending List使用这两项判断硬盘状态,如果都PASS,表示硬盘健康,可以继续使用,如果有pending list需要对pending List进行处理进行坏的Sector修复;
(6)如果步骤(5)出现197pending List后,使用修复命令:hdparm—yes-1-know-what-1-am-doing —write-sectorI23456654 /dev/sdx0
[0010]说明:123456654是具体的pending sector,如是4K扇区的,会打印出来8个setctor,需要修复8个sector ;sdx中x替换为实际执行测试的盘符其中,步骤(5)查看SMART信息也可以使用如下的脚本实现:if [ $type == SATA ]; then# 判断 SATA 硬盘
smartctl—all—device=sat+megaraid,$id/dev/$sd>>$HDD—Dir/raid/raid—logelif [ $type == SAS ] ; then # 判断 SAS 硬盘
smartctl —all —device=megaraid, $id /dev/$sd>>$HDD_Dir/raid/raid_logelse
echo -e ,,wrong PD Type\n〃 # 输出 pending sectorfi
done
}
funct1nhbainfo ()
{
if [ -d $HDD—Dir/hba ];thenmv $HDD—Dir/hba $HDD—Dir/hba—beforefi
mkdir -p $HDD—Dir/hba
date 〃+%m_%d %H:%M:%S〃 >>$HDD_Dir/hba/hbaresultdate 〃+%m-%d %H:%M:%S" ?$HDD_Dir/hba/hbalog
fori in 'ls /dev | grep ?, | sed,s/[0_9]//g,| uniq'
do
smartctl —all /dev/$i>>$HDD_Dir/hba/hbalogecho $i>>$HDD_Dir/hba/hbaresult
smartctl —all /dev/$i | grep ,,SMART Error Log Vers1n,, _A# 输出 log I>>$HDD_Dir/hba/hbaresultdone
上述【具体实施方式】仅是本发明的具体个案,本发明的专利保护范围包括但不限于上述【具体实施方式】,任何符合本发明的权利要求书的且任何所属技术领域的普通技术人员对其所做的适当变化或替换,皆应落入本发明的专利保护范围。
[0011]除说明书所述的技术特征外,均为本专业技术人员的已知技术。
【主权项】
1.一种快速有效进行系统硬盘失效分析及修复的方法,其特征在于:步骤如下: (1)Linux下查看硬盘是否支持SMART ; (2)根据步骤(I)的结果,如果支持,直接执行步骤(4);如果不支持SMART,通过指令:smartctl —smart=on —offlineauto=on —saveauto=on /dev/sdxx ; (3 )经过步骤(2 )便可打开SMART支持; (4)检测硬盘是否失效执行指令,smartctl-A /dev/sdxx ; (5)经过步骤(4)便可查看该硬盘的所有SMART信息,可以读出SMART5和197项目分别是G--List和Pending List使用这两项判断硬盘状态,如果都PASS,表示硬盘健康,可以继续使用,如果有pending list需要对pending List进行处理进行坏的Sector修复; (6)如果步骤(5)出现197pending List后,使用以下指令进行硬盘修复:执行sd_raw ID指令进行修复,ID为SMART信息里出现Pending_Sector的地址;或者使用修复命令:hdparm —yes-1-know-what-1-am-doing —write-sector123456654 /dev/sdxD
【专利摘要】本发明公开了一种快速有效进行系统硬盘失效分析及修复的方法,属于计算机技术领域,本发明要解决的技术问题为如何通过异常后检查或者SMART?check?后检查硬盘健康状态以及如何根据SMART?结果进行对应的操作后,判断失效是否为真正的失效,并对子系统进行修复。技术方案为:步骤如下:(1)Linux下查看硬盘是否支持SMART;(2)根据步骤(1)的结果,如果支持,直接执行步骤(4);如果不支持SMART,通过指令:smartctl?--smart=on--offlineauto=on--saveauto=on/dev/sdxx。
【IPC分类】G06F11/22
【公开号】CN105183597
【申请号】CN201510535152
【发明人】韩琳琳
【申请人】浪潮电子信息产业股份有限公司
【公开日】2015年12月23日
【申请日】2015年8月27日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1