ZFS + ミラーリングの管理

ZFS + ミラーリングの管理

zfs+冗長性+パフォーマンスに関するガイドでは、ミラーリングが優れたオプションとして強調される傾向がありますが、zfs 管理情報では、raidz に基づくものと比較して、ミラーリングされたセットアップの管理に関する情報が比較的少ない傾向があることに気づきました。

Windows のミラー ディスクから zfs プールを移行することを計画しています。私が好んでいたセットアップは常に純粋なミラーリングでしたが、zfs を調べた結果、これを維持して冗長性のために RAIDZ ではなく純粋なミラーリングを使用したいと思います。理想的には、各ドライブは独立して論理的に読み取り可能なままです。つまり、6 つのディスクの場合、データは では(1+2+3 mirror) + (4+5+6 mirror)なく として効果的に((1+2 stripe) x 3 mirror)保存されます。これはあまり効率的ではなく、複数の小さなプール/データセットが必要になることは承知していますが、以前にデータを失ったことがあるため、効率よりも価値があると思います。また、読み取りと再同期がはるかに高速で、物理的にはるかに柔軟です。

このようなセットアップを実行したい場合、vdev 内でのミラーリングと vdev のミラーリングにはどのような影響がありますか。また、将来 3 つの新しいディスク セットを追加してストレージを拡張する場合、それらを別のプールとして追加する方がよいですか、それとも別の vdev (または 3 つの別の vdev) として追加する方がよいですか。

答え1

ZFSでは冗長性は常に vdev レベルで確保する必要がありますが、プールレベルで確保することはできません。

vdev は、単一ディスク (1 ディスク)、ミラー ディスク (2 ディスク以上)、Z1 ストライプ (2 ディスク以上)、Z2 ストライプ (3 ディスク以上)、または Z3 ストライプ (4 ディスク以上) で構成できます。その後、各プールが 1 つ以上の vdev でバックアップされるプールを構築でき、必要な数のプールを持つことができます。各プールは、冗長性なしですべてのバックアップ vdev を使用し (これは vdev レベルで管理されます)、単一の vdev (ディスクではありません) を失うと、プール全体が失われることになります。

したがって、プールを分割すると、基本的には完全に独立した複数の RAID1 アレイが隣り合うことになります。1 つのプールが失われても他のプールには影響しませんが、すべて RAID10 ではなく RAID1 であるため、パフォーマンスは低下します。

拡張にもこのトレードオフがあります。単一のプールを拡大すると、速度は上がりますが (少なくとも新しく書き込まれたデータについては、自動再バランスは行われません)、障害が発生する可能性も高くなります。

それとは別に、vdev に 2 方向ミラーと 3 方向ミラーのどちらを使用するかという問題があります。3 方向の方がはるかに安全ですが (4 方向はほとんど役に立たないほど)、コストが高くなります (必要なディスクが増えるか、スペースが少なくなります)。3 方向は読み取りも少し速くなりますが、書き込み速度は変わりません。

つまり、コスト、パフォーマンス、安全性、使いやすさの間でトレードオフが発生します。

関連情報