私はプロのシステム管理者ではありませんが、しばらく調査した後、特定のケースに対する回答が見つからなかったため、ここで助けが得られることを望んでいました。私たちのサーバーは、RAID1構成のHPSmartコントローラーアレイであるP222を使用しています。物理ハードドライブの1つにあるいくつかのセクターに障害が発生したと思います。 hpacucli
ツールを使用したところ、出力は次のようになりました。-
$ hpacucli ctrl all show config
Smart Array P222 in Slot 1 (sn: PDSXH0ARH5I0SW)
array A (SATA, Unused Space: 0 MB)
logicaldrive 1 (2.7 TB, RAID 1, Ready for Rebuild)
physicaldrive 2I:1:1 (port 2I:box 1:bay 1, SATA, 3 TB, OK)
physicaldrive 2I:1:2 (port 2I:box 1:bay 2, SATA, 3 TB, Predictive Failure)
同じツールを数回実行してステータスを確認しましたが、ある時点で「予測障害」が「1%の再構築」に置き換えられ、後で2%に増加したことに気付きました。再建を始めるために何もしなかったと思います。とにかく、私はそれを実行させ、しばらくしてステータスをチェックしました。その時点で、「予測障害」に戻りました。
Smartctlのロングテストとショートテストの実行時に-セルフテストログが報告されました:-
=== START OF READ SMART DATA SECTION ===
SMART Self-test log structure revision number 1
Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error
# 1 Extended offline Completed: read failure 90% 14368 334201968
# 2 Short offline Completed: read failure 90% 14367 625082211
このサーバーでMySQLインスタンスを実行していますが、ハードディスクの故障/不良セクタが原因である可能性があることを示す読み取りエラーの不平を言い始めていないため、上記のツールを使用しています。私はいくつか質問がありました:-
これを診断/修正するために必要となる可能性のある追加の詳細を報告してください
編集1:要求に応じてMySQLエラーログは次のようになります:-
150824 10:27:00 InnoDB: Completed initialization of buffer pool
150824 10:27:00 InnoDB: highest supported file format is Barracuda.
InnoDB: The log sequence number in ibdata files does not match
InnoDB: the log sequence number in the ib_logfiles!
150824 10:27:00 InnoDB: Database was not shut down normally!
InnoDB: Starting crash recovery.
InnoDB: Reading tablespace information from the .ibd files...
InnoDB: Restoring possible half-written data pages from the doublewrite
InnoDB: buffer...
150824 10:27:00 InnoDB: Waiting for the background threads to start
150824 10:27:01 InnoDB: 5.5.35 started; log sequence number 2723867081864
150824 10:27:01 [Note] Server hostname (bind-address): <ip and port here>;
150824 10:27:01 [Note] - <ip here> resolves to <ip here>;
150824 10:27:01 [Note] Server socket created on IP: <ip here>.
InnoDB: Error: tried to read 16384 bytes at offset 70 1898921984.
InnoDB: Was only able to read -1.
150824 10:27:01 InnoDB: Operating system error number 5 in a file operation.
InnoDB: Error number 5 means 'Input/output error'.
InnoDB: Some operating system error numbers are described at
InnoDB: http://dev.mysql.com/doc/refman/5.5/en/operating-system-error-codes.html
InnoDB: File operation call: 'read'.
InnoDB: Cannot continue operation.
編集2:コメントに基づいて https://serverfault.com/a/716471/306555 、ディスクを交換するためのチケットを開き、ディスクを交換してRAIDを再構築しました。 hpacucliからの出力は次のようになります:-
physicaldrive 2I:1:1 (port 2I:box 1:bay 1, SATA, 3 TB, OK)
physicaldrive 2I:1:2 (port 2I:box 1:bay 2, SATA, 3 TB, OK)
したがって、予測の失敗はなくなりました。ただし、MySQLで読み取りエラーが発生し続けたため、smartctlの長いテストと短いテストを再度実行しました。短いテストは合格しましたが、長いテストは読み取りエラーで失敗しました:-
Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error
# 1 Extended offline Completed: read failure 90% 14393 625116232
# 2 Short offline Completed without error 00% 14392 -
また、syslogを確認したところ、MySQLを起動しようとするたびに、syslogにこのエラーがあることに気付きました。
Aug 25 14:23:41 kernel: [ 1603.911185] sd 6:0:0:1: [sda] Unhandled sense code
Aug 25 14:23:41 kernel: [ 1603.911186] sd 6:0:0:1: [sda] Result: hostbyte=invalid driverbyte=DRIVER_SENSE
Aug 25 14:23:41 kernel: [ 1603.911188] sd 6:0:0:1: [sda] Sense Key : Medium Error [current]
Aug 25 14:23:41 kernel: [ 1603.911190] sd 6:0:0:1: [sda] Add. Sense: Unrecovered read error
Aug 25 14:23:41 kernel: [ 1603.911192] sd 6:0:0:1: [sda] CDB: Read(10): 28 00 46 a2 d5 a0 00 00 08 00
それは何を示していますか? (ディスク上の不良セクタのように見えますか?)その場合、それを修正する方法はありますか?
はい。これは長い質問ですが、短い答えが得られます。
「予測障害」または「失敗」が表示された場合は、ディスクを交換してください。
これらの条件は両方とも、HPからのサポートチケットおよび/または保証部品の交換を確立する目的で有効です。
「予測障害」には、S.M.A.R.T.データと、ドライブの状態を判断するための他のヒューリスティックが組み込まれています。ただし、詳細はそれほど重要ではありません。ドライブの交換を計画してください。
アプリケーションレベルで影響が見られるという事実は、正しい行動方針がディスクを交換することであることを示すもう1つの兆候です。簡単に行えます... SATAドライブでありながら、HPパーツであるため、保証が付いています(おそらく1年ですが、サーバーのシリアル番号に関連付けられています)。
HPに電話...
HPハードドライブを使用していますか?または通常の消費者ドライブ?ドライブには時間制限付きエラー回復機能がありますか?
そうでない場合、ドライブは不良セクタを読み取ろうとしているときにコントローラをロックアップする可能性があります。ドライブが放棄するまでに長い時間がかかるため、読み取りは失敗します。 RAIDコントローラは、最初のドライブが故障したと判断するのを待ってスタックしているため、他のドライブを試す機会がありません。
この動作により、ドライブが一時的にレイドから脱落し、再構築が説明されます。
これは、HP以外のドライブを使用している場合にのみ適用されます。サポートされているドライブは、すぐに諦め、RAIDコントローラーにエラーを処理させるようにプログラムされています。