ディスクの不良セクタによるデータ損失を回避するにはどうすればよいでしょうか?

ディスクの不良セクタによるデータ損失を回避するにはどうすればよいでしょうか?

タイトルにあるように、私はどうすればデータ損失を回避するハードディスク(機械式 HDD または SSD)の不良セクタが原因。

\詳しくは\

質問は明確に定義されています。質問はここで終わります。さらに情報を提供してみましょう。ストレージ デバイスの障害 (ハードウェア障害、まずウイルス関連の障害を除く) は、主に 2 つのタイプに分けられます。

  1. ディスク全体の障害。ディスク内部で機械的または電子的な問題が発生すると、ディスクにアクセスできなくなります。

  2. 不良セクタ。特定の部分だけに障害があります。ディスク全体は正常に動作しているように見えます。特定の不良セクタにアクセス/チェックしないと、不良セクタがあることがわかりません。

\RAIDでは不良セクタによるデータ損失は避けられない\

RAID1、RAID5、またはRAID6では、ケース1によるデータ損失を回避できます。ただし、私の知る限り、標準RAIDはすべてのデータを定期的にスキャンしてチェックしないため、RAIDはケース2によるデータ損失を回避できません。たとえば、RAID1ミラーの場合、最初のディスクに不良セクタが発生した場合、最初のディスクのファイルが破損しています。その場合、2番目のディスクにはまだミラーリングされたファイルが残っています。しかし、不良セクタが存在するかどうかはわかりません。したがって、RAID1 アレイはディスク障害を示さず、回復をトリガーしません。その後、時間が経つにつれて、不良セクタがどんどん現れます。(すべてのハードウェアは消耗しており、それは時間の問題です。) 2 番目のディスクのミラー ビット/ミラー部分にも不良セクタが発生する可能性は間違いなくあります。この時点で、冗長コピーはもう存在しません。影響を受けたデータは永久に失われます。同様に、私たちはすぐにこれに気づくことはありません。そのデータにアクセスするまで、この損失に気付くことはありません。

\ZFSは(チェックサム付きのファイルシステム)解決策?\

不良セクタによるデータ損失を避けたいという懸念から、ファイル チェックサムについて調べ始めました。すべてのファイルのチェックサムを含む一般的なファイル システムはそれほど多くないようです。私は Gentoo Linux について多少の知識があります。そのため、Gentoo Linux で ZFS を使用する予定です。

ZFS の「ストレージの管理はシンプルであるべき」と「冗長性はファイルシステムによって処理されるべき」という考え方自体は良いものです。ZFS ディスクに不良セクタが発生した場合、ZFS はそれをサイレントに回復するように思えます (そうではないでしょうか? まだ確認できていません)。ZFS ディスクに不良セクタがどんどん発生すると、その ZFS ディスクのサイズが小さくなるのでしょうか? そうでない場合、不良セクタが発生したときにどのように気付くのでしょうか? ハードディスクの不良セクタが多すぎて別の正常なハードディスクと交換する必要があるかどうかをどのように判断すればよいのでしょうか? ZFS モニターと ZFS ユーティリティが必要になると思いますが、インターネット上ではそれほど多くの情報を見つけることができません。

答え1

データストレージは必ずいつかは故障すると仮定すると、複数のコピーを保存するデータの読み取りと、データの読み取りが正常に実行できることを定期的に確認します。

何らかの RAID を使用することは、少なくとも 1 つのバックアップ コピーを保持するのに良い方法のように思えますが、すべてのコピーを同じ建物、部屋、マシンに保管しないという明白な理由から、追加のコピーを用意しておくことは素晴らしいアイデアです。オンライン バックアップは、ドライブの故障を他の人に心配させる良い方法です。

データがまだ読み取り可能であることを確認するには、独自のチェックサムを保存し、定期的に検証するだけです。GNUcksumのコア ユーティリティ、または md5sum や shaXsum などの基本的な CRC が機能します (ただし、私の意見では、不良セクタだけの場合はやりすぎです)。

[そして、明らかな理由から、チェックサム ファイルのコピーをいくつか保存してください。]

ZFSに独自のチェックサムがある場合でも、他のファイルシステムやオンラインに保存されているコピーを検証するために、独自のコピーを保持する必要があります。また、いずれにしても、検証するためには、あなたまたはZFSがすべてのファイルを読み取る必要があると想定しています(これはZFSデータスクラビング( で明示的に呼び出されますzpool scrub)。


また、多くのドライブ (特にフラッシュ ドライブ) が独自の不良ブロック管理 (およびウェア レベリング) を行って、不良ブロックと限界ブロックを新しいスペア ブロックと交換し、ユーザーやオペレーティング システムが気付かないうちに (ほとんどの場合) すべて静かに行われることも興味深い点です。フラッシュ メモリ カードについて読んだことがありますが、16 GB のメモリのうち、512 MB または 1 G のカードを作るのに十分なメモリしかなかったそうです。

答え2

RAID 5/6について

RAID 5/6 にはパリティ データがあります。

ディスク全体を再構築できる場合、単一セクターを回復するのに十分なパリティ データが確実に存在します。

最悪の場合、不良セクタが検出され、ドライブ全体が交換され、すべてが再構築されます。

したがって、RAID 5/6が不良セクタを検出すると、すべきパリティデータを自動的に使用して修復します。

私の Adaptec RAID コントローラには、GUI に特別な「検証/修正」オプションもあります。

また、チェックサム、sha1、sha2、CRC などは、エラーが発生したときにそれを検出する機能のみを提供します。エラーを修正する機能は提供しません。

関連情報