天天看点

EMC CX/VNX存储统计磁盘软错误(Soft Media Error 和Soft SCSI Bus Error)脚本

EMC CX/VNX存储运行时间较久(5年以后)之后很可能会遇到同一个RAID组几块磁盘同时故障的情况,造成RAID组损坏和数据丢失,而同时故障的磁盘一般在故障发生之前可能在日志中频繁和大量地报软错误(Soft Media Error 和Soft SCSI Bus Error)。因此可以定期收集EMC CX/VNX存储的支持数据,然后将存储控制器的日志解压出来上传到linux机器,使用以下脚本统计每个磁盘的软报错次数。如果磁盘的软报错次数较多,比如超过50,请检查报错的时间,确认报错是否是出现在磁盘更换之后新报出的。在必要的情况下,提前将有故障隐患的磁盘更换掉,尽量避免几块磁盘同时损坏丢失数据的情况。

脚本使用方法:使用时更改一下日志文件的名称,原本想定义变量来指向文件的,但是日志文件名称可能有中文特殊符,尝试不成功。

例如,查看控制器A上的日志:

disks=`cat  SPA_navi_getlog.txt | grep -i disk|grep -iw soft|awk '{print $3,$4,$5,$6,$7,$8}'|sort -u  |awk -F"[ (]" '{print $1,$2,$3,$4,$5,$6}'|sort -u`
disk_number=`echo "$disks" | wc -l`
number=1
while [ $number -le $disk_number ]
do
    disk=`echo "$disks" | head -$number |tail -1`
    error_number=`grep "${disk}("  SPA_navi_getlog.txt | grep -i error|wc -l`
    echo -e "$disk\t\t$error_number"
    number=`expr $number + 1` 
done
           

例如,查看控制器B上的日志:

disks=`cat SPB_navi_getlog.txt | grep -i disk|grep -iw soft|awk '{print $3,$4,$5,$6,$7,$8}'|sort -u  |awk -F"[ (]" '{print $1,$2,$3,$4,$5,$6}'|sort -u`
disk_number=`echo "$disks" | wc -l`
number=1
while [ $number -le $disk_number ]
do
    disk=`echo "$disks" | head -$number |tail -1`
    error_number=`grep "${disk}("  SPB_navi_getlog.txt | grep -i error|wc -l`
    echo -e "$disk\t\t$error_number"
    number=`expr $number + 1` 
done
           

另外,不执行脚本的话也可以手工执行以下命令来统计每个磁盘的软报错次数:

1)首先列出控制器A上所有报软错误的硬盘:

cat SPA_navi_getlog.txt |grep -i disk|grep -iw soft|awk ‘{print $3,$4,$5,$6,$7,$8}’|sort -u |awk -F"[ (]" ‘{print $1,$2,$3,$4,$5,$6}’|sort -u

2)统计控制器A上每个报软错误硬盘的报错次数:

grep “Bus 0 Enclosure 0 Disk 7(” SPA_navi_getlog.txt| grep -i error|wc -l