4Kディスクでzfs raidz2を作成する

4Kディスクでzfs raidz2を作成する

4 つのディスクで zfs raidz2 を作成したいと考えています。これにより、少なくとも 50% のスペースが「無駄」になることは承知していますが、ディスク障害に対する高い耐性を目指しています。raidz2 に 5 つのディスクを使用することは推奨されません。また、6 つのディスクは高価で不必要です。512 バイトのエミュレーションで 4k セクターを持つ 3 TB (または 4 TB) のディスクを用意する予定です。

zfs と raidz2 についていろいろ読んできましたが、混乱し始めています。

ディスクをパーティション分割する必要がありますか? ディスクが空でないことを OS に認識させるためにパーティションを作成するのが良いと読んだことがあります。パーティション分割は 4k セクターに揃えるのにも役立ちます。

GPT か MBR か?私の理解する限りでは、3 TB 以上のディスクには GPT が必須です。

パーティションはどのように作成すればよいですか?これにより、パーティションが正しく整列されますか? sudo parted --align optimal /dev/sdX mklabel gpt mkpart primary 1 0% 3TB

ボーナス質問: によって作成されるパーティションのサイズはどれくらいにmkpart primary 1 0% 3TBなりますか? どれくらいになりますか3*10^12 - 4096 byte?

私の意図は、ディスクのフルサイズを使用するのではなく、故障したドライブを別のモデルに交換できるように 3 TB に制限することです。

ashift=12パーティションが整列している場合は必要ですか?それは役に立たないのでしょうか?私に何らかの害を与えるのでしょうか?

ストリップサイズはどうですか?変更する必要がありますか? 4 つのディスクではなく 5 つのディスクを使用する場合はどうなりますか?

他に考慮すべきことはありますか?

答え1

ディスクが間違った値を報告する場合は、手動で ashift を設定する必要があります。これは、移行期間内のすべてのディスクに当てはまります (内部的には 4K、論理的には 512)。以前のディスクは正しい 512 を報告し、それ以降のディスクは正しい 4k を報告します。もちろん、いつでも指定できます。ディスク自体がシステムに報告/提案する内容を上書きするだけです。

確信が持てない場合は、プールを作成し、使用可能なサイズを書き留めてからそれを破棄し、すべてのディスクの ashift を 12 に設定して再度作成し、サイズを比較することもできます。サイズが同じであれば、ディスクの内容は正確です。

ディスクのパーティション分割は、ディスクが正しく認識されない場合、または可能なサイズよりも小さいサイズにしたい場合にのみ必要です。

答え2

Linux 上の ZFS はディスクを自動的にパーティション分割します。以前は、これは行われませんでした。次のようになります。

Disk /dev/sdb: 931.5 GiB, 1000204886016 bytes, 1953525168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: 2E55AB8A-8B22-494E-A971-B6D639BA14B1

Device          Start        End    Sectors   Size Type
/dev/sdb1        2048 1953507327 1953505280 931.5G Solaris /usr & Apple ZFS
/dev/sdb9  1953507328 1953523711      16384     8M Solaris reserved 1

また、正しいashift値が自動的に使用される可能性があります。私の SSD には 13 個、上記の HDD には 12 個あり、予想どおりです。

次の手順に従ってください。

zpool create tank raidz2 sda sdb sdc sdd

次に、正しいと思われるzdbものを確認しますashift

関連情報