ZFS:ミラーとRAID-Z


14

OpenSolarisとZFSを使用して、XenServer仮想マシンのiSCSIターゲットと一般的なホームファイルサーバーの2つの主要なサービスを提供するファイルサーバーの構築を計画しています。私が見ているハードウェアには、2x 4ポートSATAコントローラー、2x小型ブートドライブ(各コントローラーに1つ)、およびストレージ用の4x大型ドライブが含まれています。これにより、アレイごとにアップグレードするために、コントローラーごとに1つの空きポートが許可されます。

私が少し混乱しているのは、ストレージドライブのセットアップ方法です。パフォーマンスについては、ミラーリングが重要なようです。ミラーリングよりもRAIDZを使用することの利点を理解するのに苦労しています。このセットアップでは、2つのオプションが表示されます。1つのストライプ内の2つのミラープール、またはRAIDZ2です。両方とも、2つのドライブ障害、および/または1つのコントローラー障害から保護する必要があります... RAIDZ2の唯一の利点は 2台のドライブが故障する可能性があることです。どちらの場合もストレージは容量の50%である必要がありますが、最初のストレージの方がパフォーマンスがはるかに優れているはずですよね?

もう1つ心がけているのは、3つ以上のデバイスを備えたミラーアレイの利点です。データの整合性のために、3方向ミラーに対するRAIDZの利点はありますか?ZFSはファイルの整合性を維持するので、RAIDZはテーブルに何をもたらしますか... ZFSの整合性チェックはRAIDZのパリティの値を無効にしませんか?

回答:


14

簡単な答えは、何かをミラーリングするのに処理能力はほとんど必要ないということです。ディスクに2回書き込むだけです。RAID-Z2の場合は、まったく新しいパリティブロックを計算する必要がありますが、大量のデータをすばやく書き込む必要がある場合、小さなCANがCPUを停止させます。

ミラーリングは常に高速データの優先ソリューションです。高速書き込み速度のない単なるバルクストレージの場合、RAID-Z2は、任意の 2つのドライブを暗示するように死なせる優れた代替手段です。

もう1つの利点は、ミラーリングされたプールをより多くのミラーリングされたデバイスで拡張できることです-RAID-Z2は拡張できません-より多くのRAID-Z2ストレージをプールに追加できますが、2つのRAID-Z2ストレージプールが連結されます(効果)すべてのストレージとストライプに均等に分割するのではなく。


しかし、ZFSでは、RAIDZのパリティブロックは何を提供しますか?ZFSが既に提供しているものを超える追加のデータ整合性を提供しますか?または、2台のドライブが停止するだけで必要ですか?3ウェイシナリオよりもそれが唯一の利点である場合、ミラーを超えるRAIDZの利点はありませんか?
ジョンクレイトン

1
RAID-Zでは、1台のドライブを停止できます-10台のドライブがある場合、9ドライブ分のデータを取得できます。RAID-Z2を使用すると、任意の2台のドライブを停止でき、8台のドライブに相当するデータを保持できます。ミラーを使用すると、ドライブの半分を死なせることができますが、2つの各セットのうち1つだけです。これはもうご存知でしょうが、2台のドライブで障害が発生した場合の2つのソリューション、つまりRAID-Z2とミラーモードを提供しているのは、この4台のドライブのフリンジケースです。通常のシナリオで「役に立つ」追加のデータ整合性許容値はありません。
dotwaffle

それでは、ミラーに対するRAIDZの利点を明確にするためには、ハードウェア障害からの保護がもう少し必要ですか?RAIDZ1とXドライブを備えたミラーは本質的に同等ですか?
ジョンクレイトン

5
RAID-Zのパリティは、ZFSに組み込まれたチェックサムのスーパーセットです。チェックサムは、ディスクから読み取られるデータが正しいことを確認するだけです。オーバーヘッドがほとんどない高速チェックになるように設計されています。RAID-Zのパリティが提供するのは、ドライブ(またはRAID-Z2の場合は2)が失われた場合に破損したデータを再構築する機能です。ただし、このパリティデータを生成するための計算は、単純なブロックチェックサムよりもCPUを集中的に使用するため、4KBブロックのみを書き込む場合でも、ストライプ全体で計算する必要があります。
フレイジャー

4
@John Clayton:冗長性のレベルは、ストレージの構成方法によって異なります。N方向ミラーを作成できます。つまり、データ容量は1つのドライブのサイズですが、データを失うことなくN-1ドライブを失うことができます。たとえば、3方向ミラーがある場合、3つのドライブすべてに同じデータが含まれ、データを失うことなく2つのドライブを失うことができます。違いは、N-wayミラーにドライブを追加すると冗長性が増加することですが(ただし、容量は常に1ドライブのサイズです)、raidz2にドライブを追加すると容量が増加します(ただし、冗長性は常に2ドライブです)。
ロブ

18

RAID-Zは、CPU時間をいくらか犠牲にして、書き込みのペナルティとRAID 5/6ボリュームが受けるデータ整合性の問題のほとんどを取り除きます。通常、システムにはCPUサイクルに余裕があるため、IOのパフォーマンスとデータの整合性を向上させるためにCPU時間を費やすことは、ミラーリングと比較して適切な妥協です。

以下は、他の質問に答えるRAID-Zの詳細な説明です

また、RAIDはフォールトトレランスソリューションであることに注意してください。データの損失を防ぐためにRAID-Z2を実装するのではなく、バックアップまたはレプリケートを実行します。RAID-Z2とRAID-Z、またはRAID-10とRAID-6とRAID-5のどちらを実装するかを選択して、ハードウェアに障害が発生した場合にシステムを稼働状態に保ちます。


1
彼が技術的な違いを理解するのを手伝ってくれたので、dotwaffleに答えてください。しかし、意図された使用法に関する素晴らしいアドバイス...それは本当に私を止めて考えさせました。
ジョンクレイトン

1
注意することは重要なことは、RAIDZがeleminatesながらということで、ライトペナルティの問題を、それが導入されて、読み取り起因するペナルティの問題を各読み出し動作のために増加した同時実行
-wabbit
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.