歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> Linux教程

Linux 操作系統下服務器硬盤只讀淺析

在日常工作中,經常碰到服務器由於各種各樣的原因,出現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有關系,和硬件關系不大

Copyright © Linux教程網 All Rights Reserved