SNS周りで騒いでいましたが
TwitterやFacebookでちらほら騒いでたサーバーが突如死んでしまう話の詳細です。
ちなみに以下からの話で解決していないので、その後に激安サーバーを頼んで本体ごと交換です。(orzですがwktkでもありますが)
事の顛末
数日前から朝起きてサーバーにアクセスするとつながらない現象が起きまして、具体的に言うとpingはいけるけどSSHやsambaにアクセス出来ない自体。httpdはいけたかな? 原因を調べるためにsyslogをあさってみるとこんなログが
Feb 14 04:15:13 snd-server kernel: [13435376.360155] ata1: SATA link up 1.5 Gbps (SStatus 113 SControl 310)
Feb 14 04:15:13 snd-server kernel: [13435376.362205] ata1.00: configured for UDMA/100
Feb 14 04:15:13 snd-server kernel: [13435376.362235] ata1: EH complete
Feb 14 04:15:13 snd-server kernel: [13435376.373667] ata1.00: exception Emask 0x50 SAct 0x1 SErr 0x280900 action 0x6 frozen
Feb 14 04:15:13 snd-server kernel: [13435376.377788] ata1.00: irq_stat 0x08000000, interface fatal error
Feb 14 04:15:13 snd-server kernel: [13435376.381824] ata1: SError: { UnrecovData HostInt 10B8B BadCRC }
Feb 14 04:15:13 snd-server kernel: [13435376.385850] ata1.00: failed command: READ FPDMA QUEUED
Feb 14 04:15:13 snd-server kernel: [13435376.389835] ata1.00: cmd 60/08:00:e0:75:b1/01:00:06:00:00/40 tag 0 ncq 135168 in
Feb 14 04:15:13 snd-server kernel: [13435376.389839] res 40/00:00:e0:75:b1/00:00:06:00:00/40 Emask 0x50 (ATA bus error)
Feb 14 04:15:13 snd-server kernel: [13435376.397881] ata1.00: status: { DRDY }
Feb 14 04:15:13 snd-server kernel: [13435376.401894] ata1: hard resetting link
なにこれ怖い><
"ata.00: failed command: READ FPDMA QUEUED"や"ata: SError: { UnrecovData HostInt 10B8B BadCRC }"の部分でぐぐって見ると、
- HDDが故障してるとか
- SATAケーブルが不良じゃないの?とか
- SATAコントローラーがやばいんじゃないのとか
で、ata1の対象がどうやらシステムディスクのことらしく、smatrctlをみてみると値はこんな感じ。
smartctl 5.41 2011-06-09 r3365 [x86_64-linux-3.2.0-37-generic] (local build)
Copyright (C) 2002-11 by Bruce Allen, http://smartmontools.sourceforge.net
=== START OF INFORMATION SECTION ===
Model Family: Seagate Barracuda 7200.9
Device Model: ST3250624AS
Serial Number: 9ND0KGPT
Firmware Version: 3.AHH
User Capacity: 250,059,350,016 bytes [250 GB]
Sector Size: 512 bytes logical/physical
Device is: In smartctl database [for details use: -P show]
ATA Version is: 7
ATA Standard is: Exact ATA specification draft version not indicated
Local Time is: Sun Feb 17 10:59:29 2013 JST
SMART support is: Available - device has SMART capability.
SMART support is: Enabled
#中略
SMART Attributes Data Structure revision number: 10
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE
1 Raw_Read_Error_Rate 0x000f 114 093 006 Pre-fail Always - 75940274
3 Spin_Up_Time 0x0002 098 098 000 Old_age Always - 0
4 Start_Stop_Count 0x0033 098 098 020 Pre-fail Always - 2545
5 Reallocated_Sector_Ct 0x0033 100 100 036 Pre-fail Always - 0
7 Seek_Error_Rate 0x000f 086 060 030 Pre-fail Always - 408672563
9 Power_On_Hours 0x0032 075 075 000 Old_age Always - 22305
10 Spin_Retry_Count 0x0013 100 100 097 Pre-fail Always - 0
12 Power_Cycle_Count 0x0033 098 098 020 Pre-fail Always - 2461
187 Reported_Uncorrect 0x0032 100 100 000 Old_age Always - 0
189 High_Fly_Writes 0x003a 100 100 000 Old_age Always - 0
190 Airflow_Temperature_Cel 0x0022 060 050 045 Old_age Always - 40 (Min/Max 31/40)
194 Temperature_Celsius 0x0022 040 050 000 Old_age Always - 40 (0 9 0 0)
195 Hardware_ECC_Recovered 0x001a 071 050 000 Old_age Always - 196972326
197 Current_Pending_Sector 0x0012 100 100 000 Old_age Always - 0
198 Offline_Uncorrectable 0x0010 100 100 000 Old_age Offline - 0
199 UDMA_CRC_Error_Count 0x003e 200 160 000 Old_age Always - 979
200 Multi_Zone_Error_Rate 0x0000 100 253 000 Old_age Offline - 0
202 Data_Address_Mark_Errs 0x0032 100 253 000 Old_age Always - 0
SMART Error Log Version: 1
No Errors Logged
SMART Self-test log structure revision number 1
Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error
# 1 Short offline Aborted by host 90% 9897 -
# 2 Short offline Aborted by host 90% 9893 -
# 3 Short offline Completed without error 00% 12 -
# 4 Short offline Completed without error 00% 2 -
# 5 Short offline Aborted by host 90% 9897 -
SMART Selective self-test log data structure revision number 1
SPAN MIN_LBA MAX_LBA CURRENT_TEST_STATUS
1 0 0 Not_testing
2 0 0 Not_testing
3 0 0 Not_testing
4 0 0 Not_testing
5 0 0 Not_testing
Selective self-test flags (0x0):
After scanning selected spans, do NOT read-scan remainder of disk.
If Selective self-test is pending on power-up, resume after 0 minute delay.
正直見方がよくわかっていないので値が入ってる部分をみてみると、いろいろ飛び抜けてるようで(199 UDMA_CRC_Error_Count あたりかな)、エラー起こしすぎてアクセスできなくなるのかなと考えまして。HDD不良なんだろうと結論づけました。(この時までは・・・)
ちょうど忙しい時期になってるのもあり、サーバーにアクセス出来ないと開発しているソフトのコードも見るのが大変になるので急遽対策をすることにして、システムディスクを交換することにしました。以下作業ログ
用意したもの
- 新品のHDD: 今回は元のシステムディスクが250GBで、新しいものを500GBにしました。
WD Green 3.5inch Intellipower 500GB 64MBキャッシュ SATA3.0WD5000AZRX | |
ASIN : B007F8AN34 Amazonで詳しく見るPowered by Amazon Quick Affiliate(JP) |
- ディスクイメージを保存するHDD: 出来れば高速なインターフェースで繋げれるものがいいです。今回はNASに使ってるUSB3.0のHDDを利用。(もちろんディスクイメージを保存できるだけの要領も確保)
- Ubuntu 12.10のLiveUSB:
厳密に言うとddなどできるならどういう環境でも良さそうです。今回はUbuntu12.10に入っている以下のソフトを利用
- Gnome-Disks: GUIでディスクの情報を見たり、初期化、ディスクイメージの作成とリストアができるすぐれものです。できなかったらdd使えばいいやと思ってましたが問題なかったです。
- Gparted: 250GB->500GBにサイズアップしたので、パーティションのサイズも変更しました。
- 移行中に邪魔などされない時間: ディスククローンに3時間, パーティションサイズ変更に3時間ほど掛かりましたので、昼間からやったほうがいいかも。
- 移行中にドラぶってもおれない心: パーティションサイズ変更でトラブったらどうしようと思っても気にしない!
- 移行中の時間がもったいないので暇つぶしのもの: 別の作業してましたが気になって全然はかどらなかった(´・ω・`)
作業手順
写真などありません。途中に入る写真はSNSにアップした風景です・・・
物理的に新HDDなどつないでおきます
サーバーらしくしたかったので念願のマウンターをゲットしてみました。
[pe2-image src="http://lh6.ggpht.com/-V6k7hlnLhYI/USRvUE7J1EI/AAAAAAAADlI/ug0CzeYx_yQ/s144-c/2013-02-17%25252014.19.45.jpg" href="https://picasaweb.google.com/100906785915765419544/HrSanoNetBlog#5846920606943663170" caption="2013-02-17 14.19.45.jpg" type="image" alt="2013-02-17 14.19.45.jpg" ]
MARSHAL DOOS ブラックMAL-1535B/S | |
ASIN : B002TOJZ1U Amazonで詳しく見るPowered by Amazon Quick Affiliate(JP) |
Ubuntu 12.10のLiveUSBからLive起動します
Biosなどでブート手順を変える必要が有る場合は注意しましょう。
新品HDD、ディスクイメージを一時保存するHDDをつないでマウントなどしておきます
GUIなのでmountなどは必要ないはずです。GUIからやるのが嫌な場合は(以下略
Gnome-Disksを管理者権限で立ち上げます
端末で以下のように立ち上げました。
sudo gnome-disks
権限を持ってないとコピーできなかったのでやってみましたが、正しい手順かは知りません。
Gnome-Disksから旧HDDのディスクイメージを作成します
この時に、swap領域がマウントされている場合は作成できないため、マウントを解除しておきましょう。
Gnome-Disksから新HDDへ旧HDDのディスクイメージのリストアを行います
Gpartedから、パーティションのサイズ変更を行います
[pe2-image src="http://lh4.ggpht.com/-Yvnu2H2tGsw/USRvUIb3eeI/AAAAAAAADlM/5DQkuUKpjMA/s144-c/2013-02-19%25252017.42.27.jpg" href="https://picasaweb.google.com/100906785915765419544/HrSanoNetBlog#5846920607886178786" caption="2013-02-19 17.42.27.jpg" type="image" alt="2013-02-19 17.42.27.jpg" ]
GUIでできるので比較的に簡単に行えます。サイズ変更に伴う問題はもちろんありますが祈るように行いましょう。
250GBで運用していたときは /を12GB, swapを12GB, 残りを/homeに当てていましたが、500GBにしたので、/を30GB, swapは12GBのまま, 残りを/homeに当てました。
この時にUUIDの変更はありませんでしたので、/etc/fstabの編集は行なっていません。
起動するか確認
BiosなどでブートするHDDを選択して起動させましょう。無事にログイン画面など出て来ましたらお疲れ様でした。
お疲れ様でした
これで終わらず
今回のケースはこれで解決したとはいえなくて、その後システムディスクのバックアップを行ってる最中に電源が落ちる現象が出てしました。HDDの問題ではなかった模様です。
システムディスクに負荷のかかる時に起きるのと、USBのHDDを対象としたバックアップは特に問題なく、どうやらM/BのSATAコントローラーがまずい状況なのではと考えましてM/B周りをごっそり変えることになりそうなので結局本体ごと交換することにしました。
というわけで続きます。激安サーバー買ってみた話です。