web-dev-qa-db-ja.com

3番目のドライブを追加すると、ZFSは自動的にフォールトトレラントに切り替わりますか?

2ドライブのストリップされたZFSプールから始めた場合、3番目のドライブを追加すると、RAID-5のようなフォールトトレラントプールに自動的になりますか?

ストライプセットに3番目のドライブを追加し、RAIDZ1に変更することについて、オンラインで見つけたZFSチートシートには何も見つからないようです。

誰かがそのようなシナリオで実際的な経験を持っていますか?

3
Frank Barcenas

いいえ、自動的には何もしません。 RAID保護タイプを動的に変換することはできません。

RAIDZ1は、ZFSで設定されたストライプ開発と同じものではありません。タイプを変更したい場合は、希望する構造に再構築またはバックアップ/復元する必要があります。

1
ewwhite

いくつかの背景情報:

ZFSでは、vdev(仮想デバイス)からストレージプールを構築します。単一のプールには必要な数のvdevを含めることができ、各vdev自体は1つ以上のディスクで構成できます。冗長性はvdevレベルで管理されるため、プールは、それを構成するすべてのvdevにわたって常にストライプ化(連結)されます。これは、プール内の1つのvdevを失うと、プールを失うことを意味します。

これを防ぐには、通常、単一のディスクをvdevとして使用せず、冗長セットを使用します。ミラーリングされたディスク(2、3、または完全にミラーリングされた/同一のディスク)またはパリティベースのディスクセット(1つのパリティディスクが等しいRAIDZ1) RAID5、RAID6と等しい2つのパリティディスクを備えたRAIDZ2、または3つのパリティディスクを備えたRAIDZ3)。

いくつかのルールが適用されます。

  • すべてのディスクをより大きなディスクに置き換えることによってディスクサイズ(ディスクの量ではありません!)を増やすことを除いて、パリティvdevを変換または変更することはできません。
  • zpool attachとzpooldetach`を使用して、ミラーリングされたvdevおよび基本的な単一ディスク(もちろん最後のディスクを除く)との間で ディスクの追加と削除 を行うことができます。
  • 新しいvdevを任意のプールに追加できますが、古いデータは自動的に再調整されません(新しく書き込まれたデータのみがすべてのvdevを使用します)。プールからvdevを削除することはできません。
  • プール内のさまざまなvdevタイプを組み合わせて使用​​できますが、安全性とパフォーマンスがプール内の最も弱い/最も遅いvdevと等しいため、お勧めしません。

ZFSはパリティRAIDに対してそれほど柔軟ではないため、データと成長について考え、それに応じて計画する必要があります。

  • できるだけ柔軟にしたい場合は、アタッチ/デタッチのためにミラーを使用してください。ミラーは、優れたパフォーマンスと高速な再構築時間も備えています。多くの場合、単純な解決策が最適です。
  • 最大のストレージスペースが必要な場合は、RAIDZnを使用する必要があります。すべてのエンクロージャスロットに小さいディスクを装着し、将来的に大きいディスクに更新します。 、または今すぐ最大のディスクを購入し、スロットのサブセットを使用します。たとえば、6または8ディスクのRAIDZ2を使用し、後で同じサイズの別のRAIDZ2セットを追加します。

RAIDタイプと一般的なプールレイアウトの選択に関するより詳細な情報については、これを読むことをお勧めします ブログ投稿 および ZFSベストプラクティスガイド

2
user121391