JavaScript is required to for searching.
ナビゲーションリンクをスキップ
印刷ビューの終了
Oracle Solaris ZFS 管理ガイド     Oracle Solaris 10 8/11 Information Library (日本語)
search filter icon
search icon

ドキュメントの情報

はじめに

1.  Oracle Solaris ZFS ファイルシステム (概要)

2.  Oracle Solaris ZFS 入門

3.  Oracle Solaris ZFS ファイルシステムと従来のファイルシステムの相違点

4.  Oracle Solaris ZFS ストレージプールの管理

5.  Oracle Solaris ZFS ルートファイルシステムのインストールとブート

6.  Oracle Solaris ZFS ファイルシステムの管理

ZFS ファイルシステムの管理 (概要)

ZFS ファイルシステムの作成、破棄、および名前変更を行う

ZFS ファイルシステムを作成する

ZFS ファイルシステムを破棄する

ZFS ファイルシステムの名前を変更する

ZFS のプロパティーの紹介

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

used プロパティー

設定可能な ZFS ネイティブプロパティー

canmount プロパティー

recordsize プロパティー

volsize プロパティー

ZFS ユーザープロパティー

ZFS ファイルシステムの情報のクエリー検索を行う

基本的な ZFS 情報を表示する

複雑な ZFS クエリーを作成する

ZFS プロパティーを管理する

ZFS プロパティーを設定する

ZFS プロパティーを継承する

ZFS プロパティーのクエリー検索を行う

スクリプトで使用できるように ZFS プロパティーのクエリー検索を行う

ZFS ファイルシステムをマウントおよび共有する

ZFS マウントポイントを管理する

自動マウントポイント

レガシーマウントポイント

ZFS ファイルシステムをマウントする

一時的なマウントプロパティーを使用する

ZFS ファイルシステムをマウント解除する

ZFS ファイルシステムを共有および共有解除する

共有セマンティクスを制御する

ZFS ファイルシステムの共有を解除する

ZFS ファイルシステムを共有する

従来の共有の動作

ZFS の割り当て制限と予約を設定する

ZFS ファイルシステムに割り当て制限を設定する

ZFS ファイルシステムでユーザーおよびグループの割り当て制限を設定する

ZFS ファイルシステムに予約を設定する

ZFS ファイルシステムをアップグレードする

7.  Oracle Solaris ZFS のスナップショットとクローンの操作

8.  ACL および属性を使用した Oracle Solaris ZFS ファイルの保護

9.  Oracle Solaris ZFS 委任管理

10.  Oracle Solaris ZFS の高度なトピック

11.  Oracle Solaris ZFS のトラブルシューティングとプールの回復

A.  Oracle Solaris ZFS バージョンの説明

索引

ZFS の割り当て制限と予約を設定する

quota プロパティーを使用して、ファイルシステムが使用できるディスク容量を制限できます。また、reservation プロパティーを使用して、指定されたディスク容量をファイルシステムが使用できることを保証することもできます。これらのプロパティーは、設定したデータセットとそのデータセットのすべての子孫に適用されます。

つまり、割り当て制限を tank/home データセットに設定した場合は、tank/home およびそのすべての子孫が使用するディスク容量の合計がその割り当て制限を超えることができなくなります。同様に、tank/home に予約を設定した場合は、tank/home およびそのすべての子孫がその予約を利用することになります。データセットとそのすべての子孫が使用するディスク容量は、used プロパティーによって報告されます。

refquota プロパティーと refreservation プロパティーは、スナップショットやクローンなどの子孫で消費されるディスク容量を計上せずにファイルシステムの容量を管理するために使用されます。

この Solaris リリースでは、特定のユーザーまたはグループが所有するファイルによって消費されるディスク領域の量に割り当て制限を設定することができます。ファイルシステムバージョン 4 より古いファイルシステム上のボリューム、またはバージョン 15 より古いプール上のボリュームには、ユーザーおよびグループの割り当て制限プロパティーを設定できません。

ファイルシステムを管理するために、割り当て制限と予約の機能としてどれがもっとも役立つかを判断するには、次の点を考慮してください。

割り当て制限と予約の設定方法の詳細については、「ZFS ファイルシステムに割り当て制限を設定する」および「ZFS ファイルシステムに予約を設定する」を参照してください。

ZFS ファイルシステムに割り当て制限を設定する

ZFS ファイルシステムの割り当て制限は、zfs set および zfs get コマンドを使用して設定および表示できます。次の例では、10G バイトの割り当て制限が tank/home/jeff に設定されます。

# zfs set quota=10G tank/home/jeff
# zfs get quota tank/home/jeff
NAME            PROPERTY  VALUE  SOURCE
tank/home/jeff  quota     10G    local

割り当て制限を設定すると、zfs list および df コマンドの出力も変化します。例:

# zfs list -r tank/home
NAME                USED  AVAIL  REFER  MOUNTPOINT
tank/home          1.45M  66.9G    36K  /tank/home
tank/home/eric      547K  66.9G   547K  /tank/home/eric
tank/home/jeff      322K  10.0G   291K  /tank/home/jeff
tank/home/jeff/ws    31K  10.0G    31K  /tank/home/jeff/ws
tank/home/lori      547K  66.9G   547K  /tank/home/lori
tank/home/mark       31K  66.9G    31K  /tank/home/mark
# df -h /tank/home/jeff
Filesystem            Size  Used Avail Use% Mounted on
tank/home/jeff         10G  306K   10G   1% /tank/home/jeff

tank/home は 66.9G バイトのディスク容量を使用できますが、tank/home/jefftank/home/jeff/ws は、tank/home/jeff の割り当て制限のため、10G バイトのディスク容量しか使用できません。

割り当て制限には、データセットが現在使用している容量より少ない容量を設定することはできません。次に例を示します。

# zfs set quota=10K tank/home/jeff
cannot set property for 'tank/home/jeff': size is less than current used or reserved space

データセットに refquota を設定して、データセットが消費できるディスク容量を制限できます。この強い制限値には、子孫が消費するディスク容量は含まれません。たとえば、studentA の 10G バイトの割り当て制限は、スナップショットによって消費される容量によって影響されません。

# zfs set refquota=10g students/studentA
# zfs list -t all -r students
NAME                          USED  AVAIL  REFER  MOUNTPOINT
students                      150M  66.8G    32K  /students
students/studentA             150M  9.85G   150M  /students/studentA
students/studentA@yesterday      0      -   150M  -
# zfs snapshot students/studentA@today
# zfs list -t all -r students
students                      150M  66.8G    32K  /students
students/studentA             150M  9.90G   100M  /students/studentA
students/studentA@yesterday  50.0M      -   150M  -
students/studentA@today          0      -   100M  -

利便性を高めるために、データセットに別の割り当て制限を設定して、スナップショットで消費されるディスク容量を管理することもできます。次に例を示します。

# zfs set quota=20g students/studentA
# zfs list -t all -r students
NAME                          USED  AVAIL  REFER  MOUNTPOINT
students                      150M  66.8G    32K  /students
students/studentA             150M  9.90G   100M  /students/studentA
students/studentA@yesterday  50.0M      -   150M  -
students/studentA@today          0      -   100M  -

このシナリオでは、studentArefquota (10G バイト) の強い制限に到達する可能性がありますが、スナップショットが存在している場合でも回復のためにファイルを削除することができます。

上の例では、2 つの割り当て制限 (10G バイトと 20G バイト) の小さいほうが、zfs list 出力に表示されています。両方の割り当て制限を表示するには、zfs get コマンドを使用します。次に例を示します。

# zfs get refquota,quota students/studentA
NAME               PROPERTY  VALUE              SOURCE
students/studentA  refquota  10G                local
students/studentA  quota     20G                local

ZFS ファイルシステムでユーザーおよびグループの割り当て制限を設定する

ユーザー割り当て制限またはグループ割り当て制限を設定するには、それぞれ zfs userquota コマンドまたは zfs groupquota コマンドを使用します。次に例を示します。

# zfs create students/compsci
# zfs set userquota@student1=10G students/compsci
# zfs create students/labstaff
# zfs set groupquota@labstaff=20GB students/labstaff

現在のユーザーまたはグループの割り当て制限が次のように表示されます。

# zfs get userquota@student1 students/compsci
NAME              PROPERTY            VALUE               SOURCE
students/compsci  userquota@student1  10G                 local
# zfs get groupquota@labstaff students/labstaff
NAME               PROPERTY             VALUE                SOURCE
students/labstaff  groupquota@labstaff  20G                  local

次のプロパティーのクエリーによって、ユーザーまたはグループの全般的なディスク領域使用状況を表示することができます。

# zfs userspace students/compsci
TYPE        NAME      USED  QUOTA  
POSIX User  root      350M   none  
POSIX User  student1  426M    10G  
# zfs groupspace students/labstaff
TYPE         NAME      USED  QUOTA  
POSIX Group  labstaff  250M    20G  
POSIX Group  root      350M   none  

個々のユーザーやグループのディスク領域の使用状況を特定するには、次のプロパティーのクエリーを行います。

# zfs get userused@student1 students/compsci
NAME              PROPERTY           VALUE              SOURCE
students/compsci  userused@student1  550M               local
# zfs get groupused@labstaff students/labstaff
NAME               PROPERTY            VALUE               SOURCE
students/labstaff  groupused@labstaff  250                 local

zfs get all dataset コマンドを使用しても、ユーザーおよびグループの割り当て制限プロパティーは表示されず、その他のすべてのファイルシステムプロパティーの一覧が表示されるだけです。

ユーザー割り当て制限またはグループ割り当て制限は、次のようにして解除することができます。

# zfs set userquota@student1=none students/compsci
# zfs set groupquota@labstaff=none students/labstaff

ZFS ファイルシステムのユーザーおよびグループ割り当て制限で提供される機能は、次のとおりです。

ユーザーまたはグループの割り当て制限が適用されるのが数秒遅れることがあります。そのような遅延が発生する場合は、割り当て制限を超えているのでこれ以上は書き込みが許可されないことが EDQUOT エラーメッセージによって通知される前にユーザーが自身の割り当て制限を超えている可能性があります。

従来の quota コマンドを使用して、NFS 環境 (例えば、ZFS ファイルシステムがマウントされているものなど) におけるユーザーの割り当て制限を確認することができます。ユーザーが割り当て制限を超えてる場合は、何もオプションを指定しなくても、quota コマンドだけで、出力情報が表示されます。次に例を示します。

# zfs set userquota@student1=10m students/compsci   
# zfs userspace students/compsci
TYPE        NAME      USED  QUOTA  
POSIX User  root      350M   none  
POSIX User  student1  550M    10M  
# quota student1
Block limit reached on /students/compsci

ユーザーの割り当て制限をリセットして制限を超えることがないようにする場合は、quota -v コマンドを使用してユーザーの割り当てを確認することができます。次に例を示します。

# zfs set userquota@student1=10GB students/compsci 
# zfs userspace students/compsci
TYPE        NAME      USED  QUOTA  
POSIX User  root      350M   none  
POSIX User  student1  550M    10G 
# quota student1
# quota -v student1
Disk quotas for student1 (uid 102):
Filesystem     usage  quota  limit    timeleft  files  quota  limit    timeleft
/students/compsci
              563287 10485760 10485760           -      -      -      -           -

ZFS ファイルシステムに予約を設定する

ZFS の「予約」とは、データセットが使用できることを保証された、プールから割り当てられたディスク領域のことです。つまり、プールで現在使用できないディスク容量をデータセットのディスク容量として予約することはできません。未処理の使用されていない予約の合計容量が、プールで消費されていないディスク容量を超えることはできません。ZFS の予約は、zfs set および zfs get コマンドを使用して設定および表示できます。次に例を示します。

# zfs set reservation=5G tank/home/bill
# zfs get reservation tank/home/bill
NAME            PROPERTY     VALUE   SOURCE
tank/home/bill  reservation  5G      local

予約を設定すると、zfs list コマンドの出力が変化する可能性があります。次に例を示します。

# zfs list -r tank/home
NAME                USED  AVAIL  REFER  MOUNTPOINT
tank/home          5.00G  61.9G    37K  /tank/home
tank/home/bill       31K  66.9G    31K  /tank/home/bill
tank/home/jeff      337K  10.0G   306K  /tank/home/jeff
tank/home/lori      547K  61.9G   547K  /tank/home/lori
tank/home/mark       31K  61.9G    31K  /tank/home/mark

tank/home は 5G バイトのディスク容量を使用していますが、tank/home とそのすべての子孫が参照しているディスク容量の合計は 5G バイト未満です。使用される容量には、tank/home/bill に予約されている容量が反映されます。予約は、親データセットが使用しているディスク容量の計算時に計上されるので、親データセットの割り当て制限または予約、あるいはその両方を減らすことになります。

# zfs set quota=5G pool/filesystem
# zfs set reservation=10G pool/filesystem/user1
cannot set reservation for 'pool/filesystem/user1': size is greater than 
available space

データセットは、予約より多くのディスク容量を使用できます。ただし、プールの中で予約されていない領域があり、データセットが現在使用している容量が割り当て制限に達していないことが条件です。データセットは、別のデータセットに予約されているディスク容量を使用することはできません。

予約は加算されません。つまり、zfs set をもう一度呼び出して予約を設定しても、既存の予約に新しい予約が追加されることはありません。代わりに、既存の予約が 2 番目の予約で置き換えられます。次に例を示します。

# zfs set reservation=10G tank/home/bill
# zfs set reservation=5G tank/home/bill
# zfs get reservation tank/home/bill
NAME            PROPERTY     VALUE   SOURCE
tank/home/bill  reservation  5G      local

refreservation 予約を設定すると、スナップショットとクローンで消費されるディスク容量は含めずに、データセットのディスク容量を保証することができます。この予約は、親データセットの使用済み容量の計算時に計上されるので、親データセットの割り当て制限と予約を減らすことになります。次に例を示します。

# zfs set refreservation=10g profs/prof1
# zfs list
NAME                      USED  AVAIL  REFER  MOUNTPOINT
profs                    10.0G  23.2G    19K  /profs
profs/prof1                10G  33.2G    18K  /profs/prof1

同じデータセットに予約を設定して、データセットの容量とスナップショットの容量を確保することもできます。次に例を示します。

# zfs set reservation=20g profs/prof1
# zfs list
NAME                      USED  AVAIL  REFER  MOUNTPOINT
profs                    20.0G  13.2G    19K  /profs
profs/prof1                10G  33.2G    18K  /profs/prof1

通常の予約は、親の使用済み容量の計算時に計上されます。

上の例では、2 つの割り当て制限 (10G バイトと 20G バイト) の小さいほうが、zfs list 出力に表示されています。両方の割り当て制限を表示するには、zfs get コマンドを使用します。次に例を示します。

# zfs get reservation,refreserv profs/prof1
NAME         PROPERTY        VALUE        SOURCE
profs/prof1  reservation     20G          local
profs/prof1  refreservation  10G          local

refreservation を設定すると、スナップショットを作成できるのは、データセットの referenced の現在のバイト数を格納できるだけの未予約プール領域が、この予約容量のほかに存在する場合だけになります。