【操作系统】Linux 操作系统下服务器硬盘只读浅析

Linux 操作系统下服务器硬盘只读浅析

By Faris

 

    在日常工作中,经常碰到服务器由于各种各样的原因,出现IO只读故障,将机器重启后,故障就可以恢复,找不到具体故障原因。

 

    目前已知的造成硬盘分区只读的可能原因有:

 

        文件系统错误

        内核相关硬件驱动bug

        FW固件类问题

        磁盘坏道

        硬盘背板故障

        硬盘线缆故障

        HBA卡故障

        RAID卡故障

 

 

 

    1.文件系统错误。

        如 ext3 文件系统错误,比较少见,ext3 文件系统是linux下非常稳定的文件系统,目前文件系统自身bug 造成的 ext3 文件系统错误,非常罕见。

        当文件系统自身的校验机制发现文件系统存在问题时,为避免文件系统受到进一步的损坏,一般把文件系统设置为只读。

 

        tune2fs 命令可以设置当操作系统内核发现有文件系统错误时,操作系统对该文件系统如何处理:

        -e error-behavior

        Change  the  behavior  of  the  kernel code when errors are detected.  In all cases, a filesystem error will cause

        e2fsck(8) to check the filesystem on the next boot.  error-behavior can be one of the following:

 

        continue    Continue normal execution.

 

        remount-ro  Remount filesystem read-only.

 

        panic       Cause a kernel panic.

 

        此类只读,一般可以通过自身的检查工具,如 fsck ,进行修复。

 

    2.磁盘坏道

        A.对于单个硬盘的情况,当硬盘出现坏道,且不能够被硬盘自身的纠错机制恢复时,就会报IO错误,从而进一步影响上层文件系统导致只读现象出现。

        B.对于有冗余raid 的情况,多个硬盘出现坏道导致 raid 卡检验机制无法恢复时,也会对外报该raid IO 错误。

 

        badblocks  命令可以对磁盘坏道情况进行检查,该命令位于 e2fsprogs 程序包内。

 

 

    3.FW固件类问题

        硬盘 fw bug 

        硬盘背板、扩展卡 fw bug

        HBA卡 fw bug

        raid 卡 fw bug

        以及各部件 fw bug 不兼容

 

        此类问题,只能够反馈给相应厂家,由厂家协助处理。

 

    4.内核相关硬件驱动bug

        HBA卡、raid卡硬件的内核驱动,如果有bug ,也可能导致硬盘只读。如硬盘出现错误时,驱动的错误处理机制 Error Handler 异常;或者对 SATA 协议的实现,不完全遵循标准。用sysctl  命令调整 dev.scsi.logging_level = 64 可以让内核更多的显示 scsi 层面的信息,有利于排错。

 

    5.硬盘背板、硬盘线缆、HBA卡故障、RAID卡故障

        这些部件出现故障,都可以造成硬盘只读。这些部件,如果故障现象严重,还是比较容易判断和发现,但对于偶尔不稳定,排查有时候会比较困难,一般是替换法处理。Raid 卡厂家一般有提供 linux 操作系统下的命令行工具,如:megacli hpacucli arrconf等

 

 

评论补充:

    inode资源耗尽,也会导致分区只读

    某个分区出现写满问题后,会出现只读故障。和OS有关系,和硬件关系不大

 

本文原创自无线技术运营空间: http://wireless.qzone.qq.com 及 http://blog.csdn.net/wireless_tech (专注无线技术运营——无线技术(操作系统/数据库/WEB前端/负载均衡/系统容灾/系统安全/短信接入/WAP接入/3G等)、无线业务运营、无线开放平台、统计分析(用户行为分析/数据挖掘)、CP合作,联系我们:[email protected]

你可能感兴趣的:(linux,负载均衡,数据挖掘,服务器,磁盘,硬件驱动)