再構築中にRAID5システムでUREが発生すると、すべてのデータが失われますか?


23

再構築中にUREが発生する可能性が大きくなるという大きなドライブに関する議論を理解していますが、これが実際に何を意味するのかわかりません。この回答は、再構築全体が失敗したと言っていますが、これはすべてのデータにアクセスできないことを意味しますか?どうしてですか?確かに、ドライブ上の単一のセクターからの単一のUREは、せいぜい少数のファイルに関連するデータにのみ影響します。いくつかのファイルにわずかな破損があるだけで、アレイはまだ再構築されませんか?

(ここでは特にZFSのRAID5の実装に興味がありますが、論理はどのRAID5実装でも同じようです。)


1
一般に、「再構築中に UREを経験する可能性」がRAID5リスクのコンテキストで議論される場合、暗黙の仮定は、再構築が必要になる以前の破損が既に発生しているということです。つまり、「再構築中のURE」は2番目の UREであり、実際にはすべてのデータが失われます。
コルト

1
@Colt-それが意味することを理解していますが、私が理解していないのは、単一のURE(RAID5が推奨されない理由の分析では、不良セクタを参照しているように見える)がすべてのデータが意味することです失われます。一般に、RAID5アレイのドライブを1台失った場合でも、すべてのデータが残っています。残りのドライブのいずれかからさらに1つのセクターを失うと、そのセクターに格納されているデータを失う可能性がありますが、そのセクターが(たとえば)空きスペースである場合は気にしません。その上にデータがあった場合、それは少数のファイルにのみ影響を与える可能性があります。
process91

@Colt-以下の回答に基づくと、単一のUREの存在下でアレイを再構築することに失敗することは、ハードウェアRAIDメーカーによって行われた選択のようです。私の意見では、これは間違った選択でしたが、ありがたいことにZFSはそれを違うやり方で行っているようです。
process91

プロセスについては、@ shodanshokの回答を参照してください。理由については、RAIDは他のプロセスやアプリケーションなどの信頼できるデータへのアクセスを継続するためのものであり、バックアップではありません。再構築でUREが発生すると、多くの(ほとんどの?)ハードウェアコントローラーが中断する理由は、RAID が本来の動作を実行できないためです。この時点で、信頼できるデータを得るためにバックアップを使用する必要があります。RAIDを使用する別の方法は、再構築を一切行わず、RAIDを使用してバックアップからの回復のタイミングを制御することです。また、リカバリの前に最終バックアップを作成する時間を確保できます。
コルト

「RAID5の「ZFS」実装」は「raidz」または「zraid」と呼ばれ、ハードウェアRAID5とは異なることに注意してください。通常、「raidz」について尋ねる「ZFS RAID5」についてのより良い答えが得られます
ジョシュ

回答:


24

それは実際に特定のRAID実装に依存します:

  • ほとんどのハードウェアRAIDは再構築を中止し、一部のハードウェアRAIDはアレイを故障としてマーク、ダウンさせます。その理由は、RAID5の再構築中にUREが発生した場合、一部のデータ失われることを意味するため、サイレントデータ破損のリスクを回避するため、アレイを完全に停止することをお勧めします。注:一部のハードウェアRAID(主にLSIベース)は、代わりにアレイをパンクし、影響を受けるセクターを読み取り不能としてマークしている間に再構築を続行できます(LinuxソフトウェアRAIDの動作と同様)。

  • LinuxソフトウェアRAIDは、a)アレイの再構築を停止する(「古代の」MDRAID /カーネルビルドの唯一の動作)か、b)一部のLBAを不良/アクセス不可としてマークする再構築プロセスを続行するように指示できます。理由は、ユーザーに選択を許可する方が良いということです。結局のところ、単一のUREが空き領域にあり、データにまったく影響を与えない(または重要でないファイルのみに影響を与える)ことができます。

  • ZRAIDは一部のファイルが破損していると表示しますが、再構築プロセスを続行します(例についてはこちらを参照してください)。繰り返しになりますが、論理的根拠は、ユーザーが情報に基づいた選択を行えるように、継続してユーザーに報告する方が良いということです。


@ process91少し詳しく説明します。RAIDの実装に、個々のセクターを不良としてマークするために必要な追加のデータ構造がない場合、再構築に失敗するか、サイレント破損を引き起こす必要があります。個々のセクターを不良としてマークする方が良いですが、不良セクターとパリティセクターを共有しているため、他のセクターをリスクにさらす可能性があります。
カスペルド

@kasperd確かに、ほとんどのRAID実装には、ユーザーに不良セクタを警告する機能があると思います。1つのドライブに不良セクタがあり、再構築後に新しいドライブに誤ったセクタが発生するかどうかを理解しています。つまり、RAID実装がユーザーに「できる限りドライブを再構築しましたが、プロセスで1 UREを経験しました」と警告しただけで、そのセクターへの書き込み試行を許可し続けたとしても、他のセクターがどのように危険にさらされる可能性があるかを参照してください。考えられる唯一の誤ったセクターは、元のセクター、新しいセクター、およびパリティーです。
process91

上記@Coltのコメントに基づいて一つの明確化、 -として、それが配列をマークしたときに、ハードウェアRAIDの場合は、失敗したそれはまだすべてのデータへのアクセスを許可しますか?たとえば、リカバリを目的とした読み取り専用アクセスでもかまいませんか?
process91

@ process91セクターの破損を許可することは、たとえその事実がログファイルに記録されていても、良い考えとはみなされません。どのファイルが破損しているのかわかりません。RAIDは、そのファイルの読み取り時にエラーが発生することを確認する必要があります。また、明らかに不良セクタを上書きしたくないのは、データを回復する最後のチャンスを失っただけだからです。そのため、1つのディスクに読み取り不可能なセクターがあり、新しいディスクに何を書き込むべきかわからないセクターがあります。2つの異なるファイルが破損している可能性があります。
カスパード

1
@ process91 LSIベースのアレイに関するメモを追加しました。それを見てください。
shodanshok

8

UREが発生した場合、通常256KB-1MBのサイズのブロックでデータ破損が発生しますが、これはボリューム上のすべてのデータが失われるという意味ではありません。RAID5のそれほど優れていないことは、まったく異なることです。再構築自体はストレスが多く、2回目のディスク障害が連続して発生する可能性が高くなります。そのような場合、すべてのデータが失われます。


2
RAID5の再構築は、RAID1の再構築よりも、単一のドライブでどのようにストレスが大きくなりますか?CPUの方がストレスが大きいことがわかりますが、特定のドライブについては、すべてのデータを読み取ります。通常、人々がより大きなドライブで言及する危険性は、再構築中にUREに遭遇する可能性が高いことですが、単一のセクターが破損することを意味する場合はそれで問題ありません。
process91

3
それは確率論です。N(ドライブの数)では、障害が発生する可能性がN倍高くなります。
BaronSamedi1958

1
それは計算がどのように機能するかということではありません。実際には1- 失敗しない確率を計算したいと思いますが、私はその部分を理解しています。私はあなたの声明を誤ってRAID5を再構築する行為がディスク自体(それは他の場所で読んだ)でよりストレスが多いことを示唆していると解釈したので、UREの機会を増やしますが、それがあなたのものではない場合言ってから、私は同意します。
process91

2

逆に説明します。

RAIDコントローラーがUREで停止しない場合、どうなりますか?

私はそれをサーバー上に置いたが、RAIDはUREに気付かず、再構築後にRAIDボリューム全体に破損が蓄積し始めた。

再構築後にディスクが不良セクタを取得し始め、データが破損し始めました。

ディスクがRAIDボリュームからキックオフされることはありませんでした。コントローラーの障害は、データの整合性を保護することです。

この例は、ボリュームがバックアップではなくディスク障害に対する回復力を目的としているため、コントローラーがUREでボリュームをまったく押し込めないことを考えさせるために書かれています。


1
私は新しいモデレータがすべて絶えず観光名所を探して、サイトをチェックしている見...
ウォード-復活モニカ

1
単一のUREがRAIDボリューム全体に破損を蓄積するのはなぜですか?
process91

2
申し訳ありませんが、回答を読み直しました。再構築中にUREが1つしかなかったようですが、これは問題ではありませんでした。問題は、再構築後もセクターが悪化し続け、ドライブがそれを報告しなかったことです。ただし、これは、再構築中にRAIDコントローラーがUREに気付くかどうかとは別の問題のようです。RAIDコントローラは、再構築中にUREに気づき、警告を発しますが、それでも再構築の完了に進みます。一部のデータは、データなしよりも常に優れています。
process91

2
2009年にRAID5が「デッド」と見なされた理由の分析にのみ興味があります。これは、単一のUREの可能性に基づいています。私の理解では、この分析は数学的に不正確であり、たとえばZFSに同じ方法で実際には適用されないということです。
process91

1
@RobMoirあなたの最後の発言は私が反対するところだと思います。別のバックアップがあったとしても、アレイからほとんどすべてのデータを取得すると便利です。たぶんそのファイルは重要ではなかったか、(ハードウェアRAIDの場合)エラーは空き領域で発生しました。ハードウェアRAID(具体的にはどのファイルが影響を受けたかわからない)の正しい決定は、ユーザーに警告し、再構築を完了し、アレイを読み取り専用モードに切り替えることだと思います。これには欠点はありません。(明らかに、ZFSなどのファイルシステムは、影響を受けるファイルを報告できるため、さらに改善できます。)
process91

1

もう少し背景については、この質問と回答を読むことをお勧めします。次に、リンクした質問をもう一度読み直します

この状況について誰かが「RAIDに障害が発生した」と言うとき、それはRAIDの利点を失ったことを意味します-最初にRAIDアレイをセットアップした理由であるデータへの継続的なアクセスを失った。

すべてのデータを失ったわけではありませんが、1台のデッドドライブと残りのドライブの(一部)UREから復旧する最も一般的な方法は、アレイを最初から完全に再構築することです。これは、すべてのデータを復元することを意味しますバックアップから。


1
一般に、ダウンタイムを最小限に抑えることが目標の場合は、RAIDを使用します。アレイが不明で修復されていない破損を続けることは、通常その目標に反します。
デビッドシュワルツ

1
ありがとう、あなたがリンクした最初の質問は非常に有益でした。データへの継続的なアクセスが失われたのはなぜですか?アレイは再構築中も動作し続け、再構築中にUREに遭遇した場合、この1セクターのデータが破損しているにもかかわらず、そのまま動き続けると予想されます。そうではありませんか?
process91
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.