UbuntuでZFSを使ってみよう 第28回 ZFSのプロパティを見てみよう(10)
前回に引き続き、今回もZFSの設定可能なプロパティについて説明します。
設定可能なZFS ネイティブプロパティ(5)
nbmand=on|off
ファイルシステムを nbmand (Non Blocking mandatory locks) でマウントするかどうかを設定します。 このプロパティは、SMBクライアントで使用され、Linux では使用されません。
overlay=off|on
ビジー状態のディレクトリ、既にファイルやディレクトリが存在するディレクトリへのマウントを許可します。これは Linuxファイルシステムでの、デフォルトのマウント動作です。 他のプラットフォーム上の OpenZFS との一貫性を保つため、オーバーレイマウントはデフォルトで off になっています。オーバーレイマウントを有効にするには、on に設定します。
primarycache=all|none|metadata
プライマリキャッシュ(ARC)に何をキャッシュするかを設定します。 このプロパティを all に設定すると、ユーザデータとメタデータの両方がキャッシュされます。 このプロパティをnoneに設定すると、ユーザデータとメタデータの両方がキャッシュされません。 このプロパティを metadata に設定すると、メタデータのみがキャッシュされます。 デフォルトは all です。
quota=size|none
データセットとその子孫の消費できる容量を制限します。 このプロパティは、使用する容量のハードリミットを強制的に設定します。 これには、ファイルシステムやスナップショットなど、子孫によって消費されるすべての容量が含まれます。 既にクォータを持っているデータセットの子孫にクォータを設定しても、祖先のクォータは上書きされず、追加の制限が課されます。
ボリュームの場合、volsize
プロパティが暗黙のクォータとして機能するため、ボリュームにクォータを設定できません。
snapshot_limit=count|none
データセットとその子孫に対して、作成できるスナップショットの数を制限します。 既にsnapshot_limit
を持つデータセットの子孫にsnapshot_limit
を設定しても、祖先のsnapshot_limit
は上書きされず、追加で制限されることになります。 ユーザーが制限を変更できる場合は、制限は適用されません。たとえば、グローバルゾーンから取得した再帰的スナップショットは、ゾーン内の各代 表者データセットに対してカウントされることを意味します。 この機能を使用するには、zpoolで機能を有効化する必要があります 。
userquota@user=size|none
指定されたユーザーが消費する容量を制限します。 ユーザーの消費領域は、プロパティuserspace@user
で識別されます。
ユーザークォータの実行は、数秒遅れることがあります。 この遅延は、システムがクォータ超過に気付き、EDQUOT エラーメッセージで追加の書き込みを拒否し始める前に、ユーザがクォータを超過する可能性があることを意味します。 詳細については、zfs userspace
コマンドで説明します。
非特権ユーザーは、自分のグループのスペース使用量にのみアクセスできます。 root ユーザー、または zfs allow
コマンドで userquota
特権を与えられたユーザーは、全員の quota を取得・設定できます。
このプロパティは、ボリューム、バージョン4以前のファイルシステム、およびバージョン15以前のプールでは使用できません。 userquota@...
プロパティは、 zfs get all では表示されません。 ユーザー名は、次のいずれかの形式を使用して、@ 記号の後に追加されなければなりません。
- POSIX name (例 joe)
- POSIX numeric ID (例 1000)
- SID name (例 joe.smith@mydomain)
- SID numeric ID (例 S-1-123-456-789)
Linuxで作成されたファイルは、常にPOSIXのオーナーを持ちます。
userobjquota@user=size|none
userobjquota
は userquota
と似ていますが、ユーザーが作成できるオブジェクトの数を制限するものです。オブジェクトがどのようにカウントされるかについては、プロパティ userobjused
の説明を参照してください。
groupquota@group=size|none
指定されたグループが消費する容量を制限します。 グループのスペース消費量は、プロパティgroupused@group
で識別されます。非特権ユーザーは、自分自身のグループのスペース使用量にのみアクセスできます。 root ユーザー、またはzfs allow
で groupquota
特権を付与されたユーザーは、すべてのグループのクォータを取得・設定できます。
groupobjquota@group=size|none
groupobjquota
はgroupquota
と似ていますが、1つのグループが消費できるオブジェクトの数を制限します。オブジェクトがどのようにカウントされるかについては、プロパティ userobjused
を参照してください。
projectquota@project=size|none
指定されたプロジェクトが消費する容量を制限します。プロジェクトの消費領域は、プロパティprojectused@project
で識別されます。プロジェクトの識別方法と設定・変更方法については、プロパティprojectused
を参照してください。
rootユーザ、またはzfs allow
でprojectquota
権限を付与されたユーザは、すべてのプロジェクトのquota
にアクセスできます。
projectobjquota@project=size|none
projectobjquota
はprojectquota
と似ていますが、プロジェクトが消費できるオブジェクトの数を制限するものです。オブジェクトのカウント方法については、プロパティ userobjused
を参照してください。
終わりに
次回も、今回に引き続き、ZFSの設定可能なプロパティについて説明します。次回をお楽しみに。
さて、このコラムを掲載いただいているデジタル・ヒュージ・テクノロジー社は老舗のOSSインテグレーターです。特にLinuxは強く、OSSを活用した業務システムの実績も多いです。興味がある方は以下のページもご覧ください。
DHT OSS導入コンサルティングサービス