web-dev-qa-db-ja.com

ディスク全体またはパーティションでZFS zpoolを作成する必要がありますか?

FreeBSDマシンでzpoolsを作成しています。 zpoolを作成しているときに、次の2つのケースを観察します。

  1. raw disksを取得してzpoolを作成すると、zpoolを形成でき、それらは完全に機能します。

  2. freebsd-zfs形式のgpartを使用してディスクをフォーマットしてからzpoolを作成すると、ディスクも完全に機能します。

私は混乱していますが、zpoolの作成にはどちらのアプローチが適していますか?

14
shivams

可能であれば、ZFSでディスク全体を使用することをお勧めします。
ユースケースでパーティションを設定する必要はありません。

8
ewwhite

物理ディスクごとにZFS専用のスライス/パーティションを1つ使用し、一部のスペースをパーティション化しないで残します。そうすれば、ドライブを交換する必要があり、交換が10セクター小さい場合でも、それを行うことができます( http://www.freebsddiary.org/zfs-with-gpart.php )。

これは、Solarisが自動的に行うこと、FreeNASが行うこと( https://forums.freenas.org/index.php?threads/zfs-on-partitioned-disks.37079/ )であり、ZoLが行うことあなたはそれにディスク全体を与えます-それはそれを分割します...

パーティション上の位置を実際のデバイス上の位置に変換するオーバーヘッドは無視できます。したがって、パーティションが物理セクター境界に正しく配置されると、ブロックデバイス全体とは異なる動作をする理由がなくなります。

ZoLの場合、私が知っている唯一の違いは、ディスク全体がvdevに渡されたときにZoLがディスクスケジューラをnoopに切り替えることです。手動で設定することを妨げるものは何もありません。

ただし、いくつかの必要なものがあります...ディスクごとにZFSのパーティションをこれ以上作成しないでください。上記のアドバイスを無視する場合は、同じzpoolでそれらからvdevをビルドしないでください。 ZFSがvdev間でデータをスライスし、シーケンシャルiopsがシーク悪夢に変わるため、これは基本的にパフォーマンスを殺します...

5
Grogi

私の頭の中でこの質問は、後でディスクが何であるかを指定できるかどうか疑わしいために発生します...ドライブ全体にプールを作成すると(そう、必要に応じて-fオプションを使用)、zpoolは実質的にgptパーティションテーブルを作成し、次のようなSolarisのパーティション:

(fdisk -l ...)
...
Disklabel type: gpt
Disk identifier: 4CBE587E-23AF-8E4B-A7F0-B44AD6083171

Device          Start        End    Sectors  Size Type
/dev/sdd1        2048 3907010559 3907008512  1,8T Solaris /usr & Apple ZFS
/dev/sdd9  3907010560 3907026943      16384    8M Solaris reserved 1

したがって、実際にパーティションを手動で作成する必要はありません...

0
Taras Filatov