zfs - ZFS ファイルシステムの構成
zfs [-?]
zfs help subcommand | help | property property-name | permission
zfs help -l properties
zfs allow filesystem |volume
zfs allow [-ldug] everyone|user|group[,...] perm|@setname[,...] filesystem|volume
zfs allow [-ld] -e perm|@setname[,...] filesystem|volume
zfs allow -c perm|@setname[,...] filesystem |volume
zfs allow -s @ setname perm|@setname[,...] filesystem|volume
zfs clone [-p] [ -K] [-o property= value] ... snapshot filesystem |volume
zfs create [-p] [ -o property=value] ... filesystem
zfs create [-ps] [ -b blocksize] [-o property=value] ... -V size volume
zfs destroy [-rRsf] filesystem|volume
zfs destroy [-rRsd] snapshot
zfs destroy share
zfs diff [-FHNqrte] [ -o field] ... snapshot [ snapshot|filesystem]
zfs diff -E [ -FHqrt] [-o field] ... snapshot|filesystem
zfs get [-rHpe| -d max][-o all | field[,...]] [-s source[,...]] all | property[,...] filesystem| volume|snapshot|share ...
zfs get share [filesystem ]
zfs groupspace [-hniHp] [ -o field[,...]] [-sS field] ... [-t type [,...]] filesystem|snapshot
zfs hold [-r] tag snapshot...
zfs holds [-r] snapshot...
zfs key -l { -a | [-r] filesystem| volume}
zfs key -u [ -f] {-a | [-r] filesystem |volume}
zfs key -c [ -o keysource=value] { -a | [-r] filesystem| volume}
zfs key -K { -a | [-r] filesystem| volume}
zfs list [-rH| -d max][-o property [,...]] [-t type[,...]] [-I state,..] [-s property] ... [-S property] ... [filesystem|volume| snapshot|share|path] ...
zfs inherit [-rS] property filesystem|volume|snapshot|share ...
zfs mount
zfs mount [-vO] [ -o options] -a | filesystem
zfs promote clone-filesystem
zfs receive [-vnFu] [[ -o property=value] | [ -x property]] ... filesystem|volume| snapshot
zfs receive [-vnFu] [[ -o property=value] | [ -x property]] ... [-d | -e] filesystem
zfs receive -C <filesystem|volume>
zfs release [-r] tag snapshot...
zfs rename filesystem |volume|snapshot filesystem|volume| snapshot
zfs rename [-p] filesystem|volume filesystem |volume
zfs rename -r snapshot snapshot
zfs rename share share
zfs rollback [-rRf] snapshot
zfs send [-vbpnC] [-[Rr[c]]] [-w compress|none] [-D [-m <memsize>]] [-[iI] <snapshot>] [-s <subopt>] <snapshot>
zfs set [-r] property=value filesystem| volume|snapshot ...
zfs share -u [-o property=value] filesystem%share
zfs share filesystem|mountpoint|filesystem%share
zfs share -a| -r | filesystem
zfs snapshot [-r] [ -o property=value]... filesystem@snapname|volume@snapname
zfs unmount [-f] -a | filesystem|mountpoint
zfs unshare filesystem |mountpoint|filesystem%share
zfs unshare -a| -r filesystem|
zfs upgrade
zfs upgrade [-v]
zfs upgrade [-r] [ -V version] -a | filesystem
zfs userspace [-hniHp] [ -o field[,...]] [-sS field] ... [-t type [,...]] filesystem|snapshot
zfs unallow [-rldug] everyone|user|group[,...] [ perm|@setname[,... ]] filesystem|volume
zfs unallow [-rld] -e [perm|@setname[,... ]] filesystem|volume
zfs unallow [-r] -c [perm|@setname[ ... ]] filesystem|volume
zfs unallow [-r] -s @setname [perm|@ setname[,... ]] filesystem| volume
zpool(8) で説明されているように、zfs コマンドは、ZFS ストレージプール内の ZFS データセットを構成します。データセットの識別には、ZFS 名前空間内部の一意のパスが使用されます。例:
pool/{filesystem,volume, snapshot}
この場合、データセット名の最大長は MAXNAMELEN (256 バイト) です。
使用できるデータセットは、次のうちのいずれかです。
標準のシステム名前空間内にマウントでき、別のファイルシステムのように動作する、filesystem タイプの ZFS データセット。ZFS ファイルシステムは POSIX に準拠するように設計されていますが、場合によっては準拠を妨げる既知の問題が存在します。標準準拠に依存しているアプリケーションでは、ファイルシステムの空き領域を調べるときに、標準でない動作のために障害が発生する可能性があります。
raw デバイスまたはブロック型デバイスとしてエクスポートされた論理ボリューム。このタイプのデータセットは特殊な状況でのみ使用するようにしてください。通常は、ほとんどの環境でファイルシステムが使用されます。
特定の時点におけるファイルシステムまたはボリュームの読み取り専用バージョン。これは、filesystem@name または volume@name として指定されます。
ZFS ストレージプールは、データセット用の領域を提供するデバイスの論理コレクションです。ストレージプールは、ZFS ファイルシステム階層のルートでもあります。
プールのルートにはファイルシステムとしてアクセスできるため、マウントやアンマウント、スナップショットの作成、およびプロパティーの設定などの操作を実行できます。ただし、物理ストレージ特性の管理には、zpool(8) コマンドを使用します。
プールの作成および管理の詳細は、zpool(8) を参照してください。
スナップショットは、ファイルシステムまたはボリュームの読み取り専用コピーです。スナップショットはきわめてすばやく作成することができ、最初はプール内で追加の領域を消費しません。アクティブなデータセット内のデータが変更されると、スナップショット用のデータが増加します。これは、本来ならアクティブなデータセットと共有されていたデータです。
スナップショットには、任意の名前を付けることができます。ボリュームのスナップショットは、クローンやロールバックを作成することは可能ですが、個別にアクセスすることはできません。
ファイルシステムのスナップショットは、ファイルシステムのルートの .zfs/snapshot ディレクトリに置かれます。スナップショットは、要求に応じて自動的にマウントされます。また、一定の時間が経過するとスナップショットをアンマウントすることもできます。.zfs ディレクトリの可視設定は、snapdir プロパティーで制御できます。
クローンとは、別のデータセットと同一の初期内容を持つ書き込み可能なボリュームまたはファイルシステムです。スナップショットの場合と同様に、クローンは瞬間的に作成され、最初は追加の領域を消費しません。
クローンは、スナップショットだけから作成できます。スナップショットのクローンを作成すると、親子間に暗黙の依存関係が作成されます。クローンをデータセット階層内の別の場所に作成した場合でも、クローンが存在するかぎり、元のスナップショットを破棄することはできません。この依存関係は origin プロパティーによって明らかになり、このような依存関係が存在する場合は、destroy コマンドによって一覧表示されます。
promote サブコマンドを使えば、クローンの親子依存関係を逆転させることができます。これを行うと、「元」のファイルシステムが、指定されたファイルシステムのクローンになります。このため、クローンの作成元のファイルシステムを破棄できるようになります。
ZFS ファイルシステムは簡単な操作で作成できるため、システムごとのファイルシステムの数はかなり多くなる可能性があります。これに対処するため、/etc/vfstab ファイルを編集しなくても、ZFS がファイルシステムのマウントとアンマウントを自動的に管理します。自動管理されるすべてのファイルシステムは、ブート時に ZFS によりマウントされます。
デフォルトでは、ファイルシステムは /path の下にマウントされます。ここで、path は ZFS 名前空間内のファイルシステムの名前です。ディレクトリが、必要に応じて作成および破棄されます。
また、mountpoint プロパティーにファイルシステムのマウントポイントを設定することも可能です。このディレクトリは必要に応じて作成され、zfs mount -a コマンドの呼び出し時に ZFS によりファイルシステムが自動的にマウントされます (/etc/vfstab の編集は不要)。mountpoint プロパティーは継承可能であるため、pool/home に /export/stuff のマウントポイントがある場合、pool/home/user は自動的に /export/stuff/user のマウントポイントを継承します。
zfs mount コマンドに –o mountpoint=value オプションを指定することによって、ファイルシステムの永続的なマウントポイント以外の場所にファイルシステムを一時的にマウントできます。これは、レガシーマウントポイントを持つファイルシステムでのみ許可されます。
ファイルシステムの mountpoint プロパティーが none の場合、ファイルシステムはマウントされません。
ZFS ファイルシステムは、必要に応じて、従来のツール (mount、umount、/etc/vfstab) でも管理できます。ファイルシステムのマウントポイントが legacy に設定されている場合、ZFS はそのファイルシステムを管理しようとせず、ファイルシステムのマウントとアンマウントは管理者が担当します。
追加したファイルシステムの物理プロパティーの制御は、大域管理者が行います。ただし、ゾーン管理者は、追加したファイルシステム内部のファイルを、ファイルシステムのマウント方法に対応した方法で作成、変更、または破棄できます。
また、zonecfg add dataset サブコマンドを使用すると、データセットを非大域ゾーンに委任することもできます。データセットをあるゾーンに委任し、同じデータセットの子を別のゾーンに委任することはできません。ゾーン管理者は、データセットおよびそのすべての子のプロパティーを変更できます。ただし、quota プロパティーの制御は、大域管理者が行います。
ZFS ボリュームをデバイスとして非大域ゾーンに追加するには、zonecfg add device サブコマンドを使用します。ただし、その物理プロパティーを変更できるのは大域管理者だけです。
zonecfg 構文の詳細は、zonecfg(8) のマニュアルページを参照してください。
データセットが非大域ゾーンに委任されると、zoned プロパティーが自動的に設定されます。ゾーン設定したファイルシステムは、一時的な mountpoint プロパティー (「一時的なマウントポイントプロパティー」を参照) を使用することによってのみ、大域ゾーンでマウントできます。
大域管理者は zoned プロパティーを強制的にクリアできます。ただし、この操作は特に慎重に行うようにしてください。大域管理者は、このプロパティーをクリアする前に、すべてのマウントポイントが受け入れられるものであることを確認してください。
複製解除とは、冗長なデータをブロックレベルで削除することにより、格納されているデータの合計容量を減らすプロセスです。複製解除はプール全体に及びますが、データセットごとにそれぞれの dedup プロパティーを使用すると、適用するかしないかを選択できます。ファイルシステムで dedup プロパティーが有効になっている場合、重複しているデータブロックは書き込み時に一斉に削除されます。この結果、ただ 1 つの一意のデータが格納され、共通するコンポーネントが、プール内の dedup が有効になっているすべてのデータセットのファイル間で共有されます。
ZFS 暗号化および ZFS 暗号化構文の完全な説明については、zfs_encrypt(8) を参照してください。
プロパティーは、ネイティブプロパティーとユーザー定義 (ユーザー) プロパティーの 2 種類に分けられます。ネイティブプロパティーは、内部統計情報を提供するか、ZFS の動作を制御します。また、ネイティブプロパティーは編集可能であるか、読み取り専用です。ユーザープロパティーは ZFS の動作には影響を及ぼしませんが、ユーザーの環境で意味のある方法でデータセットに注釈を付けるのに利用できます。ユーザープロパティーの詳細は、後述の「ユーザープロパティー」のセクションを参照してください。
すべてのデータセットは、データセットに関する統計情報を提供したり、さまざまな動作を制御したりするプロパティーセットを持っています。プロパティーは、子により上書きされないかぎり、親から継承されます。一部のプロパティーは、特定のタイプのデータセット (ファイルシステム、ボリューム、またはスナップショット) にのみ適用されます。
数値プロパティーの値は、人間が読める形式の接尾辞 (たとえば、k、KB、M、Gb などから、Z バイトを示す Z まで) を使用して指定できます。次の指定はすべて有効 (および等価) です。
1536M, 1.5g, 1.50GB
数値以外のプロパティーの値は、大文字と小文字が区別されるため、mountpoint プロパティーを除いて小文字にする必要があります。
次のネイティブプロパティーは、データセットに関する統計データを表示するものです。これらのプロパティーは、設定することも継承することもできません。ネイティブプロパティーは、特に注記がないかぎり、すべてのデータセットタイプに適用されます。
データセットおよびその子すべてが使用可能な容量。プール内にその他のアクティビティーが存在しないものとして計算されます。容量はプール内で共有されるため、プールの物理サイズ、割り当て、予約、プール内のほかのデータセットなどのさまざまな要因によって、利用できる容量が制限されることがあります。
このプロパティーは、列の短縮名 avail で参照することもできます。
このデータセットに対して達成された圧縮比。乗数で表記されます。zfs set compression=on dataset を実行すると、圧縮を有効にできます。デフォルト値は off です。
このデータセットが作成された時間。
このプロパティーは、スナップショットが zfs destroy –d コマンドを使用して遅延破棄としてマークされている場合は on です。それ以外の場合、このプロパティーはオフです。
詳細は、zfs_encrypt(8) を参照してください。
詳細は、zfs_encrypt(8) を参照してください。
ファイルシステムの場合は、ファイルシステムが現在マウントされているかどうかを示します。このプロパティーは、yes または no になります。
ファイルシステムまたはボリュームのクローンを作成した場合は、クローンの作成元のスナップショット。この作成元は、クローンが存在するかぎり (–r または –f オプションを使用しても) 破棄できません。
このデータセットでアクセス可能なデータ量。これは、プール内のほかのデータセットと共有される場合も、共有されない場合もあります。スナップショットまたはクローンを作成したときには、それらの作成元のファイルシステムまたはスナップショットと同じ領域を最初は参照しています。内容が同じであるためです。
このプロパティーは、列の短縮名 refer で参照することもできます。
詳細は、zfs_encrypt(8) を参照してください。
データセットのタイプ。filesystem、volume、snapshot のいずれかです。
このデータセットおよびそのすべての子孫が消費する容量を調べます。この値は、このデータセットの割り当ておよび予約に基づいて計算されます。使用されている容量にはこのデータセットの予約は含まれませんが、refreservation (usedbyrefreservation を使用) や、いずれかの子孫データセットの予約 (usedbychildren を使用) が考慮されます。データセットがその親から継承して使用する容量、およびこのデータセットが再帰的に破棄されるときに解放される容量は、使用済み領域と予約のどちらか大きい方になります。
スナップショット (「スナップショット」のセクションを参照) を作成したときは、それらの領域は最初はスナップショットとファイルシステムの間で共有されます。それまでに作成したスナップショットと領域が共有されることもあります。ファイルシステムが変化していくにつれて、それまで共有されていた領域がスナップショット固有になり、スナップショットが使用する領域に計上されます。また、スナップショットを削除すると、ほかのスナップショットに固有の (および使用される) 容量を増やすことができます。
使用している容量、使用できる容量、または参照する容量では、保留状態の変更は考慮されません。保留状態の変更は通常、数秒以内に計上されます。fsync(3C) や O_SYNC を使用してディスクへの変更をコミットしても、領域の使用状況の情報がすぐに更新されることが保証されているわけではありません。
usedby* プロパティーは、used プロパティーを、その容量が使用されているさまざまな理由に分解します。具体的には、used = usedbychildren + usedbydataset + usedbyrefreservation + usedbysnapshots になります。これらのプロパティーは、version 13 以上のプールで作成されたデータセットでのみ使用可能です。
このデータセットの子によって使用される容量。この容量は、データセットのすべての子が破棄された場合に解放されます。
このデータセット自体によって使用される容量。これは、データセットが破棄された場合 (まず refreservation をすべて削除し、次に必要なスナップショットまたは子孫をすべて破棄したあと) に解放されます。
このデータセットの refreservation セットによって使用される容量。この容量は、refreservation が削除された場合に解放されます。
このプロパティーで計上される容量は、将来の書き込みによって見込まれる消費量を表しており、このデータセット内での書き込み割り当ての失敗を防止するためにあらかじめ予約されています。これには、未書き込みデータ、現在スナップショットと共有されている容量、および (圧縮率の低いデータと置き換えると失われる可能性がある) ボリュームの圧縮保存が含まれます。将来の書き込みのための割り当てによって usedbydataset または usedbysnapshots が増えると、それに応じて usedbyrefreservation が減ります。
このデータセットのスナップショットによって消費される容量。具体的には、これはデータセットのスナップショットがすべて破棄された場合に解放される容量です。ただし、これは、スナップショットの used プロパティーの単なる合計ではありません。なぜならば、領域は、複数のスナップショットによって共有されることがあるからです。
指定されたユーザーによって消費される、このデータセットの容量。容量は、ls –l で表示される各ファイルの所有者にチャージされます。チャージされた容量は、du および ls の –s で表示されます。詳細は、zfs userspace サブコマンドを参照してください。
非特権ユーザーは、自身の領域使用状況のみを確認できます。root ユーザー、または zfs allow で userused 特権が付与されているユーザーは、すべてのユーザーの使用状況にアクセスできます。
userused@... プロパティーは、zfs get all では表示されません。@ 記号のあとに、次のいずれかの形式でユーザーの名前を付加する必要があります。
POSIX 名 (例: joe)
POSIX 数値 ID (例: 789)
SID 名 (例: joe.smith@mydomain)
SID 数値 ID (例: S-1-123-456-789)
このプロパティーは、このスナップショットでユーザーを保持する数に設定されます。ユーザーの保持は、zfs hold コマンドを使用して設定されます。
指定されたグループによって消費される、このデータセットの容量。容量は、ls –l で表示される各ファイルのグループにチャージされます。詳細は、userused@user プロパティーを参照してください。
非特権ユーザーは、自身のグループの領域使用状況のみを確認できます。root ユーザー、または zfs allow で groupuse 特権を付与されているユーザーは、あらゆるグループの使用状況にアクセスできます。
ボリュームの場合に、ボリュームのブロックサイズを指定します。blocksize は、ボリュームが書き込まれたあとは変更できないため、ボリュームの作成時に設定してください。ボリュームのデフォルトの blocksize は 8K バイトです。512 バイト - 1M バイトの範囲で、任意の 2 の累乗を指定できます。
このプロパティーは、列の短縮名 volblock で参照することもできます。
これらのプロパティーは、データセットの実効制限のビューを示します。表示される値は、データセットを管理している最大スループットを示します。報告される実効制限は、ルートと示されたデータセットの間にある任意の点でのもっとも低いデータ制限です。制限の動作の詳細については、readlimit および writelimit を参照してください。
次のネイティブプロパティーを使用すると、ZFS データセットの動作を変更できます。
chmod(2) の実行に中 ACL が変更される方法を制御します。aclmode プロパティーが discard (デフォルト) であるファイルシステムでは、ファイルのモードを表していない ACL エントリがすべて削除されます。「aclmode」プロパティーが「mask」の場合、ユーザーまたはグループアクセス権を削減します。アクセス権は、グループアクセス権ビットと同程度にまで削減されます。ただし、アクセス権がファイルまたはディレクトリの所有者と同じ UID を持つユーザーエントリである場合を除きます。この場合、ACL アクセス権は、所有者のアクセス権ビットを超えることがないように削減されます。また、mask は、次のモード変更までの間に (chmod(1) を使用して) ACL を明示的に設定することなく、モード変更の前後で ACL を保持します。aclmode プロパティーが passthrough であるファイルシステムは、ファイルまたはディレクトリの新しいモードを表す必要な ACL エントリを生成する以外、ACL が変更されないことを示します。
データセットに保証される最小容量。子孫で使用される容量は含まれません。ファイルシステムの場合、デフォルトの refreservation は none です。
ZFS ボリュームの場合、refreservation は、ZFS メタデータのオーバーヘッドを考慮に入れるため、実際のボリュームサイズよりもいくらか大きいサイズに自動的に設定されます。dense 値を使用して、現在のボリュームサイズのデータとメタデータの両方に十分な領域を予約できます。たとえば、ほかのファイルシステムにより多くの領域が必要な場合は、ボリュームの refreservation 値を一時的に減らして、これを疎ボリュームに変換できます。その後、ボリュームの refreservation 値を、dense 値を指定して作成したときの元の値に戻すことができます。
usedbydataset の容量がこの値を下回っているデータセットは、refreservation で指定された容量を使用していると見なされます。usedbyrefreservation の数値は、この追加の容量を表します。この値はデータセットにチャージされる合計使用容量に加算され、さらに親データセットの使用状況、割り当て、および予約のために消費されます。これにより、将来の書き込み用の容量があらかじめ予約されるようにして、プールリソースの過剰な割り当てからデータセットを保護します。
スナップショットと共有される容量は、あとで新しいデータに置き換えることが可能で、そのスナップショットは、両方のコピーが確実に保持されることを表します。refreservation が設定されている場合、新しいスナップショットを取得するときに usedbyrefreservation を refreservation と同じサイズにまで増やして、コピーが確実に保持されるようにする必要があります。この増加に使用できる十分な容量がデータセットにない場合、スナップショットの作成は拒否されます。
このプロパティーは、列の短縮名 refreserv で参照することもできます。
ファイルとディレクトリが作成されるときに ACL エントリをどのように継承するかを制御します。aclinherit プロパティーが discard であるファイルシステムは、どの ACL エントリも継承しません。aclinherit プロパティーが noallow であるファイルシステムは、「deny」アクセス権を指定する、継承可能な ACL エントリのみを継承します。プロパティー値 restricted (デフォルト) は、ACL エントリが継承されたときに write_acl および write_owner アクセス権を削除します。aclinherit プロパティー値が passthrough であるファイルシステムは、ACL エントリが継承されたときにそれらのエントリを変更することなく、継承可能なすべての ACL エントリを継承します。aclinherit プロパティー値が passthrough-x であるファイルシステムは、passthrough と同じ意味ですが、ファイル作成モードでも実行ビットが必要とされる場合のみすべての ACE が実行権を継承する点が異なります。aclinherit プロパティー値が passthrough-mode-preserve であるファイルシステムは、passthrough と同じ意味ですが、ファイルおよびディレクトリの作成時にアプリケーションによって要求されたモードの値で owner@、group@、および everyone@ ACE がオーバーライドされる点が異なります。
プロパティー値が passthrough に設定されている場合は、継承可能な ACE によって決定されるモードでファイルが作成されます。モードに影響を与える継承可能な ACE が存在しない場合は、アプリケーションから要求されたモードに従ってモードが設定されます。
ファイルを読み取るときにファイルのアクセス時間を更新するかどうかを制御します。このプロパティーをオフに設定すると、ファイルを読み取るときに書き込みトラフィックが生成されなくなるため、パフォーマンスが大幅に向上する可能性があります。ただし、メールプログラムなどのユーティリティーが予期しない動作をすることがあります。デフォルト値は on です。
このプロパティーが off に設定されている場合、ファイルシステムはマウントできず、zfs mount -a を実行しても無視されます。このプロパティーを off に設定することは、mountpoint プロパティーを none に設定することに似ていますが、継承可能な通常の mountpoint プロパティーをデータセットが引き続き保持する点が異なります。このプロパティーを off に設定することによって、データセットをプロパティー継承のメカニズムとしてのみ使用できるようになります。canmount=off を設定する 1 つの例として、2 つのデータセットに同じ mountpoint を割り当てることができます。これにより、両方のデータセットの子が同じディレクトリ内に表示されますが、継承される特性は異なる可能性があります。
noauto オプションを設定すると、データセットのマウントおよびアンマウントは明示的に実行することが必要になります。データセットの作成時やインポート時に、データセットが自動的にマウントされることはありません。また、zfs mount -a コマンドでマウントされることや、zfs unmount -a コマンドでアンマウントされることもありません。
このプロパティーは継承されません。
データの完全性を検証するために使用するチェックサムを制御します。デフォルト値 on では、適切なアルゴリズムが自動的に選択されます。現在、アルゴリズムは fletcher4 ですが、将来のリリースで変更される可能性があります。値が off の場合、ユーザーデータの整合性チェックが無効になります。チェックサムの無効化は、推奨されていない操作です。
このプロパティーを変更した場合、影響を受けるのは新しく書き込まれるデータのみです。
sha256+mac の値は、暗号化が有効な場合にのみ使用できます。暗号化が有効な場合、チェックサムプロパティーは readonly になり、常に sha256+mac に設定されます。
このデータセットで使用される圧縮アルゴリズムを制御します。lzjb 圧縮アルゴリズムは、優れたデータ圧縮と同時に最適なパフォーマンスを提供します。圧縮を on に設定すると、lzjb 圧縮アルゴリズムが使用されます。gzip 圧縮アルゴリズムは、gzip (1) コマンドと同じ圧縮を使用します。gzip のレベルは、値 gzip-N を使用して指定できます。ここで、N は 1 (最速) から 9 (最大圧縮率) までの整数です。現在、gzip は (gzip (1) のデフォルトでもある) gzip-6 と同等です。lz4 を使用すると、CPU オーバーヘッドが減少し、lzjb よりも圧縮率が向上します。
このプロパティーは、列の短縮名 compress で参照することもできます。このプロパティーを変更した場合、影響を受けるのは新しく書き込まれるデータのみです。
このデータセットに関して保存されるデータのコピー数を制御します。これらのコピーは、ミラー化や RAID-Z など、プールによってもたらされる冗長性を補うものです。可能な場合、コピーは異なるディスクに保存されます。複数のコピーによって使用される容量は、関連するファイルとデータセットにチャージされます。したがって、used プロパティーが変更され、割り当てと予約が減らされます。
このプロパティーを変更した場合、影響を受けるのは新しく書き込まれるデータのみです。そのため、このプロパティーは -o copies=N オプションを使用して、ファイルシステムの作成時に設定します。
データセットで暗号化が有効な場合、コピーは最大値の 2 に設定されます。
データセットが自動プロビジョニングされた ZFS ボリュームの場合、コピーの変更には refreservation への変更も含まれます。詳細は、「refreservation」を参照してください。
データセットに対して複製解除を適用するかどうかを制御します。デフォルト値は off です。複製解除に使用されるデフォルトのチェックサムは sha256 です (変更される可能性があります)。dedup が有効な場合、dedup チェックサムアルゴリズムによって checksum プロパティーがオーバーライドされます。値を verify に設定することは、sha256,verify を指定することと同等です。
プロパティーが verify に設定されている場合、ZFS は、2 つのブロックに同じ署名があるときはいつでも既存のブロックとバイト単位の比較を行なって、内容が同一であることを確認します。
このファイルシステムでデバイスノードを開くことができるかどうかを制御します。デフォルト値は on です。
このファイルシステム内部からプロセスを実行可能かどうかを制御します。デフォルト値は on です。
このデータセットに対する同期要求を ZFS で最適化する方法を制御します。logbias が latency に設定されている場合、ZFS はプールに別個のログデバイスが存在すればそれを使用して、短い待ち時間で要求を処理します。logbias が throughput に設定されている場合、ZFS はプールの別個のログデバイスを使用しません。その代わりに、ZFS は大域プールのスループットとリソースの使用効率を優先して同時操作を最適化します。デフォルト値は latency です。
マルチレベルファイルシステムでの mlslabel プロパティーの動作については、multilevel プロパティーを参照してください。次の mlslabel の説明は非マルチレベルファイルシステムに適用されます:
mlslabel プロパティーは、Trusted Extensions が有効なシステムでデータセットをゾーンにマウントできるかどうかを指定する機密ラベルです。ラベル付きのデータセットがラベル付きのゾーンに一致する場合、データセットは、そのラベル付きのゾーンからマウントしてアクセスできます。
mlslabel プロパティーが設定されていない場合、デフォルト値は none です。mlslabel プロパティーを none に設定することは、このプロパティーを削除することと同等です。
Trusted Extensions が有効になっていて、適切な特権がある場合にのみ、mlslabel プロパティーを変更できます。このプロパティーを変更する権利は委任できません。ラベルを上位のラベルに変更したり、初期データセットラベルを設定したりするときには、{PRIV_FILE_UPGRADE_SL} 特権が必要です。ラベルを下位のラベルまたはデフォルト (none) に変更する場合は、{PRIV_FILE_DOWNGRADE_SL} 特権が必要です。デフォルト以外のラベルへのデータセットの変更は、データセットがマウントされていない場合にのみ実行できます。デフォルトラベルを持つデータセットがラベル付きのゾーンにマウントされると、そのマウント操作によって、mlslabel プロパティーがそのゾーンのラベルに自動的に設定されます。
Trusted Extensions が有効になっていない場合、デフォルトラベル (none) のデータセットだけをマウントできます。
このファイルシステムで使用されるマウントポイントを制御します。このプロパティーの使用方法の詳細は、「マウントポイント」のセクションを参照してください。
ファイルシステムの mountpoint プロパティーを変更すると、そのマウントポイントを継承するファイルシステムおよびそのすべての子がアンマウントされます。新しい値が legacy の場合は、マウントが解除されたままになります。それ以外のときは、プロパティーの古い値が legacy または none だった場合、またはプロパティーが変更される前にマウントされていた場合は、自動的に再マウントされます。また、共有されていたすべてのファイルシステムは、共有が解除されてから新しい場所で共有されます。
詳細は、zfs_share(8) を参照してください。
プライマリキャッシュ (ARC) にキャッシュされる内容を制御します。このプロパティーを all に設定すると、ユーザーデータとメタデータの両方がキャッシュされます。このプロパティーを none に設定すると、ユーザーデータもメタデータもキャッシュされません。このプロパティーが metadata に設定されている場合は、メタデータのみがキャッシュされます。デフォルト値は all。
データセットおよびその子孫が消費できる容量を制限します。これには、子孫の消費する容量すべて (ファイルシステムとスナップショットを含む) が含まれます。割り当て制限が適用されるのが数秒遅れることがあります。この遅延は、システムがユーザーの割り当て制限の超過を認識する前に、ユーザーが自分の割り当て制限を超えた可能性があることを示します。この場合、システムはその時点で追加の書き込みを拒否し始めます。割り当て制限がすでに設定されているデータセットの子孫に割り当て制限を設定した場合は、祖先の割り当て制限はオーバーライドされずに、制限が追加されます。ボリュームには割り当て制限を設定できません。volsize プロパティーが暗黙的な割り当て制限として機能します。
データセットの読み取りまたは書き込みの速度 (バイト/秒) を制限します。データセットに課せられた制限は、そのデータセットおよびそのすべての子孫に適用されます。値「none」を指定すると、親によって設定されたデフォルトがオーバーライドされます。値「default」を指定すると、データセットは親によって設定されたデフォルトに戻ります。これらの値は保証されている帯域幅ではありません。実際の帯域幅は、階層内のほかのデータセットでの使用量や設定されている制限など、ほかの要因によって制限されることがあります。これらの制限が適用されるまでに数秒かかることがあります。
データセットに対する読み取りまたは書き込みのデフォルトの制限 (バイト/秒) を設定します。データセットに課せられたデフォルトの制限はデータセットの子孫にのみ適用されます。この値は子孫に継承され、子孫に readlimit または writelimit を設定することによってオーバーライドできます。これらの値は保証されている帯域幅ではありません。実際の帯域幅は、階層内のほかのデータセットでの使用量や設定されている制限など、ほかの要因によって制限されることがあります。これらの制限が適用されるまでに数秒かかることがあります。
ファイルシステムトランザクションを同期する程度を指定します。このプロパティーは、データセットの作成時に設定することも動的に設定することもでき、ただちに有効になります。このプロパティーは、次の設定のうちの 1 つを持つことができます。
デフォルトのオプション。同期するファイルシステムトランザクションがインテントログに書き込まれてから、書き込まれたすべてのデバイスがフラッシュされ、データが安定した状態になるように (つまり、デバイスコントローラによってキャッシュされないように) します。
各ファイルシステムトランザクションが書き込まれ、安定した記憶領域にフラッシュされます。この値はパフォーマンスに非常に不利な状況をもたらしますが、同期するフィルシステムトランザクションのトラブルシューティングには適切な場合があります。
同期要求は無効になります。ファイルシステムトランザクションは、次の DMU トランザクショングループの確定時にのみ安定した記憶領域に確定されるため、処理が行われるまで数秒かかる場合があります。この設定はパフォーマンスにとって最適です。ただし、データベースや NFS などのアプリケーションの同期トランザクション要求を ZFS が無視するため、これは非常に危険な設定です。さらに、現在アクティブなルートまたは /var ファイルシステムに対してこの設定を有効にした場合、仕様外の動作、アプリケーションデータの損失、およびリプレイ攻撃に対する脆弱性の増大が生じる可能性があります。管理者は、これらのリスクを理解した上でこのオプションを使用するようにしてください。
デフォルトのユーザー割り当て制限を設定します。デフォルト値は none です。この値は、明示的なユーザー割り当て制限が指定されていないすべてのユーザーに適用されます。
デフォルトのグループ割り当て制限を設定します。デフォルト値は none です。この値は、明示的なユーザー割り当て制限が指定されていないすべてのグループに適用されます。
指定されたユーザーによって消費される容量を制限します。userquota の容量計算では、refquota プロパティーと同様に、スナップショットやクローンなど、子孫データセットによって使用される容量は含まれません。ユーザーの容量消費は、userspace@user プロパティーで識別されます。
ユーザーの割り当て制限が適用されるまでに数秒かかることがあります。この遅延のために、ユーザーが自分の割り当て量を超えてから、システムがそのユーザーの割り当て超過を認識することがあります。この場合、システムは追加の書き込みを拒否するようになり、EDQUOT エラーメッセージを表示します。詳細は、zfs userspace サブコマンドを参照してください。
非特権ユーザーは、自身のグループの領域使用状況のみを確認できます。root ユーザー、または zfs allow で userquota 特権を付与されているユーザーは、あらゆるユーザーの割り当てを取得および設定できます。
このプロパティーは、ボリューム、バージョン 4 よりも古いファイルシステム、またはバージョン 15 よりも古いプールでは使用できません。userquota@... プロパティーは zfs get all では表示されません。@ 記号のあとに、次のいずれかの形式でユーザーの名前を付加する必要があります。
POSIX 名 (例: joe)
POSIX 数値 ID (例: 789)
SID 名 (例: joe.smith@mydomain)
SID 数値 ID (例: S-1-123-456-789)
default の値は、割り当て制限を defaultuserquota プロパティーで定義されたデフォルト値にリセットします。
指定されたグループによって消費される容量を制限します。グループの容量消費は、userquota@user プロパティーで識別されます。
非特権ユーザーは、自身のグループの領域使用状況のみを確認できます。root ユーザー、または zfs allow で groupquota 特権を付与されているユーザーは、あらゆるグループの割り当てを取得および設定できます。
default の値は、グループ割り当て制限を defaultgroupquota プロパティーで定義されたデフォルト値にリセットします。
このデータを変更できるかどうかを制御します。デフォルト値は off です。
このプロパティーは、列の短縮名 rdonly を使用して参照することもできます。
ファイルシステムに格納するファイルの推奨ブロックサイズを指定します。このプロパティーは、レコードサイズが固定されているファイルにアクセスするデータベースワークロードだけで使用するように設計されています。ZFS では、標準的なアクセスパターンに最適化された内部アルゴリズムに従って、ブロックサイズが自動的に調整されます。
作成されるファイルのサイズが非常に大きく、それらのファイルにさまざまなパターンの小さなブロック単位でアクセスするデータベースの場合には、このようなアルゴリズムが最適でないことがあります。データベースのレコードサイズ以上の recordsize を指定すると、パフォーマンスが大幅に向上することがあります。このプロパティーを汎用目的のファイルシステムに使用することは、パフォーマンスが低下する可能性があるため、できるだけ避けてください。
デフォルトの recordsize は 128K バイトです。指定するサイズは、512 バイト - 1M バイトの 2 の累乗にしてください。
ファイルシステムの recordsize の変更は、その後に作成したファイルにのみ適用され、既存のファイルと受信データには影響しません。
このプロパティーは、列の短縮名 recsize で参照することもできます。
1 つのデータセットが消費できる容量を制限します。この制限には、ファイルシステムやスナップショットなどの子孫で使用される容量は含まれません。refquota が適用されるのが数秒遅れることがあります。この遅延は、システムがユーザーの割り当て制限の超過を認識する前に、ユーザーが自分の割り当て制限を超えた可能性があることを示します。この場合、システムはその時点で追加の書き込みを拒否し始めます。
データセットに保証される最小容量。子孫で使用される容量は含まれません。
デフォルトの refreservation は、ZFS ボリュームの場合は auto であり、その他のタイプのデータセットの場合は none です。refreservation=auto の場合は、指定されたボリュームサイズ (volsize) および関連するメタデータを格納するために、ボリューム用に十分な領域が予約されます。この有効な reservation は、volsize および copies の両方のプロパティーに依存します。refreservation を数値に設定する (たとえば、zfs set refreservation=10g) ことによって、ボリュームを手動でプロビジョニングすることもできます。メタデータのため、ボリュームデータに対して保証される実際の容量は、要求された数値 refreservation より若干少なくなります。疎ボリューム (たとえば、ボリューム作成時に –s が指定されている場合) は、refreservation が none であるときと同等です。refreservation=auto は ZFS ボリュームにのみ適用されることに注意してください。
ボリューム用に予約されていても、現在そのボリュームによって使用されていない領域は、usedbyrefreservation で計上されます。そのため、zfs ボリュームの有効な合計 refreservation は、常に usedbydataset と usedbyrefreservation の合計です。この合計は、親データセットの使用量、割り当て、および予約から継承して使用されます。これにより、将来の書き込み用の容量があらかじめ予約されるようにして、プールリソースの過剰な割り当てから各データセットを保護します。
スナップショットと共有される容量は、あとで新しいデータに置き換えることが可能で、そのスナップショットは、両方のコピーが確実に保持されることを表します。refreservation が設定されている場合、新しいスナップショットを取得するときに usedbyrefreservation を refreservation と同じサイズにまで増やして、コピーが確実に保持されるようにする必要があります。この増加に使用できる十分な容量がデータセットにない場合、スナップショットの作成は拒否されます。
このプロパティーは、列の短縮名 refreserv で参照することもできます。
データセットおよびその子孫に保証される最小容量。使用している容量がこの値を下回っているデータセットは、予約に指定された容量を使用していると見なされます。予約は、親データセットが使用する容量に計上されるので、親データセットの割り当てと予約を減らすことになります。
このプロパティーは、列の短縮名 reserv で参照することもできます。
ユーザーが chown(1) または chown(2) システムコールでファイルの所有権を与えることをファイルシステムで制限するかどうかを指定します。デフォルトでは chown を制限します。rstchown が off である場合、chown は、ユーザーが PRIV_FILE_CHOWN_SELF 特権を持っているかのように機能します。
セカンダリキャッシュ (L2ARC) にキャッシュされる内容を制御します。このプロパティーを all に設定すると、ユーザーデータとメタデータの両方がキャッシュされます。このプロパティーを none に設定すると、ユーザーデータもメタデータもキャッシュされません。このプロパティーが metadata に設定されている場合は、メタデータのみがキャッシュされます。デフォルト値は all。
設定された UID ビットが、このシステムで順守されるかどうかを制御します。デフォルト値は on です。
ZFS ファイルシステムを URI で記述されたファイルシステムの shadow として識別します。データは、URI によって識別されるファイルシステムから、このプロパティーが設定されたシャドウファイルシステムに移行します。移行するファイルシステムは、完全に移行するために読み取り専用にする必要があります。
まだ移行されていないシャドウファイルシステム内のディレクトリへのアクセスは、ディレクトリ全体が移行されるまでブロックされます。まだ移行されていないシャドウファイルシステム内のファイルにアクセスすると、アクセスしたファイルの一部のみが移行されます。複数のプロセスによって、ファイルの異なる部分を同時に移行できます。
2 つの形式の URI を使用できます。1 つは同じ物理システム上でローカルファイルシステムから別のファイルシステムへの移行用で、もう 1 つは NFS サーバーからのリモートでのファイルシステムの移行用です。形式は次のとおりです。
file:///path nfs://host/path
移行が完了したとき shadowd(8) がまだ実行中の場合、ファイルシステムは自動的に再マウントされ、シャドウプロパティーは none に設定されます。または、移行が完了したときに、シャドウプロパティーを手動で none に設定できます。
詳細は、zfs_share(8) を参照してください。
詳細は、zfs_share(8) を参照してください。
ファイルシステムのルートで、.zfs ディレクトリを非表示にするか、表示するかを制御します。詳細は、「スナップショット」のセクションを参照してください。デフォルト値は hidden です。
このファイルシステムのディスク上バージョン。プールのバージョンとは無関係です。このプロパティーに設定できるのは、より新しい、サポートされているバージョンのみです。zfs upgrade コマンドを参照してください。
ボリュームの論理サイズを指定します。デフォルトでは、ボリュームを作成するときに確立される refreservation は、ZFS メタデータのオーバーヘッドを考慮に入れるため、実際の論理ボリュームサイズよりもいくらか大きくなります。volsize への変更があった場合には、refreservation にも同様の変更が反映されます。volsize に設定可能な値は、volblocksize の倍数だけです。この値をゼロにすることはできません。
refreservation は、利用者の予期しない動作を避けるためにボリュームに設定されます。予約を使用しない場合、ボリュームの使用方法によっては、ボリュームの容量が不足して未定義の動作またはデータ破壊が発生する可能性があります。このような影響は、ボリュームの使用中にボリュームサイズを変更した場合にも発生することがあります。特に、サイズを縮小した場合にはその可能性が高くなります。 ボリュームサイズを調整するときは、特に注意するようにしてください。ボリュームが自動プロビジョニングされた場合、そのサイズの変更により refreservation に対する変更も行われます。詳細は、「refreservation」のセクションを参照してください。
推奨されませんが、zfs create -V コマンドに –s オプションを指定することによって、疎ボリューム (シンプロビジョニングとも言う) を作成できます。疎ボリュームとは、予約がボリュームサイズよりも小さいボリュームのことです。このため、領域上のプールが小さい場合、疎ボリュームへの書き込みが ENOSPC で失敗する可能性があります。疎ボリュームの場合、volsize を変更しても予約には反映されません。
詳細は、zfs_share(8) のマニュアルページを参照してください。
このファイルシステムで拡張属性が有効かどうかを制御します。デフォルト値は on です。
データセットを非大域ゾーンから管理するかどうかを制御します。詳細は、「ゾーン」のセクションを参照してください。デフォルト値は off です。
次のプロパティーは、ファイルシステムの作成後には変更できないため、ファイルシステムの作成時に設定するようにしてください。zfs create または zpool create コマンドで設定されていない場合、これらのプロパティーは親データセットから継承されます。これらの機能がサポートされる前に親データセットが作成されたため、親データセットにこれらのプロパティーが存在しない場合、新しいファイルシステムではこれらのプロパティーにデフォルト値が設定されます。
詳細は、zfs_share(8) を参照してください。
詳細は、zfs_share(8) を参照してください。
詳細は、zfs_share(8) を参照してください。
詳細は、zfs_encrypt(8) を参照してください。
デフォルト値は off です。これは、on に設定したあとではオフにできません。
マルチレベルファイルシステム内のオブジェクトは、自動的に生成される明示的な機密ラベル属性で個別にラベル付けされています。setlabel(1) または setflabel(3TSOL) インタフェースを使用すると、このラベル属性の変更によってオブジェクトに再度適切なラベル付けを行うことができます。
パッケージ化された Solaris コードを含むゾーンデータセット、システムルートデータセット、およびその他のデータセットはマルチレベルにしないようにしてください。
マルチレベルファイルシステムの上限は、mlslabel プロパティーに維持されます。通常、mlslabel はシステムによって自動的に管理されます。これは、マルチレベルファイルシステムがオンに設定されている場合は ADMIN_LOW に設定され、ファイルとディレクトリのアップグレード時に最大の機密ラベルを表すために増加されます。マルチレベルファイルシステムの作成後は、mlslabel を下位のラベルに変更したり、削除したり、none に設定したりすることはできません。
Trusted Extensions が有効になっている場合、mlslabel 値は、ファイルシステム内のオブジェクトが持つことができる使用可能な最上位のラベルと定義します。mlslabel よりも上位のラベルでファイルを作成 (またはそのレベルにファイルを再度ラベル付け) しようとしても許可されません。ファイルシステムの作成中に mlslabel プロパティーを明示的に設定できます。それ以外の場合は、ADMIN_HIGH のデフォルトの mlslabel プロパティーが自動的に作成されます。mlslabel に基づいたマウントポリシーはマルチレベルファイルシステムには適用されません。
次のプロパティーは、作成時に指定する必要があり、特殊コマンドを使用すると変更できます。
詳細は、zfs_encrypt(8) を参照してください。
ファイルシステムがマウントされたときに、従来の mount(8) コマンドまたは zfs mount コマンドのどちらかを使用して、そのプロパティーに応じたマウントオプションが設定されます。プロパティーとマウントオプションは、次のような関係になっています。
PROPERTY MOUNT OPTION devices devices/nodevices mountpoint mountpoint exec exec/noexec readonly ro/rw setuid setuid/nosetuid xattr xattr/noxattr rstchown rstchown/norstchown
さらに、–o オプションを使って、ディスクに格納されたプロパティーに影響を及ぼすことなく、これらのオプションをマウントごとに設定できます。コマンド行に指定した値により、データセットに格納された値がオーバーライドされます。–nosuid オプションは、nodevices,nosetuid の別名です。これらのプロパティーは、zfs get コマンドにより、temporary とレポートされます。データセットがマウントされている間にプロパティーが変更された場合、新しい設定によって、すべての一時的な設定がオーバーライドされます。変更するプロパティーがマウントポイントである場合、データセットがすぐに一時マウントポイントからアンマウントされ、新しい永続的マウントポイントに再マウントされます。
ZFS は、標準のネイティブプロパティーに加えて、任意のユーザープロパティーもサポートします。ユーザープロパティーは ZFS の動作には影響を与えませんが、アプリケーションや管理者が使用して、データセット (ファイルシステム、ボリューム、およびスナップショット) に注釈を付けることができます。
ユーザープロパティー名には、ネイティブプロパティーと区別するためにコロン (:) 文字を含める必要があります。ユーザープロパティーに含めることができるのは、小文字の英字、数字、および句読文字のコロン (:)、ダッシュ (-)、ピリオド (.)、および下線 (_) です。想定されている規則では、プロパティー名は module:property などの 2 つの部分に分けられますが、この名前空間は ZFS によって強制されているものではありません。ユーザープロパティー名には、最大 256 文字を使用できます。名前の先頭をダッシュ (-) で始めることはできません。
ユーザープロパティーをプログラムで使用する場合、プロパティー名の module コンポーネントには、逆順にした DNS ドメイン名を使用することを強くお勧めします。これは、それぞれ単独で開発された 2 つのパッケージが、異なる目的で同じプロパティー名を使用する可能性を減らすためです。Oracle Solaris リリースでは、com.oracle ユーザープロパティーが beadm コマンドおよびライブラリ用に予約されています。Oracle Solaris のブートでは com.oracle:rootfs が監視されます。これは、ブート可能なデータセットに関連付けられたルートファイルシステムのデータセットを定義します。
ユーザープロパティーの値は任意の文字列であり、常に継承されます。また、決して検証されることがありません。プロパティーを処理するコマンド (zfs list、zfs get、zfs set など) はすべて、ネイティブプロパティーとユーザープロパティーの両方の操作に使用できます。ユーザープロパティーをクリアするには、zfs inherit コマンドを使用します。プロパティーがどの親のデータセットにも定義されていない場合は、完全に削除されます。プロパティー値は、1024 文字以内に制限されています。
初期インストール中に、ZFS ルートプールの ZFS ボリューム上にスワップデバイスおよびダンプデバイスが作成されます。スワップ領域とダンプデバイスには別個の ZFS ボリュームを使用する必要があります。ZFS ファイルシステム上のファイルには、スワップを作成しないでください。ZFS のスワップファイル構成は、サポートされていません。
スワップデバイスとして使用される ZFS ボリュームは、そのデバイスの encryption プロパティーを指定し、vfstab(5) で encrypted オプションを指定することによって暗号化できます。暗号化プロパティーの詳細は、zfs_encrypt(8) を参照してください。
システムがインストールまたはアップグレードされたあとにスワップ領域またはダンプデバイスを変更する必要がある場合は、swap(8) および dumpadm(8) コマンドを使用します。スワップ領域またはダンプデバイスのサイズを変更する必要がある場合は、Managing ZFS File Systems in Oracle Solaris 11.4の本を参照してください。
状態を変更するサブコマンドはすべて、元の形式でプールに永続的に記録されます。
ヘルプメッセージを表示します。
zfs コマンドの使用法情報を表示します。特定のコマンド、プロパティー、または委任アクセス権のヘルプを表示できます。特定のコマンドまたはプロパティーのヘルプを表示した場合、コマンド構文またはプロパティー値が表示されます。引数を何も付けずに zfs help を使用すると、zfs コマンドの完全なリストが表示されます。
zfs プロパティーに関する情報 (プロパティー値が編集可能および継承可能かどうか、指定可能な値など) が表示されます。
zfs allow の構文と例の完全な説明については、zfs_allow(8) を参照してください。
指定したスナップショットのクローンを作成します。詳細は、「クローン」のセクションを参照してください。ターゲットのデータセットは、ZFS 階層内の任意の場所に配置することができ、元のデータセットと同じタイプとして作成されます。
存在しない親データセットをすべて作成します。この方法で作成されたデータセットは、それぞれの親から継承した mountpoint プロパティーに従って自動的にマウントされます。ターゲットのファイルシステムまたはボリュームがすでに存在する場合、処理は正常に完了します。
指定されたプロパティーを設定します。詳細は、zfs create を参照してください。
詳細は、zfs_encrypt(8) を参照してください。
新しい ZFS ファイルシステムを作成します。ファイルシステムは、親から継承した mountpoint プロパティーに従って自動的にマウントされます。
存在しない親データセットをすべて作成します。この方法で作成されたデータセットは、それぞれの親から継承した mountpoint プロパティーに従って自動的にマウントされます。コマンド行で –o オプションを使用して指定したプロパティーはすべて無視されます。ターゲットのファイルシステムがすでに存在する場合、処理は正常に完了します。
データセットの作成時にコマンド zfs set property=value が呼び出された場合と同様に、指定されたプロパティーを設定します。編集可能なすべての ZFS プロパティーは、作成時にも設定可能です。複数の –o オプションを指定できます。複数の –o オプション内で同じプロパティーを指定した場合は、エラーが発生します。
指定したサイズのボリュームを作成します。ボリュームは、/dev/zvol/{dsk,rdsk}/path 内のブロック型デバイスとしてエクスポートされます。ここで、path は ZFS 名前空間内のボリュームの名前です。このサイズは、デバイスによりエクスポートされる論理サイズを表します。デフォルトでは、同サイズの予約が作成されます。
size は、ボリュームが blocksize に関係なく整数のブロックを持つように、もっとも近い 128 K バイトに自動的に切り上げられます。
存在しない親データセットをすべて作成します。この方法で作成されたデータセットは、それぞれの親から継承した mountpoint プロパティーに従って自動的にマウントされます。コマンド行で –o オプションを使用して指定したプロパティーはすべて無視されます。ターゲットのファイルシステムがすでに存在する場合、処理は正常に完了します。
予約なしで疎ボリュームを作成します。疎ボリュームの詳細は、「ネイティブプロパティー」のセクションの volsize を参照してください。
データセットが作成されたときに、同時に zfs set property=value コマンドが呼び出された場合と同様に、指定されたプロパティーを設定します。編集可能なすべての ZFS プロパティーは、作成時にも設定可能です。複数の –o オプションを指定できます。複数の –o オプション内で同じプロパティーを指定した場合は、エラーが発生します。
–o volblocksize=blocksize と同等です。このオプションが –o volblocksize と組み合わせて指定された場合、結果の動作は定義されていません。
指定されたデータセットとそのすべてのスナップショットを破棄します。デフォルトでは、このコマンドは共有中のファイルシステムすべての共有を解除し、マウント中のファイルシステムすべてをアンマウントし、アクティブな依存関係 (子またはクローン) を持つデータセットの破棄を拒否します。デフォルトの動作では、呼び出し元に制御が返されたあとで、データセットによって占有されている領域が非同期に再利用されます。データセットの非同期破棄の進行状況は、zpool モニターコマンドを使用して確認できます。詳しくは、zpool(8) のマニュアルページを参照してください。
すべての子を再帰的に破棄します。
ターゲット階層外にあるクローンファイルシステムを含む、すべての依存関係を再帰的に破棄します。
スナップショットを同期的に破棄します。デフォルトでは、コマンドが呼び出し元に返されたあとで、破棄されたデータセットが非同期に再利用されます。このオプションを指定すると、データセットによって占有されているブロックが完全に解放されるまで、制御は呼び出し元に返されません。
unmount -f コマンドを使用してすべてのファイルシステムを強制的にアンマウントします。非ファイルシステムやアンマウントされたファイルシステムは、このオプションの影響を受けません。
–r や –f オプションを適用すると、プールのかなりの部分を破棄することが可能で、使用中のマウントされたファイルシステムで予期しない動作が発生する場合があるため、これらのオプションは特に注意深く使用するようにしてください。
指定されたスナップショットが –d オプションを付けない zfs destroy コマンドで破棄される場合にかぎり、そのスナップショットがすぐに破棄されます。このように破棄がただちに実行されるのは、たとえば、スナップショットにクローンがない場合や、ユーザーによる参照数がゼロだった場合です。
すぐに破棄される条件を満たしていないスナップショットには、削除が遅延されるようにマークが付けられます。この状態では、そのスナップショットは使用および表示が可能なスナップショットとして存在し、前述の両方の前提条件が満たされると、その時点で破棄されます。
スナップショットの削除を延期します。
子孫ファイルシステムでこの名前を持つすべてのスナップショットを破棄します (または削除が遅延されるようにマークが付けられます)。
すべての依存関係を再帰的に破棄します。
スナップショットを同期的に破棄します。デフォルトでは、コマンドが呼び出し元に返されたあとで、破棄されたデータセットが非同期に再利用されます。このオプションを指定すると、データセットによって占有されているブロックが完全に解放されるまで、制御は呼び出し元に返されません。
指定したファイルシステムの共有が破棄されます。
スナップショットと子孫データセットとの差異に関する概要を表示します。子孫は、データセットのスナップショットか現在のデータセットのいずれかになります。
単一のスナップショットが指定された場合、そのスナップショットと現在のデータセットとの差異が表示されます。
元のスナップショットと子孫の間で変更があったファイルごとに、変更のタイプがファイルの名前とともに記述されます。名前の変更の場合、古い名前と新しい名前の両方が表示されます。ファイル名に含まれるスペース文字、バックスラッシュ文字、およびそのほかの非印字文字または非 7 ビット ASCII 文字は、バックスラッシュ文字のあとにそのバイト値を表す 3 桁の 8 進数が追加された形式で表示されます。
–t オプションが指定された場合、コマンドからの出力の最初の列はファイルの st_ctim 値になります。削除したファイルの場合、これは以前のスナップショットの最後の st_ctim になります。
変更のタイプはタイムスタンプのあとに表示され、単一の文字で記述されます。
以降のデータセットでファイルが追加されたことを示します。
以降のデータセットでファイルが削除されたことを示します。
以降のデータセットでファイルが変更されたことを示します。
以降のデータセットでファイルの名前が変更されたことを示します。
–F オプションが指定された場合、出力の次の列に、ファイルのタイプを示す単一の文字が表示されます。マッピングは次のとおりです。
標準ファイル
ディレクトリ
ブロック型デバイス
ドア
FIFO
シンボリックリンク
イベントポータル
ソケット
変更箇所に非ディレクトリファイルのリンク数の変更が含まれる場合、その変更は差分が括弧に囲まれた形式で変更行に表示されます。ファイルの名前が変更された場合、古い名前は、-> の文字列で新しい名前と区切られます。
–H オプションが選択された場合、簡単に解析できる出力が生成されます。フィールドは 1 つのタブで区切られ、名前変更の古い名前と新しい名前の間に矢印の文字列 (->) は配置されません。–H が選択されていない場合の出力では、フィールド間に空白が挿入されるとは限りません。
–e オプションが選択された場合、2 つのスナップショットの間で追加または変更されたすべてのファイルが列挙され、削除されたファイルは表示されません。変更タイプは修正の種類にかかわらず、常に + と報告されます。
–E オプションが選択された場合、空のスナップショットと指定されたスナップショットまたはデータセットとの差異として表示されます。
–r オプションが選択されている場合は、このデータセットとすべての子データセットの違いが再帰的に表示されます。パラメータとしてスナップショットが指定されている場合は、そのスナップショット名がすべての子データセットに対して存在する必要があります。そうでない場合は、そのスナップショットを含んでいないデータセットに対して警告が発行されます。–q オプションも選択されている場合、これらの警告は発行されません。
–r とともに –N オプションが選択されている場合は、現在のデータセットに追加されたすべての新しい子データセットが、既存のデータセットとの違いとともに列挙されます。
–o フィールドオプションが選択された場合、選択されたフィールドのみが表示されます。各行は、–F および –t オプションで要求された標準のフィールドで開始され、後続の –o オプションで要求されたフィールドが後に続きます。–H オプションと同様に、すべてのフィールドが 1 つのタブで区切られます。次のフィールド名が許可されます。
ファイルについて ls–i によって出力される数値
ファイルを含んでいるディレクトリについて ls –i によって出力される数値
ls –s によって表示されるファイルサイズ
ファイルへのリンク数
ファイルへのリンク数の変更
ファイルの名前
名前を変更する前のファイルの名前 (ファイルの名前が変更されていない場合は — (ハイフン))
ls で表示されるファイルの所有者名
ls で表示されるファイルのグループ名
ファイルのメタデータが最後に変更されたときのタイムスタンプ
ファイルが最後に変更されたときのタイムスタンプ
ファイルが最後にアクセスされたときのタイムスタンプ
ファイルが作成されたときのタイムスタンプ
マウントポイント名を表示します。
データセット名を表示します。
すでに {PRIV_SYS_CONFIG} または {PRIV_SYS_MOUNT} 特権を持っていないかぎり、このサブコマンドを使用するには zfs allow によって diff アクセス権が付与されている必要があります。
指定したデータセットのプロパティーを表示します。データセットが指定されていない場合、このコマンドはシステムのすべてのデータセットのプロパティーを表示します。プロパティーごとに、次の列が表示されます。
name Dataset name property Property name value Property value source Property source. Can either be local, default, temporary, inherited, or none (-).
デフォルトでは、RECEIVED 列を除くすべての列が表示されます。特定の列またはすべての列を指定するには、–o オプションを使用します。このコマンドには、「ネイティブプロパティー」および「ユーザープロパティー」で説明されているコンマ区切りのプロパティーリストを指定できます。
特殊な値 all を使って、指定したデータセットのタイプ (ファイルシステム、ボリューム、またはスナップショット) に適用されるプロパティーをすべて表示できます。
任意の子のプロパティーを再帰的に表示します。
スクリプトによる解析がより容易な形式で、出力を表示します。ヘッダーがすべて省略され、フィールドが任意の数のスペースではなく、タブ 1 つで明示的に区切られます。
解析可能な (絶対) 値で数を表示します。
プロパティーのサブリストを任意の深さまで展開します。
データセットのすべての子を再帰的に表示しますが、再帰の深さは depth に制限されます。深さ 1 の場合は、データセットとその直接の子だけが表示されます。
表示するフィールドのセット。次の 1 つ以上のフィールドを指定します。
name,property,value,received,source
複数のフィールドをコンマ区切りリストで表します。デフォルト値は次のとおりです:
name,property,value,source
キーワード all はすべてのソースを指定します。
表示するソースのコンマ区切りのリスト。このリストにないソースからのプロパティーは、無視されます。各ソースは、次のいずれかでなければなりません:
local,default,inherited,temporary,received,none
デフォルト値はすべてのソースです。
指定されたファイルシステムまたはスナップショットでの、各グループの消費容量および割り当てを表示します。このサブコマンドは zfs userspace と同じですが、デフォルトで表示されるタイプは –t posixgroup,smbgroup です。
-
tag 引数で指定された単一の参照を、指定された 1 つ以上のスナップショットに追加します。個々のスナップショットには独自のタグ名前空間があり、その空間内でタグが一意である必要があります。
スナップショットに保持が設定されている場合、保持されたそのスナップショットを zfs destroy コマンドを使用して破棄しようすると、EBUSY が返されます。
指定されたタグを持つ保持をすべての子孫ファイルシステムのスナップショットに再帰的に適用することを指定します。
指定された 1 つ以上のスナップショットについて、既存のユーザー参照をすべて一覧表示します。
指定されたスナップショットでの保持を一覧表示するだけでなく、指定された子孫スナップショットで設定されている保持を一覧表示します。
指定したプロパティーをクリアして、そのプロパティーが祖先から継承されるようにします。祖先にプロパティーが設定されていない場合は、デフォルト値が使用されます。デフォルト値のリスト、および継承可能なプロパティーの詳細については、「プロパティー」のセクションを参照してください。
すべての子で指定したプロパティーを再帰的に継承します。
受信したプロパティー値があれば、その値に戻します。受信された値がプロパティーに含まれていない場合、zfs inherit –S の動作は –S なしの zfs inherit と同じです。プロパティーに受信値が存在する場合、zfs inherit は、zfs inherit –S によって継承値が受信値に戻されるまで、受信値を継承値でマスクします。
zfs key の構文と例の完全な説明については、zfs_encrypt(8) を参照してください。
指定したデータセットのプロパティー情報を、表形式で表示します。指定した場合、プロパティー情報を絶対パス名または相対パス名で表示できます。デフォルトでは、すべてのファイルシステムとボリュームが表示されます。スナップショットは、listsnaps プロパティーが on の場合に表示されます。デフォルトは off です。listshares プロパティーが on の場合、共有が表示されます。name、used、available、referenced、および mountpoint の各フィールドが表示されます。
スクリプティングモードで使用します。ヘッダーを出力せず、フィールドを任意のスペース文字ではなく単一のタブで区切ります。
データセットのすべての子をコマンド行に再帰的に表示します。
データセットのすべての子を再帰的に表示しますが、再帰は最大 depth に制限されます。深さ 1 の場合は、データセットとその直接の子だけが表示されます。
表示するプロパティーのコンマ区切りのリスト。次のプロパティーを指定する必要があります:
「ネイティブプロパティー」のセクションで示したプロパティーのいずれか
ユーザープロパティー
データセット名を表示する値 name
ファイルシステムとボリュームの領域使用状況プロパティーを表示する値 space。これは、–o name,avail,used,usedsnap,usedds,usedrefreserv,usedchild –t filesystem,volume 構文を簡単に指定する方法です。
プロパティーの値に基づいて、出力を列で昇順にソートするためのプロパティー。このプロパティーは、「プロパティー」のセクションで説明されているプロパティーのいずれか、またはデータセット名でソートするための特殊な値 name である必要があります。複数の –s プロパティーオプションを使用することで、一度に複数のプロパティーを指定できます。複数の –s オプションは、重要性の高い順に左から右に評価されます。
次に、ソート基準の一覧を示します。
数値型は、数値順にソートされます。
文字列型は、アルファベット順にソートされます。
行に適さない型は、指定したソート順に関係なく、その行がリテラルソート順のいちばん下になります。
ソートオプションを指定しない場合は、zfs list の既存の動作が維持されます。
–s オプションと同じですが、プロパティーで降順にソートされる点が異なります。
表示するタイプのコンマ区切りリスト。ここで、type は filesystem、snapshot、volume、share、または all のいずれかです。たとえば、–t snapshot を指定すると、スナップショットのみが表示されます。タイプ指定子の代わりに、fs (ファイルシステム)、snap (スナップショット)、および vol (ボリューム) の各別名を使用できます。
表示する不完全なデータセット状態のコンマ区切りリスト。ここで、state は、receiving、resumable、または受信データセットと再開可能データセットの両方を表示する all です。たとえば、–I resumable を指定すると、再開可能データセットのみが表示されます。
親 ZFS データセットの名前を変更するには、その前に ZFS ですべての子データセットをアンマウントする必要があります。子データセットをアンマウントできない場合、zfs はエラーを報告します。
$ zfs rename rpool/parent rpool/renamed cannot unmount '/rpool/child': Device busy
このような状況では、次のアプローチでデータセットの名前を変更できます。
$ zfs snapshot rpool/parent@rename $ zfs clone rpool/parent@rename rpool/renamed $ zfs promote rpool/renamed $ zfs destroy rpool/parent $ zfs destroy rpool/renamed@rename
@rename スナップショットを作成したあと、rpool/parent に書き込まれたすべてのデータが失われることに注意してください。
正確な (解析可能な) 数値出力を使用します。
現在マウントされているすべての ZFS ファイルシステムを表示します。
ZFS ファイルシステムをマウントします。これは、ブートプロセスの一部として自動的に呼び出されます。
マウント時に一時的に使用する、コンマ区切りのマウントオプションリスト (オプション)。詳細は、「一時的なマウントポイントプロパティー」のセクションを参照してください。
オーバーレイマウントを実行します。詳細については、mount(8) を参照してください。
マウントの進行状況を報告します。
使用可能なすべての ZFS ファイルシステムをマウントします。これは、ブートプロセスの一部として自動的に呼び出されます。
指定されたファイルシステムをマウントします。
暗号化されたデータセットの zfs mount 操作では、keysource プロパティー値によっては鍵の入力が求められる場合があります。これは、たとえば keysource ロケータが prompt に設定されている場合に起こることがあります。
特定のクローンファイルシステムへの移行を促し、そのファイルシステムが元のスナップショットに依存しないようにします。これにより、そのクローンの作成元のファイルシステムを破棄できるようになります。クローンの親子依存関係が逆転し、元のファイルシステムが、指定されたファイルシステムのクローンになります。
クローンされたスナップショットと、そのスナップショットより前のすべてのスナップショットは、移行を促されたクローンによって所有されるようになります。それらが使用する領域は、元のファイルシステムから移行を促されたクローンに移されます。したがって、それらのスナップショットを収容するための十分な領域が必要です。この操作を行なっても新しい領域は消費されませんが、領域のアカウンティングは調整されます。移行を促されたクローンは、自身の相反するスナップショット名を持ってはいけません。rename サブコマンドを使えば、競合するスナップショット名を変更できます。
スナップショットを作成します。内容は、標準入力から受信したストリームの指定に基づきます。ストリーム全体を受信する場合、新しいファイルシステムも作成されます。ストリームは、デフォルトでは完全なストリームを作成する zfs send サブコマンドを使用すると作成されます。zfs receive の別名として zfs recv を使用できます。
増分ストリームが受信された場合、対象となるファイルシステムがすでに存在しており、かつその最新のスナップショットがその増分ストリームのソースに一致する必要があります。ZFS ボリュームの場合は、宛先のデバイスリンクが破棄され、再作成されます。つまり、receive 操作中はボリュームにアクセスできません。
zfs send –R コマンドによって生成されたスナップショット複製パッケージストリームが受信される場合、送信場所に存在していないスナップショットは、zfs destroy –d コマンドを使用することによって破棄されます。–o property=value または –x プロパティーが指定されている場合、それはレプリケートされたデータセットのサブツリー全体にわたって、プロパティーの有効な値に適用されます。有効なプロパティー値は、そのプロパティー、および複製されたサブツリーのいちばん上にデータセットがあるかどうかに応じて、設定または継承できます。受信されたプロパティーは、オーバーライドされても保持され、zfs inherit –rS または zfs send –Rb で復元できます。
このサブコマンドが作成するスナップショット (および、完全なストリームが受信された場合はファイルシステム) の名前は、引数の型と –d または –e オプションによって異なります。
引数がスナップショット名の場合には、指定した snapshot が作成されます。この引数がファイルシステムまたはボリューム名である場合は、送信されたスナップショットと同じ名前を持つスナップショットが、指定された filesystem または volume 内に作成されます。–d または –e オプションが指定されている場合は、送信されたスナップショットの名前を指定されたファイルシステムに付加することによってスナップショット名が決定されます。–d オプションが指定されている場合は、送信されたスナップショットパスのプール名を除くすべてが付加され (たとえば、送信されたスナップショット a/b/c@1 から付加された b/c@1)、–e オプションが指定されている場合は、送信されたスナップショットパスの末尾のみが付加されます (たとえば、送信されたスナップショット a/b/c@1 から付加された c@1)。–d の場合、送信されたスナップショットのパスを複製するために必要なファイルシステムは、指定されたファイルシステム内で作成されます。
前の段落で説明したように、送信されたスナップショットパスの最初の要素を除くすべて (プール名を除くすべて) を使用して、新しいスナップショットの名前が決定されます。
受信チェックポイントを標準出力に書き込みます。受信チェックポイントは、すでに受信したスナップショットの目次です。
前の段落で説明したように、送信したスナップショットパスの最後の要素を使用して、新しいスナップショットの名前が決定されます。
受信操作を実行する前に、ファイルシステムを最新のスナップショットに強制的にロールバックします。増分複製ストリーム (zfs send -R -[iI] で生成されたものなど) を受信する場合は、送信側に存在しないスナップショットとファイルシステムを破棄します。
ストリームを実際には受信しません。これを –v オプションと組み合わせて使用すると、受信操作で使用する名前を確認するのに役に立ちます。
ZFS は、ストリームで必要なファイルシステムとクローンが存在するかどうかを検証しません。そのため、シミュレーションされた受信が合格した場合でも、ストリームの依存関係が満たされていないために、実際の受信は失敗することがあります。
受信データセットが非増分の send ストリームから作成されるか、または増分の send ストリームから更新されたと同時に zfs set property=value コマンドが呼び出された場合と同様に、指定されたプロパティーを設定します。編集可能なすべての ZFS プロパティーは、受信時にも設定可能です。normalization や casesensitivity など、受信データにバインドされ 1 回だけ設定されるプロパティーは、データセットが zfs receive によって新しく作成された場合でも、受信時には設定できません。複数の –o オプションを指定できます。複数の -o または –x オプションで同じプロパティーが指定された場合は、エラーが発生します。
受信したストリームに関連付けられているファイルシステムをマウントしません。
ストリームおよび受信操作の所要時間に関する詳細な情報を出力します。
receive のあとにある指定されたプロパティーの有効な値が、そのプロパティーが send ストリームから除外されている場合と同様に、send ストリーム内のそのプロパティー (もしあれば) の値に影響されないようにします。指定されたプロパティーが send ストリームに存在しない場合、このオプションは何も行いません。受信されたプロパティーを上書きする必要がある場合、有効な値をそのプロパティーに応じて設定または継承できます。増分更新の場合、–x は、既存のローカル設定または明示的な継承を変更せずに残します (受信したプロパティーがすでに上書きされているため)。すべての –o 制限は、–x にも同様に適用されます。
tag 引数で指定された単一の参照を、指定された 1 つ以上のスナップショットから削除します。各スナップショットに対して、タグがすでに存在している必要があります。
スナップショットに保持が設定されている場合、保持されたそのスナップショットを zfs destroy コマンドを使用して破棄しようすると、EBUSY が返されます。
指定されたタグを持つ保持をすべての子孫ファイルシステムのスナップショット上で再帰的に解除します。
指定したデータセットの名前を変更します。スナップショットを除き、新規ターゲットは ZFS 階層内の任意の場所に配置できます。スナップショットの名前を変更できるのは、親のファイルシステムまたはボリューム内だけです。スナップショットの名前を変更する場合、スナップショットの親ファイルシステムを 2 番目の引数として指定する必要はありません。名前の変更されたファイルシステムは、新しいマウントポイントを継承できます。この場合、ファイルシステムは、アンマウントされてから新しいマウントポイントで再マウントされます。
ルートデータセットの名前の変更は許可されていません。ルートデータセットの名前は、プール名の変更によってのみ変更できます。それにより、ルートデータセットの名前が新しいプール名に変更されます。ルートデータセットの名前を新しいプール名に変更するには、zpool export <pool> コマンドのあとに、zpool import <pool> <newpoolname> コマンドを使用します。
存在しない親データセットをすべて作成します。この方法で作成されたデータセットは、それぞれの親から継承した mountpoint プロパティーに従って自動的にマウントされます。
すべての子孫データセットのスナップショットの名前を再帰的に変更します。スナップショットは、再帰的に名前を変更できるデータセットにすぎません。
指定した共有の名前を新しい共有名に変更します。
指定したデータセットを以前のスナップショットにロールバックします。データセットをロールバックすると、スナップショット作成時から変更されたすべてのデータは破棄され、データセットがスナップショット作成時の状態に戻ります。デフォルトでは、このコマンドを使って、最新のスナップショット以外のスナップショットにロールバックすることはできません。最新でないスナップショットにロールバックする場合は、–r オプションを使って中間スナップショットをすべて破棄する必要があります。
–rR オプションは、再帰的スナップショットの子スナップショットを再帰的に破棄しません。これらのオプションはどちらも、最上位の再帰的スナップショットだけを破棄します。再帰的スナップショットを完全にロールバックするには、個々の子スナップショットをロールバックする必要があります。
指定したスナップショット以降のスナップショットをすべて再帰的に破棄します。
指定したスナップショット以降のスナップショットを再帰的に破棄するとともに、これらのスナップショットのクローンもすべて破棄します。
–R オプションとともに使用すると、破棄するクローンファイルシステムをすべて強制的にアンマウントします。
標準出力に書き込まれる 2 番目の snapshot のストリーム表現を作成します。出力は、ssh(1) などを使用すると、ファイルまたは別のシステムにリダイレクトできます。デフォルトでは、完全なストリームが生成されます。
データセットが受信された場合にのみ、ローカル設定によって上書きされているかどうかに関係なく、受信したプロパティー値だけを送信します。zfs receive で、送信されたデータセット上でバックアップされた受信プロパティーを復元し、かつソースデータセットそのものではなくデータのバックアップ方法にのみ関係する可能性があるローカル設定を送信しないようにする場合に、このオプションを使用します。
自己完結型ストリームを作成します。自己完結型ストリームとは、ストリームパッケージに含まれていないデータセットに依存しないストリームのことです。–r および –R オプションと使用できます。–R オプションと使用し、クローンが存在する場合、クローンの起点より前のスナップショットはストリームに含まれません。–i または –I オプションと使用した場合、ストリームは、–i または –I オプションの引数として指定されたスナップショットに依存します。
詳細は、『ZFS 管理ガイド』の ZFS ストリームに関するセクションを参照してください。
標準入力から受信チェックポイントを読み取ります。受信チェックポイントは、正常に受信し、再度送信する必要がないスナップショットの目次です。
ストリームで dedup 処理を実行します。複製解除されたストリームは、ストリームの複製解除機能をサポートしていないシステム上では受信できません。
複製ストリームパッケージと再帰的ストリームパッケージの違いについて理解するには『ZFS 管理ガイド』の ZFS ストリームに関するセクションを参照してください。
最初の snapshot から 2 番目の snapshot への増分ストリームを生成します。増分ソース (最初の snapshot) は、スナップショット名の最後のコンポーネント (たとえば、@ のあとの部分) として指定できます。これは、2 番目の snapshot と同じファイルシステムに由来すると見なされます。
宛先がクローンの場合、ソースとして元のスナップショットを指定できますが、完全な形式で指定する必要があります (たとえば、単に @origin と指定するのではなく、pool/fs@origin とする)。
最初のスナップショットから 2 番目のスナップショットにすべての中間スナップショットを送信するストリームパッケージを生成します。たとえば、-I @a fs@d は -i @a fs@b; -i @b fs@c; -i @c fs@d に似ています。増分ソーススナップショットは、-i オプションと同様に指定できます。
ストリームを実際には送信しません。このオプションを –v オプションとともに使用して、送信されるスナップショットを確認することもできます。
–R オプションなしで送信ストリームにプロパティーを含めるには、–p オプションを使用します。詳細は、Applying Different Property Values to a ZFS Snapshot Stream in Managing ZFS File Systems in Oracle Solaris 11.4を参照してください。
複製ストリームパッケージを生成し、指定されたファイルシステム、および指定されたスナップショットまでのすべての子孫ファイルシステムを複製します。受信時には、すべてのプロパティー、スナップショット、下位ファイルシステム、およびクローンが維持されます。
-i または -I フラグを -R フラグと組み合わせて使用すると、増分複製ストリームが生成されます。プロパティーの現在の値、および現在のスナップショット名とファイルシステム名は、ストリームの受信時に設定されます。このストリームが受信されたときに -F フラグが指定されている場合、送信側に存在しないスナップショットとファイルシステムは破棄されます。
–c オプションと組み合わせると、自己完結型のレプリケーションストリームパッケージが作成されます。クローンが存在する場合、クローンの起点より前のスナップショットはストリームに含まれません。–c と –I の両方のオプションを使用した場合、–I オプションで指定されたスナップショットを持たないファイルシステムおよびボリュームは、自己完結型ストリームとして送信されます。
再帰的ストリームパッケージを生成します。再帰的ストリームパッケージには、一連の完全ストリームまたは増分ストリームあるいはその両方が含まれています。受信時に、すべてのプロパティーおよび子孫ファイルシステムが保持されます。–R フラグで生成される複製ストリームパッケージとは異なり、中間スナップショットは、それがストリームに含まれる複製元でないかぎり保持されません。
–i オプションと –r オプションを組み合わせて使用すると、再帰的増分ストリームが生成されます。プロパティーの現在の値、および現在のスナップショット名とファイルシステム名は、ストリームの受信時に設定されます。このストリームの受信時に –F オプションを指定すると、送信側に存在しないスナップショットとファイルシステムは破棄されます。–I オプションは –r オプションと組み合わせて使用できません。
–c オプションと組み合わせると、自己完結型の再帰的ストリームパッケージが作成されます。–c と –i の両方のオプションを使用した場合、–i オプションで指定したスナップショットを持たないファイルシステムおよびボリュームは、自己完結型ストリームとして送信されます。
再帰的ストリームパッケージと複製ストリームパッケージの違いについて理解するには『ZFS 管理ガイド』の ZFS ストリームに関するセクションを参照してください。
–s スイッチは、send コマンドのストリームまたは操作の形式を変更するストリームオプションのセットを指定するために使用されます。後者のオプションは、前者のオプションよりも優先されます。どのオプションも、前に「no」を付けてオフにできます。たとえば、–s nocheck は、事前に記録されたチェックサムなしでストリーム形式を使用するように要求します。
ストリームのサイズ (バイト数) が標準エラーに出力されることを指定します。–v によって、–s streamsize オプションが抑制されます。
出力ストリームが、事前に記録されたチェックサムを使用する送信ストリーム形式を使用することを指定します。この形式はシステム全体のデフォルトです。割り込まれた転送が受信チェックポイント (zfs send –-C を参照) を使用して再開されたら、停止前に「check」形式を使用することで、再開された転送が、すでに正常に受信されて割り込まれたスナップショットの部分を保存して再使用できるようになります。
出力ストリームが、事前に記録されたチェックサムを使用せずに従来の送信ストリーム形式を使用することを指定します。この形式は、新しい形式をサポートしない古いシステムへの送信に適しています。
生成されたストリームパッケージに関する詳細な情報を表示します。
compress 引数を指定します。圧縮されたファイルシステムブロックは、ストリームで圧縮されて (つまり圧縮解除されずに) 送信されます。また、compress は、–p オプションを暗黙的に有効にし、–D オプションとは相互に排他的です。
none 引数は compress の動作を無効にします。–w オプションが指定されていない場合、none がデフォルトの引数です。
適切な接尾辞を使用して、複製解除処理で使用されるメモリーの量をバイト数、K バイト数、M バイト数、または G バイト数で指定される値に制限します。たとえば、2G、2048M、2097152K、または 2147483648 とします。
複製解除のメモリーサイズ (バイト数) が stderr に出力されることを指定します。–s streamsize および –s memsize オプションの両方が指定されている場合、値は連続する行に、コマンド行で指定された順序で出力されます。–s オプションは –v オプションと互換性がありません。
ストリームの形式が確定されました。ZFS の将来のバージョンで、使用しているストリームを受信できます。
snapshot 引数で指定されたスナップショットが存在している必要があります。–R または –r オプションが使用される場合は、snapshot 引数で指定された再帰的スナップショットが存在しているべきであり、それが再帰的に送信されます。特殊なケースが 2 つあります。第 1 に、適切な名前付きスナップショットが完全に欠落している子孫ファイルシステムツリーはスキップされ、送信ストリームに含められません。この場合、スキップされるスナップショットごとに、警告メッセージが出力されます。第 2 に、子孫ファイルシステムツリーが混在ステータスにある (つまり、子孫ファイルシステムツリーのルートにはリクエストされたスナップショットが見つからないが、その子ファイルシステムの 1 つまたは複数にリクエストされたスナップショットが含まれている) 場合、エラーが生成されて送信操作が終了します。
マルチレベルのファイルシステムのスナップショットを送信するには、ユーザーのプロセス認可上限が、mlslabel プロパティーで指定されたラベルよりも優位である必要があります。
プロパティーを、各データセット用に指定した値に設定します。一部のプロパティーのみ、編集可能です。設定可能なプロパティーおよび有効な値については、「プロパティー」のセクションを参照してください。数値は、正確な値として、または B、K、M、G、T、P、E、Z の接尾辞 (それぞれ、バイト数、K バイト数、M バイト数、G バイト数、T バイト数、P バイト数、E バイト数、Z バイト数を示します) を使用して人間が読める形式で指定できます。スナップショットでユーザープロパティーを設定できます。詳細は、「ユーザープロパティー」のセクションを参照してください。
子データセットのサブツリー全体に対して、設定の有効な値を再帰的に適用します。有効な値は、プロパティーに応じて設定または継承できます。プロパティーが設定可能または継承可能かどうかを確認するには、zfs help –l properties コマンドを使用します。
zfs share の構文と例および share.nfs または share.smb プロパティーの設定の完全な説明については、zfs_share(8) を参照してください。
指定した名前のスナップショットを作成します。正常なシステムコールによってファイルシステムに加えられた以前の変更はすべて、スナップショットに含まれます。zfs snapshot の別名として zfs snap を使用できます。詳細は、「スナップショット」のセクションを参照してください。
すべての子孫データセットのスナップショットを再帰的に作成します。スナップショットは原子的に取得されるため、再帰的スナップショットはすべて同じ時点のものになります。
指定されたプロパティーを設定します。詳細は、zfs create を参照してください。
zfs unallow の構文と例の完全な説明については、zfs_allow(8) を参照してください。
現在マウントされている ZFS ファイルシステムをアンマウントします。これは、シャットダウンプロセスの一部として自動的に呼び出されます。
ファイルシステムを、使用中であっても強制的にアンマウントします。
使用可能なすべての ZFS ファイルシステムをアンマウントします。これは、ブートプロセスの一部として自動的に呼び出されます。
指定されたファイルシステムをアンマウントします。このコマンドには、システム上の ZFS ファイルシステムのマウントポイントのパスを指定することもできます。
暗号化されたデータセットの場合、ファイルシステムがアンマウントされているときには、鍵の読み込みは解除されません。鍵を読み込み解除するには、zfs key を参照してください。
zfs unshare の構文と例の完全な説明については、zfs_share(8) を参照してください。
ファイルシステムバージョンを指定します。このバージョンによって、現在実行中のソフトウェアリリースで使用可能なファイルシステム機能が決まります。古いファイルシステムバージョンを使用し続けることはできますが、一部の機能が使用できなくなる可能性があります。ファイルシステムは、zfs upgrade –a コマンドを使用するとアップグレードできます。以前のソフトウェアバージョンを実行しているシステムで、以降のバージョンのファイルシステムにアクセスすることはできません。
現在のソフトウェアでサポートされている ZFS ファイルシステムのバージョンを表示します。現在の ZFS ファイルシステムのバージョンおよびサポートされる以前のバージョンすべてが、各バージョンで提供される機能に関する説明とともに表示されます。
ファイルシステムを新しいディスク上バージョンにアップグレードします。ファイルシステムをアップグレードすると、古いソフトウェアバージョンを実行しているシステムではアクセスできなくなります。新しいファイルシステムのスナップショットから生成された zfs send ストリームは、古いソフトウェアバージョンを実行しているシステムではアクセスできません。
一般に、ファイルシステムのバージョンはプールのバージョンとは無関係です。zpool upgrade コマンドについては、zpool(8) を参照してください。
場合によっては、ファイルシステムのバージョンとプールのバージョンが相互に関連しており、ファイルシステムのバージョンをアップグレードする前にプールのバージョンをアップグレードする必要があります。
インポートされたすべてのプールのファイルシステムをすべてアップグレードします。
指定されたファイルシステムをアップグレードします。
指定されたファイルシステムおよびすべての子孫ファイルシステムをアップグレードします。
指定された version にアップグレードします。–V フラグが指定されていない場合、このコマンドは最新のバージョンにアップグレードします。このオプションは、バージョン番号を増やす場合にのみ使用できます。また、指定できるのは、このソフトウェアでサポートされている最新のバージョンまでです。
指定されたファイルシステムまたはスナップショットでの、各ユーザーの消費容量および割り当てを表示します。これは、userused@user および userquota@user プロパティーに対応します。
構文ヘルプメッセージを表示して終了します。
ユーザー名やグループ名の代わりに数値 ID を出力します。
ヘッダーを出力せず、タブ区切りの出力を使用します。
正確な (解析可能な) 数値出力を使用します。
type,name,used,quota のセットから、指定されたフィールドのみを表示します。デフォルトでは、すべてのフィールドが表示されます。
出力をこのフィールドでソートします。最初にあるフィールドでソートし、次に別のフィールドでソートする場合は、s および S フラグを複数回指定できます。デフォルトは –s type –s name です。
このフィールドで逆順にソートします。–s を参照してください。
all,posixuser,smbuser,posixgroup,smbgroup のセットから、指定されたタイプのみを出力します。
デフォルトは –t posixuser,smbuser です。
デフォルトを変更してグループタイプを含めることもできます。
SID を POSIX ID に変換します。マッピングが存在しない場合、POSIX ID は一時的なものになることがあります。通常の POSIX インタフェース (stat(2), ls –l など) はこの変換を実行するため、–i オプションを使用すると、zfs userspace の出力をこれらのユーティリティーと直接比較できます。ただし、SMB から POSIX への名前のマッピングが確立される前に SMB ユーザーによって作成されたファイルがある場合は、–i を使用すると混乱が生じることがあります。そのような場合は、SMB エンティティーが所有するファイルと、POSIX エンティティーが所有するファイルが混在します。しかし、–i オプションでは、どちらについてもすべて POSIX エンティティーの使用量および割り当てとして報告されます。
次のコマンドは、pool/home という名前のファイルシステムと、pool/home/bob という名前のファイルシステムを作成します。マウントポイント /export/home が親のファイルシステムに対して設定され、子のファイルシステムによって自動的に継承されます。
# zfs create pool/home # zfs set mountpoint=/export/home pool/home # zfs create pool/home/bob使用例 2 ZFS スナップショットを作成する
次のコマンドは、yesterday という名前のスナップショットを作成します。このスナップショットは、要求に応じて、pool/home/bob ファイルシステムのルートにある .zfs/snapshot ディレクトリにマウントされます。
# zfs snapshot pool/home/bob@yesterday使用例 3 複数のスナップショットを作成および破棄する
次のコマンドは、pool/home とそのすべての子孫ファイルシステムの yesterday という名前のスナップショットを作成します。各スナップショットは必要に応じて、そのファイルシステムのルートの .zfs/snapshot ディレクトリにマウントされます。2 つ目のコマンドは、新しく作成されたスナップショットを破棄します。
# zfs snapshot -r pool/home@yesterday # zfs destroy -r pool/home@yesterday使用例 4 ファイルシステムの圧縮を無効化および有効化する
次のコマンドは、pool/home 次のすべてのファイルシステムで compression プロパティーを無効にします。次のコマンドは、pool/home/anne に対して compression を明示的に有効にします。
# zfs set compression=off pool/home # zfs set compression=on pool/home/anne使用例 5 ZFS データセットの一覧表示
次のコマンドは、システム内のアクティブなファイルシステムをすべて一覧表示します。スナップショットは、listsnaps プロパティーが on の場合に表示されます。デフォルトは off です。listshares プロパティーが on の場合、共有が表示されます。プールプロパティーの詳細は、zpool(8) を参照してください。
# zfs list NAME USED AVAIL REFER MOUNTPOINT pool 450K 457G 18K /pool pool/home 315K 457G 21K /export/home pool/home/anne 18K 457G 18K /export/home/anne pool/home/bob 276K 457G 276K /export/home/bob使用例 6 ZFS ファイルシステムに割り当てを設定する
次のコマンドは、pool/home/bob に 30GB の割り当てを設定します。
# zfs set quota=30G pool/home/bob使用例 7 ZFS プロパティーの一覧表示
次のコマンドは、pool/home/bob のプロパティーをすべて一覧表示します。
# zfs get all pool/home/bob NAME PROPERTY VALUE SOURCE pool/home/bob aclinherit restricted default pool/home/bob aclmode discard default pool/home/bob atime on default pool/home/bob available 30.0G - pool/home/bob canmount on default pool/home/bob casesensitivity mixed - pool/home/bob checksum on default pool/home/bob compression on local pool/home/bob compressratio 1.00x - pool/home/bob copies 1 default pool/home/bob creation Tue Jul 3 10:39 2012 - pool/home/bob dedup off default pool/home/bob devices on default pool/home/bob encryption off - pool/home/bob exec on default pool/home/bob keychangedate - default pool/home/bob keysource none default pool/home/bob keystatus none - pool/home/bob logbias latency default pool/home/bob mlslabel none - pool/home/bob mounted yes - pool/home/bob mountpoint /pool/home/bob default pool/home/bob multilevel off - pool/home/bob nbmand off default pool/home/bob normalization none - pool/home/bob primarycache all default pool/home/bob quota 30G local pool/home/bob readonly off default pool/home/bob recordsize 128K default pool/home/bob referenced 31K - pool/home/bob refquota none default pool/home/bob refreservation none default pool/home/bob rekeydate - default pool/home/bob reservation none default pool/home/bob rstchown on default pool/home/bob secondarycache all default pool/home/bob setuid on default pool/home/bob shadow none - pool/home/bob share.* ... inherited pool/home/bob snapdir hidden default pool/home/bob sync standard default pool/home/bob type filesystem - pool/home/bob used 31K - pool/home/bob usedbychildren 0 - pool/home/bob usedbydataset 31K - pool/home/bob usedbyrefreservation 0 - pool/home/bob usedbysnapshots 0 - pool/home/bob utf8only off - pool/home/bob version 6 - pool/home/bob vscan off default pool/home/bob xattr on default pool/home/bob zoned off default
次のコマンドは、プロパティー値を 1 つ取得します。
# zfs get -H -o value compression pool/home/bob on
次のコマンドは、pool/home/bob のローカル設定を持つすべてのプロパティーを一覧表示します。
# zfs get -r -s local -o name,property,value all pool/home/bob NAME PROPERTY VALUE pool/home/bob compression on pool/home/bob quota 30G使用例 8 ZFS ファイルシステムをロールバックする
次のコマンドは、pool/home/anne の内容を yesterday という名前のスナップショットに戻し、中間のスナップショットをすべて削除します。
# zfs rollback -r pool/home/anne@yesterday使用例 9 ZFS クローンを作成する
次のコマンドは、初期内容が pool/home/bob@yesterday と同一の書き込み可能なファイルシステムを作成します。
# zfs clone pool/home/bob@yesterday pool/clone使用例 10 ZFS クローンの移行を促す
次の各コマンドは、クローン、クローンの移行の促進、および名前変更を実行することで、あるファイルシステムに対する変更内容をテストしたあと、その変更後のファイルシステムで元のファイルシステムを置き換える方法を示しています。
# zfs create pool/project/production populate /pool/project/production with data # zfs snapshot pool/project/production@today # zfs clone pool/project/production@today pool/project/beta make changes to /pool/project/beta and test them # zfs promote pool/project/beta # zfs rename pool/project/production pool/project/legacy # zfs rename pool/project/beta pool/project/production once the legacy version is no longer needed, it can be destroyed # zfs destroy pool/project/legacy使用例 11 ZFS プロパティーの継承
次のコマンドでは、pool/home/bob と pool/home/anne が親の checksum プロパティーを継承します。
# zfs inherit checksum pool/home/bob pool/home/anne使用例 12 ZFS データをリモートで複製する
次のコマンドは、リモートマシンに最初にストリーム全体、次に増分ストリームを送信し、それらをそれぞれ poolB/received/fs@a と poolB/received/fs@b に復元します。poolB にはファイルシステム poolB/received を含める必要があり、最初に poolB/received/fs を含めてはいけません。
# zfs send pool/fs@a | \ ssh host zfs receive poolB/received/fs@a # zfs send -i a pool/fs@b | ssh host \ zfs receive poolB/received/fs
上の構文では sshd でリモートルートアクセスを許可するように構成されているものとします。
使用例 13 zfs receive –d オプションを使用する次のコマンドは、poolA/fsA/fsB@snap のストリーム全体をリモートマシンに送信し、poolB/received/fsA/fsB@snap 内に受信します。受信されたスナップショットの名前の fsA/fsB@snap 部分は、送信されたスナップショットの名前から決定されます。poolB には、ファイルシステム poolB/received を含める必要があります。poolB/received/fsA が存在しない場合は、空のファイルシステムとして作成されます。
# zfs send poolA/fsA/fsB@snap | \ ssh host zfs receive -d poolB/received使用例 14 ユーザープロパティーを設定する
次の例では、データセットのユーザー定義プロパティー com.example:department を設定します。
# zfs set com.example:department=12345 tank/accounting使用例 15 ローリングスナップショットを実行する
次の例は、一貫性のある命名方式でスナップショットの履歴を維持する方法を示しています。1 週間分のスナップショットを保持するために、ユーザーは次のように、もっとも古いスナップショットを破棄し、残りのスナップショットの名前を変更してから、新しいスナップショットを作成します。
# zfs destroy -r pool/users@7daysago # zfs rename -r pool/users@6daysago @7daysago # zfs rename -r pool/users@5daysago @6daysago # zfs rename -r pool/users@4daysago @5daysago # zfs rename -r pool/users@3daysago @4daysago # zfs rename -r pool/users@2daysago @3daysago # zfs rename -r pool/users@yesterday @2daysago # zfs rename -r pool/users@today @yesterday # zfs snapshot -r pool/users@today使用例 16 ZFS スナップショットの差異を表示する
次の例は、zfs diff の –F および –t オプションが指定された場合の出力です。
# zfs diff -Ft myfiles@snap1 1269962501.206726811 M / /myfiles/ 1269962444.207369955 M F /myfiles/link_to_me (+1) 1269962499.207519034 R /myfiles/rename_me -> /myfiles/renamed 1269962431.813566720 - F /myfiles/delete_me 1269962518.666905544 + F /myfiles/new_file 1269962501.393099817 + | /myfiles/new_pipe
次の終了ステータスが返されます。
正常終了。
エラーが発生しました。
無効なコマンド行オプションが指定された。
致命的なエラーが発生しました。
属性についての詳細は、マニュアルページの attributes(7) を参照してください。
|
chmod(1), chown(1), pktool(1), setlabel(1), ssh(1), chmod(2), chown(2), stat(2), write(2), fsync(3C), setflabel(3TSOL), dfstab(5), vfstab(5), attributes(7), datasets(7), filesystem(7), mount(8), shadowd(8), share(8), share_nfs(8), share_smb(8), unshare(8), zfs_allow(8), zfs_encrypt(8), zfs_share(8), zonecfg(8), zpool(8)
gzip (1) のマニュアルページを参照してください。これは、Oracle Solaris マニュアルページコレクションの一部ではありません。
ほかの ZFS 機能については、zfs_allow(8)、zfs_encrypt(8)、zfs_share(8)、およびManaging ZFS File Systems in Oracle Solaris 11.4を参照してください。
diff サブコマンドによって変更されたことが示されているファイルは、複数の方法で変更された可能性があります。変更箇所の報告は、st_ctim の変更の原因となったあらゆるアクション (stat(2) を参照) に基づいて行われます。