EN JA
ZFS(8)
ZFS(8) FreeBSD System Manager's Manual ZFS(8)

名称

zfsZFS ファイルシステムを設定する

書式

zfs [ -?]

zfs create [ -pu][ -o property= value]... filesystem

zfs create [ -ps][ -b blocksize][ -o property= value]... -V size volume

zfs destroy [ -fnpRrv] filesystem| volume

zfs destroy [ -dnpRrv] snapshot[ % snapname][ ,...]

zfs snapshot [ -r][ -o property= value]... filesystem@snapname| volume@snapname filesystem@snapname| volume@snapname...

zfs rollback [ -rRf] snapshot

zfs clone [ -p][ -o property= value]... snapshot filesystem| volume

zfs promote clone-filesystem

zfs rename [ -f] filesystem| volume| snapshot filesystem| volume| snapshot

zfs rename [ -f] -p filesystem| volume filesystem| volume

zfs rename -r snapshot snapshot

zfs rename -u [ -p] filesystem filesystem

zfs list [ -r| -d depth][ -H][ -o property[ ,property]...][ -t type[ ,type]...][ -s property]... [ -S property]... filesystem| volume| snapshot

zfs set property= value filesystem| volume| snapshot...

zfs get [ -r| -d depth][ -Hp][ -o all | field[ , field]...][ -t type[ , type]...][ -s source[ , source]...] all | property[ , property]... filesystem| volume| snapshot...

zfs inherit [ -rS] property filesystem| volume| snapshot...

zfs upgrade [ -v]

zfs upgrade [ -r][ -V version] -a | filesystem

zfs userspace [ -Hinp][ -o field[ , field]...][ -s field]... [ -S field]... [ -t type[ , type]...] filesystem| snapshot

zfs groupspace [ -Hinp][ -o field[ ,field]...][ -s field]... [ -S field]... [ -t type[ , type]...] filesystem| snapshot

zfs mount

zfs mount [ -vO][ -o property[ , property]...] -a | filesystem

zfs unmount [ -f] -a | filesystem| mountpoint

zfs share -a | filesystem

zfs unshare -a | filesystem| mountpoint

zfs send [ -DnPpRv][ -i snapshot | -I snapshot] snapshot

zfs receive [ -vnFu] filesystem| volume| snapshot

zfs receive [ -vnFu][ -d | -e] filesystem

zfs allow filesystem| volume

zfs allow [ -ldug] user| group[ , user| group]... perm| @setname[ , perm| @setname]... filesystem| volume

zfs allow [ -ld] -e| everyone perm| @setname[ , perm| @setname]... filesystem| volume

zfs allow -c perm| @setname[ , perm| @setname]... filesystem| volume

zfs allow -s @setname perm| @setname[ , perm| @setname]... filesystem| volume

zfs unallow [ -rldug] user| group[ , user| group]... [ perm| @setname[ , perm| @setname]...] filesystem| volume

zfs unallow [ -rld] -e| everyone [ perm| @setname[ , perm| @setname]...] filesystem| volume

zfs unallow [ -r] -c [ perm| @setname[ , perm| @setname]...] filesystem| volume

zfs unallow [ -r] -s @setname [ perm| @setname[ , perm| @setname]...] filesystem| volume

zfs hold [ -r] tag snapshot...

zfs holds [ -r] snapshot...

zfs release [ -r] tag snapshot...

zfs diff [ -FHt] snapshot [ snapshot| filesystem]

zfs jail jailid| jailname filesystem

zfs unjail jailid| jailname filesystem

解説

zfs コマンドは、 zpool(8) で説明されるような、 ZFS 記憶域プール内で ZFS データセットを設定します。データセットは、 ZFS 名前空間内のユニークなパスによって識別されます。例えば:

pool/{filesystem,volume,snapshot}

ここで、データセット名の最大の長さは、 MAXNAMELEN (256 バイト) です。

データセットは、次の 1 つを指定できます:

file system
タイプ filesystem の ZFS データセットを標準のシステム名前空間内にマウントし、他のファイルシステムのように振る舞うことができます。 ZFS ファイルシステムは、 POSIX 準拠となるように設計されていますが、ある場合に準拠を妨げる問題が存在していることが知られています。標準の適合に依存するアプリケーションは、ファイルシステムの空き空間をチェックするとき、標準的でない振る舞いのため失敗するかもしれません。
volume
論理的なボリュームは、生 (raw) またはブロックデバイスとしてエクスポートされます。このデータセットのタイプは、特別な状況の下でのみ使用されるべきです。ファイルシステムは、通常ほとんどの環境で使用されます。
snapshot
時間内に与えられたポイントのファイルシステムまたはボリュームの読み込み専用バージョン。それは、 filesystem@name または volume@name として指定されます。

ZFS ファイルシステム階層構造

ZFS 記憶域プールは、データセットのための空間を提供するデバイスの論理的な収集です。また、記憶域プールは、 ZFS ファイルシステム階層構造のルートです。

マウントとアンマウント、スナップショットを取る、とプロパティ (特性) を設定するような、ファイルシステムとしてプールのルートにアクセスすることができます。しかしながら、物理的な記憶域の特性は、 zpool(8) コマンドによって管理されます。

プールの作成と管理に関する詳しい情報については、 zpool(8) を参照してください。

スナップショット

スナップショットは、ファイルシステムまたはボリュームの読み込み専用のコピーです。スナップショットをとても素早く作成することができ、最初は、プール内の追加された空間を消費しません。アクティブなデータセット中のデータが変更されるときに、スナップショットは、アクティブなデータセットで共有される別のものより多くのデータを消費します。

スナップショットは、任意の名前を持つことができます。ボリュームのスナップショットのクローンを作るか、またはロールバックすることができますが、独立にアクセスすることはできません。

ファイルシステムのルートの .zfs/snapshot ディレクトリの下でファイルシステムのスナップショットをアクセスすることができます。スナップショットは、自動的に要求に応じてマウントされ、一定の間隔ごとにアンマウントされます。 snapdir プロパティによって、 .zfs ディレクトリの可視性を制御することができます。

クローン

クローンは、初期の内容が、別のデータセットと同じである書き込み可能なボリュームまたはファイルシステムです。スナップショットのように、クローンを作成することは、ほとんど瞬時であり、初めは何も追加空間を消費しません。

スナップショットからクローンのみを作成することができます。スナップショットがクローン化されるとき、親子の間の暗黙の依存を作成します。たとえ、クローンが、データセット階層構造のほかで作成されても、クローンが存在している限り、オリジナルのスナップショットを破壊することはできません。 origin プロパティは、この依存を公表しし、存在しているなら、 destroy コマンドは、そのような依存をリストします。

promote サブコマンドを使用することによって、クローンの親子の依存関係を逆にすることができます。これによって、"origin"ファイルシステムは、クローンが作成されるファイルシステムを破壊することが可能となる、指定されたファイルシステムのクローンとなります。

マウントポイント

ZFS ファイルシステムを作成することは、簡単な操作であるので、システム毎のファイルシステムの数は、おそらく非常に多くなります。これに対処するために、 ZFS は、自動的に /etc/fstab ファイルを編集する必要なしにファイルシステムをマウントして、アンマウントする管理を行います。すべての自動的に管理されたファイルシステムは、ブート時に ZFS によってマウントされます。

デフォルトで、ファイルシステムは、 /path の下にマウントされ、ここで、 path は、 ZFS 名前空間のファイルシステムの名前です。ディレクトリは、必要に応じて作成され、破壊されます。

また、ファイルシステムは、 mountpoint プロパティのマウントポイント設定を持つことができます。このディレクトリは、必要に応じて作成され、 ZFS は、 ( /etc/fstab を編集しないで) “ zfs mount -a”コマンドが呼び出されるとき、ファイルシステムを自動的にマウントします。 mountpoint プロパティを継承することができるので、 pool/home/home のマウントポイントがあるなら、 pool/home/user は、自動的に /home/user のマウントポイントを継承します。

none のファイルシステム mountpoint プロパティは、ファイルシステムがマウントされることを防ぎます。

また、必要であるなら、伝統的なツール ( mount(8), umount(8), fstab(5)) で ZFS ファイルシステムを管理することができます。ファイルシステムのマウントポイントが legacy に設定されるなら、 ZFS は、ファイルシステムを管理しようとしません、管理者は、ファイルシステムをマウントしてアンマウントする責任があります。

jail

zfs jail”サブコマンドを使用することによって、 ZFS データセットを jail にアタッチすることができます。 1 つの jail にデータセットを、そして同じデータセットの子どもを別の jail にアタッチすることはできません。 jail の内部からのデータセットの管理を許可するためには、 jailed プロパティが設定されていなければなりません、そして jail は、 /dev/zfs デバイスにアクセスする必要があります。 jail の内部から quota プロパティを変更することはできません。 jail の内部から ZFS データセットをマウントすることを可能にする方法に関する情報については、 jail(8) を参照してください。

zfs unjail”サブコマンドを使用して、 ZFS データセットを jail からデタッチすることができます。

データセットが jail にアタッチされ、jailed プロパティが設定された後、 jail 管理者は、マウントポイントを受け付けできない値に設定したかもしれないので、 jail 化されたファイルシステムを jail の外側でマウントすることはできません。

細分化 (deduplication)

細分化は、格納されたデータの合計量を縮小するブロックレベルで重複する (redundant) データを削除するプロセスです。ファイルシステムが dedup プロパティを有効にするなら、重複データブロックは、同期して削除されます。結果は、ユニークなデータだけが格納され、共通構成要素が、ファイル中に共有されることです。

固有のプロパティ (特性)

プロパティは、2 つのタイプ、固有のプロパティとユーザ定義 (または "ユーザ") プロパティに分割されます。固有のプロパティは、内部の統計値、または ZFS の振る舞いの制御のいずれかをエクスポートします。さらに、固有のプロパティは、編集可能か、または、読み込み専用のいずれかです。ユーザのプロパティは、 ZFS の振る舞いに効果はありませんが、利用者は、利用者の環境で意味がある方法でデータセットに注釈を付けるために、それらを使用することができます。ユーザプロパティに関する詳細については、下記の“ ユーザのプロパティ”のセクションを参照してください。

あらゆるデータセットには、様々な振る舞いの制御と同様に、データセットに関する統計値をエクスポートする 1 組のプロパティがあります。プロパティは、子供によって上書きされないなら、親から継承されます。いくつかのプロパティは、データセット (ファイルシステム、ボリュームまたはスナップショット) の特定のタイプのみに適用されます。

人間に読み込み可能な接尾辞 (例えば、 k, KB, M, Gb その他、ゼッタバイト (zettabyte) のための Z まで) を使用して数値プロパティの値を指定することができます。次は、すべて有効な (で等しい) 仕様です:

1536M, 1.5g, 1.50GB

非数値のプロパティの値は、大文字と小文字を区別し、 mountpoint, sharenfssharesmb を除いて、小文字でなければなりません。

次の固有のプロパティは、データセットに関する読み込み専用の統計から成ります。これらのプロパティを設定することも継承することもできません。固有のプロパティは、ほかで言及されないなら、すべてのデータセットタイプに適用されます。

available
データセットとそのすべての子供に利用可能な空間の合計は、プールに他の活動がないことを仮定します。空間がプール内で共有されるので、プール内の物理的なプールサイズ、クォータ、予約、または他のデータセットを含んで、いくつかのファクタによって利用可能性を制限することができます。

また、短いカラム名、 avail によって、このプロパティを参照することができます。

compressratio
スナップショットでないものについて、マルチプライア (multiplier) として表現された、このデータセットの 使用された 空間のために達成された圧縮比。 使用された プロパティは、子孫のデータセットを含み、クローンのために、オリジナルのスナップショットで共有された空間を含んでいません。スナップショットについて、 compressratio は、 refcompressratio のプロパティと同じです。次を実行することによって、圧縮をオンにすることができます: “ zfs set compression=on dataset”デフォルト値は、 off です。
creation
このデータセットが作成された時間。
clones
スナップショットについて、このプロパティは、このスナップショットのクローンであるファイルシステムまたはボリュームのコンマで区切られたリストです。クローンの origin プロパティは、このスナップショットです。 clones プロパティが空でないなら、 ( -r または -f オプションをつけても) このスナップショットを破壊することはできません。
defer_destroy
このプロパティは、“ zfs destroy -d”コマンドを使用することによって、スナップショットが遅延された破壊のためにマークされたなら、 on です。そうでなければ、プロパティは、 off です。
logicalreferenced
このデータセットによって“論理的に”アクセス可能な空間の量。 referenced プロパティを参照してください。論理的な空間は、アプリケーションが理解するデータの量に近い量を与えて、 compressioncopies プロパティの影響を無視します。しかしながら、メタデータによって消費される空間を含んでいます。

また、その短いカラム名 lrefer によって、このプロパティを参照することができます。

logicalused
このデータセットとそのすべての子孫によって“論理的に”消費される空間の量。 used プロパティを参照してください。論理的な空間は、アプリケーションが理解するデータの量に近い量を与えて、 compressioncopies プロパティの影響を無視します。

また、その短いカラム名 lused によって、このプロパティを参照することができます。

mounted
ファイルシステムに関して、ファイルシステムが現在マウントされているかどうかを示します。このプロパティは、 yes または no を指定できます。
origin
クローン化されたファイルシステムまたはボリュームに関して、クローンが作成されたスナップショット。また、 clones プロパティを参照してください。
referenced
プール中の他のデータセットと共有されるかどうかわからない、このデータセットによってアクセス可能なデータの量。スナップショットまたはクローンが作成されるとき、内容が同じであるので、作成されたファイルシステムまたはスナップショットと同じ空間の合計を最初に参照します。

また、短いカラム名、 refer によって、このプロパティを参照することができます。

refcompressratio
圧縮比は、マルチプライア (multiplier) として表現された、このデータセットの 参照された 空間のために達成しました。また、 compressratio プロパティを参照してください。
type
データセットのタイプは、次の通りです: filesystem, volume, または snapshot
used
このデータセットとそのすべての子孫によって消費された空間の合計。これは、このデータセットのクォータと予約に対してチェックされる値です。使用される空間は、このデータセットの予約を含んでいませんが、あらゆる子孫のデータセットの予約を考慮に入れます。このデータセットが繰り返し破壊されるなら、解放される空間の合計と同様に、データセットが親から消費する空間の合計は、使用される空間と予約より大きくなります。

スナップショット (“ スナップショット”セクションを参照) が作成されるとき、それらの空間は、スナップショットとファイルシステムの間と、ことによると以前のスナップショットと最初に共有されます。ファイルシステムが変更するのに従って、以前に共有された空間は、スナップショットをユニークにし、使用されるスナップショットの空間でカウントされます。さらに、スナップショットを削除すると、他のスナップショット (によって使用される) ユニークな空間の合計を増加することができます。

使用され、利用可能な、または参照される空間の合計は、保留中 (pending) の変更を考慮に入れません。一般的に、保留中の変更は、数秒以内に計算されます。 fsync(2) または O_SYNC を使用するディスクの変更を遂行することは、空間の使用量の情報が直ちに更新されることを保証する必要はありません。

usedby*
usedby* プロパティは、 used プロパティを、その空間が使用される様々な原因に分解します。特に、 used = usedbysnapshots + usedbydataset + usedbychildren + usedbyrefreservation。これらのプロパティは、 ZFS プールのバージョン 13 のプール以降に作成されたデータセットのみに利用可能です。
usedbysnapshots
このデータセットのスナップショットによって消費された空間の合計。特に、このデータセットのスナップショットのすべてが破壊されるなら、解放される空間の合計です。これは、複数のスナップショットによって空間を共有できるので、単にスナップの used プロパティの合計でないことに注意してください。
usedbydataset
(あらゆる refreservation を削除し、必要なスナップショットまたは子孫を破壊した後に) データセットが破壊されたなら、解放される、このデータセット自体によって使用される空間の合計。
usedbychildren
すべてのデータセットの子供が破壊されたなら、解放されるこのデータセットの子供によって使用される空間の合計。
usedbyrefreservation
refreservation が削除されたなら、解放される、このデータセットで refreservation セットによって使用された空間の合計。
userused@ user
このデータセットで指定されたユーザによって消費された空間の合計。空間は、“ ls -l”によって表示されるように、それぞれのファイルの所有者にチャージ (charge) されます。チャージされた空間の合計は、“ du”と“ ls -s”によって表示されます。詳しい情報については、“ zfs userspace”サブコマンドを参照してください。

非特権ユーザは、それら自身の空間の使用 (usage) のみアクセスできます。ルートユーザ、または“ zfs allow”で userused 特権が与えられたユーザは、あらゆる人の使用 (usage) にアクセスできます。

userused@... プロパティは、“ zfs get all”によって表示されません。ユーザの名前は、次の形式の 1 つを使用して、 @ シンボルの後に追加されなければなりません:

  • POSIX 名 (例えば、 joe)
  • POSIX 数値 ID (例えば、 1001)
userrefs
このプロパティは、このスナップショットでユーザ holds の数に設定されます。ユーザ holds は、“ zfs hold”コマンドを使用することによって設定されます。
groupused@ group
このデータセットで指定されたグループによって消費された空間の合計。“ ls -l”によって表示されるように、空間は、それぞれのファイルの所有者にチャージ (charge) されます。詳しい情報については、 userused@ user プロパティを参照してください。

非特権ユーザは、それら自体のグループの空間の使用 (usage) にのみアクセスできます。ルートユーザ、または“ zfs allow”で groupused 特権が与えられたユーザは、すべてのグループの使用 (usage) にアクセスできます。

volblocksize= blocksize
ボリュームに対して、ボリュームのブロックサイズを指定します。いったんボリュームが書き込まれていると、 blocksize を変更することはできないので、ボリュームの作成時間に設定されるべきです。ボリュームのためのデフォルトの blocksize は、8 キロバイトです。 512 バイトから 128 キロバイトまでのあらゆる 2 の冪乗が有効です。

短いカラム名 volblock によってこのプロパティを参照することもできます。

written
前のスナップショットのときから、このデータセットに書き込まれた、 referenced 空間の量。
written@ snapshot
指定されたスナップショットのときから、このデータセットに書き込まれた referenced 空間の量。これは、このデータセットによって参照される空間ですが、指定されたスナップショットによって参照されません。

snapshot は、短いスナップショット名 (単なる @ の後の部分) として指定されます、その場合に、このデータセットと同じファイルシステム中のスナップショットとして解釈されます。 snapshot は、クローンのためにオリジナルのファイルシステム (またはオリジナルのファイルシステムのオリジナルなど) のスナップショットである、完全なスナップショット名 ( filesystem@snapshot) を指定できます。

ZFS データセットの振る舞いを変更するために、次の固有のプロパティを使用することができます。

aclinherit= discard | noallow | restricted | passthrough | passthrough-x
ファイルとディレクトリが作成されるとき、 ACL エントリがどのように継承されるかを制御します。 discardaclinherit プロパティがあるファイルシステムは、 ACL エントリをなにも継承しません。 noallowaclinherit プロパティ値があるファイルシステムは、"deny"パーミッションを指定する継承可能な ACL エントリだけを継承します。プロパティ値 restricted (デフォルト) は、 ACL エントリが継承されるとき、 write_aclwrite_owner パーミッションを削除します。 passthroughaclinherit プロパティ値があるファイルシステムは、それらが継承されるとき、 ACL エントリに行われるあらゆる変更なしですべての継承可能な ACL エントリを継承します。 passthrough-xaclinherit プロパティ値があるファイルシステムには、ファイルの作成モードが実行ビットも要求される場合にだけ実行パーミッションを継承する owner@, group@everyone@ ACE を除いて、 passthrough と同じ意味があります。

プロパティ値が passthrough に設定されるとき、ファイルは、継承可能な ACE によって決定されるモードで作成されます。モードに影響する継承可能な ACE が存在していないなら、モードは、アプリケーションから要求されたモードに従って設定されます。

aclmode= discard | groupmask | passthrough | restricted
chmod(2) の間に、どのように ACL が変更されるか制御します。 discard (デフォルト) の aclmode プロパティがあるファイルシステムは、ファイルのモードを表さないすべての ACL エントリを削除します。 groupmaskaclmode のプロパティは、それらが chmod(2) によって指定されたグループパーミッションより大きくないように、 ACL で見つけられたすべての ALLOW エントリで許可されたパーミッションを削減します。 passthroughaclmode プロパティがあるファイルシステムは、ファイルまたはディレクトリの新しいモードを表現するために、必要な ACL エントリを生成するか、または更新する以外の ACL に行われる変更がないことを示します。 restrictedaclmode プロパティによって、 chmod(2) 操作は、エントリをモードによって表現することができない、重要な (non-trivial) ACL が、あるあらゆるファイルまたはディレクトリで使用されるとき、エラーを返します。 chmod(2) は、それらが同等の ACL エントリがないのような、ファイルまたはディレクトリでセットユーザ ID (set user ID)、セットグループ ID (set group ID) またはスティッキビットを変更するように要求されます。重要な ACL があるファイルまたはディレクトリで chmod(2) を使用するために、 aclmoderestricted に設定されるとき、現在のモードを表現しないすべての ACL エントリを最初に削除しなければなりません。
atime= on | off
ファイルが読み込まれるとき、ファイルのアクセス時刻を更新するかどうかを制御します。このプロパティをオフにすることは、ファイルが読み込まれるとき、書き込みトラフィック生成することを避け、大幅な性能向上をもたらすことができますが、メーラ (mailer) と他の同様のユーティリティを混乱させるかもしれません。デフォルト値は、 on です。
canmount= on | off | noauto
このプロパティが off に設定されるなら、ファイルシステムは、マウントすることができず、“ zfs mount -a”によって無視されます。このプロパティを off 設定することは、データセットには、継承することができる、通常の mountpoint プロパティがまだあることを除いて、 mountpoint プロパティを none に設定することと同様です。このプロパティを off 設定することによって、データセットをプロパティを継承するための唯一メカニズムとして使用することができます。 canmount= off を設定する 1 つの例は、両方のデータセットの子供が同じディレクトリに現れることができように、同じ mountpoint がある 2 つのデータセットがあることですが、異なっで継承される特性 (characteristic) があるかもしれません。

noauto 値が設定されるとき、明白にデータセットをマウントして、アンマウントすることだけができます。データセットは、データセットが作成されるか、またはインポートされるとき、自動的にマウントされませんが、“ zfs mount -a”コマンドによってマウントされず、または“ zfs umount -a”コマンドによってアンマウントされることもありません。

このプロパティは、継承されません。

checksum= on | off | fletcher2 | fletcher4 | sha256 | noparity
データの整合性を検証するために使用されるチェックサムを制御します。デフォルト値は、自動的に適切なアルゴリズム (現在、 fletcher4 ですが、将来のリリースで変更されるかもしれません) を選択する on です。値 off は、ユーザデータに関して整合性のチェックを無効にします。値 noparity は、整合性を無効にするだけでなく、ユーザデータのためのの保持するパリティも無効にします。この設定は、RAID-Z プールに存在するダンプデバイスによって内部的に使用され、あらゆる他のデータセットによっても使用されるべきではありません。チェックサムを無効にすることは、推奨案では ありません
compression= on | off | lzjb | gzip | gzip- N | zle | lz4
このデータセットのために使用される圧縮アルゴリズムを制御します。 lzjb 圧縮アルゴリズムは、きちんとしたデータ圧縮を提供している間、性能のために最適化されます。圧縮を on に設定することは、 lzjb 圧縮アルゴリズムを使用します。 gzip 圧縮アルゴリズムは、 gzip(1) コマンドと同じ圧縮を使用します。利用者は、値 gzip- N を使用することによって gzip レベルを指定できます。ここで、 N は、1 (最も速い) から 9 (最も良い圧縮比) の整数です。現在 gzip は、 gzip-6 ( gzip(1) のためのデフォルト) と同等です。 zle 圧縮アルゴリズムは、0 (zero) の実行を圧縮します。

lz4 圧縮アルゴリズムは、 lzjb アルゴリズムのための高性能の置き換えです。それは、 lzjb より適度に高い圧縮比率と同様に、著しく速い圧縮と圧縮復元を特色としますが、 lz4_compress 機能を enabled (有効) に設定することでプール上でのみ使用することができます。 ZFS 機能のフラグと lz4_compress 機能の詳細については、 zpool-features(7) を参照してください。

また、短いカラム名、 compress によって、このプロパティを参照することができます。このプロパティを変更すると、新たに書き込まれたデータのみ影響されます。

copies= 1 | 2 | 3
このデータセットのために格納されるデータのコピーの数を制御します。これらのコピーは、プール、例えば、ミラーリングまたは RAID-Z によって提供される任意の冗長性に加えます。コピーは、できれば、異なったディスクに格納されます。複数のコピーによって使用される空間は、関連するファイルとデータセット、 used プロパティの変更とクォータと予約に不利に作用するように変更されます。

このプロパティを変更することは、新たに書き込まれたデータにのみ影響されます。したがって、 -o copies=N オプションを使用することによって、ファイルシステム作成時刻に、このプロパティを設定します。

dedup= on | off | verify | sha256[ ,verify]
データセットのための細分化 (deduplication) を設定します。デフォルト値は、 off です。デフォルト細分化のチェックサムは、 sha256 (これは、将来変更されるかもしれません) です。 dedup が有効にされるとき、ここで定義されたチェックサムは、 checksum プロパティを上書きします。値に verify に設定すると、 sha256,verify に設定するのと同じ効果があります。

verify に設定するなら、 ZFS は、ブロック内容が同一であることを確かめるために同じ署名がある 2 つのブロックの場合に、バイト毎 (byte-to-byte) の比較を行います。

devices= on | off
devices プロパティは、現在 FreeBSD でサポートされていません。
exec= on | off
このファイルシステム内からプロセスを実行できるかどうかを制御します。デフォルト値は、 on です。
mlslabel= label | none
mlslabel プロパティは、現在 FreeBSD でサポートされていません。
mountpoint= path | none | legacy
このファイルシステムに使用するマウントポイントを制御します。このプロパティがどのように使用されているかに関する詳細については、“ マウントポイント”セクションを参照してください。

mountpoint プロパティがファイルシステムのために変更されるとき、ファイルシステムとマウントポイントを継承するあらゆる子供は、アンマウントされます。新しい値が legacy であるなら、それらは、アンマウントされたままで残ります。そうでなければ、プロパティが以前に legacy または none であったか、またはプロパティが変更される前にそれらがマウントされているなら、それらは、新しい位置に自動的に再マウントされます。さらに、任意の共有ファイルシステムは、共有を解除され、新しい位置で共有されます。

nbmand= on | off
nbmand プロパティは、現在 FreeBSD でサポートされていません。
primarycache= all | none | metadata
主要なキャッシュ (ARC) でキャッシュされるものを制御します。このプロパティが all に設定されるなら、ユーザデータとメタデータの両方がキャッシュされます。このプロパティが none に設定されるなら、ユーザデータもメタデータもキャッシュされません。このプロパティが metadata に設定されるなら、メタデータだけがキャッシュされます。デフォルト値は、 all です。
quota= size | none
データセットとその子孫が消費できる空間の合計を制限します。このプロパティは、使用される空間の合計で強固な制限を強制します。これは、ファイルシステムとスナップショットを含む子孫によって消費されたすべての空間を含んでいます。既にクォータがあるデータセットの子孫でクォータを設定することは、先祖のクォータを上書きしませんが、むしろ追加の制限を強要します。

暗黙のクォータとして動作する volsize プロパティとして、ボリュームでクォータを設定することはできません。

userquota@ user= size | none
指定されたユーザによって消費された空間の合計の制限します。 refquota プロパティに似ている、 userquota 空間の計算は、スナップショットとクローンのような、子孫のデータセットによって使用される空間を含んでいません。ユーザ空間の消費は、 userspace@ user プロパティによって識別されます。

ユーザのクォータの強制は、数秒遅延されるかもしれません。この遅延は、ユーザが、それらが、クォータを越え、 EDQUOT エラーメッセージで追加の書き込みを拒否し始めるシステム通知の前に、それらのクォータを超えるかもしれないことを意味します。詳しい情報については、“ zfs userspace”サブコマンドを参照してください。

非特権ユーザは、それら自体のグループの空間の使用法にのみアクセスできます。ルートユーザ、または“ zfs allow”で userquota 特権が与えられたユーザは、あらゆる人のクォータ (quota) を取得して設定できます。

このプロパティは、ボリューム上で、バージョン 4 の前のファイルシステム上で、または、バージョン 15 の前のプール上で利用可能ではありません。 userquota@... プロパティは、“ zfs get all”によって表示されません。ユーザの名前は、次の形式の 1 つを使用して、 @ シンボルの後に追加されなければなりません:

  • POSIX name (例えば、 joe)
  • POSIX 数値 ID (例えば、 1001)
groupquota@ group= size | none
指定されたグループによって消費された空間の合計を制限する。グループ空間の消費は、 userquota@ user プロパティによって識別されます。

非特権ユーザは、それら自体のグループの空間の使用法にのみアクセスできます。ルートユーザ、または“ zfs allow”で groupquota 特権が与えられたユーザは、すべてのグループのクォータ (quota) を取得して設定できます。

readonly= on | off
このデータセットを変更できるかどうかを制御します。デフォルト値は、 off です。
recordsize= size
ファイルシステムのファイルに対して推奨されているブロックサイズを指定します。このプロパティは、固定サイズのレコードのファイルをアクセスするデータベースワークロード (作業負荷) で使用するように単に設計されています。 ZFS は、典型的なアクセスパターンのために最適化された内部のアルゴリズムにしたがって自動的にブロックサイズを調整します。

非常に大きなファイルを作成するが、小さくランダムなチャンクでそれらをアクセスするデータベースに関して、これらのアルゴリズムは、準最適であるかもしれません。データベースのレコードサイズ以上の recordsize を指定することは、著しい性能の向上をもたらすことができます。汎用のファイルシステムのためにこのプロパティを使用することは、強く失望させられ、性能に悪影響を与えるかもしれません。

指定されたサイズは、512 キロバイト以上で 128 キロバイト以下の 2 の冪乗でなければなりません。

ファイルシステムの recordsize を変更することは、その後作成されたファイルにのみ影響します。既存のファイルは、影響されません。

また、短いカラム名、 recsize によって、このプロパティを参照することができます。

refquota= size | none
データセットが消費できる空間の合計を制限します。このプロパティは、使用される空間の合計で強固な制限を強制します。この強固な制限は、ファイルシステムとスナップショットを含む子孫によって使用される空間を含んでいません。
refreservation= size | none
その子孫を含まないデータセットに保証された最小の空間の合計。使用される空間の合計が、この値を下回るとき、データセットは、まるで refreservation によって指定された空間の合計を手に入れているかのように扱われます。 refreservation 予約は、使用される親のデータセットの空間の割合を占め、親のデータセットのクォータと予約に逆らってカウントします。

refreservation が設定されているなら、スナップショットは、データセットの現在の多数の "referenced"バイトを収容するために、この予約の外に十分な空きプール空間がある場合のみ許可されます。

また、短いカラム名、 refreserv によって、このプロパティを参照することができます。

reservation= size | none
データセットとその子孫に保証された最小の空間の合計。使用される空間の合計が、この値を下回るとき、データセットは、まるで予約によって指定された空間の合計を手に入れているかのように扱われます。予約は、使用される親のデータセットの空間の割合を占め、親のデータセットのクォータと予約に逆らってカウントします。

また、短いカラム名、 reserv によって、このプロパティを参照することができます。

secondarycache= all | none | metadata
2 次キャッシュ (L2ARC) でキャッシュされるものを制御します。このプロパティが all に設定されるなら、ユーザデータとメタデータの両方がキャッシュされます。このプロパティが none に設定されるなら、ユーザデータもメタデータもキャッシュされません。このプロパティが metadata に設定されるなら、メタデータだけがキャッシュされます。デフォルト値は、 all です。
setuid= on | off
ファイルシステムのためにセット-UID ビットが尊重されるかどうかを制御します。デフォルト値は、 on です。
sharesmb= on | off | opts
sharesmb プロパティは、現在 FreeBSD で効果がありません。
sharenfs= on | off | opts
ファイルシステムが NFS を通して共有されるかどうか、どのようなオプションが使用されるかを制御します。 offsharenfs プロパティがあるファイルシステムは、 exports(5) を通して伝統的な方法で管理されます。そうでなければ、ファイルシステムは、“ zfs share”と“ zfs unshare”コマンドで自動的に共有され、非共有されます。プロパティが on に設定されるなら、 NFS エクスポートオプションは、使用されません。そうでなければ、 NFS エクスポートオプションは、このプロパティの内容と同等です。エクスポートオプションは、コンマで区切られます。有効なオプションのリストについては、 exports(5) を参照してください。

sharenfs プロパティがデータセットのために変更されるとき、 mountd(8) デーモンが再ロードされます。

logbias= latency | throughput
このデータセットの同期要求の取り扱いに関して ZFS にヒントを提供します。 logbiaslatency (デフォルト) に設定されるなら、 ZFS は、低い待ち時間で要求を扱う (設定されるなら) プールログデバイスを使用します。 logbiasthroughput に設定されるなら、 ZFS は、設定されたプールのログデバイスを使用しません。 ZFS は、グローバルなプールのスループットと効率的なリソースの使用のための同期操作を代わりに最適化します。
snapdir= hidden | visible
.zfs ディレクトリが、“ スナップショット”セクションで議論されるように、ファイルシステムのルートで隠されるか、または目に見えるかどうかを制御します。デフォルト値は、 hidden です。
sync= standard | always | disabled
同期要求 (例えば、 fsync(2), O_DSYNC の振る舞いを制御します。このプロパティは、次の値を受け付けます:
standard
これは、すべての同期要求が安定した記憶装置に書き込まれ、すべてのデータがデバイスコントローラによってキャッシュされないことを保証するためにフラッシュされることを保証する、POSIX に明記された振る舞いです (これは、デフォルトです)
always
すべてのファイルシステムのトランザクションは、それらのシステムコールが返る前に、書き込まれ、スラッシュされます。これには、大きな性能のペナルティがあります。
disabled
同期要求を無効にします。ファイルシステムのトランザクションは、単に安定した記憶装置に周期的に書き込まれます。このオプションは、最も高い性能を与えます。しかしながら、 ZFS がデータベースまたは NFS のようなアプリケーションの同期トランザクションの要求を無視するので、たいへん危険です。管理者は、危険が理解されるときのみ、このオプションを使用するべきです。
volsize= size
ボリュームに関して、ボリュームの論理的なサイズを指定します。デフォルトで、ボリュームを作成することは、等しいサイズの予約が確立されます。 9 以上のバージョン番号がある記憶域プールに関して、 refreservation が代わりに設定されます。 volsize へのあらゆる変更は、予約 (または、 refreservation) への同様の変更に反映されます。 volblocksize の倍数のみを volsize に設定することができ、0 には設定できません。

予約は、消費者に対して予期していなかった振る舞いを防ぐためにボリュームの論理的なサイズと等しく保持されます。予約がなければ、ボリュームがどのように使用されているかによって、ボリュームは、空間を使い果たす、未定義の振る舞いまたはデータの不正をもたらすかもしれません。また、これらの効果は、それが使用中である間 (特にサイズを縮めるとき) ボリュームサイズを変更するとき、生じるかもしれません。ボリュームサイズを調整するとき、細心の注意が払われるべきです。

推薦されませんが、“ zfs create -V”コマンドに -s オプションを指定するか、またはボリュームが作成された後に予約を変更することによって、"sparse volume" (またの名を "thin provisioning" (薄い供給)) を作成することができます。 "sparse volume"は、予約が、ボリュームサイズより少ないボリュームです。その結果、スパースボリュームに書き込むことは、プールが少ない空間のときに、 ENOSPC で失敗するかもしれません。スパースボリュームにおいて、 volsize を変更することは、予約に反映されません。

vscan= off | on
vscan プロパティは、現在 FreeBSD でサポートされていません。
xattr= off | on
xattr プロパティは、現在 FreeBSD でサポートされていません。
jailed= off | on
データセットが jail の内部から管理されるかどうかを制御します。詳細については、“ jail”セクションを参照してください。デフォルト値は、 off です。

ファイルシステムが作成された後に、次の 3 つのプロパティを変更することができません、したがって、ファイルシステムが作成されるとき、設定されるべきです。プロパティが“ zfs create”または zpool create コマンドで設定されないなら、これらのプロパティは、親のデータセットから継承されます。親のデータセットがこれらの機能がサポートされているより前に作成されたために、これらのプロパティを欠いているなら、新しいファイルシステムには、これらのプロパティのためのデフォルト値があります。

casesensitivity= sensitive | insensitive | mixed
casesensitivity プロパティは、現在 FreeBSD でサポートされていません。
normalization= none | formC | formD | formKC | formKD
2 つのファイル名が比較されるときはいつも、ファイルシステムがファイル名の unicode 正規化を実行するべきであるかどうかと、どの正規化アルゴリズムが使用されるべきであるかを示します。ファイル名は、常に変更せずに格納されて、名前は、あらゆる比較プロセスの一部として正規化されます。このプロパティが none 以外の正しい値に設定されて、 utf8only プロパティが不特定のままにされたなら、 utf8only プロパティは、自動的に on に設定されます。 normalization プロパティのデフォルト値は、 none です。ファイルシステムが作成された後に、このプロパティを変更することはできません。
utf8only= on | off
ファイルシステムが UTF-8 文字コードセットに存在しない文字を含んでいるファイル名を拒否するべきであるかどうかを示します。このプロパティが明白に off に設定されるなら、正規化プロパティは、明白に設定されていないか、または none に設定されているかのいずれかでなければなりません。 utf8only プロパティのためのデフォルト値は、 off です。ファイルシステムが作成された後に、このプロパティを変更することができません。

また、 casesensitivity, normalizationutf8only プロパティは、 ZFS 委譲管理機能を使用することによって非特権ユーザに割り当てることができる新しいパーミッションです。

一時的なマウントポイントのプロパティ (特性)

古いマウントのための mount(8) または通常のファイルシステムのための“ zfs mount”のいずれかを通して、ファイルシステムがマウントされるとき、そのマウントオプションは、そのプロパティに従って設定されます。プロパティとマウントオプションの間の相互関係は、次の通りです:
プロパティ マウントポイント
atime atime/noatime
exec exec/noexec
readonly ro/rw
setuid suid/nosuid

さらに、ディスクに格納されるプロパティに影響しないで、 -o オプションを使用してマウント毎のベースで、これらのオプションを設定することができます。コマンド行で指定された値は、データセットに格納された値を上書きします。これらのプロパティは、“ zfs get”コマンドによって "temporary"として報告されます。プロパティがデータセットがマウントされる間に変更されるなら、新しい設定は、任意の一時的な設定を上書きします。

ユーザプロパティ (特性)

標準の固有のプロパティに加えて、 ZFS は、任意のユーザのプロパティをサポートします。ユーザのプロパティは、 ZFS の振る舞いに効果がありませんが、アプリケーションまたは管理者は、データセット (ファイルシステム、ボリュームとスナップショット) に注釈を付けるためにそれらを使用できます。

ユーザのプロパティの名前は、固有のプロパティからそれらを区別するために、コロン ( :) 文字を含まなければなりません。それらは、小文字、数値、と次の句読点文字を含みます: コロン ( :)、ダッシュ ( -)、ピリオド ( .) と下線 ( _)。予想された規約は、プロパティの名前が module:property のような 2 つの部分に分割されますが、この名前空間は、 ZFS によって強制されません。ユーザプロパティの名前は、多くても 256 文字を指定でき、ダッシュ ( -) で始めることはできません。

ユーザのプロパティのプログラム的な使用を行うとき、2 つの独自に開発されたパッケージが異なる目的のために同じプロパティの名前を使用する変更を削減するために、プロパティの名前の module 構成要素のための逆にされた DNS ドメイン名を使用するためことを強く示唆されます。 com.sun で始まるプロパティは、Sun Microsystems によって使用されるために予約されています。

ユーザのプロパティの値は、任意の文字列であり、常に継承され、決して有効にされません。固有のプロパティとユーザのプロパティの両方を操作するために、プロパティ (“ zfs list”, “ zfs get”, “ zfs set”とその他) で動作するすべてのコマンドを使用することができます。ユーザのプロパティをクリアするために“ zfs inherit”コマンドを使用します。プロパティがあらゆる親のデータセットで定義されるなら、それは、完全に削除されます。プロパティの値は、1024 文字に制限されます。

サブコマンド

状態を変更するすべてのサブコマンドは、それらの元の形式でプールに永続的にログ記録されます。
zfs [ -?]

ヘルプメッセージを表示します。

zfs create [ -pu][ -o property= value]... filesystem

新しい ZFS ファイルシステムを作成します。ファイルシステムは、親から継承された mountpoint プロパティに従って、自動的にマウントされます。

-p
すべての存在しない親のデータセットを作成します。この様に作成されたデータセットは、それらの親から継承された mountpoint プロパティに従って、自動的にマウントされます。 -o オプションを使用してコマンド行で指定されたあらゆるプロパティは、無視されます。ターゲットファイルシステムが既に存在しているなら、操作は、完全に成功します。
-u
新しく作成されたファイルシステムは、マウントされません。
-o property= value
まるでコマンド“ zfs set property= value”がデータセットが作成されると同時に呼び出されるかのように指定されたプロパティを設定します。また、作成時間で任意の編集可能な ZFS のプロパティも設定することができます。複数の -o オプションを指定することができます。同じプロパティが複数の -o オプションで指定されるなら、エラーの結果となります。
zfs create [ -ps][ -b blocksize][ -o property= value]... -V size volume

与えられたサイズのボリュームを作成します。ボリュームは、 /dev/zvol/path のブロックデバイスとしてエクスポートされます。ここで、 path は、 ZFS 名前空間のボリュームの名前です。サイズは、デバイスによってエクスポートされる論理的なサイズを表します。デフォルトで、等しいサイズの予約が作成されます。

ボリュームには、 blocksize にかかわらずのブロックの整数値があることを保証するために、 size は、最も近い 128 キロバイトに自動的に丸められます。

-p
すべての存在しない親のデータセットを作成します。この様に作成されたデータセットは、それらの親から継承された mountpoint プロパティに従って、自動的にマウントされます。 -o オプションを使用してコマンド行で指定されたあらゆるプロパティは、無視されます。ターゲットファイルシステムが既に存在しているなら、操作は、完全に成功します。
-s
予約なしでスパースボリュームを作成します。スパースボリュームに関する詳細については、“ 固有のプロパティ”セクションの volsize を参照してください。
-b blocksize
-o volblocksize= blocksize と同等です。このオプションが、 -o volblocksize とともに指定されるなら、結果の振る舞いは、未定義です。
-o property= value
まるで“ zfs set property= value”コマンドがデータセットが作成されると同時に呼び出されるかのように指定されたプロパティを設定します。また、あらゆる編集可能な ZFS のプロパティも作成時間で設定することができます。複数の -o オプションを指定することができます。同じプロパティが複数の -o オプションで指定されるなら、エラーの結果となります。
zfs destroy [ -fnpRrv] filesystem| volume

与えられたデータセットを破壊します。デフォルトで、コマンドは、現在共有される任意のファイルシステムを非共有化して、現在マウントされている任意のファイルシステムをアンマウントし、アクティブな子孫 (子供、またはクローン) があるデータセットを破壊するために拒否します

-r
すべての子供を繰り返し破壊します。
-R
ターゲットの階層構造の外でクローン化されたファイルシステムを含んで、すべての子孫を繰り返し破壊します。
-f
zfs unmount -f”コマンドを使用して任意のファイルシステムを強制的にアンマウントします。このオプションは、ファイルシステム以外、またはアンマウントされたファイルシステムで効果はありません。
-n
予行演習 ("no-op") の削除を行います。データは、削除されません。これは、何のデータが削除されるか決定するために -v または -p フラグとともに役に立ちます。
-p
削除されたデータに関するマシンに解析可能な冗長な情報を印刷します。
-v
削除されたデータに関する冗長な情報を印刷します。

それらがプールの大部分を破壊でき、使用中のマウントされたファイルシステムのための予期しない振る舞いを引き起こすので、 -r または -R オプションのいずれかを適用するとき、最新の注意を払うべきです。

zfs destroy [ -dnpRrv] snapshot[ % snapname][ ,...]

与えられたスナップショットは、 -d オプションのない“ zfs destroy”コマンドが、それを破壊した時かつその時に限り、直ちに破壊されます。そのような即時の破壊は、例えば、スナップショットにはクローンがなく、ユーザによって開始された参照カウントが 0 であったなら、起こるでしょう。

スナップショットが即時の破壊のための資格を得ていないなら、それは、延期された削除のためにマークされます。この状態で、上記にリストされた前提条件の両方が、破壊される点で会うまで、使用可能な目に見えるスナップショットとして存在しています。

スナップショットの包括的な範囲は、パーセント記号 ( %) がある最初のスナップショットと最後のスナップショットを分離することによって指定されます。最初および/または最後のスナップショットは、空白のままとなり、その場合には、ファイルシステムの最も古いか、または最新のスナップショットのの意味を含みます。

同じファイルシステムまたはボリュームの複数のスナップショット (または、スナップショットの範囲) は、スナップショットのコンマで区切られたリストで指定されます。複数のスナップショットを識別するために範囲またはコンマで区切られたリストを使用するとき、 ( @ の後の部分の) スナップショットの短い名前だけが指定されるべきです。

-r
子孫のファイルシステムでこの名前がある状態で、すべてのスナップショットを破壊 (するか、または、延期された削除のためのマーク) します。
-R
クローン、スナップショットと子プロセスを含んで、これらのスナップショットのすべてのクローンを再帰的に破壊します。このフラグが指定されるなら、[ fl d]フラグは、効果がありません。
-n
予行演習 ("no-op") の削除を行います。データは、削除されません。これは、何のデータが削除されるか決定するために -v または -p フラグとともに役に立ちます。
-p
削除されたデータに関するマシンに解析可能な冗長な情報を印刷します。
-v
削除されたデータに関する冗長な情報を印刷します。
-d
スナップショット削除を延期します。

それらがプールの大部分を破壊でき、使用中のマウントされたファイルシステムのための予期しない振る舞いを引き起こすので、 -r または -R オプションのいずれかを適用するとき、最新の注意を払うべきです。

zfs snapshot [ -r][ -o property= value]... filesystem@snapname|volume@snapname filesystem@snapname|volume@snapname...

与えられた名前でスナップショットを作成します。ファイルシステムへの成功したシステムコールによってすべての以前の変更は、スナップショットの一部分です。すべてのスナップショットが時間内に同じ瞬間に対応できるように、スナップショットは、不可分に取られます。詳細については、“ スナップショット”セクションを参照してください。

-r
すべての子孫のデータセットのスナップショットを繰り返し作成します。
-o property= value
指定されたプロパティを設定します。詳細については、“ zfs create”を参照してください。
zfs rollback [ -rRf] snapshot

与えられたデータセットを前のスナップショットにロールバック (後退) します。データセットがロールバックされるとき、スナップショット以後に変更されたすべてのデータは、破棄され、データセットは、スナップショットの時点の状態に戻ります。デフォルトで、コマンドは、最新のもの以外のスナップショットをロールバックすることを拒否します。そうするためには、 -r オプションを指定することによって、すべての中間的なスナップショットを破壊しなければなりません。

-r
指定したものより最近のあらゆるスナップショットを繰り返し破壊します。
-R
それらのスナップショットのあらゆるクローンと同様に最近の任意のスナップショットを繰り返し破壊します。
-f
-R オプションを使用して、破壊されるあらゆるクローンファイルシステムを強制的にアンマウントします。
zfs clone [ -p][ -o property= value]... snapshot filesystem| volume

与えられたスナップショットのクローンを作成します。詳細については、“ クローン”セクションを参照してください。 ZFS 階層構造でターゲットのデータセットをどこでも位置付けすることができ、オリジナルと同じタイプとして作成します。

-p
すべての存在しない親のデータセットを作成します。この様に作成されたデータセットは、それらの親から引き継がれた mountpoint プロパティに従って、自動的にマウントされます。ターゲットファイルシステムまたはボリュームが既に存在しているなら、操作は、完全に成功します。
-o property= value
指定されたプロパティを設定します。詳細については、“ zfs create”を参照してください。
zfs promote clone-filesystem

クローンファイルシステムが、もはや "origin"スナップショットに依存しないように昇格させます。これで、クローンが作成されたファイルシステムを破壊することが可能となります。 origin ファイルシステムが指定されたファイルシステムのクローンになるようにするために、クローンの親と子の依存関係が、逆にされます。

クローン化されたスナップショットと、このスナップショットの前のあらゆるスナップショットは、現在、昇格されたクローンによって所有されます。それらが使用する空間は、origin ファイルシステムから昇格されたクローンまで移動するので、十分な空間は、これらのスナップショットに対応するために利用可能でなければなりません。新しい空間は、この操作によって消費されませんが、空間のアカウントは、調整されます。昇格されたクローンには、それ自体のあらゆる競合しているスナップショットの名前があってはいけません。あらゆる競合しているスナップショットの名前を変更するために rename サブコマンドを使用することができます。

zfs rename [ -f] filesystem| volume| snapshot filesystem| volume| snapshot
zfs rename [ -f] -p filesystem| volume filesystem| volume
zfs rename -u [ -p] filesystem filesystem

与えられたデータセットの名前を変更します。スナップショットを除いて、 ZFS 階層構造の新しいターゲットをどこにでも位置付けできます。親のファイルシステムまたはボリューム中でスナップショットの名前を変更することだけができます。スナップショットの名前を変更するとき、スナップショットの親のファイルシステムは、2 番目の引数の一部として指定される必要はありません。名前が変更されたファイルシステムは、マウントポイントを継承することができます、その場合、それらは、アンマウントされ、新しいマウントポイントに再マウントされます。

-p
すべての存在しない親のデータセットを作成します。この様に作成されたデータセットは、それらの親から継承された mountpoint プロパティに従って、自動的にマウントされます。
-u
名前を変更する間にファイルシステムを再マウントしません。ファイルシステムの mountpoint プロパティが legacy または none 設定されないなら、このオプションが与えられなくても、ファイルシステムは、アンマウントされません。
-f
プロセスでアンマウントされる必要があるあらゆるファイルシステムを強制的にアンマウントします。 -u フラグとともに使用されるなら、このフラグには、効果がありません。
zfs rename -r snapshot snapshot

すべての子孫のデータセットのスナップを繰り返し名前を変更します。スナップは、繰り返し名前を変更できる唯一のデータセットです。

zfs list [ -r| -d depth][ -H][ -o property[ , property]...][ -t type[ , type]...][ -s property]... [ -S property]... filesystem| volume| snapshot...

表の形式で与えられたデータセットのプロパティの情報をリストします。指定されるなら、利用者は、絶対パス名または相対的なパス名によってプロパティの情報をリストすることができます。デフォルトで、すべてのファイルシステムとボリュームが表示されます。スナップショットは、 listsnaps プロパティが on (デフォルトは、 off) であるなら、表示されます。次のフィールド、 name, used, available, referenced, mountpoint が表示されます、

-r
コマンド行のデータセットのあらゆる子供を繰り返し表示します。
-d depth
再帰を depth に制限して、データセットのあらゆる子供を再帰的に表示します。 depth (深さ) 1 は、データセットとその直接の子供だけを表示します。
-H
スクリプトモードを使用します。任意の空白類の代わりに単一のタブによってヘッダと分離されたフィールドを印刷 (表示) しません。
-o property[ , property]...
表示するためにコンマで区切られたプロパティのリスト。プロパティは、次の通りでなければなりません:
  • プロパティの 1 つは、“ 固有のプロパティ”セクションで説明されます。
  • ユーザプロパティ。
  • データセット名を表示する値 name
  • ファイルシステムとボリュームの空間使用率プロパティを表示する値 space。これは、 -o name,avail,used,usedsnap,usedds,usedrefreserv,usedchild -t filesystem,volume 構文を指定するためのショートカットです。
-t type[ , type]...
表示するタイプ (type) のコンマで区切られたリスト、ここで type は、 filesystem, snapshot, volume, または all の 1 です。例えば、 -t snapshot と指定すると、スナップショットだけが表示されます。
-s property
プロパティの値に基づく昇順でカラムによって出力をソートするためのプロパティ。プロパティは、“ プロパティ”セクションで説明されたプロパティの 1 つ、またはデータセット名によってソートされる特有の値 name でなければなりません。複数の -s プロパティオプションを使用して、複数のプロパティを一度に指定することができます。複数の -s オプションは、重要性が減少する順序で左から右にで評価されます。

次は、ソート基準のリストです:

  • 数値の順序で数値タイプのソート。
  • アルファベットの順序で文字列タイプのソート。
  • 指定された順序にかかわらず、行から定数の下端の行のソートのための不適切なタイプ。
  • ソートオプションが指定されないなら、“ zfs list”の既存の振る舞いが、保存されます。
-S property
-s オプションと同じですが、降順でプロパティをソートします。
zfs set property= value filesystem| volume| snapshot

プロパティを各データセットのための与えられた値に設定します。いくつかのプロパティだけを編集することができます。どのようなプロパティを設定できるか、および受け付け可能な値に関する詳細については、"プロパティ"セクションを参照してください。正確な値として、または B, K, M, G, T, P, E, Z (それぞれ、バイト、キロバイト、メガバイト、ギガバイト、テラバイト、ペタバイト、エクサバイト (exabyte) またはゼッタバイト (zettabyte)) の接尾辞をつけて人間に読み込み可能な形式で数値を指定することができます。スナップショットでユーザプロパティを設定することができません。詳細については、“ ユーザプロパティ (特性)”セクションを参照してください。

zfs get [ -r| -d depth][ -Hp][ -o all | field[ , field]...][ -t type[ , type]...][ -s source[ , source]...] all | property[ , property]... filesystem| volume| snapshot...

与えられたデータセットのためのプロパティを表示します。データセットが指定されないなら、コマンドは、システムのすべてのデータセットのためのプロパティを表示します。各プロパティについて、次のカラムが表示されます:

name
データセット名
property
プロパティの名
value
プロパティの値
source
プロパティのソース. local, default, temporary, inherited または none (-) のいずれかを指定できます.

RECEIVED カラムを除いて、すべてのカラムがデフォルトで表示されます。表示するカラムを -o オプションの使用によって指定することができます。このコマンドは、“ 固有のプロパティ”と“ ユーザのプロパティ”セクションで説明されるようにプロパティのコンマで区切られたリストを取ります。

与えられたデータセットのタイプ (ファイルシステム、ボリュームまたはスナップショット) に適用されるすべてのプロパティを表示するために特別の値 all を使用することができます。

-r
あらゆる子供のプロパティを繰り返し表示します。
-d depth
再帰を depth に制限して、データセットのあらゆる子供を再帰的に表示します。 depth (深さ) 1 は、データセットとその直接の子供だけを表示します。
-H
スクリプトによってより簡単に解析された形式で出力を表示します。すべてのヘッダは、省略され、フィールドは、任意の空白の量の代わりに単一のタブによって明白に分離されます。
-p
解析可能な (正確な) 値で数値を表示します。
-o all | field[ , field]...
表示するカラムのコンマで区切られたリスト。サポートされる値は、 name,property,value,received,source です。デフォルト値は、 name,property,value,source です。キーワード all は、すべてのカラムを指定します。
-t type[ , type]...
表示するタイプ (type) のコンマで区切られたリスト、ここで type は、 filesystem, snapshot, volume または all のうちの 1 つです。例えば、 -t snapshot を指定すると、スナップショット (snapshot) のみ表示します。
-s source[ , source]...
表示するソースのコンマで区切られたリスト。このリストのそれら以外のソースから来るそれらのプロパティは、無視されます。各ソースは、次の 1 つでなければなりません: local,default,inherited,temporary,received,none。デフォルト値は、すべてのソースです。
zfs inherit [ -rS] property filesystem| volume| snapshot...

先祖から継承される、指定されたプロパティをクリアします。先祖にプロパティが設定されていないなら、デフォルト値が、使用されます。デフォルト値のリストとプロパティを継承することができる詳細については、“ プロパティ”セクションを参照してください。

-r
すべての子供のために与えられたプロパティを繰り返し継承します。
-S
受信された値があるプロパティについて、この値に戻ります。このフラグは、受信された値がないプロパティに効果はありません。
zfs upgrade [ -v]

最新のバージョンでないファイルシステムのリストを表示します。

-v
現在のソフトウェアによってサポートされた ZFS ファイルシステムのバージョンを表示します。現在の ZFS ファイルシステムのバージョンとすべての前のサポートされたバージョンが、各バージョンで提供される機能の説明とともに表示されます。
zfs upgrade [ -r][ -V version] -a | filesystem

ファイルシステムをディスク上の新しいバージョンにアップグレードします。これがいったん行われると、ファイルシステムは、ソフトウェアの古いバージョンを実行するシステムで、もはやアクセス可能ではありません。ソフトウェアの古いバージョンを実行するシステムで、これらのファイルシステムの新しいスナップショットから生成された“ zfs send”ストリームを、アクセスすることはできません。

一般的に、ファイルシステムのバージョンは、プールのバージョンと独立しています。 zpool upgrade コマンドの情報については、 zpool(8) を参照してください。

ある場合には、ファイルシステムのバージョンとプールのバージョンは、相互に関連があり、ファイルシステムバージョンをアップグレードする前に、プールのバージョンをアップグレードしなければなりません。

-r
指定されたファイルシステムとすべての子孫のファイルシステムをアップグレードします。
-V version
指定された version にアップグレードします。 -V フラグが指定されないなら、このコマンドは、最新のバージョンにアップグレードします。バージョン番号を増加するためだけに、このオプションを使用できます、そしてこのソフトウェアによってサポートされた最新のバージョンまでです。
-a
すべてのインポートされたプールですべてのファイルシステムをアップグレードします。
filesystem
指定されたファイルシステムをアップグレードします。
zfs userspace [ -Hinp][ -o field[ , field]...][ -s field]... [ -S field]... [ -t type[ , type]...] filesystem| snapshot

指定されたファイルシステムまたはスナップショットの各ユーザによって消費された空間とクォータを表示します。これは、 userused@useruserquota@user プロパティに対応しています。

-n
ユーザ/グループ名の代わりに数値 ID を印刷 (表示) します。
-H
ヘッダを印刷 (表示) しないで、タブで区切られた出力を使用します。
-p
正確な (解析可能な) 数値出力を使用します。
-o field[ , field]...
次のセットから指定されたフィールドだけを表示します: type,name,used,quota。デフォルトは、すべてのフィールドを表示することです。
-s field
このフィールドによって出力をソートします。 -s-S フラグは、最初に 1 つのフィールド、次に、別のもので、ソートするために複数の回、指定できます。デフォルトは、 -s type -s name です。
-S field
逆順で、このフィールドをソートします。 -s を参照してください。
-t type[ , type]...
次のセットから指定されたタイプだけを印刷します: all,posixuser,smbuser,posixgroup,smbgroup

デフォルトは、 -t posixuser,smbuser です。

グループタイプを含むようにデフォルトを変更することができます。

-i
SID を POSIX ID に変換します。現在、このフラグは、 FreeBSD で効果がありません。
zfs groupspace [ -Hinp][ -o field[ , field]...][ -s field]... [ -S field]... [ -t type[ , type]...] filesystem| snapshot

指定されたファイルシステムまたはスナップショットの各グループによって消費された空間とクォータを表示します。このサブコマンドは、表示するデフォルトのタイプが -t posixgroup,smbgroup であることを除いて、“ zfs userspace”と同様です。

zfs mount

現在マウントされているすべての ZFS ファイルシステムを表示します。

-f
zfs mount [ -vO][ -o property[ , property]...] -a | filesystem

ZFS ファイルシステムをマウントします。

-v
マウントの進歩状況を報告します。
-O
オーバレイマウントを実行します。オーバレイマウントは、 FreeBSD でサポートされていません。
-o property[ , property]...
マウントの存続期間のために一時的に使用するマウントオプションのオプションのコンマで区切られたリスト。詳細については、“ 一時的なマウントポイントのプロパティ”を参照してください。
-a
すべての利用可能な ZFS ファイルシステムをマウントします。このコマンドは、 /etc/rc.d/zfs によって FreeBSD システムのスタートアップで実行されます。詳細については、 rc.conf(5) の変数 zfs_enable を参照してください。
filesystem
指定されたファイルシステムをマウントします。
zfs unmount [ -f] -a | filesystem| mountpoint

現在マウントされている ZFS ファイルシステムをアンマウントします。

-f
たとえ、それが現在使用中であっても、ファイルシステムを強制的にアンマウントします。
-a
すべての利用可能な ZFS ファイルシステムをアンマウントします。
filesystem | mountpoint
指定されたファイルシステムをアンマウントします。また、システムの ZFS ファイルシステムのマウントポイントへのパスをコマンドに与えることができます。
zfs share -a | filesystem

sharenfs プロパティが設定されている ZFS ファイルシステムを共有します。

-a
sharenfs プロパティが設定されている、すべての ZFS ファイルシステムを共有します。このコマンドは、 /etc/rc.d/zfs によって FreeBSD システムのスタートアップで実行されます。詳細については、 rc.conf(5) の変数 zfs_enable を参照してください。
filesystem
sharenfs プロパティにしたがって指定されたファイルシステムを共有します。ファイルシステムは、 sharenfs プロパティが設定されるとき、共有されます。
zfs unshare -a | filesystem| mountpoint

sharenfs プロパティが設定されている ZFS ファイルシステムの共有を解除します。

-a
sharenfs プロパティが設定されている ZFS ファイルシステムの共有を解除します。このコマンドは、 /etc/rc.d/zfs によって FreeBSD システムのシャットダウンで実行されます。詳細については、 rc.conf(5) の変数 zfs_enable を参照してください。
filesystem | mountpoint
指定されたファイルシステムの共有を解除します。また、システムで共有される ZFS ファイルシステムへのパスをコマンドに与えることができます。
zfs send [ -DnPpRv][ -i snapshot | -I snapshot] snapshot

標準出力に書き込まれる、 ( -i または -I の部分ではない) 最後の snapshot 引数のストリーム表現を作成します。ファイル、または、異なったシステム (例えば、 ssh(1) を使用して) へ出力をリダイレクト (向け直し) することができます。デフォルトで、完全なストリームが生成されます。

-i snapshot
-i snapshot から最後の snapshot までの増加するストリームを生成します。スナップショット名 (例えば、 @ の後の部分) の最後の構成要素として増加するソース ( -i snapshot) を指定でき、最後の snapshot と同じファイルシステムであると仮定されます。

宛先がクローンであるなら、ソースは、完全に指定されなければならない (例えば、 @origin ではなく pool/fs@origin)、元のスナップショットであるかもしれません。

-I snapshot
-I snapshot から最後の snapshot にすべての中間のスナップショットを送るストリームパッケージを生成します。例えば、 -I @a fs@d は、 -i @a fs@b; -i @b fs@c; -i @c fs@d と同様です。増加するのソースのスナップショットは、 -i オプションと同様に指定されます。
-R
指定されたファイルシステムを複製する複製ストリームパッケージと指定されたたスナップショットまで、すべての子孫のファイルシステムを生成します。受信するとき、すべてのプロパティ、スナップショット、子孫のファイルシステム、とクローンは、保持されます。

-i または -I フラグが、 -R フラグと同時に使用されるなら、増加する複製ストリームが生成されます。プロパティの現在の値、現在のスナップショットとファイルシステム名は、ストリームが受信されたとき、設定されます。このストリームが受信されるとき、 -F フラグが指定されているなら、送信側に存在しないスナップショットとファイルシステムは、破壊されます。

-D
複製されない (deduplicated) ストリームを生成します。送信ストリームで複数回送信されているブロックは、一度だけ送信されます。また、受信システムは、複製されない (deduplicated) ストリームを受信するために、この機能もサポートしなければなりません。このフラグをデータセットの dedup プロパティにかかわらず使用することができますが、ファイルシステムが dedup 可能なチェックサム (例えば、 sha256) を使用するなら、実行は、より良くなります。
-p
ストリームのデータセットのプロパティを含めます。このフラグは、 -R が指定されるとき、暗黙に設定されます。また、受信システムは、この機能をサポートしなければなりません。
-n
予行演習 ("no-op") の送信を行います。何も実際の送信データは、生成されません。これは、何のデータが送信されるかを決定するために -v または -P のフラグとともに役に立ちます。
-P
生成されたストリームパッケージに関するマシン解析可能な冗長な情報を印刷します。
-v
生成されたストリームパッケージに関する冗長な情報を印刷 (表示) します。

ストリームの形式は、コミットされています。 ZFS の将来のバージョンでストリームを受信することができます。

zfs receive [ -vnFu] filesystem| volume| snapshot
zfs receive [ -vnFu][ -d | -e] filesystem

内容が標準入力で提供されるストリームで指定されるスナップショットを作成します。完全なストリームが受信されるなら、新しいファイルシステムが、同様に作成されます。ストリームは、デフォルトで、完全なストリームを作成する、“ zfs send”サブコマンドを使用して作成されます。“ zfs receive”に対して、“ zfs recv”を別名として使用することができます。

増加するストリームが受信されるなら、宛先のファイルシステムは、既に存在しなければなりません、そして、最新のスナップショットは、増加するストリームのソースにマッチしなければなりません。 zvol に関して、宛先のデバイスリンクは、 receive 操作の間に zvol にアクセスすることができないことを意味して、破壊されて、再作成されます、

zfs send -R”コマンドを使用することによって生成されるスナップショットの複製パッケージが受信されるとき、送信位置に存在しないあらゆるスナップショットは、“ zfs destroy -d”コマンドを使用することによって破壊されます。

このサブコマンドが引数タイプと -d または -e オプションに依存して作成する、スナップショット (と完全なストリームが受信されるなら、ファイルシステム) の名前。

引数がスナップショット名であるなら、指定された snapshot が作成されます。引数がファイルシステムまたはボリューム名であるなら、送信されたスナップショットと同じ名前があるスナップショットは、指定された filesystem または volume 内に作成されます。 -d または -e オプションが指定されるなら、スナップショット名は、送信されたスナップショットの名前を指定された filesystem に追加することによって決定されます。 -d オプションが指定されるなら、送信されたスナップショットのパスのプール名のほかすべては、追加され (例えば、 b/c@1 は、送信されたスナップショット a/b/c@1 から追加しました) -e オプションが指定されるなら、送信されたスナップショットのパスの後部だけが追加されます (例えば、 c@1 は、送信されたスナップショット a/b/c@1 から追加しました)。 -d の場合には、送信されたスナップショットのパスを複製するために必要なあらゆるファイルシステムは、指定されたファイルシステム内に作成されます。

-d
上記のパラグラフ (文章) で説明されるような新しいスナップショットの名前を決定するために (プール名なしで) 最初の要素なしの完全に送信されたスナップショットのパスを使用します。
-e
上記のパラグラフ (文章) で説明されるような新しいスナップショットの名前を決定するために送信されたスナップショットのパスの最後の要素だけを使用します。
-u
受信されたストリームに関連しているファイルシステムは、マウントされません。
-v
受信された操作を実行するために要求されるストリームと時間に関する冗長な情報を印刷 (表示) します。
-n
実際にストリームを受信しません。受信操作に使用される名前を確認するために -v オプションとともに、これを役に立てることができます。
-F
受信操作を実行する前に最近のスナップショットにファイルシステムを強制的にロールバックします。増加する複製ストリームを受信するなら (例えば、“ zfs send -R -Fi -iI”によって生成されたもの)、送信側に存在しないスナップショットとファイルシステムを破壊します。
zfs allow filesystem| volume

指定されたファイルシステムまたはボリュームに委任されているパーミッションを表示します。詳しい情報については、“ zfs allow”の他の形式を参照してください。

zfs allow [ -ldug] user| group[ , user| group]... perm| @setname[ , perm| @setname]... filesystem| volume
zfs allow [ -ld] -e| everyone perm| @setname[ , perm| @setname]... filesystem| volume

非特権ユーザへファイルシステムのための ZFS の管理パーミッションを委任します。

[ -ug] user| group[ , user| group]...
だれのパーミッションが委任されるかを指定します。コンマで区切られたリストとして複数の実体を指定できます。 -ug オプションのいずれも指定されないなら、引数は、キーワード everyone、次にユーザ名として、そして最後にグループ名として優先的に解釈されます。“everyone”と名前が付けられたユーザまたはグループを指定するには、 -u または -g オプションを使用します。ユーザと同じ名前でグループを指定するには、 -g オプションを使用します。
[ -e| everyone]
パーミッションが“everyone”に委任されるよう指定します。
perm| @setname[ , perm| @setname]...
委任されるパーミッション。複数のパーミッションは、コンマで区切られたリストとして指定されます。パーミッション名は、 ZFS サブコマンドとプロパティ名と同じです。下記のプロパティリストを参照してください。アットマーク ( @) で始まる、プロパティのセット名が、指定されます。詳細については、下記の -s 形式を参照してください。
[ -ld] filesystem| volume
パーミッションがどこへ委任されるかを指定します。 -ld オプションのいずれか、または両方が、指定されないなら、ファイルシステムまたはボリュームとそのすべての子孫にパーミッションは、許可されます。 -l オプションのみが使用されているなら、指定されたファイルシステムのためだけに "locally (局所的に)"許可されます。 -d オプションのみが使用されているなら、子孫のファイルシステムのためだけに許可されます。

一般的に、パーミッションは、 ZFS サブコマンドを使用するか、または ZFS プロパティを変更する能力です。次のパーミッションが、利用可能です:

名前 タイプ 注釈
allow subcommand また、許可されているパーミッションがなければなければなりません
clone subcommand また、元のファイルシステムに 'create' 能力と 'mount' 能力がなければなければなりません
create subcommand また、'mount' 能力がなければなければなりません
destroy subcommand また、'mount' 能力がなければなければなりません
diff subcommand 与えられたオブジェクト番号をデータセット内でのパスの検索と 'zfs diff' に必要なスナップショットを作成する能力を許可します
hold subcommand スナップショットにユーザの hold を加えることを可能にします
mount subcommand ZFS データセットのマウント/アンマウントを可能にします
promote subcommand また、元のファイルシステムに 'mount' 能力と 'promote' 能力がなければなければなりません
receive subcommand また、'mount' 能力と 'create' 能力がなければなければなりません
release subcommand スナップショットを破壊するかもしれないユーザの hold を解放することを可能にします
rename subcommand また、新しい親に 'mount' 能力と 'create' 能力がなければなければなりません
rollback subcommand また、'mount' 能力がなければなければなりません
send subcommand
share subcommand NFS プロトコル上でファイルシステムを共有することを可能にします
snapshot subcommand また、'mount' 能力がなければなければなりません
groupquota other あらゆる groupquota@... プロパティをアクセスを可能にします
groupused other あらゆる groupused@... プロパティの読み込みを可能にします
userprop other あらゆるユーザプロパティの変更を可能にします
userquota other あらゆる userquota@... プロパティのアクセスを可能にします
userused other あらゆる userused@... プロパティの読み込みを可能にします
aclinherit property
aclmode property
atime property
canmount property
casesensitivity property
checksum property
compression property
copies property
dedup property
devices property
exec property
logbias property
jailed property
mlslabel property
mountpoint property
nbmand property
normalization property
primarycache property
quota property
readonly property
recordsize property
refquota property
refreservation property
reservation property
secondarycache property
setuid property
sharenfs property
sharesmb property
snapdir property
sync property
utf8only property
version property
volblocksize property
volsize property
vscan property
xattr property
zfs allow -c perm| @setname[ , perm| @setname]... filesystem| volume

"作成時刻"パーミッションを設定します。これらのパーミッションは、あらゆる新たに作成された子孫のファイルシステムのクリエイタに (局所的に) 付与されます。

zfs allow -s @setname perm| @setname[ , perm| @setname]... filesystem| volume

パーミッションセットにパーミッションを定義するか、または追加します。指定されたファイルシステムとその子孫のために他の“ zfs allow”コマンドによってセットを使用することができます。セットは、動的に評価されるので、セットへの変更は、直ちに反映されます。パーミッションセットは、ZFS ファイルシステムとして同じ名前付け制約に従いますが、名前は、"アットマーク" ( @) で始まらなければならなくて、64 文字未満でなければなりません。

zfs unallow [ -rldug] user| group[ , user| group]... [ perm| @setname[ , perm| @setname]...] filesystem| volume
zfs unallow [ -rld] -e| everyone [ perm| @setname[ , perm| @setname]...] filesystem| volume
zfs unallow [ -r] -c [ perm| @setname[ , perm| @setname]...] filesystem| volume

zfs allow”コマンドで付与されたパーミッションを取り除きます。パーミッションは、明白に拒否されないので、付与された他のパーミッションは、まだ有効です。例えば、パーミッションが先祖によって付与される場合。パーミッションが指定されないなら、指定された user, group または everyone のためのすべてのパーミッションは、削除されます。 everyone を指定すると (または、 -e オプションを使用すると)、すべてのユーザとグループのためのすべてのパーミッションではなく、すべての人 (everyone) に付与されたパーミッションのみを削除します。 -ldugec オプションの説明については、“ zfs allow”コマンドを参照してください。

-r
このファイルシステムとすべての子孫からパーミッションを繰り返し削除します。
zfs unallow [ -r] -s @setname [ perm| @setname[ , perm| @setname]...] filesystem| volume

パーミッションセットからパーミッションを削除します。パーミッションが指定されないなら、すべてのパーミッションは、削除され、その結果、セットを完全に削除します。

zfs hold [ -r] tag snapshot...

tag 引数で指定された単一の参照を指定されたスナップショットまたは複数のスナップショットに追加します。各スナップショットには、それ自体のタグ名前空間があり、タグは、その空間内でユニークでなければなりません。

hold がスナップショットに存在しているなら、“ zfs destroy”コマンドを使用することによって、そのスナップショットを破壊する試みは、 EBUSY を返します。

-r
与えられたタグがある hold がすべての子孫のファイルシステムのスナップショットに再帰的に適用されることを指定します。
zfs holds [ -r] snapshot...

与えられたスナップショットまたは複数のスナップショットのためのすべての存在するユーザ参照をリストします。

-r
指定されたスナップショットで holds をリストすることに加えて、指定された子孫のスナップショットで設定される holds をリストします。
zfs release [ -r] tag snapshot...

指定されたスナップショットまたは複数のスナップショットから tag 引数で指定された単一の参照を削除します。タグは、各スナップショットのために既に存在していなければなりません。

-r
すべての子孫のファイルシステムのスナップショットで、与えられたタグで hold を再帰的に解放します。
zfs diff [ -FHt] snapshot [ snapshot| filesystem]

与えられたファイルシステムのスナップショットと、しばらく経ってからのそのファイルシステムの別のスナップショットまたはファイルシステムの現在の内容の間の差分を表示します。最初のカラムは、変更のタイプを示す文字で、他のカラムは、パス名、 (改名の場合の) 新しいパス名、リンクカウントの変更とオプションのファイルタイプおよび/または変更時間を示します。

変更のタイプは、次の通りです:

- パスが削除されました
+ パスが追加されました
M パスが修正されました
R パスの名前が変更されました
-F
ls(1)-F オプションに似ている方法で、ファイルのタイプの識別を表示します。
B ブロックデバイス
C キャラクタデバイス
F 通常ファイル
/ ディレクトリ
@ シンボリックリンク
= ソケット
> ドア (door) ( FreeBSD でサポートなし)
| 名前付きパイプ ( FreeBSD でサポートなし)
P イベントポート ( FreeBSD でサポートなし)
-H
ヘッダ行と矢印なしで、より多くの解析可能なタブで区切られた出力を与えます。
-t
出力の最初のカラムとしてパスの inode 変更時間を表示します。
zfs jail jailid filesystem

JID jailid によって識別される jail に指定された filesystem をアタッチします。今後は、 jailed プロパティが設定されていたなら、このファイルシステムツリーを jail 内から、管理することができます。この機能を使用するために、jail は、 allow.mountallow.mount.zfs パラメータが 1 に設定され、 enforce_statfs パラメータは、2 より低い値に設定される必要があります。

jail の管理と上記のパラメータの設定の詳細については、 jail(8) を参照してください。

zfs unjail jailid filesystem

JID jailid によって識別される jail から指定された filesystem をデタッチします。

終了ステータス

次の終了値が返されます:
0
成功して終了。
1
エラーが発生しました。
2
無効のコマンド行のオプションが指定されました。

使用例

使用例 1 ZFS ファイルシステム階層構造を作成する

次のコマンドは、 pool/home と名前がつけられたファイルシステムと pool/home/bob と名前がつけられたファイルシステムを作成します。マウントポイント /home は、親のファイルシステムのために設定され、子供のファイルシステムによって自動的に継承されます。

# zfs create pool/home 
# zfs set mountpoint=/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 です。プールプロパティの詳しい情報については、 zpool(8) を参照してください。

# zfs list 
   NAME                      USED  AVAIL  REFER  MOUNTPOINT 
   pool                      450K   457G    18K  /pool 
   pool/home                 315K   457G    21K  /home 
   pool/home/anne             18K   457G    18K  /home/anne 
   pool/home/bob             276K   457G   276K  /home/bob
使用例 6 ZFS ファイルシステムでクォータ (quota) を設定する

次のコマンドは、 pool/home/bob のために 50 ギガバイトのクォータをを設定します。

# zfs set quota=50G pool/home/bob
使用例 7 ZFS のプロパティをリストする

次のコマンドは、 pool/home/bob のためのすべてのプロパティをリストします。

# zfs get all pool/home/bob 
NAME           PROPERTY              VALUE                  SOURCE 
pool/home/bob  type                  filesystem             - 
pool/home/bob  creation              Tue Jul 21 15:53 2009  - 
pool/home/bob  used                  21K                    - 
pool/home/bob  available             20.0G                  - 
pool/home/bob  referenced            21K                    - 
pool/home/bob  compressratio         1.00x                  - 
pool/home/bob  mounted               yes                    - 
pool/home/bob  quota                 20G                    local 
pool/home/bob  reservation           none                   default 
pool/home/bob  recordsize            128K                   default 
pool/home/bob  mountpoint            /home/bob              default 
pool/home/bob  sharenfs              off                    default 
pool/home/bob  checksum              on                     default 
pool/home/bob  compression           on                     local 
pool/home/bob  atime                 on                     default 
pool/home/bob  devices               on                     default 
pool/home/bob  exec                  on                     default 
pool/home/bob  setuid                on                     default 
pool/home/bob  readonly              off                    default 
pool/home/bob  jailed                off                    default 
pool/home/bob  snapdir               hidden                 default 
pool/home/bob  aclmode               discard                default 
pool/home/bob  aclinherit            restricted             default 
pool/home/bob  canmount              on                     default 
pool/home/bob  xattr                 on                     default 
pool/home/bob  copies                1                      default 
pool/home/bob  version               5                      - 
pool/home/bob  utf8only              off                    - 
pool/home/bob  normalization         none                   - 
pool/home/bob  casesensitivity       sensitive              - 
pool/home/bob  vscan                 off                    default 
pool/home/bob  nbmand                off                    default 
pool/home/bob  sharesmb              off                    default 
pool/home/bob  refquota              none                   default 
pool/home/bob  refreservation        none                   default 
pool/home/bob  primarycache          all                    default 
pool/home/bob  secondarycache        all                    default 
pool/home/bob  usedbysnapshots       0                      - 
pool/home/bob  usedbydataset         21K                    - 
pool/home/bob  usedbychildren        0                      - 
pool/home/bob  usedbyrefreservation  0                      - 
pool/home/bob  logbias               latency                default 
pool/home/bob  dedup                 off                    default 
pool/home/bob  mlslabel                                     - 
pool/home/bob  sync                  standard               default 
pool/home/bob  refcompressratio      1.00x                  -

次のコマンドは、単一のプロパティ値を取得します。

# zfs get -H -o value compression pool/home/bob 
on

次のコマンドは、 pool/home/bob のためにローカル設定されたすべてのプロパティをリストします。

# zfs get -s local -o name,property,value all pool/home/bob 
NAME           PROPERTY              VALUE 
pool/home/bob  quota                 20G 
pool/home/bob  compression           on
使用例 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

データで /pool/project/production 投入して、次のコマンドを続けます:

# zfs snapshot pool/project/production@today 
# zfs clone pool/project/production@today pool/project/beta

今、 /pool/project/beta への変更を行い、次のコマンドを続けます:

# zfs promote pool/project/beta 
# zfs rename pool/project/production pool/project/legacy 
# zfs rename pool/project/beta pool/project/production

いったん古いバージョンがもう必要でないと、それを破壊できます

# zfs destroy pool/project/legacy
使用例 11 ZFS のプロパティを継承する

次のコマンドによって、 pool/home/bobpool/home/anne は、それらの親から checksum プロパティを継承します。

# zfs inherit checksum pool/home/bob pool/home/anne
使用例 12 ZFS データをリモートで複製する

次のコマンドは、リモートマシンに完全なストリームを、次に、増加のストリームを送信し、それぞれ、 poolB/received/fs@apoolB/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
使用例 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 ファイルシステムで“sharenfs”プロパティオプションを設定する

次のコマンドは、 tank/home ファイルシステムで特有のネットワークのためのルートアクセスを有効にするために、 sharenfs プロパティのオプションがどのように設定されているかを示します。 sharenfs プロパティの内容は、有効な exports(5) オプションです。

# zfs set sharenfs="maproot=root,network 192.168.0.0/24" tank/home

同じ結果でこのコマンドを書き込むための別の方法は、次の通りです:

# set zfs sharenfs="-maproot=root -network 192.168.0.0/24" tank/home
使用例 17 ZFS データセットで ZFS 管理パーミッションを委任する

次の例は、ユーザ cindystank/cindys でスナップショットをを作成して、破壊して、マウントして、取ることができるよう、どのようにパーミッションを設定するかを示します。また、 tank/cindys のパーミッションが、表示されます。

# zfs allow cindys create,destroy,mount,snapshot tank/cindys 
# zfs allow tank/cindys 
------------------------------------------------------------- 
Local+Descendent permissions on (tank/cindys) 
          user cindys create,destroy,mount,snapshot 
-------------------------------------------------------------
使用例 18 ZFS データセットで作成時刻パーミッションを委任する

次の例は、 tank/users のファイルシステムを作成するためにグループ staff の誰かにどのように付与するかを示します。また、この構文によって、staff メンバは、それら自体のファイルシステムを破壊できますが、他の誰かのファイルシステムを破壊できません。また、 tank/users のパーミッションも表示されます。

# zfs allow staff create,mount tank/users 
# zfs allow -c destroy tank/users 
# zfs allow tank/users 
------------------------------------------------------------- 
Create time permissions on (tank/users) 
          create,destroy 
Local+Descendent permissions on (tank/users) 
          group staff create,mount 
-------------------------------------------------------------
使用例 19 ZFS データセットでパーミッション設定の定義して付与する

次の例は、 tank/users ファイルシステムに設定されたパーミッションをどのように定義して、付与するかを示します。また、 tank/users のパーミッションも表示されます。

# zfs allow -s @pset create,destroy,snapshot,mount tank/users 
# zfs allow staff @pset tank/users 
# zfs allow tank/users 
------------------------------------------------------------- 
Permission sets on (tank/users) 
        @pset create,destroy,mount,snapshot 
Create time permissions on (tank/users) 
        create,destroy 
Local+Descendent permissions on (tank/users) 
        group staff @pset,create,mount 
-------------------------------------------------------------
使用例 20 ZFS データセットでプロパティパーミッションを委任する

次の例は、 users/home ファイルシステムでクォータと予約を設定する能力を付与するかを示します。また、 users/home のパーミッションも表示されます。

# zfs allow cindys quota,reservation users/home 
# zfs allow cindys 
------------------------------------------------------------- 
Local+Descendent permissions on (users/home) 
        user cindys quota,reservation 
------------------------------------------------------------- 
# su - cindys 
cindys% zfs set quota=10G users/home/marks 
cindys% zfs get quota users/home/marks 
NAME              PROPERTY  VALUE             SOURCE 
users/home/marks  quota     10G               local
使用例 21 ZFS データセットで ZFS 委任パーミッションを削除する

次の例は、 tank/users ファイルシステムで staff グループからスナップショットのパーミッションをどのように削除するかを示しています。また、 tank/users のパーミッションも表示します。

# zfs unallow staff snapshot tank/users 
# zfs allow tank/users 
------------------------------------------------------------- 
Permission sets on (tank/users) 
        @pset create,destroy,mount,snapshot 
Create time permissions on (tank/users) 
        create,destroy 
Local+Descendent permissions on (tank/users) 
        group staff @pset,create,mount 
-------------------------------------------------------------
使用例 22 スナップショットと ZFS データセットの間の差分を表示する

次の使用例は、ZFS データセットの前のスナップショットとその現在の状態の間の変更されたものを調べる方法を表示します。 -F オプションは、影響を受けたファイルのためのタイプ情報を示すために使用されます。

# zfs diff tank/test@before tank/test 
M       /       /tank/test/ 
M       F       /tank/test/linked      (+1) 
R       F       /tank/test/oldname -> /tank/test/newname 
-       F       /tank/test/deleted 
+       F       /tank/test/created 
M       F       /tank/test/modified

作者

このマニュアルページは、 FreeBSD のために修正されカスタマイズされ、 Common Development and Distribution License (CDDL) (共通の開発と配布ライセンス) の下で許諾されている OpenSolaris マニュアルページ zfs(1M)mdoc(7) の再実装です。

このマニュアルページの mdoc(7) の実装は、最初に Martin Matuska <mm@FreeBSD.org>によって書かれました。

September 20, 2013 FreeBSD