Web更新

UbuntuでZFSを使ってみよう 第22回 ZFSのプロパティを見てみよう(4)


前回は、ZFSに設定できる読み取り専用プロパティについて説明しました。今回も引き続きZFSの読み取り専用プロパティについて説明します。


読み取り専用のZFS ネイティブプロパティ(4)

user


指定したデータセット以下の、すべての子孫の使用容量を表示します。この値は、このデータセットのquota(使用領域の制限)やreservation(使用量料の予約)と照合されます。

使用容量には、指定したデータセットのreservationには含まれていなくても、子孫のデータセットのreservationは考慮されます。あるデータセットが親のデータセットから使用する容量と、そのデータセットが再帰的に破壊されたときに開放される容量は、使用容量とreservationされた容量のうち、多い方になります。

スナップショットの使用領域は、このスナップショット以外から参照されていない領域です。 このスナップショットが破棄されると、使用済みの領域が解放されます。 複数のスナップショットで共有されている領域は、user の値に含みません。 スナップショットが破壊されると、このスナップショットと共有されていた領域が、隣接するスナップショットに固有のものとなり、これらのスナップショットの使用済み領域が変更されます。 また、最新のスナップショットの使用領域は、ファイルシステムの変更によっても影響を受けます。 スナップショットの使用領域は、スナップショットの書き込み領域のサブセットであることに注意してください。

使用領域、利用可能領域、参照されている領域は、書き込み中の状態を考慮していません。 書き込み中の状態は通常、数秒以内に反映されます。 fsync(2)やO_SYNCを使って変更をディスクにコミットしても、領域使用量の情報がすぐに更新されるとは限りません。



usedby*

usedby*プロパティは、usedプロパティを領域が使用される様々な理由に分解します。 具体的には、used = usedbychildren + usedbydataset + usedbyrefreservation + usedbysnapshotsとなります。 これらのプロパティは、「バージョン 13」以降のzpoolで作成されたデータセットでのみ使用できます。


usedbychildren

指定したデータセットの子が使用している容量で、データセットの子がすべて破棄された場合に解放される容量です。


usedbydataset

指定したデータセット自体が使用している容量で、データセットが破壊された場合(最初にrefreservation を削除し、必要なスナップショットや子孫を破壊した後)に解放される量です。


usedbyrefreservation

指定したデータセットに設定されたrefreservationの使用領域量で、refreservation が削除された場合に解放されます。


usedbysnapshots

このデータセットのスナップショットによって使用される領域容量です。 特に、このデータセットのすべてのスナップショットが破壊された場合に解放される領域量です。 領域は複数のスナップショットで共有できるため、これが単にスナップショットのusedプロパティの合計ではないことに注意してください。


userused@user

このデータセットで指定されたユーザーが消費した領域量です。 容量は、ls -lで表示されるように、各ファイルの所有者に引き渡されます。 引き渡された領域量は、duおよびls -sで表示されます。

非特権ユーザーは、自分のスペースの使用量のみにアクセスできます。 root ユーザー、または zfs allow で userused 権限を付与されたユーザーは、すべてのユーザーの使用領域にアクセスできます。

userused@…のプロパティは、zfs get allでは表示されません。 ユーザの名前は、以下のいずれかの形式で、@記号の後に付加する必要があります。

  • POSIX name (例: joe)
  • POSIX numeric ID (例:789)
  • SID name (例: joe.smith@mydomain)
  • SID numeric ID (例: S-1-123-456-789)

    Linuxで作成されたファイルは、常にPOSIXオーナーを持ちます。


userobjused@user

userobjusedプロパティは、userusedと似ていますが、ユーザが消費したオブジェクトの数をカウントします。このプロパティは、ユーザに代わって割り当てられたすべてのオブジェクトをカウントするため、df -iなどのシステム・ツールの結果とは異なる場合があります。

ファイルシステムにxattr=onというプロパティが設定されていると、拡張属性を格納するためファイル毎に追加のオブジェクトが作成されます。これらの追加オブジェクトは、userobjusedの値に反映され、ユーザーのuserobjquotaに対してカウントされます。 ファイルシステムがxattr=saを使用するように設定されている場合、通常は追加の内部オブジェクトは必要ありません。

userrefs

このプロパティには、このスナップショットのユーザーホールドの数が設定されます。 ユーザーホールドは、zfs holdコマンドを使用して設定します。



終わりに


今回はZFSの読み取り専用プロパティについて説明しました。次回も、ZFSの読み取り専用プロパティについて説明します。次回をお楽しみに。



さて、このコラムを掲載いただいているデジタル・ヒュージ・テクノロジー社は老舗のOSSインテグレーターです。特にLinuxは強く、OSSを活用した業務システムの実績も多いです。興味がある方は以下のページもご覧ください。
DHT OSS導入コンサルティングサービス

関連記事一覧