RAID5はRAID1より堅牢です


12

古いハードウェアRAID5アレイをLinuxソフトウェアRAID1アレイに置き換えようとしています。私は友人と話していましたが、彼はRAID5はRAID1より堅牢であると主張しました。

彼の主張は、RAID5では、すべてのドライブが正しいデータを返していることを確認するために、読み取り時にパリティデータが読み取られることでした。さらに、RAID1ではこのようなチェックが行われないため、ドライブで発生するRAID1エラーは気付かれないと主張しました。

これどのように当てはまるかはわかりますが、問題のRAIDシステムがどのように実装されているかにかかっていることもわかります。確かに、RAID5システムは読み取り時にパリティデータを読み取って確認する必要はなく、RAID1システム読み取り時にすべてのドライブから同じように簡単に読み取って、すべてが同じデータを保持していることを確認できるため、同じレベルの堅牢性(対応するパフォーマンスの低下を伴う)。

問題は、実世界のRAID5 / RAID1システムは実際に何をしているのかということです。RAID5システムは読み取り時にパリティデータをチェックしますか?すべてのドライブから読み取り、読み取り時にデータを比較するRAID1システムはありますか?

回答:


22

RAID-5は、データ整合性ソリューションではなく、フォールトトレランスソリューションです。

RAIDはRedundant Array of Inexpensive Disksの略であることに注意してください。ディスクは冗長性の原子単位です-RAIDはデータを実際に気にしません。データの冗長性と整合性に対処するために、WAFLやZFSなどのファイルシステムを使用するソリューションを購入します。

RAIDコントローラ(ハードウェアまたはソフトウェア)、読み取り時にブロックのパリティを検証しません。これはRAID-5を実行する主要なリスクです-ドライブで部分的なメディア障害が発生した場合(不良ブロックが「不良」とマークされていない状況)、データが静かにされている状況になります破損しています。

SunのRAID-Z / ZFSは実際にエンドツーエンドのデータ整合性を提供しますが、CPUで使用可能なコアの数が増え続けるため、他のファイルシステムとRAIDシステムは将来この機能を提供するでしょう。

RAID-5を使用している場合、あなたは安いと思っています。RAID 1はパフォーマンスが向上し、保護が強化され、ドライブに障害が発生しても本番環境に影響を与えません-わずかなコスト差があります。


6

答えはコントローラー/ソフトウェアに依存すると思います。たとえば、ミラーリングシステムでは、ペアから1枚のディスクのみを読み取るため、間違ったデータを配信できることがよくあります。結果がそのデータに依存している場合、データが両方のディスクに書き込まれると、両方のディスクで破損することに注意してください。

SATAssure(tm)PlusのPDFから:

「革新的なSATAssureテクノロジーは、大容量で安価なSATAディスクドライブを使用して、エンタープライズクラスのデータ保護と信頼性を実現します。SATAssureはすべての読み取り操作で動作し、データの整合性を確保し、問題をリアルタイムで自動的に修正します。従来のパフォーマンスや容量のペナルティはありませんストレージシステム。個々のドライブの電源を再投入する新しい機能により、ドライブのRMAを削減します。

一部のメーカーが、常にパリティを計算しているという事実について大騒ぎしているのは興味深いことです。ZFSやWAFL(netapp)などのシステムは、読み取りごとにパリティ計算を行うことにも注意してください。


そのリンクはおもしろそうに見えますが、実際にはそのページまたはパンフレットのどこかで、すべての読み取りでパリティを再計算すると明示的に言っていますか?
andynormancx

PDFから引用を追加しました。S2Aボックスは静かなハイエンドであることに注意してください。
ジェームズ

3

RAID-5では、パリティは通常、一般的な読み取りではなく、アレイの再構築時にのみ読み取られます。これにより、読み取りがよりランダムで高速になります(アレイから1Kのデータが必要になるたびにストライプ全体のパリティを読み取って計算する必要がないため)。

RAID-1では、通常、読み取りパフォーマンスを向上させるために、可能な場合は常に読み取りがドライブ間でステップ実行されます。先ほど述べたように、RAIDサブシステムが両方のドライブを読み取ろうとしても、それらが異なる場合、サブシステムはどちらのドライブが間違っていたかを知る方法がありません。

ほとんどのRAIDサブシステムは、ドライブに依存して、コントローラーまたはコンピューターに障害が発生したことを通知します。

RAID-5は「より堅牢」ですか?答えは、それは依存します。RAID-5では、RAID-1よりも特定のディスク数に対してより効果的なストレージを取得できます。ただし、1つのディスクを超える効果的なストレージを提供するには、RAID-1をRAID-1アレイのストライプとして、または2つのRAID-0ストライプにわたるRAID-1として、RAID-0と組み合わせる必要があります。

(前者の方が好きです。なぜなら、単一のドライブの障害が単一のRAID-1要素を取り出すため、単一のドライブのみが再構築を必要とするからです。後者の場合、単一のドライブの障害はRAID-0ドライブが交換されると、ディスクが再構築に関与します。)

これは、ドライブエレクトロニクスによって書き込みが成功したと報告される「ファントム書き込み」の議論にもつながりますが、何らかの理由で書き込みがディスクに行われることはありません。これは起こります。RAID-5アレイの場合、ドライブに障害が発生した場合、アレイは回復するためにすべての生き残ったドライブのすべてのセクターを完全に読み取らなければならないことを考慮してください。NetAppによれば、ドライブのサイズとRAIDグループのサイズが大きいということは、場合によっては再構築中に失敗する可能性が10分の1になる可能性があるということです。したがって、彼らは大規模なRAIDグループの大規模なディスクにデュアルパリティを使用することを推奨しています(これはRAID-6に関連すると思います)。

このことは、2人のエンジニアによるNetAppの技術的な議論で学びました。


「より効果的」という用語は使用しません。「容量を増やす」ほど適切です。私の考えでは、データが失われる可能性が高くなるソリューションは、それほど効果的ではありません。
duffbeer703 09

すべてがコストと価値のトレードオフです。RAID-5はストレージの費用対効果が高く、RAID-1またはRAID-1 + 0(0 + 1)は堅牢性が高くなります。
デビッドマッキントッシュ

0 + 1よりも1 + 0を優先するもう1つの理由は、0 + 1が2つしか存続できないシナリオ「最初に故障したドライブを交換してアレイを再構築する前に2番目のドライブが故障する」 0 + 1は片方のアームでのコントローラー障害(0 + 1では不可能)に耐えることができますが、これはドライブ障害(複数のドライブ障害であっても)よりもはるかにまれです。
デビッドスピレット2009

RAID-DP(NetAppのデュアルパリティ実装)はRAID-6です。RAID-6(RAID-5とは異なります)は、2つのディスク障害に耐えることができるRAIDとして機能的に定義されています。RAID-DPは通常のRAID-6とは異なり、パリティを配布しません-WAFLはランダムな書き込みをランダムに書き込まないため、パリティを配布してもメリットはありません。
キャプテンセグフォルト

3

通常、一般的なRAID実装では、データアクセスのパリティをチェックしません。私は見たことがありません。一部のRAID5実装は、ストリーミング読み取り用にパリティデータを読み取って、不要なシークを防止します(n番目のブロックごとにドライブをシークさせるよりもn番目のブロックごとに廃棄するほうが安くなります)。RAID1実装は、パフォーマンスのために両方のディスクから読み取るためチェックできません(まあ、大部分のRAID1実装では、1つのディスクを選択できます。負荷。)

一部の人は、背景の「スクラビング」を確認します。その場合、データを回復できるのでRAID6が優先され、RAID5とRAID1は同じ状況にあるため、識別はできますが修正はできません。(これは、ドライブが不良なCRCを検出し、エラーを返し、パリティからブロックを書き換えることができるため、厳密には真実ではありません。これは非常に一般的に起こります)。

データの整合性が必要な場合は、アプリケーション層ですべてのブロック(またはレコード、または分割されている)にハッシュを保存します。SybaseとOracleがこれを実行し(ページレベルで信じています)、多くの場合、巨大なデータベースを保存することを見てきました。(たとえば、コントローラーが不良データを返し始め、sybaseが明確なエラーでクラッシュするため、データベースが一貫性のない状態の障害のあるハードウェアで実行されている場合、書き込みは行われませんでした)。

これを行う唯一のファイルシステムソリューションとRAIDソリューションはZFSです。


0

あなたの友人は、いくつかのRAIDレベルに関係するパリティビット、またはディスクに書き込まれたデータのチェックサムについて話していますか?

パリティが有効な場合、RAID1にはパリティビットがありません。同じデータのコピーが2つあります。ディスクに書き込まれたものがネットワーク上に来たものと一致することを確認するために、ディスクによって実行されるチェックサムがあるはずです

RAID5にはパリティビットがあります。これは、RAIDセット内のディスクを失い、何も起こらなかったように続行できることを意味します。それでも、ディスクに書き込まれたデータのチェックサムを実行して、データが確実に一致することを確認する必要があります

この場合、チェックサムはRAIDから完全に独立しており、多数のディスクで実行される場合とされない場合があります

追加して編集:ハードウェアRAIDからソフトウェアRAIDへの移行について言及しました。優先は常にソフトウェアRAIDよりもハードウェアRAIDです。実装したいRAIDレベルを提供するために必要なハードウェアを購入できる場合は、そのために行くことをお勧めします。これにより、ホストではなくRAIDカードがすべてのパリティ計算を実行できるようになります。したがって、ホスト上のリソースを解放します。他の利点は間違いありませんが、現時点では私から逃れます


彼はパリティについて話していました。彼は、RAID5では読み取り時にパリティ情報が取得され、他のディスクからのデータと比較して読み取りエラーがないことを確認したと主張していました。
andynormancx 09

5
すべての場合において、ソフトウェアよりもハードウェアRAIDを推奨することに同意しません。最新のハードウェアを使用すると、サーバーに十分な数の予備CPUがあれば(ソフトウェアには常にあるはずです)、ソフトウェアRAIDはハードウェアと同じくらい高速になります。また、ハードウェアRAIDにはいくつかの欠点があります。主な欠点は、一致するRAIDカードが必要な回復状況にあることです。ソフトウェアRAIDを使用すると、マシンからドライブを引き出し、別のドライブに挿入するだけで、古いものと完全に一致する新しいRAIDカードを取得することなく移動できます。
andynormancx 09

私が理解しているように、チェックサムはディスクの書き込み時に(RAIDに関係なく)使用されます。パリティは、データのチャンクを異なるディスクに配置し、ディスク障害が発生した場合にアレイを再構築するために使用されます。パリティはすべてのRAIDレベルで使用されるわけではありません
ベンクイック

1
ソフトウェアとハ​​ードウェアRAIDに関する議論については、en.wikipedia.org / wiki / ...を参照してください。明らかに、選択した実装は環境と要件によって異なります。私の好みは、ソフトウェアRAID上のハードウェアRAIDである
ベンクイック

チェックサムについて言及したことは忘れてしまいました。混乱を解消するために質問を更新しました。問題は、通常、RAID5システムが読み取り時にパリティデータをチェックするかどうかです。
andynormancx 09

0

古いハードウェアRAID5アレイをLinuxソフトウェアRAID1アレイに置き換えようとしています。私は友人と話していましたが、彼はRAID5はRAID1より堅牢であると主張しました。

これは、RAIDの実装タイプ(hw / sw)、ディスク、RAIDコントローラー(ある場合)、およびその機能に依存します。

彼の主張は、RAID5では、すべてのドライブが正しいデータを返していることを確認するために、読み取り時にパリティデータが読み取られることでした。さらに、RAID1ではこのようなチェックが行われないため、ドライブで発生するRAID1エラーは気付かれないと主張しました。

少し意味がありますが、実際にはそうではありません:)間違ったデータが書き込まれた場合、ミラー上で両方のドライブに送信され、raid5パリティで生成され、ドライブ全体に拡散されます。データの読み取り/書き込みチェックはディスクとコントローラーのファームウェアによって行われ、RAIDレベルとは関係ありません。

So the question is, what do RAID5/RAID1 systems in the real world

実際に?RAID5システムは読み取り時にパリティデータをチェックしますか?すべてのドライブから読み取り、読み取り時にデータを比較するRAID1システムはありますか?

私が言ったように、チェックはraidアルゴリズムの一部ではありませんが、一部のコントローラーには追加の実装が含まれている場合があります。

アレイの堅牢性はドライブの品質までです(2.5 "ドライブはRVレートの低下により3.5"より長く生きる傾向があります。私の経験では、maxtor SCSI / SASドライブを購入しないでください-ひどいファームウェアの不具合があります)。 (温度と湿度の制御)、コントローラー自体(BBUがありますか?ファームウェアは最新ですか?それは実際のraidまたはfakeraid?)、サーバー内のPSUの量、UPSの品質など。


質問に答えていないのではないかと思います。これは、読み取り時のパリティデータのチェックに関して、実際のRAID5の実際の実装が何をするかについて非常に正確です。
andynormancx

0

私はこれを知りません、そうなる可能性は低いようです。パリティを計算するには、RAIDセット内のすべてのドライブからブロックを読み取ってから、正確性を判断するために計算を行う必要があることに注意してください。

また、読み取りが1ブロック未満の場合、パリティチェック読み取りでは完全なブロックに拡張する必要がありますが、通常の読み取りでは必要ありません。(私はRAIDブロックがディスクにブロックよりも大きいことを、もちろん、と仮定すると。考えることは、完全なブロックである必要はディスクから読み込みます。そうでない場合は、私のポイントは、より有効です。)

だから、私の観点から、はい、それそれ行うことができますが、もしそうなら、それは非効率的であり、私は何かがそのように実装されていることを疑います。

繰り返しますが、実際の実装に関する個人的な知識はありません。


0

RAID5システムは読み取り時にパリティデータをチェックしますか?

それは本当に意味がありません。パリティの不一致を見つけたらどうしますか?(どのブロックが間違っているかをどうやって知るのですか?)

ランダム読み取りの場合、パリティのチェックにはコストがかかります。通常、1つのディスクを見るだけでランダム読み取りを処理できますが、パリティを確認する場合は、読み取りごとにすべてのディスクを読み取る必要があります。(それについて何かできることがあれば、それはまだ理にかなっているかもしれません!)

RAID-1にもこの問題があることに注意してください。これは、RAID-1を2つのディスクRAID-5として見ると意味があります。


0

RAID-1は両方のドライブを一度に読み取るため、RAID-1はRAID-5よりも読み取りの方が速いという主張について少し考えていました。

アレイの再構築が必要でない限り、RAID-5ではパリティが読み取られないため、読み取りに関しては実際にはRAID-0アレイと同等です。

RAID-0は一般に最速レベルと見なされます(ただし、冗長性がないため、「AID」と命名する必要があります)。:-D

LinuxソフトウェアRAIDといえば、hdparmを使用した簡単なテストでこの理論が裏付けられています。RAID-5アレイは常にRAID-1アレイよりも高い読み取り速度を示します。

しかし、性能が低下したアレイは、通常の稼働中のアレイよりもはるかに低速に動作するようです。これをFedora 9でテストしました。異なるRAIDレベルの4 WD 1 TBドライブで実行しています。結果は次のとおりです。

劣化したRAID-5:読み取り速度43 MB /秒通常のRAID-5:読み取り速度240 MB /秒(!)RAID-1:読み取り速度88 MB /秒

許容されるディスクの損失はRAID-1とRAID-5(つまり1つ)で同じなので、RAID-5はあらゆる面でRAID-1よりも優れていると思います。アレイで使用されるディスクの数と同じ数のディスク耐障害性。これにより、RAID-6は通常の読み取り(2つのパリティディスクからのパリティ読み取りなし)でRAID-0と同じくらい高速であり、紛失した場合でもフォールトトレラントであるため、RAID-6は他のすべてのRAIDレベルよりも優れているという結論に至ります配列メンバー。;-)


いくつか興味深いものがありますが、あなたは私がいつも耳にするRAID1の誤fallを繰り返してきました。RAID1は、単一のディスク障害にしか耐えられないという意味ではありませ。RAID1アレイに2つのディスクだけを用意する必要はありません。たとえば、あなたは、3枚のディスクでRAID1の配列を持っていることは、(増加すべき2つのディスク故障を乗り切ると、パフォーマンスを読み込みます場合は、あなたのRAIDシステムが読み取りに複数のドライブから読んでいます)。
andynormancx

-1

個人的には、RAIDシステムの究極のテストは、障害にどれだけ耐えられるかだと思います。この場合、RAID5とRAID1の両方が単一ドライブの障害を処理できますが、どちらもそれ以上は生き残れません。

パリティビットに関する質問については、RAIDドライバーに依存していると思います。再構築中に確実に読み取られますが、通常の使用では、帯域幅が無駄になるため、あまり意味がありません。


あなたの答えは「RAID5の実装が読み取り時にパリティをチェックするかどうかわからない」であり、質問に答えないのではないかと心配しています。
andynormancx 09

実際にドライバーを書いた人以外は誰も確実に知らないので、それは有効な答えです。
sybreon 09

-2

afaik、私は24時間365日のストレージプロではありません。コントローラは常にディスクに書き込まれ、ディスクから読み取られるものをチェックします。つまり、raid1では、単一のディスクよりも書き込みがわずかに劣りますが、読み取りは少し速くなります(2つのディスクにファイルを書き込む必要がありますが、ディスク1からの一部とディスク2からの一部を読み取ることができます)。

RAIDレベルのデータチェックを無効にすることもできますが、これのポイントは、すべてのRAIDレベル(0を除く)がデータの冗長性を提供するためにあるので、なぜ自分を妨げるかです。

RAID 5では、少なくとも3つのディスクが必要であり、データにN-1ディスクを使用できます。RAID 1では、常に偶数のディスクが必要であり、データにN / 2ディスクを使用できます。

そのため、大きなRAIDレベル5ではストレージが多くなり、RAID 1では冗長性が高くなります。

より堅牢なということは、RAID 1よりも冗長性が高いことを意味します。

RAIDサイズに応じて、エラー発生時の再構築時間(ディスクの数、1つのディスクの大きさ、RAIDの種類(ソフト、フェイク、ハードウェア)、レベルなども考慮する必要があります。 )

したがって、あるRAIDが別のRAIDよりも堅牢であると言うことは実際には不可能です(おそらく、RAID 6はRAID 5よりも堅牢ですが、ストレージスペースが失われる可能性があります)


1
私はこれが私の質問に本当に答えていないのではないかと心配しています。私の質問は、典型的なRAID5実装が読み取り時にパリティデータをチェックするかどうかについて非常に正確です。また、記録のためにRAID1は偶数のディスクを必要としません。3台以上のディスクを搭載したRAID1アレイを非常に喜んで使用できるため、書き込み速度を低下させながら冗長性を高めることができます。
andynormancx 2009

1
「コントローラは常に、ディスクに書き込まれ、ディスクから読み取られるものをチェックします。」これは、コントローラーが両方のディスクから読み取ることができる場合ではありませんが、一部のコントローラーは取得した最初のデータを返します。
ジェームズ

RAID1には偶数個のディスクが必要であり、3番目のミラーはRAID1以外のものであると言えます。そのため、用語で標準化されたことのないサードミラーをサポートする実装はほとんどありません。
カリート
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.