web-dev-qa-db-ja.com

ZFS RAID-Z2には何台のドライブが必要ですか?

RAID-Z2を使用したい場合、どのくらいのストレージが必要ですか?私はZFSファイルシステムでFreeNASを実行するホームサーバーを構築しており、現在3 TBのハードドライブを3台インストールする予定です。

  • RAID-Z2はこれで動作しますか?
  • RAID-Z1にダウングレードする必要がありますか?
  • RAID-Z2には何台のドライブが必要ですか?
8
user424484

RAID-Z2は、vdevに与えられたドライブを取得し、そのうちの2つを使用して、何か問題が発生した場合の復旧のために冗長データを保存します。

したがって、RAID-Z2 vdev内のドライブの絶対最小数は、2つの冗長ドライブに1つを加えたもので、3つのドライブで機能します。

ただし、そのようにすることで、次のようになります。

  • 1つのドライブのみの有効なストレージ容量を取得している
  • データを失うことなく、関係する3つのドライブのいずれか2つを失う可能性があります(一般的なケースでは、NドライブRAID-Z2 vdevの任意の2つのドライブが失われても存続できます)
  • rAID-Z2のパリティデータを計算することをシステムに強制しています

3台のドライブで構成されるvdevが必要な場合、または3台のドライブがあり、2台のドライブに相当する冗長性が必要な場合は、代わりにそれらをミラーとして設定することをお勧めします。そのように、あなたは:

  • ドライブの1つだけの有効なストレージ容量を取得しています(ミラーデバイスの数に関係ありません)
  • データ損失なしで、関係する3つのドライブのいずれか2つの損失に耐えることができます(一般的なケースでは、NドライブミラーvdevのN-1ドライブの損失に耐えることができます)
  • ミラーは相互にビット同一のコピーであるため、パリティデータの計算を回避しています。同じデータを複数のディスクに書き込む方が、個別のパリティデータを計算してディスクに書き込むよりもはるかに安価です。

RAID-Z2が有効なドライブの最小数は4であり、これは2つのドライブの有効なストレージ容量を提供し、any2台のドライブ。これは、2x2ミラーセットアップで同じ4つのドライブを使用するよりも有利です。それぞれ2つのドライブの2つのミラーvdevがあり、2つのドライブのいくつかの組み合わせを失うと、そのvdevは停止し、プールを燃え尽きます。 2x2ミラーvdevプールでは、プールを引き続き使用できるようにするには、各ミラーペアの少なくとも1つのドライブが機能している必要があります。ただし、ミラーの方がパフォーマンスが優れている場合があります。いつものように、それは異なる選択間のトレードオフであり、システム管理者の仕事の説明の一部は、特定の状況ごとにそれらのトレードオフを適切にすることです。

したがって、RAID-Z2は技術的に説明した設定で機能するかもしれませんが、単純な3ウェイミラー構成に比べて利点はなく、不利な点さえあります。

ZFSでRAID-Znvdevのデバイスの冗長性レベルを動的に変更したり、デバイスの数を増やしたりできる場合は異なりますが、そうではありません。実際にプールを拡張する唯一の方法は、既存のvdevにデバイスを追加するのではなく、vdevを追加するか、既存のデバイスのサイズを拡張することです。 (ミラーvdevでデバイスを追加および削除できますが、それによって冗長性の量のみが変更され、使用可能なストレージ容量は変更されません。)

また、3つのドライブをRAID-Z(1)vdevとしてセットアップすることもできます。これにより、データが失われる前にドライブの1つが失われた場合でも生き残ることができます。さらに何か問題が発生した場合に危険にさらされる場合は、RAID-Z2に比べてCPUのワークロードを減らし(RAID-Z1のパリティ計算は計算負荷が少ないため)、2つのドライブを組み合わせた有効なストレージ容量を提供します。

常に心に留めて何か問題が発生した場合、完全なZFS復元は残りのディスクにとっては困難なプロセスであり、別のディスクにとっては前例のないことではありませんディスクを使って問題を発生させたり、ストレスで死ぬことさえあります。このため、特に今日一般的なサイズの回転ドライブでは、二重冗長性がデフォルトの選択である必要があります本当に冗長な場合は、三重冗長性がオプションです。ダウンタイムを許容できる重要性の低いデータの場合のみ、単一の冗長性を検討する必要があります。ただし、SSDベースのプールでは単一の冗長性が許容される場合があります

したがって、私の推奨:3台のドライブZFSが必要で、冗長性が必要な場合は、それらを3方向ミラーvdevとしてセットアップします。RAID-Z2が必要な場合、最低4つのドライブを使用しますが、vdevの作成時にvdev内のドライブ数を固定することに注意してください。現在、 ZFSプールは、追加のvdevを追加するか、vdevを構成するデバイスのサイズを増やすか、または新しいプールを作成してデータを転送することによって行われます。既存のvdevにデバイスを追加してプールのストレージ容量を増やすことはできません。

また、バックアップを保持していることを確認するも必要です。これは、実際の障害後のZFSリカバリがプールの冗長性しきい値を下回るは非常に難しい。 ZFSには非常に複雑なオンディスクフォーマットがあり、私は一般的な既製のデータリカバリーソフトウェアの理解に気付いていません。そのため、ディスクからほとんどのデータを読み取ることができても、ZFSが理解できない場合あなたが問題に数万ドルを費やすことをいとわない限り、あなたは非常に運が悪いかもしれません。バックアップは安価です。

3面ミラーの代わりとして、スペアを使用して2面ミラーを実行することもできますが、ほとんどの場合、そして確かに、あなたが説明する状況では それには利点と欠点がいくつかあります

余談ですが、リカバリの問題に関連して、 非常に強く検討する必要があります ECCを使用しますRAM ZFSを含む自己修復ファイルシステムをチェックサムを実行するすべてのシステムで。 他の人は同意する

3つのデバイスでRAID-Z2を示すことが可能です(これはLinux 0.6.4上のZFSです)。 3つのバッキングファイルのうち2つをハード削除した後、「劣化した状態で機能を継続するプールに十分なレプリカが存在します」。また、vdevはDEGRADEDではなくFAULTEDです。

# truncate -s 1G /root/d1 /root/d2 /root/d3
# zpool create tank raidz2 /root/d1 /root/d2 /root/d3
# zpool status tank
  pool: tank
 state: ONLINE
  scan: none requested
config:

        NAME          STATE     READ WRITE CKSUM
        tank          ONLINE       0     0     0
          raidz2-0    ONLINE       0     0     0
            /root/d1  ONLINE       0     0     0
            /root/d2  ONLINE       0     0     0
            /root/d3  ONLINE       0     0     0

errors: No known data errors
# zpool export tank
# rm /root/d1 /root/d2
# zpool import tank -d /root
# zpool scrub tank
# zpool status tank
  pool: tank
 state: DEGRADED
status: One or more devices could not be opened.  Sufficient replicas exist for
        the pool to continue functioning in a degraded state.
action: Attach the missing device and online it using 'zpool online'.
   see: http://zfsonlinux.org/msg/ZFS-8000-2Q
  scan: scrub repaired 0 in 0h0m with 0 errors on Tue Mar 29 11:00:23 2016
config:

        NAME                      STATE     READ WRITE CKSUM
        tank                      DEGRADED     0     0     0
          raidz2-0                DEGRADED     0     0     0
            18130982121682915530  UNAVAIL      0     0     0  was /root/d1
            18289483070703159278  UNAVAIL      0     0     0  was /root/d2
            /root/d3              ONLINE       0     0     0

errors: No known data errors
# 
12
a CVn