RAID-4 / RAID-DP-欠陥を強みに変える

画像
以前の投稿で、スナップショットは、NetAppシステムの登場時にその主な「機能」だったと書いたとき、私は部分的に誤解していました(そして、一部忘れていました)。多くの「従来の」ストレージシステムの1つは「RAIDタイプ4」です。
誰もこのタイプのRAIDをディスクストレージシステムで使用しないため、これはさらに興味深いものです。
なぜこのタイプが選ばれたのか、その利点は何ですか、そしてなぜこのタイプのRAIDを今日誰も使用していないのですか?

再調整の理論から遠く離れている人のために、それらの使用の基礎を築いた科学研究で説明されている6つの標準タイプのRAIDについて、RAIDタイプ2(ハミングコード保護あり)は「生きている性質」では使用されておらず、楽しい理論的演習であり、 RAID-1(およびそのバージョンのRAID-10、または場合によってはRAID-0 + 1)は、物理ディスクのペア(または複数のペア)での自動同期ミラーリング、およびRAID-3、4、5(以降の)によるデータ保護ですRAIDタイプ6が追加されました)-これらはいわゆる「ストライプ化されたRAID」です。 両者の間では、パリティローテーションの順序だけでなく、パリティデータを整理および格納する方法も異なります。 通常よく知られているRAID-5では、データはパリティ情報とともにディスク間でストライプ化されます。つまり、パリティは特別なディスクを占有しません。
RAID-3および4では、パリティ情報用に別のディスクが割り当てられます(3と4の間では、ストライピングユニットのサイズの違いは、タイプ3のセクターとタイプ4のブロックのセクターのグループです)。

画像

RAID-4、つまり「専用ドライブでブロックストライピングとパリティを使用したRAID」には、1つの重要な利点があります。 RAIDに物理ディスクを追加するだけでサイズを大きくすることができ、たとえばRAID-5の場合のように、RAID全体を完全に再構築する必要はありません。 RAID-4でデータ用に5台のドライブ(およびパリティ用に1台)を使用する場合、その容量を増やすために1台、2台などを追加するだけで、RAIDアレイの容量はすぐに増加します追加されたディスクのボリューム。 RAID-5の場合のように、使用できないRAIDアレイを再構築する長いプロセスは必要ありません。 実際には明らかに、非常に便利な利点です。

画像

では、RAID-5の代わりにRAID-4がどこでも使用されないのはなぜですか?
書き込みパフォーマンスに関する1つの非常に深刻な問題があります。
実際、RAIDディスク上のブロックの各書き込み操作には、パリティディスク上のパリティブロックを更新する書き込みが伴います。 これは、I / Oが並列化されるディスクアレイにいくら追加しても、1つのディスク(パリティディスク)にすべて依存することを意味します。 実際、「クラシック」アプリケーションでのRAID-4のパフォーマンスは、パリティディスクのパフォーマンスによって制限されます。 このディスクは、その上にあるパリティブロックの内容で更新されていませんが、データを格納する他のすべてのディスクはスピンし、この操作が完了するのを待ちます。

この問題はRAID-5で部分的に解決されました。RAID-5では、データブロックだけでなくディスク全体でパリティブロックも並列化され、パリティディスクのボトルネックの問題は部分的に解決されましたが、RAID-5にすべてが欠けているわけではありません欠点はむしろ逆であり、今日の記事で書いたように、信頼性が低くパフォーマンスが悪いという最悪のタイプのRAIDが広く使用されています

特にパフォーマンスの問題については(信頼性については上記の記事を参照してください)、RAID-5には1つですが、非常に深刻な「出生障害」があります。これはもともとこのタイプのRAIDに構造的に固有のものでした(タイプ3、4、5および6と交互になります)パリティ ")-任意の(ランダムな)レコードでの低パフォーマンス。 現実には、この側面は非常に重要です。これは、ストレージトラフィック全体の任意でランダムなレコードの量が非常に大きく(30〜50%に達する)、書き込みパフォーマンスの低下がストレージのパフォーマンスに直接影響するためです。

この問題は、このタイプのRAID(3、4、5、および6)を使用するすべての「クラシック」ストレージシステムである「病気」です。
NetAppを除く全員。

NetAppは、パリティディスクのボトルネック問題とランダム書き込みのパフォーマンス低下の問題をどのように解決しましたか?
ここで、WAFLの構造を思い出す必要があります。WAFLについては、すでに以前に書きました。
NetAppエンジニアのKostadis Roussosがこの機会に言ったように、「今日のほとんどすべてのファイルシステムは特定のRAIDの上にあります。 しかし、NetApp上のWAFLとRAIDのみが、互いの機能を使用し、互いの欠点を補うほどに互いをよく知っています。」 WAFLの場合、RAIDレベルはファイルシステム自体の内部のデータレイアウトのもう1つの論理レベルにすぎないため、これは事実です。 NetAppはハードウェアRAIDコントローラーを使用せず、ファイルシステムの手段を使用してRAIDを構築することを好みます(ZFSはRAID-Zから同様のアプローチを選択しました)

この「相互機会」とは何ですか?
WAFLについての私の話から覚えているように、WAFLは、一度記録されたデータが将来的に上書きされないように設計されています。 すでに記録されているファイル内のコンテンツに変更を加える必要がある場合、空きブロックのスペースにスペースが割り当てられ、変更されたブロックがそこに書き込まれます。その後、古いブロックのコンテンツへのポインターが空の新しいブロックに移動され、新しいコンテンツを運びます。

この記録戦略により、ランダム記録を順次記録に変えることができます。 その場合、「フルストライプ」を事前に準備し、ディスクのさまざまな部分を対象とするすべての「ダブ」を1つの便利な記録領域に集めることで、可能な限り効率的に記録できます。 つまり、個々のブロックを上書きする代わりに、対応するディスクに対するストリップ全体の事前に計算されたパリティを含む、すべてのRAIDディスクに一度に書き込まれた完成したデータの「ストリップ」を書き込みます。 3つの読み取り/書き込み操作の代わりに、1つ。
シーケンシャル操作がランダム操作よりもはるかに速く、システムにとって便利であることは秘密ではありません。

画像

画像

「フルストリップ」、つまりストライピングを備えたすべてのRAIDドライブで記録することは、このタイプのRAIDにとって最も望ましい記録アルゴリズムです。 このため、RAIDコントローラーではキャッシュメモリが増加し、ハイエンドシステムでは非常に印象的なサイズ(およびコスト)に達します。 従来のアレイの書き込みキャッシュが大きくなり、サーバーからディスクに書き込むデータブロックが長く「ハング」するほど、このキャッシュで「フルストライプ」ブロックがそのようなブロックからいつか組み立てられる可能性が高くなります。できるだけ収益性の高いディスクにマージすることが可能になります。
そのため、RAIDコントローラーのライトバックキャッシュはデータをドライブにフラッシュする頻度が低く、キャッシュで順番を待つデータブロックを保存するために、バッテリーの電源を切る必要があります。

NetAppは、他のすべてのディスクと同様に、RAIDデータストレージの信頼性を高める必要性に直面しており、ディスクのボリュームが増加しています。 このため、2005年以降、RAID-6のNetApp実装であるRAID-DPが推奨されており、一般的に「デフォルト構成」となっています。 NetAppもこれに優れています。RAID-DPは、2つのディスクを一度に失うときのデータ損失(たとえば、以前に故障したディスクの再構築中の故障)からRAID-6などを保護し、RAIDとは異なり、パフォーマンスを低下させないためです。 6、RAID-5またはRAID-10と比較。

この理由は同じです。 RAID-5と比較したRAID-6の「他のベンダー」の状況はさらに悪いです。 RAID-6のパフォーマンスは、RAID-5に比べて10-15%、RAID-10に比べて25-35%低下することが一般に受け入れられています。 ここで、1つのパリティブロックの読み取り/書き込みを実行するだけでなく、2つの異なるブロックグループに対して実行する必要があります。
ただし、RAID-DPはこれを必要としません。理由は同じです。アレイ内の任意の場所への偶発的な記録は、事前に割り当てられたスペースへの順次記録によってWAFLに変換され、そのような記録ははるかに高速で収益性が高くなります。

NetAppシステムでのRAID-4(およびそのバリアント-RAID-6、RAID-6の類似品)の使用がパフォーマンスの低下を客観的に引き起こさないことの確認-SANディスクシステムのパフォーマンスの正式なテスト(Storage Performance Council、 SPC-1 / SPC-1E )およびNAS( SPECsfs2008 )、NetAppはRAID-4(および2005年以降のRAID-DP)で実証しています。
さらに、RAID-DPを備えたNetAppシステムは、RAID-10を備えたシステムと対等な立場で競合します。つまり、「ストライピングとパリティを備えたRAID」のパフォーマンスは通常よりもはるかに高くなります。 -10は、購入した容量の50%のみのデータに使用できますが、RAID-DPでは、信頼性は向上しますが、RAID-10速度に匹敵し、標準グループサイズでは、87%を超えるデータに使用可能なスペースがあります。 。

このように、RAID-4とWAFLの書き込みモードの2つの「機能」を巧みに使用することで、両方の利点を得ると同時に、それらの欠点を取り除くことができました。 また、二重ディスク障害に対する保護を提供するRAID-DPでのRAID-4のさらなる開発により、従来の高いパフォーマンスを犠牲にすることなく、データストレージの信頼性を高めることができました。 そして、これは簡単ではありません。 書き込みパフォーマンスが低いため、RAID-6(RAID-DPの類似物であり、同等の高レベルの保護)の使用は実践されておらず、他のストレージシステムメーカーによるプライマリデータには推奨されていません。

同時に豊かで、強く、健康になる方法(そして、それのために何もありませんように)? 高性能またはディスク容量を犠牲にすることなく、障害から高度なデータ保護を確保する方法は?
NetAppはその答えを知っています。
彼のパートナー企業に話しかける;)

UPD:記事のスプラッシュ画面の写真の主な役割-foboss habrayuzerの農場のNetApp FAS2020A

Source: https://habr.com/ru/post/J113427/


All Articles