本文主要是介绍Buffer I/O Error on device sdx报错分析处理(暂未找到根本原因),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一、问题描述
系统内执行df -h 和Fdisk -l夯住,系统卡死,云平台登录云主机,登录页面报错如下:
二、问题分析
1)查看日志
检查是否存在(UNC Uncorrectable error – often due to bad sectors on the disk)错误:
内核从硬盘上的文件系统写入数据错误。
smartctl -l error /dev/sda
2)手动测试故障分区
hdparm --read-sector 3017824 /dev/sda | grep read //验证扇区是否可读
经检查这些扇区都是可读的。
3)测试硬盘坏道
badblocks -swv /dev/sda //显示进度 -w //以写去检测 -v //显示执行详细情况
执行完未显示坏
三、问题处理
未找到原因,还请路过的大神,有相关经验,指点指教;
目前看,属于偶然性事件,因现场实际,存储文件量大,磁盘空间使用率接近99%,部分已100%;加之Docker环境,可能某时刻造成应用读写文件系统异常,触发报错,可尝试e2fsck检查文件系统
附录:
1)Linux检测硬盘坏道
badblocks命令 //功能说明:检查磁盘装置中损坏的区块。
语法:badblocks [-svw][-b ][-o ][磁盘装置][磁盘区块数][启始区块]
补充说明:执行指令时须指定所要检查的磁盘装置,及此装置的磁盘区块数。
参数:
-b 指定磁盘的区块大小,单位为字节。
-o 将检查的结果写入指定的输出文件。
-s 在检查时显示进度。
-v 执行时显示详细的信息。
-w 在检查时,执行写入测试。
2)FreeBSD检测硬盘坏道
利用硬盘的S.M.A.R.T.功能来做。
cd /usr/ports/sysutils/smartmontools
make install clean
cp /usr/local/etc/rc.d/smartd.sh.sample /usr/local/etc/rc.d/smartd.sh
cp /usr/local/etc/smartd.conf.sample /usr/local/etc/smartd.conf
chmod 555 /usr/local/etc/rc.d/smartd.sh
对于Debian类:
apt-get install smartmontool* // 配置文件/etc/smartd.conf
/usr/local/etc/rc.d/smartd.sh start //启动监护程序
smartctl -i /dev/sda //查看硬盘是否支持SMART
smartctl -a /dev/ad0 //快速检查硬盘是否有问题
smartctl -t long /dev/ad0 //表面测试
smartctl -l error /dev/sda //硬盘历史错误信息(error log)
smartctl -l selftest /dev/sda //硬盘自测
smartctl -X /dev/sda //终止硬盘自测
这篇关于Buffer I/O Error on device sdx报错分析处理(暂未找到根本原因)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!