近期公司一台服务器的磁盘告警“磁盘阵列错误”,经检查发现磁盘:“PD0/PD1/PD2 硬盘Medium Error DevId 并BadStripe PD0 PD1”,需要在服务器磁盘彻底崩溃之前进行raid修复,具体过程如下:
根据告警信息进行定位:
主要是查看当前服务器磁盘的raid类型,结果如下:
[root@db08 linux]# hwinfo
basename: 缺少操作数
Try 'basename --help' for more information.
{
"机器型号":"R430",
"机器高度":"1U",
"CPU信息":{"CPU型号":"E5-2620","核数":6,"线程":12,"CPU个数":2},
"内存信息":{"内存型号":"M393A2G40DB0-CPB,NotSpecified","每条大小":"16G","条数":2},
"系统盘信息":{"磁盘类别":"SAS","磁盘大小":"600G","磁盘个数":4,"阵列类型":"RAID-10"},
"运行盘信息":{"磁盘类别":"","磁盘大小":"G","磁盘个数":0,"阵列类型":" Layout RAID-10"},
"备份盘信息":{"磁盘类别":"","磁盘大小":"G","磁盘个数":0,"阵列类型":" Layout RAID-10"},
"操作系统版本":"CentOSrelease",
"快速服务代码":"943XG82",
"其他信息":"null"
}
根据结果显示确定磁盘的raid类型为raid 10,如果磁盘已经严重损坏,只剩一块磁盘在工作,那么将看不出工作类型了,结果会是下面这样:
[root@db08 linux]# hwinfo disk
basename: 缺少操作数
Try 'basename --help' for more information.
{
"机器型号":"R430",
"机器高度":"1U",
"CPU信息":{"CPU型号":"E5-2620","核数":6,"线程":12,"CPU个数":2},
"内存信息":{"内存型号":"M393A2G40DB0-CPB,NotSpecified","每条大小":"16G","条数":2},
"系统盘信息":{"磁盘类别":"/dev/sda","磁盘大小":"600G","磁盘个数":4,"阵列类型":"No"},
"运行盘信息":{"磁盘类别":"","磁盘大小":"G","磁盘个数":0,"阵列类型":" Encrypted No"},
"备份盘信息":{"磁盘类别":"","磁盘大小":"G","磁盘个数":0,"阵列类型":" Encrypted No"},
"操作系统版本":"CentOSrelease",
"快速服务代码":"943SG82",
"其他信息":"null"
}
截止目前只能确定raid类型,那么到底是什么原因导致磁盘阵列故障呢?请继续往下看。
到底如何定位问题所在呢???答案只有一个:日志!
日志太多了,看哪些?对硬件一窍不通的我只能请求支援——Dell服务器技术支持(https://www.dell.com/support/home/cn/zh/cnbsd1)。
Dell技术支持会提供日志采集工具,在此推荐使用MegaCLI8_Linux.zip (为方便使用,已上传至本地镜像库,内置使用说明),点击该链接可直接下载使用,如果在家办公,该地址不能用,提供个人自愿地址:链接: https://pan.baidu.com/s/1boCYCWLghV5XsWnv9SCMbg 密码: 3dqn。
因为下载的安装包内有使用说明,所以在此不做赘述,只把使用过程中的一点小问题记录一下:
# 安装出现冲突(注意:使用Run脚本安装的时候看不到该错误,所以需要手动安装调试)
[root@db08 linux]# rpm -ivh Lib_Utils-1.00-09.noarch.rpm MegaCli-8.02.21-1.noarch.rpm
准备中... ################################# [100%]
file /opt/lsi/3rdpartylibs/x86_64/libsysfs.so.2.0.2 from install of Lib_Utils-1.00-09.noarch conflicts with file from package srvadmin-storelib-sysfs-9.1.0-2757.12163.el7.x86_64
# 原因是与Dell服务器自带的包srvadmin冲突,直接将其卸载即可
[root@db08 linux]# rpm -e srvadmin-storelib-sysfs-9.1.0-2757.12163.el7.x86_64 --nodeps
[root@db08 linux]# rpm -ivh Lib_Utils-1.00-09.noarch.rpm MegaCli-8.02.21-1.noarch.rpm
准备中... ################################# [100%]
Installing....
正在升级/安装...
1:Lib_Utils-1.00-09 ################################# [ 50%]
2:MegaCli-8.02.21-1 ################################# [100%]
# 安装完成后更改Run脚本,把安装操作注释掉,直接进行日志采集
[root@db08 linux]# ./Run-Linux-PERC6-v1.0.sh
WARNING!!!!!!
TTY Log collecting, Please wait a moment! Thanks!
Success in AdpEventLog
FINISH......
PERC TTY-log Tools for Linux had collected the logs to PERCLINUX.tgz
Please send the PERCLINUX.tgz file to DELL support, thanks!
完成日志采集后将日志文件发送给技术支持(对方会提前邮件和你联系)。
Dell技术支持经过日志排查问题后会反馈结果以及处理建议,后续需要运维和ucloud机房以及Dell工程师协调时间,更换磁盘,更换磁盘前一定要记得备份数据以及做好服务迁移啊!!!
进行迁移和备份之前首先要做的就是清楚当前服务器的情况,主要由以下几项:
iptables -nvL
netstat -lntp
htop
先在已有服务器看看有么有充足的资源,如果资源充足就直接使用,如果资源不足,临时申请云主机。注意: 如果使用物理机资源一定要记得根据源服务器配置iptables规则放行服务端口,云主机就不用了,申领时直接使用内网防火墙就可以。
因公司集成了devops自动化运维管理平台,所以在环境部署过程中可以直接通过devops进行,如果公司还没有实现自动化,需要手动进行部署。
迁移过程如下:
netstat -lntp
;数据迁移完后找联系戴尔技术支持以及ucloud机房管理人员协调机房入室时间,商定后到ucloud填写服务单。
待磁盘更换完毕后安排ucloud机房管理人员重装系统,检测无误后将原有服务迁回来,确认运行正常后将临时申领的云主机资源释放掉。
(adsbygoogle = window.adsbygoogle || []).push({});