ぽっぺん日記@karashi.org
2006-04-03(Mon) [長年日記]
_ [FreeBSD]gmirror RAID1でトラブル
PowerEdge SC430に6.0Rをインストールして、ad4とad6(どちらもWestern Digital WD3200DJを使用)でgmirror RAID1を組んでいるサーバが、
unknown: TIMEOUT - WRITE_DMA48 retrying (1 retry left) LBA=ほげほげ GEOM_MIRROR: Device gm0: provider ad6 disconnected. Fatal trap 12: page fault while in kernel mode
というエラーを吐いて死んでいた。
ad6をWestern DigitalのDiagnosticツールで検査するもエラーは見付からず、仕方がないので、ad6を予備に取っておいた新品のWD3200JDと交換するが、6〜7時間ほどで、同様のエラーを吐いてまた死んだ。DELL純正ではないSATAケーブルもしくはマザーボードの故障を疑って、ad4とad6を物理的に入れ替えてみるも、今度はad4(旧ad6)が同じ症状で死ぬ。
なんとなくHDDのリビジョンの違いとか、俺の全然分からない辺りの話になってしまいそうな気がするが、諦めず、WRITE_DMA、gmirrorをキーワードにして、freebsd-stable MLのアーカイブ漁り + ググりまくってみたところ、以下のような感触。
- 6.0Rと5.4Rで同じような症状がずいぶん出ている。
- 6.1-PRERELEASEでも同じ状況。
- Western DigitalのHDDでこの症状が出たという話もあった。PE-SC430 +
MaxtorSeagate(2006/05/28訂正:メーカーを間違えた)のHDD * 2でgimirror RAID1を組んでいるサーバも手元にあるのだが、そちらでは問題がないので、これはあるかも。
とりあえず、今のところ取れる解決手段はこんなところか。
- BIOSのバージョンアップ(済)
- 5.3Rより上のバージョンでは必要ないという話だと思うけれど、念の為、/etc/rc.confにswapoff="YES"を追記(済)
- SATAケーブルの交換
- ダメモトでFreeBSDを6.1-*あたりにバージョンアップ
- /boot/device.hintsにhint.acpi.0.disabled="1"を書いて、ACPIを切る
- /boot/loader.confにhw.ata.ata_dma=0を書いて、DMAを切る(できれば避けたい)
- HDDの交換(できれば避けたい)
とりあえず、様子を見ながら、1つずつ潰していくしかないな。
[ツッコミを入れる]
