ディスクエラーの原因を絞り込む

ディスクエラーの原因を絞り込む

いくつかのハード ドライブで奇妙なエラーが発生しており、問題の原因を絞り込むのに苦労しています。これは RAID アレイ (Linux ソフトウェア RAID、低価格ハードウェア) の一部であるため、アレイから外れたとき、最初に取った行動は単に予備のものと交換することでした。しかし、再構築は失敗し続けました。

ドライブは 5 ドライブの外付け SATA エンクロージャ (4 つのエンクロージャ、それぞれ 5 ドライブ) にあり、このエンクロージャにも奇妙な症状が出ていることに気付きました。通常、ドライブが追加されると、エンクロージャの SATA ポート リプリケータが新しいドライブを検出すると、ライトが特定の方法で点滅します。そして、再構築中もそれが起こり続けたため、ポート リプリケータのハードウェアが実際の原因である可能性があると私には思われました。

私はこのような問題に備えて予備の筐体を持っていたので、それを交換してドライブを新しい筐体に入れました。しかし、この時点ではmdadmドライブをまったく再構築できませんでした。常に失敗しました。すぐに起動後、いくつかの異なるスペアドライブを試しましたが、同じ症状でした。複数のドライブが故障したことはありませんまったく同じ方法でちょうど同じ時間?

エンクロージャは、ホストにインストールされている 2 つの SATA コントローラ カード (それぞれ 2 つのポート) に接続します。おそらくカードの 1 つが原因だったのでしょう。そこで、SATA ケーブルを移動して、「問題のある」エンクロージャが別のカードに来るようにしました。しかし、同じエンクロージャの同じドライブ ベイで同じ問題が引き続き発生しました。

この時点で、テストするものがなくなってきました。ホストには 2 つのドライブ、2 つのエンクロージャ、2 つのコントローラ カードがあります。これらをどのような組み合わせで使用しても同じ問題が発生します。

この時点でmdadm、現在ドライブに再構築を試みていますが(今回は失敗しなかった理由は不明)、大幅速度が低下しました。通常の速度の 1/2 から 1/4 の間で変動しています。交換したエンクロージャも、以前のものと同様にドライブを再検出しています。

さて、私はハードウェアの診断についてはあまり詳しくありません。市販のハードウェアでは、通常は交換サイクルです。しかし、この場合、交換部品はすべて同じように動作しているので、問題は、私が目にしているいくつかのことをグーグルで検索してみたのです/var/log/syslogが、今のところほとんど理解できていません。言えることは...

エンクロージャがドライブを「再検出」すると、次の場所に表示されますsyslog

Oct  3 17:43:52 gibson kernel: [ 1478.755088] ata5: controller in dubious state, performing PORT_RST
Oct  3 17:43:54 gibson kernel: [ 1480.909415] ata5.05: limiting SATA link speed to 1.5 Gbps

syslog他にも、次のような厄介なメッセージや頻繁に繰り返されるメッセージがあります。

Oct  3 17:46:05 gibson kernel: [ 1612.163891] ata5.00: exception Emask 0x0 SAct 0x0 SErr 0x400000 action 0x6
Oct  3 17:46:05 gibson kernel: [ 1612.163894] ata5.00: irq_stat 0x00060002, device error via D2H FIS
Oct  3 17:46:05 gibson kernel: [ 1612.163897] ata5.00: SError: { Handshk }
Oct  3 17:46:05 gibson kernel: [ 1612.163899] ata5.00: failed command: WRITE DMA
Oct  3 17:46:05 gibson kernel: [ 1612.163904] ata5.00: cmd ca/00:00:00:29:87/00:00:00:00:00/e0 tag 0 dma 131072 out
Oct  3 17:46:05 gibson kernel: [ 1612.163905]          res 51/84:90:70:29:87/00:00:00:00:00/e0 Emask 0x10 (ATA bus error)
Oct  3 17:46:05 gibson kernel: [ 1612.163907] ata5.00: status: { DRDY ERR }
Oct  3 17:46:05 gibson kernel: [ 1612.163909] ata5.00: error: { ICRC ABRT }

そして時にはこうも言う:

Oct  3 18:07:10 gibson kernel: [ 2877.073010] ata5.00: failed to read SCR 1 (Emask=0x40)
Oct  3 18:07:10 gibson kernel: [ 2877.073015] ata5.00: failed to read SCR 0 (Emask=0x40)
Oct  3 18:07:10 gibson kernel: [ 2877.073017] ata5.01: failed to read SCR 1 (Emask=0x40)
Oct  3 18:07:10 gibson kernel: [ 2877.073020] ata5.01: failed to read SCR 0 (Emask=0x40)
Oct  3 18:07:10 gibson kernel: [ 2877.073022] ata5.02: failed to read SCR 1 (Emask=0x40)
Oct  3 18:07:10 gibson kernel: [ 2877.073024] ata5.02: failed to read SCR 0 (Emask=0x40)
Oct  3 18:07:10 gibson kernel: [ 2877.073026] ata5.03: failed to read SCR 1 (Emask=0x40)
Oct  3 18:07:10 gibson kernel: [ 2877.073028] ata5.03: failed to read SCR 0 (Emask=0x40)
Oct  3 18:07:10 gibson kernel: [ 2877.073030] ata5.04: failed to read SCR 1 (Emask=0x40)
Oct  3 18:07:10 gibson kernel: [ 2877.073032] ata5.04: failed to read SCR 0 (Emask=0x40)
Oct  3 18:07:10 gibson kernel: [ 2877.073034] ata5.05: failed to read SCR 1 (Emask=0x40)

他に実行できるテストはありますか?他に試せることはありますか?できた使用されているハードウェアに関係なく症状が現れるという問題はあるのでしょうか?

アレイは、時々ドライブを交換しながら、何年も問題なく動作しています。ホストのソフトウェアは変更されていません (私が侵入されて知らない場合を除いて、これは確かにあり得ます)。しかし、数か月前にドライブが故障したため、再構築が頻繁に行われ、最終的に現在の状態になりました。

編集:私が今気づいたもう一つのパターンは、何か意味があるかどうかはわかりません。アレイ内のドライブsdb1は から ですsdu1。起動中のOSでは常に同じ順序で認識されるわけではないので、どのドライブでも再起動時に文字が変わる可能性があります。ドライブが常に故障していたときすぐに再構築時にはmdadmでした/dev/sdq1。しかし、現在の症状 (再構築が遅い、エンクロージャがそれを何度も「再検出」する、基本的に上記に記録されたエラー) 全体を通して、 でした/dev/sdu1

編集:Knoppix 7.2 をダウンロードして、アレイを起動してそこにドライブを追加できるかどうかを確認しました。ソフトウェアの問題であるかどうかを確認するためです。まったく同じ症状です。つまり、ハードウェアを交換し、ソフトウェアを交換しましたが、問題は解決しません。現時点では行き詰まっています。

編集:また、次のようにしてドライブをゼロにすることも試しました。

dd if=/dev/zero of=/dev/sdu bs=1M

しかし、同じ症状が続きます。この時点で、コントローラーに何か問題があるのではないかと疑っていますが、その理由はわかりません。2 枚のカードはそれぞれ動作しますが、何らかの理由で、両方を合わせてもこれほど多くのドライブを管理できないのでしょうか? 意味がわからないかもしれませんが、ここではパターンを特定しようとしているだけです。

編集:出力smartctl -a -d ata /dev/sdu:

smartctl 5.40 2010-10-16 r3189 [x86_64-slackware-linux-gnu] (local build)
Copyright (C) 2002-10 by Bruce Allen, http://smartmontools.sourceforge.net

=== START OF INFORMATION SECTION ===
Model Family:     Western Digital Caviar Green family
Device Model:     WDC WD20EADS-00S2B0
Serial Number:    WD-WCAVY0536607
Firmware Version: 01.00A01
User Capacity:    2,000,398,934,016 bytes
Device is:        In smartctl database [for details use: -P show]
ATA Version is:   8
ATA Standard is:  Exact ATA specification draft version not indicated
Local Time is:    Sat Oct  5 07:04:21 2013 EDT
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

General SMART Values:
Offline data collection status:  (0x84) Offline data collection activity
                                        was suspended by an interrupting command from host.
                                        Auto Offline Data Collection: Enabled.
Self-test execution status:      (   0) The previous self-test routine completed
                                        without error or no self-test has ever 
                                        been run.
Total time to complete Offline 
data collection:                 (42900) seconds.
Offline data collection
capabilities:                    (0x7b) SMART execute Offline immediate.
                                        Auto Offline data collection on/off support.
                                        Suspend Offline collection upon new
                                        command.
                                        Offline surface scan supported.
                                        Self-test supported.
                                        Conveyance Self-test supported.
                                        Selective Self-test supported.
SMART capabilities:            (0x0003) Saves SMART data before entering
                                        power-saving mode.
                                        Supports SMART auto save timer.
Error logging capability:        (0x01) Error logging supported.
                                        General Purpose Logging supported.
Short self-test routine 
recommended polling time:        (   2) minutes.
Extended self-test routine
recommended polling time:        ( 255) minutes.
Conveyance self-test routine
recommended polling time:        (   5) minutes.
SCT capabilities:              (0x303f) SCT Status supported.
                                        SCT Error Recovery Control supported.
                                        SCT Feature Control supported.
                                        SCT Data Table supported.

SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  1 Raw_Read_Error_Rate     0x002f   179   179   051    Pre-fail  Always       -       90370
  3 Spin_Up_Time            0x0027   149   149   021    Pre-fail  Always       -       9525
  4 Start_Stop_Count        0x0032   100   100   000    Old_age   Always       -       22
  5 Reallocated_Sector_Ct   0x0033   200   200   140    Pre-fail  Always       -       0
  7 Seek_Error_Rate         0x002e   200   200   000    Old_age   Always       -       0
  9 Power_On_Hours          0x0032   092   092   000    Old_age   Always       -       6170
 10 Spin_Retry_Count        0x0032   100   253   000    Old_age   Always       -       0
 11 Calibration_Retry_Count 0x0032   100   253   000    Old_age   Always       -       0
 12 Power_Cycle_Count       0x0032   100   100   000    Old_age   Always       -       18
192 Power-Off_Retract_Count 0x0032   200   200   000    Old_age   Always       -       9
193 Load_Cycle_Count        0x0032   001   001   000    Old_age   Always       -       610025
194 Temperature_Celsius     0x0022   117   073   000    Old_age   Always       -       35
196 Reallocated_Event_Count 0x0032   200   200   000    Old_age   Always       -       0
197 Current_Pending_Sector  0x0032   200   200   000    Old_age   Always       -       125
198 Offline_Uncorrectable   0x0030   200   200   000    Old_age   Offline      -       0
199 UDMA_CRC_Error_Count    0x0032   200   200   000    Old_age   Always       -       62927
200 Multi_Zone_Error_Rate   0x0008   090   090   000    Old_age   Offline      -       22176

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]


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.

アップデート:この冒険で、初めて有望な展開が訪れるかもしれません。過去 6 時間ほど (断続的に) ドライブ/エンクロージャ/ケーブル/カードを交換して、体系的にパターンを見つけようと試みた結果、ついにパターンを見つけました。しかも、一貫して再現できるパターンです。

ホットスワップは好みません。

そうであると言っています。そのように主張しています。そして、この約束を守るためにあらゆる努力をしています。しかし、それは嘘です。私は、これに関係する低レベルのハードウェア アーキテクチャやカーネル アーキテクチャについて何も知っているふりをしませんが、少なくとも再現可能なパターンを論理的に判断することはできます。

そして、私は今年の夏、気づかないうちにホットスワップの失敗を始めたと思います。引き起こしたその結果、この混乱が起こりました。syslog私が目にしているエラーは 6 月に始まったことが示されています。これは、大きな障害が発生する直前であり、私が夏にサンフランシスコに行って作業できなくなる直前でした。

しかし、ディスクを移動する必要があるときにいつでも再起動すると、今のところエラーは表示されません。20 番目のディスクが再度追加され、正しい速度で再構築されています (それでも 2TB ディスクの場合は約 36 時間かかります)。そして、今のところ静かである ( tail -f)を監視しsyslogています。

これについて自信を持って報告できるまでには数日かかるだろう。しかし今のところは有望に見えている。この答えは5月最終的には「Linux 上で Rosewill RSV-S5 をホットスワップしないでください」となるでしょう。

答え1

ハードウェア周辺の低レベル アーキテクチャやそれを制御するカーネル ドライバーについてはまだよくわかりませんが、この場合の「解決策」はドライブをホットスワップしないことのようです。

したがって、Rosewill RSV-S5 (または、おそらくその類のもの) を Linux (他のシステムでも同様かもしれませんが、わかりません) で使用する場合は、決してホットスワップしないでください。また、実行されたsyslogと表示された場合はPORT_RST、安全のために再起動してください。

ホットスワップは、最初はうまく機能しているように見えるかもしれません。ドライブには FS がマウントされておらず、単なるむき出しのパーティションで、ハードウェアはドライブ レールなどでセットアップされており、新しいドライブを挿入すると、システムがそれを認識し、対話できるデバイスを割り当てます。ただし、syslog安全のために注意してください。

関連情報