web-dev-qa-db-ja.com

RAIDセットアップにもかかわらず、Ubuntuサーバーがハードディスクの問題で応答しなくなる

私はUbuntu10.04.4 LTS(Linux xxxx 2.6.32-67-server#134-Ubuntu SMP Wed Sep 24 18:55:00 UTC 2014 x86_64 GNU/Linux)でサーバーを実行しています。 。

システムがかなりの時間(> 1時間)完全に応答しなくなり、サーバーが事実上停止するという問題が繰り返し発生しました。襲撃は問題のあるディスクをアレイに保持し、時には再構築を開始します。 3台の別々のマシンで同じ問題が発生しました(同じセットアップ)。

このようなダウンタイムを防ぐ簡単な方法はありますか?障害のあるディスク自体はそれほど気になりませんが(すべてが数年間ノンストップで実行されています)、結果として生じるダウンタイムは私を悩ませます。 RAID 1は、1台のハードディスクに障害が発生した場合でもシステムを稼働させ続けるだろうという印象を受けました。 RAIDコントローラがアレイからディスクをキックするだけで、システムが動作し続けるのであれば、まったく問題ありません。凍結せずにバックグラウンドで問題を解決しようとすると、さらに良いでしょう。システムが動作可能である限り、パフォーマンスの低下も問題になりません。

このようなイベントのサンプルログエントリは次のとおりです。

Nov 14 14:00:10 xxxx kernel: [2137088.775542] ata2.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x0
Nov 14 14:00:10 xxxx kernel: [2137088.788591] ata2.00: irq_stat 0x40000001
Nov 14 14:00:10 xxxx kernel: [2137088.801879] ata2.00: failed command: READ DMA EXT
Nov 14 14:00:10 xxxx kernel: [2137088.814988] ata2.00: cmd 25/00:80:d1:b9:89/00:00:16:00:00/e0 tag 0 dma 65536 in
Nov 14 14:00:10 xxxx kernel: [2137088.814991]          res 51/40:00:d3:b9:89/00:00:16:00:00/e0 Emask 0x9 (media error)
Nov 14 14:00:10 xxxx kernel: [2137088.867197] ata2.00: status: { DRDY ERR }
Nov 14 14:00:10 xxxx kernel: [2137088.880205] ata2.00: error: { UNC }
Nov 14 14:00:10 xxxx kernel: [2137088.906336] ata2.00: configured for UDMA/133
Nov 14 14:00:10 xxxx kernel: [2137088.906345] sd 1:0:0:0: [sdb] Unhandled sense code
Nov 14 14:00:10 xxxx kernel: [2137088.906347] sd 1:0:0:0: [sdb] Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
Nov 14 14:00:10 xxxx kernel: [2137088.906351] sd 1:0:0:0: [sdb] Sense Key : Medium Error [current] [descriptor]
Nov 14 14:00:10 xxxx kernel: [2137088.906356] Descriptor sense data with sense descriptors (in hex):
Nov 14 14:00:10 xxxx kernel: [2137088.906358]         72 03 11 04 00 00 00 0c 00 0a 80 00 00 00 00 00 
Nov 14 14:00:10 xxxx kernel: [2137088.906367]         16 89 b9 d3 
Nov 14 14:00:10 xxxx kernel: [2137088.906371] sd 1:0:0:0: [sdb] Add. Sense: Unrecovered read error - auto reallocate failed
Nov 14 14:00:10 xxxx kernel: [2137088.906376] sd 1:0:0:0: [sdb] CDB: Read(10): 28 00 16 89 b9 d1 00 00 80 00
Nov 14 14:00:10 xxxx kernel: [2137088.906385] end_request: I/O error, dev sdb, sector 378124755
Nov 14 14:00:10 xxxx kernel: [2137088.919172] ata2: EH complete

これはレイドの設定です(cat/proc/mdstat):

Personalities : [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] [linear] [multipath]
md2 : active raid1 sda3[0] sdb3[1]
      726266432 blocks [2/2] [UU]

md1 : active raid1 sdb2[1] sda2[0]
      2104448 blocks [2/2] [UU]

md0 : active raid1 sdb1[1] sda1[0]
      4200896 blocks [2/2] [UU]

unused devices: <none>

よろしくお願いします!

1
Florian Sander

ソフトウェアRAIDを使用しています。 「アレイからディスクをキックする」ための「RAIDコントローラー」がありません。代わりに、カーネルがATAコントローラーを管理し、ディスクが応答しない場合(この場合、メディアエラーが発生しているため)、カーネルは待機します。このタイプの状況は、常に目に見える症状を引き起こすとは限りませんが、確かに起こり得ます。

簡単なことは、ハードウェアRAIDコントローラーを使用することです。それでも、奇妙なエッジケースの障害が目に見える症状を引き起こす可能性は常にありますが、その可能性ははるかに低くなります。実際のハードウェアRAIDコントローラーは、メディアエラーが発生した場合でも、マシンの応答性を維持できる可能性がはるかに高くなります。

3
Evan Anderson