|
こんにちは、( ,_ノ` )です。
yutori7.2ch.net としてデビューしたSSDサーバー2号機ですが、
smartmontools でSSDの状態を監視していたところ、SSDサーバー1号機
(gimpo.2ch.net)でも見られたフリーズ現象が見られましたのでご報告します。
原因は smartmontools のコマンド smartctl にあるかもしれません。
smartctl は、ハードディスクの自己診断機能(S.M.A.R.T.)を表示するコマンドで、
SSD では「メディア消耗指数」(=データの書き換え可能回数)を調べる事が出来ます。
yutori7.2ch.net のデータ移動完了後、smartctl でSSDの状態を観察していた所、
S.M.A.R.T.の情報が表示された後にコンソールが反応しなくなり、ウェブページも
表示する事が出来ない状態となりました。
コンソールの復帰後、dmesg を見ると以下のメッセージが記録されていました。
ad8: FAILURE - SMART timed out LBA=12734217
|
SSDサーバー2号機でフリーズが発生する前も定期的に smartctl で SSD の情報を
見ていましたが、smartctl を実行すると必ずフリーズするという訳ではないので、
何かのタイミングと重なるとフリーズが発生するんじゃないかと思います。
この問題について、現在構築中のSSDサーバーで検証していきます。
【17:17追記】
テストサーバーで同じ現象を確認しました。
再現状況
1、他のサーバーから1GBのデータを転送する
2、データ転送中に別のコンソールで smartctl -a /dev/adxx を連続で実行する
# smartctl -a /dev/ad2
smartctl version 5.37 [i386-portbld-freebsd7.0] Copyright (C) 2002-6 Bruce Allen
Home page is http://smartmontools.sourceforge.net/
=== START OF INFORMATION SECTION ===
Device Model: INTEL SSDSA2M080G2GC
Serial Number: *************
Firmware Version: 2CV102HD
User Capacity: 80,026,361,856 bytes
〜省略〜
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED RAW_VALUE
3 Spin_Up_Time 0x0020 100 100 000 Old_age Offline 0
4 Start_Stop_Count 0x0030 100 100 000 Old_age Offline 0
5 Reallocated_Sector_Ct 0x0032 100 100 000 Old_age Always 0
9 Power_On_Hours 0x0032 100 100 000 Old_age Always 37
12 Power_Cycle_Count 0x0032 100 100 000 Old_age Always 18
192 Power-Off_Retract_Count 0x0032 100 100 000 Old_age Always 6
225 Load_Cycle_Count 0x0030 200 200 000 Old_age Offline 866
226 Load-in_Time 0x0032 100 100 000 Old_age Always 2224
227 Torq-amp_Count 0x0032 100 100 000 Old_age Always 0
228 Power-off_Retract_Count 0x0032 100 100 000 Old_age Always 2005452880
232 Unknown_Attribute 0x0033 100 100 010 Pre-fail Always 0
233 Unknown_Attribute 0x0032 099 099 000 Old_age Always 0
184 Unknown_Attribute 0x0033 100 100 099 Pre-fail Always 0
SMART Error Log Version: 1
No Errors Logged
SMART Self-test log structure revision number 1
No self-tests have been logged. [To run self-tests, use: smartctl -t]
〜フリーズが発生(約10分)〜
Error SMART Read Selective Self-Test Log failed
Smartctl: SMART Selective Self Test Log Read Failed
#
|
コンソールの復帰後、dmesgを実行すると以下のメッセージが記録されていました。
もちろんSSDサーバー2号機以外で検証しましたが、記録されているメッセージは
SSDサーバー2号機と同じです。
ad2: FAILURE - SMART timed out LBA=12734217
ad2: FAILURE - SMART timed out LBA=12734217
ad2: FAILURE - SMART timed out LBA=12734217
ad2: FAILURE - SMART timed out LBA=12734217
ad2: FAILURE - SMART timed out LBA=12734217
ad2: FAILURE - SMART timed out LBA=12734217
|
合計6回この現象を確認しましたが、その度に同じメッセージが記録されていました。
フリーズが発生したのはデータ転送を行っている最中に smartctl を実行した場合で、
データ転送を行っていない時に実行した場合ではフリーズは確認できませんでした。
検証方法や実行回数などの問題はあると思いますが、
「smartctl で SSD の情報を表示すると良くない事が起こる」
という事は言えると思います。
【11:02追記】
特化型スレでご依頼いただきました方法をテストサーバーで検証してみます。
結果はこの日記でお知らせしますので少々お待ちくださいです。
【17:11追記】
昨日と同じ条件で smartctl -d ata -A /dev/adxx を試してみました。
方法
1、他のサーバーから1GBのデータを転送する
2、データ転送中に smartctl -d ata -A /dev/adxx を連続で実行する
smartctl -d ata -A /dev/adxx ではフリーズを確認する事が出来ませんでした。
# smartctl -d ata -A /dev/ad2
smartctl version 5.37 [i386-portbld-freebsd7.0] Copyright (C) 2002-6 Bruce Allen
Home page is http://smartmontools.sourceforge.net/
=== START OF READ SMART DATA SECTION ===
SMART Attributes Data Structure revision number: 5
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED RAW_VALUE
3 Spin_Up_Time 0x0020 100 100 000 Old_age Offline 0
4 Start_Stop_Count 0x0030 100 100 000 Old_age Offline 0
5 Reallocated_Sector_Ct 0x0032 100 100 000 Old_age Always 0
9 Power_On_Hours 0x0032 100 100 000 Old_age Always 60
12 Power_Cycle_Count 0x0032 100 100 000 Old_age Always 18
192 Power-Off_Retract_Count 0x0032 100 100 000 Old_age Always 6
225 Load_Cycle_Count 0x0030 200 200 000 Old_age Offline 1791
226 Load-in_Time 0x0032 100 100 000 Old_age Always 2225
227 Torq-amp_Count 0x0032 100 100 000 Old_age Always 0
228 Power-off_Retract_Count 0x0032 100 100 000 Old_age Always 2005454294
232 Unknown_Attribute 0x0033 100 100 010 Pre-fail Always 0
233 Unknown_Attribute 0x0032 099 099 000 Old_age Always 0
184 Unknown_Attribute 0x0033 100 100 099 Pre-fail Always 0
|
なお smartctl -d ata -a /dev/adxx で試してみた所、フリーズが発生しました。
-a オプションで全ての情報を表示しようとするとダメなのかなー?
|