ほとんどの人が使用すべき ZFS プール、vdev、データセットのプロパティは何ですか?

ほとんどの人が使用すべき ZFS プール、vdev、データセットのプロパティは何ですか?

ZFSにはさまざまな設定可能なプロパティがありますプール用vdevs用そしてデータセット用これらの多くはいつでも変更できますが、作成時にのみ設定できるものもあります(または、その後に書き込まれたデータにのみ影響するため、すべき実際には作成時に設定されます)。

初心者として、私はさまざまな質問を検索し、頻繁に設定することが提案されているプロパティをいくつか見つけました。

当然、それぞれのユースケースでどのようなプロパティが意味を持つかは多少異なりますが、ほとんどのZFSユーザーが使用すべき共通のプロパティセットがあるようです。私は、積極的な理由を持つべきプロパティについて考えています。ないそれらを使用するには、どうすればよいですか。それは何で、なぜですか。

答え1

(免責事項: ZFS 初心者として、これはあくまでも私の理解であり、他の人からのより完全で信頼性の高い情報へのきっかけとなることを目的としています)。

プールのプロパティ

データセットのプロパティ

zfs create -oこれらは、ルートファイルシステムのまたは-Oスイッチを使用して指定できますzpool create(デフォルトでは他のファイルシステムに継承されます)。

  • xattr=sa

    実質的な欠点はなく、xattr のパフォーマンスが大幅に向上します。(Linuxでのみ利用可能今のところ)。

  • dnodesize=auto

    このプロパティは を使用する場合に使用してくださいxattr=sa。これらを使用しない主な理由は、必要なZFS機能をサポートしていないシステムとのやり取り

  • relatime=on

    ファイルのアクセス時間を追跡することは、読み取り専用のやり取りでも非常にコストがかかる可能性があります。relatimeプロパティ内の情報の精度が低下するという代償を払って、これらの更新の粒度/頻度を大幅に削減しますatime(一般的に必要な不変条件の一部は維持されます)。これは、今のところ長い間、Linux 上のほぼすべてのファイルシステムのデフォルトであることに注意してください。正確な情報が必要な場合は、これをオンにしないでください。これが必要ないことがatimeわかる場合は、さらに優れたパフォーマンスを提供します。atimeatime=off

  • normalization=formD

    これにより、ファイル名が常に同じ方法で正規化されます。大きな副作用として、ファイル システムはファイル名を UTF-8 エンコードとして扱い、他のファイル システムで受け入れられる特定の「壊れた」名前のファイル名を保存できなくなります。これが望ましくない場合は、これを省略してください。

  • compression=lz4

    最近のハードウェアでは圧縮のコストが非常に低いため、実質的にはメリットしかないというのがコンセンサスのようです。主として、すでに高度に圧縮されたデータを保存するデータセットでは、これをオフにしたほうがよいかもしれません。

  • いいえrecordsize

    デフォルトのレコードサイズは多くのユースケースでは適切な中間点であると思われますが、データベースなどの一部のユースケースでは特定の値が役立つ場合があります。

出典

関連情報