アトム-サイト
[ アトム-サイト ] - 管理人さんのページです。
feed-icon RSS2.0   feed-icon Atom
[ Linux ] 一覧へ
S.M.A.R.T.
管理人さんのブログ 2010-07-22 08:56:07

通常のHDD交換
構築したサーバから、以下の2通の警告メールが届いています。

タイトル:『SMART error (OfflineUncorrectableSector) detected on host: ****』
内容:Device: /dev/sdc, 9 Offline uncorrectable sectors

タイトル:『SMART error (CurrentPendingSector) detected on host: ****』
内容:Device: /dev/sdc, 12 Currently unreadable (pending) sectors

sdcなので、RAIDではない通常のHDDのエラーです。
# smartctl -a /dev/sdc
で、調べなおすと、確かにその値が出てますね。
買って1年しか経ってないHDDなのに…。

試しに、一度フォーマットしてみたんですが…。
# mkfs -t ext3 /dev/sdc1
『Currently unreadable (pending) sectors』が12から10に減っただけでした。

ちなみに、フォーマット形式を調べるには、
# cat /etc/fstab
ですね。
/dev/md0 / ext3 defaults 1 1
/dev/sdc1 /mnt/sdc ext3 defaults 1 2
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
/dev/md1 swap swap defaults 0 0
『ext3』とかになってます。
それと、最後の第6列の数字は、システム起動時のfsckチェック(『0』:チェックを行わない)。
後述しますが、/dev/sdc1は『2』→『0』に変更しました。

余っているHDDもあるので、交換してみる事にします。
まずは、/etc/fstabファイルを編集して、起動時にmountしない様にして、shutdown。
電源落としたら、HDDを交換します。
電源入れたら、
# dmesg | grep sdc
で、HDDが繋がっている事を確認します(SATAで3台HDDを繋げている場合)。
# fdisk /dev/sdc
で、パーティションを作ります(n,p,1とかのコマンド使うだけです)。
作ったパーティションをフォーマット。
# mkfs -t ext3 /dev/sdc1
フォーマット終了したら、マウントして使います。
# mount /dev/sdc1 /mnt/sdc
最後に、/etc/fstabファイルを編集して起動時にマウントする様に戻します。

HDD交換後、警告メールは無くなりました(めでたしめでたし)。

RAID1 HDD交換
組んで半年なのに、警告メール到着。
タイトル:『SMART error (CurrentPendingSector) detected on host:****』
タイトル:『Fail event on /dev/md0:****』
こんな感じのメールが数通。
昨日、HDDのアクセスランプの挙動がおかしかったので「変だな?」とは思っていたんですが…。
メール内容を見ると、どうやらRAID1で組んでる一方(sda)が壊れているっぽいです。

# cat /proc/mdstat
Personalities : [raid1]
md1 : active raid1 sdb2[1]
3959936 blocks [2/1] [_U]
md0 : active raid1 sdb1[1]
972799872 blocks [2/1] [_U]
mdstatファイル見ても、ダメなのが確認できます。

# mdadm --detail /dev/md0
この表示の最後、
Number Major Minor RaidDevice State
0 0 0 0 removed
1 8 17 1 active sync /dev/sdb1
ココでも、一方がremovedされているのが確認できます。

# smartctl -a /dev/sda
# fdisk -l /dev/sda
これらのコマンドで、sdaのHDDの情報が見れません(sdbとかは見れます)。
壊れてますね、sda。

以前、一方がNGでも立ち上がる様にしていたので、壊れているHDDを外して再起動。
Linux S.M.A.R.T. (.jpg)
あれれ?「メンテナンスしろ!」と出ます(手持ちの予備HDDは無いので、今はとりあえず起動させたいんですが…)。
後で気付いたんですが…。
よくよく見ると、sdcですね、エラー。
抜いた事により、RAIDと関係ないHDDのfsckチェックが引っかかる模様。
/etc/fstab の最後の値をチェックしない『0』にすれば解決です。

仕方ない、また壊れてるHDDを付けて再起動です。
Linux S.M.A.R.T. (.jpg)
おや?ブートローダーに処理が移ってしまいました。
とりあえずもう一度電源入れ直すと、片方のHDDだけで起動してくれましたね(いくつもエラー表示が出て、時間かかりましたが…)。

新しいHDDがきたら、交換作業ですね。
Linux S.M.A.R.T. (.jpg)
HDD来ました、ネットで購入(TUKUMO)。

まずは、正常なsdbのパーティションを表示させます。
# fdisk -l /dev/sdb
Disk /dev/sdb: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders
Units = シリンダ数 of 16065 * 512 = 8225280 bytes
デバイス Boot Start End Blocks Id System
/dev/sdb1 * 1 121108 972799978+ fd Linux raid 自動検出
/dev/sdb2 121109 121601 3960022+ fd Linux raid 自動検出

新しいHDDに入れ替えて再起動(新しくしたら、普通に再起動できました)。
# fdisk /dev/sda
でsdbと同じパーティションを作ります。
コマンド的には、以下です。
n (新規パーティション作成) → p (基本パーティション)
 → 1 → 1 (開始シリンダ) → 121108 (終了シリンダ)
n (新規パーティション作成) → p (基本パーティション)
 → 2 → 121109 (開始シリンダ) → 121601 (終了シリンダ)
t (パーティションID変更) → 1 (パーティション番号) → fd (Software RAID用ID)
t (パーティションID変更) → 2 (パーティション番号) → fd (Software RAID用ID)
a (起動フラグ設定) → 1 (パーティション番号)
w (ディスクに書き込んでfdiskを終了)

作成したパーティションをRAIDに参加させます。
# mdadm /dev/md0 --add /dev/sda1
# mdadm /dev/md1 --add /dev/sda2
このコマンドで、同期が始まります。

同期には時間かかりますね(同期終了かどうかは下記コマンド)。
# mdadm --detail /dev/md0
最後のstateに注目してください。『active sync』で同期完了。『spare rebuilding』は同期中。

ちなみに、壊れたHDDを無理やりRAIDに参加させても
# mdadm --detail /dev/md0
の最後の表示のstateに『faulty spare』の/dev/sda1が追加されるだけですね。

後は、ブートローダをsda1に入れるだけです。
とりあえず、念の為確認。
# grep md0 /proc/mdstat
md0 : active raid1 sda1[0] sdb1[1]
sda1とsdb1でmd0が構成されています。
# df /boot
Filesystem 1K-ブロック 使用 使用可 使用% マウント位置
/dev/md0 942335500 6545500 887150008 1% /
マウントが『/』となっている事に注目。
# grub
Probing devices to guess BIOS drives. This may take a long time.
GNU GRUB version 0.97 (640K lower / 3072K upper memory)
grub> device (hd0) /dev/sda (sdaを指定する)
device (hd0) /dev/sda
grub> root (hd0,0) (最後の0が1番目のsda1という事)
root (hd0,0)
Filesystem type is ext2fs, partition type 0xfd
grub> install /boot/grub/stage1 (hd0) /boot/grub/stage2 p /boot/grub/grub.conf
install /boot/grub/stage1 (hd0) /boot/grub/stage2 p /boot/grub/grub.conf
grub> quit
quit

コメント(0)

 コメント記入者:

[ Linux ] 一覧へ


<< 2010年07月 >>
2010年9月7日(火)
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

 最近の書き込み

ブレイブボード
  <2010-09-07 09:20:48>
口内炎
  <2010-09-06 16:29:56>
ACアダプタ
  <2010-09-03 13:49:25>
得点力学習DS
  <2010-09-01 15:05:54>
(*)富士登山
  <2010-09-01 05:55:27>
(*)富士登山
  <2010-08-31 20:16:32>
HTTPユーザーエージェント
  <2010-08-31 17:17:36>

  <2010-08-30 13:31:12>
富士登山
  <2010-08-25 09:51:43>
静岡ダービー
  <2010-08-23 10:22:34>


 カテゴリー

おでかけ(79)
サッカー(44)
旅(41)
季節(33)
食べ物(33)
映画(30)
DIY(29)
家(28)
地元(28)
家族(26)
健康(24)
モバイル(22)
学校(21)
生物(20)
風景(18)
ドラマ(18)
家電(17)
Web(17)
通勤(16)
ブログ(14)
Winアプリ(14)
PCハード(14)
ゲーム(13)
Linux(12)
本(12)
足技(12)
ブラウザ(11)
ゴルフ(11)
自転車(10)
ネットワーク(10)
php(9)
javascript(9)
飲み物(8)
会社(8)
税金(7)
感銘映像(6)
VMware(5)
空想(5)
Ruby(4)
データベース(3)
perl(1)