アトム-サイト
[ アトム-サイト ] - 管理人さんのページです。
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

 コメント記入者:

 ページ閲覧者数:15人

[ Linux ] 一覧へ


<< 2010年7月
2010年7月30日(金)
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

 最近の書き込み

S.M.A.R.T.
  <2010-07-22 08:56:07>
ソフトウェアRAID
  <2010-07-18 19:55:30>
うなぎ処かねはち
  <2010-07-15 10:52:10>
向上備忘録
  <2010-07-14 17:35:22>
南アフリカW杯観戦記4
  <2010-07-14 08:45:09>
南アフリカW杯観戦記1
  <2010-07-13 09:33:30>
W杯お土産
  <2010-07-13 07:51:29>
サッカー小説
  <2010-07-07 16:33:48>
子供達の誕生日
  <2010-07-07 10:30:26>
遠征合宿6年
  <2010-07-06 08:33:28>


 カテゴリー

おでかけ(77)
サッカー(43)
旅(40)
季節(33)
食べ物(33)
映画(29)
DIY(28)
家(28)
地元(28)
家族(26)
モバイル(22)
健康(22)
学校(21)
生物(20)
風景(18)
ドラマ(18)
家電(17)
Web(17)
通勤(16)
ブログ(14)
Winアプリ(14)
PCハード(13)
Linux(12)
 ・ S.M.A.R.T.
 ・ SMTP
 ・ ネットコマンド
 ・ POP
 ・ Linuxコマンド
 ・ WebサーバのSSL化
 ・ IP aliasingとバーチャルホスト
 ・ Turbolinux 10 Server
 ・ SUSE アクティベーションコード
 ・ パーティション削除
 ・ logrotate
 ・ crontab
ゲーム(12)
本(12)
足技(12)
ブラウザ(11)
ゴルフ(11)
自転車(10)
ネットワーク(10)
php(9)
javascript(9)
飲み物(8)
会社(8)
税金(7)
感銘映像(6)
VMware(5)
空想(5)
Ruby(4)
データベース(3)
perl(1)