それで、16HDDの2つのRAID6グループまたは8つのHDDのうちの4つのHDDを作ることにしました。
それは物事を行うための最良の方法ではありません。十分に機能する場合がありますが、パフォーマンス要件によっては機能しない場合があります。
RAID5 / 6アレイの理想的なサイズは、アレイにまたがるデータ量の正確な倍数が、その上に構築されたファイルシステムのブロックサイズと一致するようなサイズになります。
RAID5 / 6アレイはブロックデバイスとして機能します。データの単一のブロックがアレイ内のディスクに広がり、そのブロックにはパリティデータも含まれます。ほとんどのRAIDコントローラは、アレイの各ディスクに2の累乗のサイズのデータチャンクを書き込みます-その正確な値は、より優れたRAIDシステムで構成可能です-Dot Hillユニットは、それらの「より優れたRAIDシステム」の1つです。それは重要です。
そのため、アレイをスパンするにはN x(ディスクチャンクごとに保存されるデータの量)が必要です。ここで、Nはデータディスクの数です。5ディスクのRAID5アレイには4つの「データ」ディスクがあり、10ドライブのRAID6アレイには8つのデータディスクがあります。
データがRAID5 / 6アレイに書き込まれるとき、データのブロックがアレイ全体にまたがるほど大きい場合、そのデータのパリティが計算されます(通常はコントローラーのメモリ内)。その後、ストライプ全体が書き込まれます。ディスク。シンプルで高速。
しかし、書き込まれるデータのチャンクがアレイ全体に及ぶほど大きくない場合、新しいパリティデータを計算するためにRAIDコントローラは何をしなければならないのでしょうか。考えてみてください。新しいパリティデータを再計算するには、ストライプ全体のすべてのデータが必要です。
したがって、デフォルトのディスク単位のチャンクである512kbで16ドライブのRAID6アレイを作成すると、アレイを「スパン」するのに7 MBが必要になります。
ZFSは通常、128kbブロックで動作します。
そのため、ZFSは128ドライブのブロックを書き込みます-16ドライブのRAID6アレイに。提案する構成では、RAIDコントローラーがアレイから約7 MB を読み取り、その7 MB全体でパリティを再計算する必要があることを意味します。次に、その7 MB全体をディスクに書き戻します。
運が良ければ、すべてキャッシュに入れられ、パフォーマンスに大きな影響を与えることはありません。(これが、「RAID5 / 6を使用しない」という位置に次のような理由がある主な理由の1つです-RAID1 [0]はこの問題の影響を受けません。)
運が悪く、ファイルシステムのパーティションを適切に調整しなかった場合、その128kBブロックはキャッシュにない2つのRAIDストライプにまたがっており、コントローラーは14 MBを読み取り、パリティを再計算してから14 MBを書き込む必要があります。128kBブロックを1つ書き込むためのすべて。
これが論理的に発生する必要があることです。そのようなIOパターンのIOと計算負荷を減らすために、優れたRAIDコントローラーがとることができる最適化はたくさんあるので、それほど悪くはないかもしれません。
しかし、128kBのブロックをランダムな場所に書き込む負荷が高い場合、7 MBのストライプサイズの16ドライブRAID6アレイのパフォーマンスが非常に悪くなる可能性が非常に高くなります。
ZFSについては、「理想的には、」RAID5 / 6のLUNの基礎となる最もアクセスが効果的にランダムである汎用のファイルシステムがためにもだストライプサイズだろう除数などの32kB、64kBの、または128kBのよう128kBののを、。この場合、RAID5 / 6アレイのデータディスクの数は1(これは無意味です-構成することが可能であっても、RAID1 [0]を使用することをお勧めします)、2、4、または8に制限されます。最良の場合のシナリオでは、RAID5 / 6アレイに128kBのストライプサイズを使用しますが、汎用のファイルシステムでは、ほとんどの場合、最良のケースは発生しません。ファイルシステムは、それらと同じメタデータを格納しないためです。ファイルデータを保存します。
5ディスクRAID5アレイまたは10ディスクRAID6アレイのいずれかをセットアップすることをお勧めします。ディスクごとのチャンクサイズは、アレイストライプ全体にまたがるデータの量が64kBになるように小さく設定します(そうです、これを行いました)以前はZFS-何度も)。つまり、4つのデータディスクを持つRAIDアレイの場合、ディスクごとのチャンクサイズは16kBである必要があります。8データディスクのRAIDアレイの場合、ディスクごとのチャンクサイズは8kBでなければなりません。
次に、ZFSがアレイ全体を使用できるようにします- パーティション化しないでください。ドライブがシンプルな単一ディスクであるか、RAIDコントローラによって提供されるRAIDアレイであるかに関係なく、ZFSはドライブ全体に適切に位置合わせします。
この場合、正確なスペースとパフォーマンスの要件を知らずに、3つの10ドライブRAID6アレイまたは6つの5ドライブRAID5アレイを64kBのストライプサイズでセットアップし、いくつかのホットスペアを構成して、4つのドライブを保存することをお勧めします。将来登場するもののためのディスク。何かがあるから。
私はそのディスクシステムをJBODモードで使用しないことをお勧めします。これは完全にNEBSレベル3に準拠したデバイスであり、ハードウェアに組み込まれた信頼性と可用性を大幅に保護します。「ZFS !!!!」だからといって捨てないでください。それが部品から組み立てた安価な商品ハードウェアの場合は?ええ、ZFSがRAIDを処理するJBODモードが最適ですが、それはあなたが持っているハードウェアではありません。 ご使用のハードウェアが提供する機能を。