web-dev-qa-db-ja.com

4kディスクでzfsraidz2を作成する

4つのディスクでzfsraidz2を作成したいと思います。これによりスペースの少なくとも50%が「無駄になる」ことはわかっていますが、ディスク障害に対する高い耐性を目指しています。 raidz2に5つのディスクを使用することはお勧めできません。また、6つのディスクは高価であり、私には不要です。私は3つのTB(またはおそらく4 TB)のディスクを持ち、それらはすべて512バイトのエミュレーションを備えた4kセクターを持っています。

私はzfsとraidz2について多くのことを読みましたが、混乱し始めています。

ディスクをパーティション分割する必要がありますか?ディスクが空でないことをOSに認識させるために、パーティションを作成することをお勧めします。パーティショニングは、4kセクターへの調整にも役立ちます。

GPTまたはMBR?私が理解している限り、GPTは3 TBディスク(およびそれ以上)には必須です。

パーティションを作成するにはどうすればよいですか?これにより、正しく配置されたパーティションが得られますか? 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つのディスクを使用するとどうなりますか?

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

4
masgo

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

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

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

2
user121391

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

次に、zdbashiftが正しいように見えることを確認します。

1
Daniel B