UbuntuでZFSを使ってみよう 第25回 ZFSのプロパティを見てみよう(7)
前回は、ZFSに設定できる設定可能なプロパティについて説明しました。今回も、ZFSの設定可能なプロパティについて説明します。
設定可能なZFS ネイティブプロパティ(2)
checksum=on|off|fletcher2|fletcher4|sha256|noparity|sha512|skein|edonr
プロパティchecksum は、データの整合性を確認するためのチェックサムを設定します。 デフォルト値はonで、適切なアルゴリズムが自動的に選択されます。現在はonを設定したときに fletcher4 を使用しますが、今後のリリースで変更される可能性があります。
offを指定すると、ユーザーデータの整合性チェックが無効になります。この設定は推奨されません。
noparity は、整合性を無効にするだけでなく、ユーザーデータのパリティを維持することも無効にします。 この値は、RAID-Z pool 上のダンプデバイスが内部的に使用するもので、他のデータセットでは使用しないでください。
sha512、skein、edonrチェックサムアルゴリズムを指定する場合は、zpoolで適切な機能を有効にする必要があります。 これらのzpoolの機能はGRUBではサポートされていません。そのため、GRUBがプールにアクセスする必要がある/boot ファイルシステムなどでは使用してはいけません。
このプロパティを変更すると、変更後の新規に書き込まれたデータのみに影響します。
compression=on|off|gzip|gzip-N|lz4|lzjb|zle
プロパティ compression は、このデータセットで使用される圧縮アルゴリズムを制御します。
compressionをonに設定すると、現在のデフォルトの圧縮アルゴリズムを使用することになります。 デフォルトでは、圧縮・復元の速度と、圧縮率のバランスがとれており、さまざまなワークロードでうまく機能することが期待されます。このプロパティの他のすべての設定とは異なり、onは固定の圧縮タイプを選択しません。 新しい圧縮アルゴリズムがZFSに追加され、プールで有効になると、デフォルトの圧縮アルゴリズムを変更される可能性があります。 現在のデフォルトの圧縮アルゴリズムは lzjb か、z4_compress 機能が有効な場合は lz4 です。
- lz4 圧縮アルゴリズムは、lzjb アルゴリズムに代わる高性能な圧縮アルゴリズムです。 lzjbよりも圧縮と復元が大幅に速く、圧縮率も中程度に高いのが特徴です。lz4は、zpool の lz4_compress機能が有効に設定されたプールでのみ使用できます。
- lzjbの圧縮アルゴリズムは、適切にデータを圧縮でき、パフォーマンスのために最適化されています。
- gzip圧縮アルゴリズムは、gzipコマンドと同じ圧縮方法を採用しています。 gzipレベルは、gzip-Nという値で指定します。Nは1(最速)から9(最高の圧縮率)までの整数です。 現在gzip と指定すると、gzipのデフォルトでもあるgzip-6を使用します。
- zle(Zero-Length encoding)圧縮アルゴリズムは、連続するゼロのみで埋められた部分を圧縮します。
このプロパティは compress という短縮された名前でも参照できます。 このプロパティを変更すると、変更後の新規に書き込まれたデータのみに影響します。
off以外の設定を選択した場合、ゼロ(NULバイト)のみで構成されたブロックを明示的にチェックして圧縮します。 ゼロのみで埋めされたブロックが検出された場合、そのブロックはホールとして保存され、指定された圧縮アルゴリズムでは圧縮されません。
圧縮されるブロックは、圧縮後に元のサイズの7/8以下にならなければなりません。そうでない場合は、圧縮の意味がないとみなされ、そのブロックは圧縮されずに保存されます。論理ブロックがディスクセクタサイズの 8 倍未満の場合は、 必要な圧縮率が効果的に減少することに注意してください。 例えば、4k のディスクセクタを持つディスク上の 8k のブロックは、 元のサイズの 1/2 以下に圧縮する必要があります。
context=none|SELinux_User:SElinux_Role:Selinux_Type:Sensitivity_Level
このプロパティは、そのファイルシステムのマウントポイントの下にあるファイルシステム内のすべてのファイルにSELinuxのコンテキストを設定します。UbuntuではSELinuxを使用していないため、使用できません。
fscontext=none|SELinux_User:SElinux_Role:Selinux_Type:Sensitivity_Level
このプロパティは、マウントされるファイルシステムのファイルシステムのSELinuxコンテキストを設定します。UbuntuではSELinuxを使用していないため、使用できません。
defcontext=none|SELinux_User:SElinux_Role:Selinux_Type:Sensitivity_Level
このプロパティは、ラベルのないファイルに対するSELinuxのデフォルトのコンテキストを設定します。UbuntuではSELinuxを使用していないため、使用できません。
rootcontext=none|SELinux_User:SElinux_Role:Selinux_Type:Sensitivity_Level
このプロパティは、ファイルシステムのルートinodeのSELinuxコンテキストを設定します。 UbuntuではSELinuxを使用していないため、使用できません。
終わりに
今回はZFSのFSの設定可能なプロパティについて説明しました。次回も、ZFSの設定可能なプロパティについて説明します。次回をお楽しみに。
さて、このコラムを掲載いただいているデジタル・ヒュージ・テクノロジー社は老舗のOSSインテグレーターです。特にLinuxは強く、OSSを活用した業務システムの実績も多いです。興味がある方は以下のページもご覧ください。
DHT OSS導入コンサルティングサービス