[Memo2011][ITPASS]HDD初期不良チェック

2011/03/28, 31, 04/04 に HDD の初期不良チェックを安東,黒田, 井谷で行った.(ロガー: 安東)

[[ITPASS]過去の構築ドキュメント へ戻る]

準備

チェックする HDD

  • 内蔵3.5HDD 0S03191(3.5/2TB/72r) 3 台

ハードウェアセットアップ

チェックする HDD を適当なマシン (joho02) に入れた.

HDD の認識を確認する

df コマンドで sdc のマウント位置が / であることが分かった. 出力結果は以下のとおり.

Filesystem           1K-ブロック    使用   使用可 使用% マウント位置
/dev/sdc1             96120588   5644808  85593044   7% /
tmpfs                  4098924         0   4098924   0% /lib/init/rw
udev                   4094180       228   4093952   1% /dev
tmpfs                  4098924         0   4098924   0% /dev/shm

dmesg コマンドの出力結果から sdb はパーティションが設定されていないことがわかる.

[    1.744319]  sdb: unknown partition table

また, 以下の出力結果から sdb が 2.0TB であることが分かったので, これがチェックしたい HDD である.

[    1.726682] sd 0:0:1:0: [sdb] 3907029168 512-byte logical blocks: (2.00 TB/1.81 TiB)

読みだし/書き込みテスト

読みだし/書き込みのテストには dd を使う.

まず, HDD の全ての領域からデータを読み出して, エラーが出ないかどうか調べる.

# dd if=/dev/sdb of=/dev/null

null は, 入力したデータを全て捨てるデバイスファイルである.

書き込みのテストには,

# dd if=/dev/zero of=/dev/sdb

とした.

zeroは, 読み出すとゼロを返すデバイスファイルである.

次のようなシェルスクリプトを使い, 読み出しテスト, 書き込みテストを 続けて実行する.

----ここから----
#!/bin/bash

FILE=/dev/sdb

dd if=$FILE of=/dev/null  bs=100M
dd if=/dev/zero of=$FILE  bs=100M
----ここまで----

これを, diskiochk.sh などとして保存して,

# chmod u+x diskiochk.sh


# nohup ./diskiochk.sh &

として, 出力結果を nohup.out に出力した.

出力結果

以下のような結果が出力された.

----ここから----
19077+1 records in
19077+1 records out
2000398934016 bytes (2.0 TB) copied, 16338.9 s, 122 MB/s
dd: writing `/dev/sdb': デバイスに空き領域がありません
19078+0 records in
19077+0 records out
2000398934016 bytes (2.0 TB) copied, 16364.6 s, 122 MB/s
----ここまで----

また, 3/31 に確認したときに, 以下のようなメッセージが出ていた.

ata1.01: exception Emask 0x10 SAct 0x0 SErr 0x400100 action 0x0
ata1.01: SError: { UnrecovData Handshk }
ata1.01: failed command: WRITE DMA EXT
ata1.01: cmd 35/00:00:30:d3:68/00:04:8e:00:00/f0 tag 0 dma 524288 out
         res 51/84:00:30:d4:68/84:03:8e:00:00/1e Emask 0x30 (host bus error)
ata1.01: status: { DRDY ERR }
ata1.01: error: { ICRC ABRT }
ata1.01: exception Emask 0x10 SAct 0x0 SErr 0x400100 action 0x0
... (以降繰り返し)

スクリーンショット写真

このエラーメッセージの意味を上から見ると,

エラーの概要. SErr が 0x400100 で生じている
SError は, データのエラーが発生
直接転送を行うコマンドが失敗した
コマンド送った
レスポンスが返ってきた -> host bus エラーが発生
HDD は ReaDY 状態であるがエラーになった
シリアル転送が途中で停止した

要するに, シリアル転送を行っていたが途中で停止してしまったらしい.

対応としては, SATA ケーブルを入れ替えること, といくつかのウェブサイトに書いてあったが, どの SATA ケーブルを使ったのかわからなくなってしまったが, (おそらく) 前回使用したものとは異なる SATA ケーブルを使って再度テストを行った. 前回のようなエラーは出なかった.

トラブルシューティング

OS が起動しない

  • 問題
    • 新しい HDD を接続した際

      BUG: soft lockup - CPU#1 stuck for 61s

      を含むメッセージが出力されて, OS が起動できなかった.

  • 解決法
    • 新しい HDD を接続しない状態で OS を起動し, アップデートを行った.
      • その際, カーネルのアップデートが行われた.
    • 再度新しい HDD を接続し, 電源を入れると OS が起動した.
    • 参考 : mindia(マインディア) セルンのブック

[[ITPASS]過去の構築ドキュメント へ戻る]

Last modified:2011/04/11 11:38:10
Keyword(s):
References:[[ITPASS2011]2011年度サーバ構築ログ]