JavaScript is required to for searching.
ナビゲーションリンクをスキップ
印刷ビューの終了
マニュアルページセクション 1M: システム管理コマンド     Oracle Solaris 11.1 Information Library (日本語)
このドキュメントの評価
search filter icon
search icon

ドキュメントの情報

はじめに

紹介

System Administration Commands - パート 1

System Administration Commands - パート 2

System Administration Commands - パート 3

umount_smbfs(1M)

unlink(1M)

unshare(1M)

unshareall(1M)

unshare_nfs(1M)

update_drv(1M)

useradd(1M)

userdel(1M)

usermod(1M)

utmp2wtmp(1M)

utmpd(1M)

uucheck(1M)

uucico(1M)

uucleanup(1M)

uucpd(1M)

uusched(1M)

Uutry(1M)

uutry(1M)

uuxqt(1M)

vbiosd(1M)

vdiskadm(1M)

vdpd(1M)

virt-convert(1M)

virtinfo(1M)

vmstat(1M)

vmtasks(1M)

vntsd(1M)

volcopy(1M)

volcopy_ufs(1M)

vrrpadm(1M)

vrrpd(1M)

vscanadm(1M)

vscand(1M)

vtdaemon(1M)

wall(1M)

wanboot_keygen(1M)

wanboot_keymgmt(1M)

wanboot_p12split(1M)

wanbootutil(1M)

wbemadmin(1M)

wbemconfig(1M)

wbemlogviewer(1M)

wcadmin(1M)

whodo(1M)

wpad(1M)

wracct(1M)

wtmpfix(1M)

wusbadm(1M)

ypbind(1M)

ypinit(1M)

ypmake(1M)

ypmap2src(1M)

yppasswdd(1M)

yppoll(1M)

yppush(1M)

ypserv(1M)

ypserv_resolv(1M)

ypset(1M)

ypstart(1M)

ypstop(1M)

ypupdated(1M)

ypxfr(1M)

ypxfr_1perday(1M)

ypxfr_1perhour(1M)

ypxfr_2perday(1M)

ypxfrd(1M)

zdb(1M)

zdump(1M)

zfs(1M)

zfs_allow(1M)

zfs_encrypt(1M)

zfs_share(1M)

zic(1M)

zoneadm(1M)

zoneadmd(1M)

zonecfg(1M)

zonep2vchk(1M)

zonestatd(1M)

zpool(1M)

zstreamdump(1M)

ドキュメントの品質向上のためのご意見をください
簡潔すぎた
読みづらかった、または難し過ぎた
重要な情報が欠けていた
内容が間違っていた
翻訳版が必要
その他
Your rating has been updated
貴重なご意見を有り難うございました!

あなたの貴重なご意見はより良いドキュメント作成の手助けとなります 内容の品質向上と追加コメントのためのアンケートに参加されますか?

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 [-rRf] filesystem|volume
zfs destroy [-rRd] snapshot
zfs destroy share
zfs diff [-FHte] [-o field] ... snapshot [snapshot|filesystem]
zfs diff -E [-FHt] [-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[,...]]
     [-s property] ... [-S property] ...
     [filesystem|volume|snapshot|share|path] ...
zfs inherit [-rS] property filesystem|volume|snapshot|share ...
zfs mount 
zfs mount [-vOS] [-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 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 [-DRbpv] [-[iI] snapshot] snapshot
zfs send -r [-Dbcpv] [-i snapshot] 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

機能説明

zfs コマンドは、ZFS ストレージプール内の ZFS データセットを構成します。詳細は、zpool(1M) を参照してください。データセットの識別には、ZFS 名前空間内部の一意のパスが使用されます。例:

pool/{filesystem,volume,snapshot}

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

使用できるデータセットは、次のうちのいずれかです。

file system

標準のシステム名前空間内にマウントでき、別のファイルシステムのように動作する、filesystem タイプの ZFS データセット。ZFS は POSIX 準拠のファイルシステムとして設計されていますが、既知の問題により、準拠の要件が満たされない場合がいくつかあります。標準準拠に依存しているアプリケーションでは、ファイルシステムの空き領域を調べるときに、標準でない動作のために障害が発生する可能性があります。

volume

raw デバイスまたはブロック型デバイスとしてエクスポートされた論理ボリューム。このタイプのデータセットは特殊な状況でのみ使用するようにしてください。通常は、ほとんどの環境でファイルシステムが使用されます。

snapshot

特定の時点におけるファイルシステムまたはボリュームの読み取り専用バージョン。これは、filesystem@name または volume@name として指定されます。

ZFS ファイルシステム階層

ZFS ストレージプールは、データセット用の領域を提供するデバイスの論理コレクションです。ストレージプールは、ZFS ファイルシステム階層のルートでもあります。

プールのルートにはファイルシステムとしてアクセスできるため、マウントやマウント解除、スナップショットの作成、およびプロパティーの設定などの操作を実行できます。ただし、物理ストレージ特性の管理には、zpool(1M) コマンドを使用します。

プールの作成および管理の詳細は、zpool(1M) を参照してください。

スナップショット

スナップショットは、ファイルシステムまたはボリュームの読み取り専用コピーです。スナップショットはきわめてすばやく作成することができ、最初はプール内で追加の領域を消費しません。アクティブなデータセット内のデータが変更されると、スナップショット用のデータが増加します。これは、本来ならアクティブなデータセットと共有されていたデータです。

スナップショットには、任意の名前を付けることができます。ボリュームのスナップショットは、クローンやロールバックを作成することは可能ですが、個別にアクセスすることはできません。

ファイルシステムのスナップショットは、ファイルシステムのルートの .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 の場合、ファイルシステムはマウントされません。

必要に応じ、従来のツール (mountumount/etc/vfstab) を使って ZFS ファイルシステムを管理することもできます。ファイルシステムのマウントポイントが legacy に設定されている場合、ZFS はファイルシステムの管理を試みません。管理者が、ファイルシステムのマウントおよびマウント解除を担当します。

ゾーン

追加したファイルシステムの物理プロパティーの制御は、大域管理者が行います。ただし、ゾーン管理者は、追加したファイルシステム内部のファイルを、ファイルシステムのマウント方法に対応した方法で作成、変更、または破棄できます。

データセットを非大域ゾーンに委任する場合は、zonecfg add dataset サブコマンドを使用します。データセットをあるゾーンに委任し、同じデータセットの子を別のゾーンに委任することはできません。ゾーン管理者は、データセットおよびそのすべての子のプロパティーを変更できます。ただし、quota プロパティーの制御は、大域管理者が行います。

ZFS ボリュームをデバイスとして非大域ゾーンに追加するには、zonecfg add device サブコマンドを使用します。ただし、その物理プロパティーを変更できるのは大域管理者だけです。

zonecfg の構文の詳細は、zonecfg(1M) を参照してください。

データセットが非大域ゾーンに委任されると、zoned プロパティーが自動的に設定されます。ゾーン設定したファイルシステムは、一時的な mountpoint プロパティー (「一時的なマウントポイントプロパティー」を参照) を使用することによってのみ、大域ゾーンでマウントできます。

大域管理者は zoned プロパティーを強制的にクリアできます。ただし、この操作は特に慎重に行うようにしてください。大域管理者は、このプロパティーをクリアする前に、すべてのマウントポイントが受け入れられるものであることを確認してください。

複製解除

複製解除とは、冗長なデータをブロックレベルで削除することにより、格納されているデータの合計容量を減らすプロセスです。複製解除はプール全体に及びますが、データセットごとにそれぞれの dedup プロパティーを使用すると、適用するかしないかを選択できます。ファイルシステムで dedup プロパティーが有効になっている場合、重複しているデータブロックは書き込み時に一斉に削除されます。この結果、ただ 1 つの一意のデータが格納され、共通するコンポーネントが、プール内の dedup が有効になっているすべてのデータセットのファイル間で共有されます。

暗号化

ZFS 暗号化および ZFS 暗号化構文についての完全な説明は、zfs_encrypt(1M) を参照してください。

ネイティブプロパティー

プロパティーは、ネイティブプロパティーとユーザー定義 (ユーザー) プロパティーの 2 種類に分けられます。ネイティブプロパティーは、内部統計情報を提供するか、ZFS の動作を制御します。また、ネイティブプロパティーは編集可能であるか、読み取り専用です。ユーザープロパティーは ZFS の動作には影響を及ぼしませんが、ユーザーの環境で意味のある方法でデータセットに注釈を付けるのに利用できます。ユーザープロパティーの詳細は、後述の「ユーザープロパティー」のセクションを参照してください。

すべてのデータセットは、データセットに関する統計情報を提供したり、さまざまな動作を制御したりするプロパティーセットを持っています。プロパティーは、子により上書きされないかぎり、親から継承されます。一部のプロパティーは、特定のタイプのデータセット (ファイルシステム、ボリューム、またはスナップショット) にのみ適用されます。

数値プロパティーの値は、人間が読み取ることのできるサフィックス (kKBMGb など) を使用すると指定できます。使用可能な最大サフィックスは Z (z バイト) です。次の指定はすべて有効 (および等価) です。

1536M, 1.5g, 1.50GB

数値以外のプロパティーの値は、大文字と小文字が区別されるため、mountpoint プロパティーを除いて小文字にする必要があります。

次のネイティブプロパティーは、データセットに関する統計データを表示するものです。これらのプロパティーは、設定することも継承することもできません。ネイティブプロパティーは、特に注記がないかぎり、すべてのデータセットタイプに適用されます。

available

データセットおよびその子すべてが使用可能な容量。プール内にその他のアクティビティーが存在しないものとして計算されます。容量はプール内で共有されるため、プールの物理サイズ、割り当て、予約、プール内のほかのデータセットなどのさまざまな要因によって、利用できる容量が制限されることがあります。

このプロパティーは、列の短縮名 avail を使用して参照することもできます。

compressratio

このデータセットに対して達成された圧縮比。乗数で表記されます。zfs set compression=on dataset を実行すると、圧縮を有効にできます。デフォルト値は off です。

creation

このデータセットが作成された時間。

defer_destroy

zfs destroy -d コマンドを使ってスナップショットの遅延破棄が予約されている場合、プロパティーがオンになります。それ以外の場合、このプロパティーはオフです。

keychangedate

詳細は、zfs_encrypt(1M) を参照してください。

keystatus

詳細は、zfs_encrypt(1M) を参照してください。

mounted

ファイルシステムの場合は、ファイルシステムが現在マウントされているかどうかを示します。このプロパティーは、yes または no になります。

origin

ファイルシステムまたはボリュームのクローンを作成した場合は、クローンの作成元のスナップショット。クローンが存在するかぎり、-r-f オプションを使用しても、作成元は破棄できません。

referenced

このデータセットでアクセス可能なデータ量。これは、プール内のほかのデータセットと共有される場合も、共有されない場合もあります。スナップショットまたはクローンを作成したときには、それらの作成元のファイルシステムまたはスナップショットと同じ領域を最初は参照しています。内容が同じであるためです。

このプロパティーは、列の短縮名 refer を使用して参照することもできます。

rekeydate

詳細は、zfs_encrypt(1M) を参照してください。

type

データセットのタイプ。filesystemvolumesnapshot のいずれかになります。

used

このデータセットおよびそのすべての子孫が消費する容量を調べます。この値は、このデータセットの割り当ておよび予約に基づいて計算されます。使用されている容量には、このデータセットの予約は含まれませんが、(usedbyrefreservation による) refreservation 、および (usedbychildren による) 子孫データセットの予約が考慮されます。データセットがその親から継承して使用する容量、およびこのデータセットが再帰的に破棄されるときに解放される容量は、使用済み領域と予約のどちらか大きい方になります。

スナップショット (「スナップショット」のセクションを参照) を作成したときは、それらの領域は最初はスナップショットとファイルシステムの間で共有されます。それまでに作成したスナップショットと領域が共有されることもあります。ファイルシステムが変化していくにつれて、それまで共有されていた領域がスナップショット固有になり、スナップショットが使用する領域に計上されます。また、スナップショットを削除すると、ほかのスナップショットに固有の (および使用される) 容量を増やすことができます。

使用している容量、使用できる容量、または参照する容量では、保留状態の変更は考慮されません。保留状態の変更は通常、数秒以内に計上されます。fsync(3C)O_SYNC を使用してディスクへの変更をコミットしても、領域の使用状況の情報がすぐに更新されることが保証されているわけではありません。

usedby*

usedby* プロパティーは、used プロパティーをその領域のさまざまな使用理由に分解します。具体的には、used = usedbychildren + usedbydataset + usedbyrefreservation + usedbysnapshots となります。これらのプロパティーは、version 13 以上のプールで作成されたデータセットでのみ使用可能です。

usedbychildren

このデータセットの子によって使用される容量。この容量は、データセットのすべての子が破棄された場合に解放されます。

usedbydataset

このデータセット自体によって使用される容量。この容量は、データセットが破棄された場合に解放されます (まず refreservation をすべて削除し、必要に応じてスナップショットや子孫を破棄したあと)。

usedbyrefreservation

このデータセットの refreservation セットによって使用される容量。この容量は、refreservation が削除された場合に解放されます。

このプロパティーで計上される容量は、将来の書き込みによって見込まれる消費量を表しており、このデータセット内での書き込み割り当ての失敗を防止するためにあらかじめ予約されています。これには、未書き込みデータ、現在スナップショットと共有されている容量、および (圧縮率の低いデータと置き換えると失われる可能性がある) ボリュームの圧縮保存が含まれます。将来の書き込み用に容量を割り当てると、usedbydataset または usedbysnapshots が増え、それに応じて usedbyrefreservation が減ります。

usedbysnapshots

このデータセットのスナップショットによって消費される容量。具体的には、これはデータセットのスナップショットがすべて破棄された場合に解放される容量です。ただし、これは、スナップショットの used プロパティーの単なる合計ではありません。なぜならば、領域は、複数のスナップショットによって共有されることがあるからです。

userused@user

指定されたユーザーによって消費される、このデータセットの容量。容量は、ls -l で表示される各ファイルの所有者にチャージされます。チャージされた容量は du および ls -s で表示されます。詳細は、zfs userspace サブコマンドを参照してください。

非特権ユーザーは、自身の領域使用状況のみを確認できます。root ユーザー、または zfs allowuserused 特権を付与されているユーザーは、あらゆるユーザーの使用状況にアクセスできます。

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

  • POSIX 名 (例: joe)

  • POSIX 数値 ID (例: 789)

  • SID 名 (例: joe.smith@mydomain)

  • SID 数値 ID (例: S-1-123-456-789)

userrefs

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

groupused@group

指定されたグループによって消費される、このデータセットの容量。容量は、ls -l で表示される各ファイルのグループにチャージされます。詳細は、userused@user プロパティーを参照してください。

非特権ユーザーは、自身のグループの領域使用状況のみを確認できます。root ユーザー、または zfs allowgroupuse 特権を付与されているユーザーは、あらゆるグループの使用状況にアクセスできます。

volblocksize=blocksize

ボリュームの場合に、ボリュームのブロックサイズを指定します。ボリュームが書き込まれたあとで、blocksize を変更することはできません。このため、このプロパティーはボリュームの作成時に設定してください。ボリュームのデフォルトの blocksize は 8K バイトです。512 バイト - 1M バイトの範囲で、任意の 2 の累乗を指定できます。

このプロパティーは、列の短縮名 volblock を使用して参照することもできます。

次のネイティブプロパティーを使用すると、ZFS データセットの動作を変更できます。

aclmode=discard | mask | passthrough

chmod(2) の実行時の ACL の変更方法を制御します。「aclmode」プロパティーが「discard」(デフォルト) であるファイルシステムでは、ファイルのモードを表さない ACL エントリがすべて削除されます。「aclmode」プロパティーが「mask」の場合、ユーザーまたはグループアクセス権を削減します。アクセス権は、グループアクセス権ビットと同程度にまで削減されます。ただし、アクセス権がファイルまたはディレクトリの所有者と同じ UID を持つユーザーエントリである場合を除きます。この場合、ACL アクセス権は、所有者のアクセス権ビットと同程度にまで削減されます。mask はモード変更の前後で ACL を保持し、次のモード変更があるまでの間 (chmod(1) によって) ACL を明示的に設定しません。aclmode プロパティーが passthrough であるファイルシステムでは、ファイルまたはディレクトリの新規モードを表す必須の ACL エントリを生成する以外、ACL に変更は加えられません。

aclinherit=discard | noallow | restricted | passthrough | passthrough-x

ファイルとディレクトリが作成されるときに ACL エントリをどのように継承するかを制御します。aclinherit プロパティーが discard であるファイルシステムは、ACL エントリを一切継承しません。aclinherit プロパティーが noallow であるファイルシステムは、「deny」アクセス権を指定する、継承可能な ACL エントリのみを継承します。プロパティー値 restricted (デフォルト) は、ACL エントリの継承時に write_acl および write_owner アクセス権を削除します。aclinherit プロパティー値が passthrough であるファイルシステムは、継承時に ACL エントリに加えられた変更を除く、継承可能なすべての ACL エントリを継承します。aclinherit プロパティー値が passthrough-x であるファイルシステムは、passthrough と同じ意味ですが、ファイル作成モードでも実行ビットが必要とされる場合のみすべての ACE が実行権を継承する点が異なります。

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

atime=on | off

ファイルを読み取るときにファイルのアクセス時間を更新するかどうかを制御します。このプロパティーをオフに設定すると、ファイルを読み取るときに書き込みトラフィックが生成されなくなるため、パフォーマンスが大幅に向上する可能性があります。ただし、メールプログラムなどのユーティリティーが予期しない動作をすることがあります。デフォルト値は on です。

canmount=on | off | noauto

このプロパティーが off に設定されている場合、ファイルシステムはマウントできず、zfs mount -a を実行しても無視されます。このプロパティーを off に設定することは、mountpoint プロパティーを none に設定することに似ていますが、継承可能な通常の mountpoint プロパティーをデータセットが引き続き保持する点が異なります。このプロパティーを off に設定することによって、データセットをプロパティー継承のメカニズムとしてのみ使用できるようになります。canmount=off を設定する 1 つの例として、2 つのデータセットが同じ mountpoint を保持するようにできます。これにより、両方のデータセットの子が同じディレクトリ内に表示されますが、継承する特性は異なります。

noauto オプションを設定すると、データセットのマウントおよびマウント解除は明示的に実行することが必要になります。データセットの作成時やインポート時に、データセットが自動的にマウントされることはありません。また、zfs mount -a コマンドでマウントされることや、zfs unmount -a コマンドでマウント解除されることもありません。

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

checksum=on | off | fletcher2,| fletcher4 | sha256 | sha256+mac

データの完全性を検証するために使用するチェックサムを制御します。デフォルト値 on では、適切なアルゴリズムが自動的に選択されます。現在、アルゴリズムは fletcher4 ですが、将来のリリースで変更される可能性があります。値が off の場合、ユーザーデータの整合性チェックが無効になります。チェックサムの無効化は、推奨されていない操作です。

このプロパティーを変更した場合、影響を受けるのは新しく書き込まれるデータのみです。

sha256+mac の値は、暗号化が有効な場合にのみ使用できます。暗号化が有効な場合、チェックサムプロパティーは readonly になり、常に sha256+mac に設定されます。

compression=on | off | lzjb | gzip | gzip-N | zle

このデータセットで使用される圧縮アルゴリズムを制御します。lzjb 圧縮アルゴリズムは、優れたデータ圧縮と同時に最適なパフォーマンスを提供します。圧縮を on に設定すると、lzjb 圧縮アルゴリズムが使用されます。gzip 圧縮アルゴリズムは、gzip(1) コマンドと同じ圧縮を使用します。gzip のレベルは、値 gzip-N を使用すると指定できます。この N は、1 (最速) - 9 (最大圧縮率) の整数です。現在、gzipgzip-6 に相当します (これは gzip(1) のデフォルトでもある)。

このプロパティーは、列の短縮名 compress を使用して参照することもできます。このプロパティーを変更した場合、影響を受けるのは新しく書き込まれるデータのみです。

copies=1 | 2 | 3

このデータセットに関して保存されるデータのコピー数を制御します。これらのコピーは、ミラー化や RAID-Z など、プールによってもたらされる冗長性を補うものです。可能な場合、コピーは異なるディスクに保存されます。複数のコピーによって使用される容量は、関連するファイルとデータセットにチャージされます。したがって、used プロパティーが変更され、割り当てと予約が減らされます。

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

データセットで暗号化が有効な場合、コピーは最大値の 2 に設定されます。

dedup=on | off | verify | sha256[,verify]

データセットに対して複製解除を適用するかどうかを制御します。デフォルト値は off です。複製解除に使用されるデフォルトのチェックサムは sha256 です (変更される可能性があります)。dedup が有効な場合、dedup チェックサムアルゴリズムによって checksum プロパティーがオーバーライドされます。値を verify に設定することは、sha256,verify を指定することと同等です。

プロパティーが verify に設定されている場合、ZFS は、2 つのブロックに同じ署名があるときはいつでも既存のブロックとバイト単位の比較を行なって、内容が同一であることを確認します。

devices=on | off

このファイルシステムでデバイスノードを開くことができるかどうかを制御します。デフォルト値は on です。

exec=on | off

このファイルシステム内部からプロセスを実行可能かどうかを制御します。デフォルト値は on です。

logbias = latency | throughput

このデータセットに対する同期要求を ZFS で最適化する方法を制御します。logbiaslatency に設定されている場合、ZFS はプールに別個のログデバイスが存在すればそれを使用して、短い待ち時間で要求を処理します。logbiasthroughput に設定されている場合、ZFS はプールの別個のログデバイスを使用しません。その代わりに、ZFS は大域プールのスループットとリソースの使用効率を優先して同時操作を最適化します。デフォルト値は latency です。

mlslabel=label | none

マルチレベルファイルシステムでの 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=path | none | legacy

このファイルシステムで使用されるマウントポイントを制御します。このプロパティーの使用方法の詳細は、「マウントポイント」のセクションを参照してください。

ファイルシステムの mountpoint プロパティーを変更すると、そのマウントポイントを継承するファイルシステムおよびそのすべての子がマウント解除されます。新しい値が legacy の場合は、マウントが解除されたままになります。それ以外のときは、プロパティーの古い値が legacy または none だった場合、またはプロパティーが変更される前にマウントされていた場合は、自動的に再マウントされます。また、共有されていたすべてのファイルシステムは、共有が解除されてから新しい場所で共有されます。

nbmand=on | off

詳細は、zfs_share(1M) を参照してください。

primarycache=all | none | metadata

プライマリキャッシュ (ARC) にキャッシュされる内容を制御します。このプロパティーを all に設定すると、ユーザーデータとメタデータの両方がキャッシュされます。このプロパティーを none に設定すると、ユーザーデータもメタデータもキャッシュされません。このプロパティーを metadata に設定すると、メタデータのみがキャッシュされます。デフォルト値は all

quota=size | none

データセットおよびその子孫が消費できる容量を制限します。このプロパティーにより、使用される容量に対して強い制限値が設定されます。これには、子孫の消費する容量すべて (ファイルシステムとスナップショットを含む) が含まれます。割り当て制限がすでに設定されているデータセットの子孫に割り当て制限を設定した場合は、祖先の割り当て制限はオーバーライドされずに、制限が追加されます。

ボリュームには割り当て制限を設定できません。volsize プロパティーが暗黙的な割り当て制限として機能します。

sync=standard | always | disabled

ファイルシステムトランザクションを同期する程度を指定します。このプロパティーは、データセットの作成時に設定することも動的に設定することもでき、ただちに有効になります。このプロパティーは、次の設定のうちの 1 つを持つことができます。

standard

デフォルトのオプション。同期するファイルシステムトランザクションがインテントログに書き込まれてから、書き込まれたすべてのデバイスがフラッシュされ、データが安定した状態になるように (つまり、デバイスコントローラによってキャッシュされないように) します。

always

各ファイルシステムトランザクションが書き込まれ、安定した記憶領域にフラッシュされます。この値はパフォーマンスに非常に不利な状況をもたらしますが、同期するフィルシステムトランザクションのトラブルシューティングには適切な場合があります。

disabled

同期要求は無効になります。ファイルシステムトランザクションは、次の DMU トランザクショングループの確定時にのみ安定した記憶領域に確定されるため、処理が行われるまで数秒かかる場合があります。この設定はパフォーマンスにとって最適です。ただし、データベースや NFS などのアプリケーションの同期トランザクション要求を ZFS が無視するため、これは非常に危険な設定です。さらに、現在アクティブなルートまたは /var ファイルシステムに対してこの設定を有効にした場合、仕様外の動作、アプリケーションデータの損失、およびリプレイ攻撃に対する脆弱性の増大が生じる可能性があります。管理者は、これらのリスクを理解した上でこのオプションを使用するようにしてください。

userquota@user=size | none

指定されたユーザーによって消費される容量を制限します。userquota の容量計算では、refquota プロパティーと同様に、スナップショットやクローンなど、子孫データセットによって使用される容量は含まれません。ユーザーの容量消費は userspace@user プロパティーで特定されます。

ユーザーの割り当て制限が適用されるまでに数秒かかることがあります。この遅延のために、ユーザーが自分の割り当て量を超えてから、システムがそのユーザーの割り当て超過を認識することがあります。この場合、システムは追加の書き込みを拒否するようになり、EDQUOT エラーメッセージを表示します。詳細は、zfs userspace サブコマンドを参照してください。

非特権ユーザーは、自身のグループの領域使用状況のみを確認できます。root ユーザー、または zfs allowuserquota 特権を付与されているユーザーは、あらゆるユーザーの割り当てを取得および設定できます。

このプロパティーは、ボリューム、バージョン 4 よりも古いファイルシステム、またはバージョン 15 よりも古いプールでは使用できません。userquota@... プロパティーは zfs get all では表示されません。@ 記号のあとに、次のいずれかの形式でユーザーの名前を付加する必要があります。

  • POSIX 名 (例: joe)

  • POSIX 数値 ID (例: 789)

  • SID 名 (例: joe.smith@mydomain)

  • SID 数値 ID (例: S-1-123-456-789)

groupquota@group=size | none

指定されたグループによって消費される容量を制限します。グループの容量消費は userquota@user プロパティーで特定されます。

非特権ユーザーは、自身のグループの領域使用状況のみを確認できます。root ユーザー、または zfs allowgroupquota 特権を付与されているユーザーは、あらゆるグループの割り当てを取得および設定できます。

readonly=on | off

このデータを変更できるかどうかを制御します。デフォルト値は off です。

このプロパティーは、列の短縮名 rdonly を使用して参照することもできます。

recordsize=size

ファイルシステムに格納するファイルの推奨ブロックサイズを指定します。このプロパティーは、レコードサイズが固定されているファイルにアクセスするデータベースワークロードだけで使用するように設計されています。ZFS では、標準的なアクセスパターンに最適化された内部アルゴリズムに従って、ブロックサイズが自動的に調整されます。

作成されるファイルのサイズが非常に大きく、それらのファイルにさまざまなパターンの小さなブロック単位でアクセスするデータベースの場合には、このようなアルゴリズムが最適でないことがあります。recordsize にデータベースのレコードサイズ以上の値を設定すると、パフォーマンスが大きく向上することがあります。このプロパティーを汎用目的のファイルシステムに使用することは、パフォーマンスが低下する可能性があるため、できるだけ避けてください。

デフォルトの recordsize は 128K バイトです。指定するサイズは、512 バイト - 1M バイトの 2 の累乗にしてください。

ファイルシステムの recordsize の変更は、その後に作成したファイルにのみ適用され、既存のファイルと受信データには影響しません。

このプロパティーは、列の短縮名 recsize を使用して参照することもできます。

refquota=size | none

1 つのデータセットが消費できる容量を制限します。このプロパティーにより、使用される容量に対して強い制限値が設定されます。この強い制限値には、ファイルシステムやスナップショットなどの子孫で使用される容量は含まれません。

refreservation=size | none

データセットに保証される最小容量。子孫で使用される容量は含まれません。usedbydataset の容量がこの値を下回っているデータセットは、refreservation で指定された容量を使用していると見なされます。usedbyrefreservation の数値は、この追加の容量を表します。この値はデータセットにチャージされる used の合計容量に加算され、さらに親データセットの使用状況、割り当て、および予約のために消費されます。これにより、将来の書き込み用の容量があらかじめ予約されるようにして、プールリソースの過剰な割り当てからデータセットを保護します。

スナップショットと共有される容量は、あとで新しいデータに置き換えることが可能で、そのスナップショットは、両方のコピーが確実に保持されることを表します。refreservation が設定されている場合、新しいスナップショットを取得するときに usedbyrefreservationrefreservation と同じサイズにまで増やして、コピーが確実に保持されるようにする必要があります。この増加に使用できる十分な容量がデータセットにない場合、スナップショットの作成は拒否されます。

このプロパティーは、列の短縮名 refreserv を使用して参照することもできます。

reservation=size | none

データセットおよびその子孫に保証される最小容量。使用している容量がこの値を下回っているデータセットは、予約に指定された容量を使用していると見なされます。予約は、親データセットが使用する容量に計上されるので、親データセットの割り当てと予約を減らすことになります。

このプロパティーは、列の短縮名 reserv を使用して参照することもできます。

rstchown=on | off

ユーザーが chown(1) または chown(2) システムコールでファイルの所有権を与えることをファイルシステムで制限するかどうかを指定します。デフォルトでは chown を制限します。rstchownoff になっている場合、chown はユーザーが PRIV_FILE_CHOWN_SELF 特権を持っている場合と同様に動作します。

secondarycache=all | none | metadata

セカンダリキャッシュ (L2ARC) にキャッシュされる内容を制御します。このプロパティーを all に設定すると、ユーザーデータとメタデータの両方がキャッシュされます。このプロパティーを none に設定すると、ユーザーデータもメタデータもキャッシュされません。このプロパティーを metadata に設定すると、メタデータのみがキャッシュされます。デフォルト値は all

setuid=on | off

設定された UID ビットが、このシステムで順守されるかどうかを制御します。デフォルト値は on です。

shadow=URI | none

ZFS ファイルシステムを URI で記述されたファイルシステムの shadow として識別します。データは、URI によって識別されるファイルシステムから、このプロパティーが設定されたシャドウファイルシステムに移行します。移行するファイルシステムは、完全に移行するために読み取り専用にする必要があります。

まだ移行されていないシャドウファイルシステム内のディレクトリへのアクセスは、ディレクトリ全体が移行されるまでブロックされます。まだ移行されていないシャドウファイルシステム内のファイルにアクセスすると、アクセスしたファイルの一部のみが移行されます。複数のプロセスによって、ファイルの異なる部分を同時に移行できます。

2 つの形式の URI を使用できます。1 つは同じ物理システム上でローカルファイルシステムから別のファイルシステムへの移行用で、もう 1 つは NFS サーバーからのリモートでのファイルシステムの移行用です。形式は次のとおりです。

file:///path
nfs://host/path

移行が完了したとき shadowd(1M) がまだ実行中の場合、ファイルシステムは自動的に再マウントされ、シャドウプロパティーは none に設定されます。または、移行が完了したとき、シャドウプロパティーを手動で none に設定できます。

sharenfs=on | off

詳細は、zfs_share(1M) を参照してください。

sharesmb=on | off

詳細は、zfs_share(1M) を参照してください。

snapdir=hidden | visible

ファイルシステムのルートで、.zfs ディレクトリを非表示にするか、表示するかを制御します。詳細は、「スナップショット」のセクションを参照してください。デフォルト値は hidden です。

version=1|2|current

このファイルシステムのディスク上バージョン。プールのバージョンとは無関係です。このプロパティーに設定できるのは、より新しい、サポートされているバージョンのみです。zfs upgrade コマンドを参照してください。

volsize=size

ボリュームの論理サイズを指定します。デフォルトでは、ボリュームを作成するときに確立される refreservation は、ZFS メタデータのオーバーヘッドを考慮に入れるため、実際の論理ボリュームサイズよりもいくらか大きくなります。volsize への変更があった場合には、refreservation にも同様の変更が反映されます。volsize に設定可能な値は、volblocksize の倍数だけです。この値をゼロにすることはできません。

refreservation は、利用者の予期しない動作を避けるためにボリュームに設定されます。予約を使用しない場合、ボリュームの使用方法によっては、ボリュームの容量が不足して未定義の動作またはデータ破壊が発生する可能性があります。このような影響は、ボリュームの使用中にボリュームサイズを変更した場合にも発生することがあります。特に、サイズを縮小した場合にはその可能性が高くなります。 ボリュームサイズを調整するときは、特に注意するようにしてください。

推奨されませんが、zfs create -V コマンドに -s オプションを指定して疎ボリューム (シンプロビジョニングとしても知られる) を作成できます。疎ボリュームとは、予約がボリュームサイズよりも小さいボリュームのことです。このため、領域上のプールが小さい場合、疎ボリュームへの書き込みが ENOSPC で失敗する可能性があります。疎ボリュームの場合、volsize を変更しても予約には反映されません。

vscan=on|off

詳細は、zfs_share(1M) を参照してください。

xattr=on | off

このファイルシステムで拡張属性が有効かどうかを制御します。デフォルト値は on です。

zoned=on | off

データセットを非大域ゾーンから管理するかどうかを制御します。詳細は、「ゾーン」のセクションを参照してください。デフォルト値は off です。

次のプロパティーは、ファイルシステムの作成後には変更できないため、ファイルシステムの作成時に設定するようにしてください。zfs create または zpool create コマンドで設定されていない場合、これらのプロパティーは親データセットから継承されます。これらの機能がサポートされる前に親データセットが作成されたため、親データセットにこれらのプロパティーが存在しない場合、新しいファイルシステムではこれらのプロパティーにデフォルト値が設定されます。

casesensitivity = sensitive | insensitive | mixed

詳細は、zfs_share(1M) を参照してください。

normalization = none | formC | formD | formKC | formKD

詳細は、zfs_share(1M) を参照してください。

utf8only =on | off

詳細は、zfs_share(1M) を参照してください。

encryption=off | on | aes-128-ccm | aes-192-ccm | aes-256-ccm | aes-128-gcm | aes-192-gcm | aes-256-gcm

詳細は、zfs_encrypt(1M) を参照してください。

multilevel=on | off

このプロパティーは、Trusted Extensions が有効になっているシステムでのみ使用できます。デフォルト値は off です。

マルチレベルファイルシステム内のオブジェクトは、自動的に生成される明示的な機密ラベル属性で個別にラベル付けされています。このラベル属性を変更してオブジェクトに再度適切なラベル付けを行うには、setlabel(1) または setflabel(3TSOL) インタフェースを使用します。

パッケージ化された Solaris コードを含むゾーンデータセット、システムルートデータセット、およびその他のデータセットはマルチレベルにしないようにしてください。

マルチレベルファイルシステムの mlslabel プロパティーにはいくつかの違いがあります。mlslabel 値は、ファイルシステム内のオブジェクトが持つことができる使用可能な最上位のラベルを定義します。mlslabel よりも上位のラベルでファイルを作成 (またはそのレベルにファイルを再度ラベル付け) しようとすることはできません。mlslabel に基づいたマウントポリシーはマルチレベルファイルシステムには適用されません。

マルチレベルファイルシステムの場合、ファイルシステムの作成中に mlslabel プロパティーを明示的に設定できます。それ以外の場合は、ADMIN_HIGH のデフォルトの mlslabel プロパティーが自動的に作成されます。マルチレベルファイルシステムを作成したあとで mlslabel を変更できますが、下位のラベルに変更したり、ラベルを削除したり、none に設定したりすることはできません。

次のプロパティーは、作成時に指定する必要があり、特殊コマンドを使用すると変更できます。

keysource=raw | hex | passphrase,prompt | file

詳細は、zfs_encrypt(1M) を参照してください。

一時的なマウントポイントプロパティー

ファイルシステムのマウント時に、従来の mount(1M) コマンドまたは 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 とレポートされます。mountpoint 以外のプロパティーの場合、データセットのマウント時にプロパティーが変更されると、新規設定により一時設定がすべてオーバーライドされます。mountpoint プロパティーは、一時的な mountpoint プロパティーが有効である間 (つまり、データセットが一時的な場所にマウントされている間) は変更できません。

ユーザープロパティー

ZFS は、標準のネイティブプロパティーに加えて、任意のユーザープロパティーもサポートします。ユーザープロパティーは ZFS の動作には影響を与えませんが、アプリケーションや管理者が使用して、データセット (ファイルシステム、ボリューム、およびスナップショット) に注釈を付けることができます。

ユーザープロパティー名には、ネイティブプロパティーと区別するためにコロン (:) 文字を含める必要があります。ユーザープロパティーに含めることができるのは、小文字の英字、数字、および句読文字のコロン (:)、ダッシュ (-)、ピリオド (.)、および下線 (_) です。想定されている規則では、プロパティー名は 2 つの部分に分割します (例: module: property)。ただし、この名前空間は ZFS によって強制されているものではありません。ユーザープロパティー名には、最大 256 文字を使用できます。名前の先頭をダッシュ (-) で始めることはできません。

ユーザープロパティーをプログラムで使用する場合、プロパティー名の module コンポーネントには、逆順にした DNS ドメイン名を使用することを強くお勧めします。これは、それぞれ単独で開発された 2 つのパッケージが、異なる目的で同じプロパティー名を使用する可能性を減らすためです。Oracle Solaris リリースでは、com.oracle ユーザープロパティーが beadm コマンドおよびライブラリ用に予約されています。

ユーザープロパティーの値は任意の文字列であり、常に継承されます。また、決して検証されることがありません。プロパティーを処理するコマンド (zfs listzfs get など) はすべて、ネイティブプロパティーとユーザープロパティーの両方の操作に使用できます。ユーザープロパティーをクリアするには、zfs inherit コマンドを使用します。プロパティーがどの親のデータセットにも定義されていない場合は、完全に削除されます。プロパティー値は、1024 文字以内に制限されています。

スワップまたはダンプデバイスとしての ZFS ボリュームの使用

初期インストール中に、ZFS ルートプールの ZFS ボリューム上にスワップデバイスおよびダンプデバイスが作成されます。スワップ領域とダンプデバイスには別個の ZFS ボリュームを使用する必要があります。ZFS ファイルシステム上のファイルには、スワップを作成しないでください。ZFS のスワップファイル設定は、サポートされていません。

スワップデバイスとして使用される ZFS ボリュームは、そのデバイスの encryption プロパティーを指定して、vfstab(4)encrypted オプションを指定することによって暗号化できます。暗号化プロパティーの詳細は、zfs_encrypt.1m を参照してください。

システムのインストール後またはアップグレード後にスワップ領域やダンプデバイスを変更する必要がある場合は、swap(1M) コマンドと dumpadm(1M) コマンドを使用します。スワップ領域またはダンプデバイスのサイズを変更する必要がある場合は、『『Oracle Solaris 11.1 の管理: ZFS ファイルシステム』』を参照してください。

サブコマンド

状態を変更するサブコマンドはすべて、元の形式でプールに永続的に記録されます。

zfs ?

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

zfs help command | help | property property-name | permission

zfs コマンドの使用法情報を表示します。特定のコマンド、プロパティー、または委任アクセス権のヘルプを表示できます。特定のコマンドまたはプロパティーのヘルプを表示した場合、コマンド構文またはプロパティー値が表示されます。引数を何も付けずに zfs help を使用すると、zfs コマンドの完全なリストが表示されます。

zfs help -l properties

zfs プロパティーに関する情報 (プロパティー値が編集可能および継承可能かどうか、指定可能な値など) が表示されます。

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 allow の構文および例についての完全な説明は、zfs_allow(1M) を参照してください。

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

指定したスナップショットのクローンを作成します。詳細は、「クローン」のセクションを参照してください。ターゲットのデータセットは、ZFS 階層内の任意の場所に配置できます。作成されたデータセットは元のデータセットと同タイプになります。

-p

存在しない親データセットをすべて作成します。この方法で作成されたデータセットは、それぞれの親から継承した mountpoint プロパティーに従って自動的にマウントされます。ターゲットのファイルシステムまたはボリュームがすでに存在する場合、処理は正常に完了します。

-o property=value

指定されたプロパティーを設定します。詳細は、zfs create を参照してください。

-K

詳細は、zfs_encrypt(1M) を参照してください。

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

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

-p

存在しない親データセットをすべて作成します。この方法で作成されたデータセットは、それぞれの親から継承した mountpoint プロパティーに従って自動的にマウントされます。コマンド行で -o オプションを使用して指定したプロパティーはすべて無視されます。ターゲットのファイルシステムがすでに存在する場合、処理は正常に完了します。

-o property=value

データセットの作成時にコマンド property=value が呼び出された場合と同様に、指定されたプロパティーを設定します。編集可能なすべての ZFS プロパティーは、作成時にも設定可能です。複数の -o オプションを指定できます。複数の -o オプション内で同じプロパティーを指定した場合は、エラーが発生します。

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

指定したサイズのボリュームを作成します。ボリュームは、/dev/zvol/{dsk,rdsk}/path 内にブロックデバイスとしてエクスポートされます。ここで、path は ZFS 名前空間内のボリュームの名前です。このサイズは、デバイスによりエクスポートされる論理サイズを表します。デフォルトでは、同サイズの予約が作成されます。

size は、ボリュームが blocksize に関係なく整数のブロックを持つように、もっとも近い 128 K バイトに自動的に切り上げられます。

-p

存在しない親データセットをすべて作成します。この方法で作成されたデータセットは、それぞれの親から継承した mountpoint プロパティーに従って自動的にマウントされます。コマンド行で -o オプションを使用して指定したプロパティーはすべて無視されます。ターゲットのファイルシステムがすでに存在する場合、処理は正常に完了します。

-s

予約なしで疎ボリュームを作成します。疎ボリュームの詳細は、「ネイティブプロパティー」のセクションの volsize を参照してください。

-o property=value

データセットの作成時に property=value コマンドが呼び出された場合と同様に、指定されたプロパティーを設定します。編集可能なすべての ZFS プロパティーは、作成時にも設定可能です。複数の -o オプションを指定できます。複数の -o オプション内で同じプロパティーを指定した場合は、エラーが発生します。

-b blocksize

-o volblocksize=blocksize と同等です。このオプションを -o volblocksize と組み合わせて指定した場合の動作は、定義されていません。

zfs destroy [-rRf] filesystem|volume

指定されたデータセットを破棄します。デフォルトでは、このコマンドは共有中のファイルシステムすべての共有を解除し、マウント中のファイルシステムすべてをマウント解除し、アクティブな依存関係 (子またはクローン) を持つデータセットの破棄を拒否します。

-r

すべての子を再帰的に破棄します。

-R

ターゲット階層外にあるクローンファイルシステムを含む、すべての依存関係を再帰的に破棄します。

-f

unmount -f コマンドを使用してすべてのファイルシステムを強制的にマウント解除します。非ファイルシステムやマウント解除されたファイルシステムは、このオプションの影響を受けません。

-r-f オプションを適用すると、プールのかなりの部分を破棄することが可能で、使用中のマウントされたファイルシステムで予期しない動作が発生する場合があるため、これらのオプションは特に注意深く使用するようにしてください。

zfs destroy [-rRd] snapshot

指定されたスナップショットが -d オプションを付けない zfs destroy コマンドで破棄される場合にかぎり、そのスナップショットがすぐに破棄されます。このように破棄がただちに実行されるのは、たとえば、スナップショットにクローンがない場合や、ユーザーによる参照数がゼロだった場合です。

すぐに破棄される条件を満たしていないスナップショットには、削除が遅延されるようにマークが付けられます。この状態では、そのスナップショットは使用および表示が可能なスナップショットとして存在し、前述の両方の前提条件が満たされると、その時点で破棄されます。

-d

スナップショットの削除を延期します。

-r

子孫ファイルシステムでこの名前を持つすべてのスナップショットを破棄します (または削除が遅延されるようにマークが付けられます)。

-R

すべての依存関係を再帰的に破棄します。

zfs destroy [share

指定したファイルシステムの共有が破棄されます。

zfs diff [-FHte] [-o field] ... snapshot [snapshot | filesystem]
zfs diff -E [- FHt] [-o field] ... snapshot | filesystem

スナップショットと子孫データセットとの差異に関する概要を表示します。子孫は、データセットのスナップショットか現在のデータセットのいずれかになります。

単一のスナップショットが指定された場合、そのスナップショットと現在のデータセットとの差異が表示されます。

元のスナップショットと子孫の間で変更があったファイルごとに、変更のタイプがファイルの名前とともに記述されます。名前の変更の場合、古い名前と新しい名前の両方が表示されます。ファイル名に含まれるスペース文字、バックスラッシュ文字、およびそのほかの非印字文字または非 7 ビット ASCII 文字は、バックスラッシュ文字のあとにそのバイト値を表す 3 桁の 8 進数が追加された形式で表示されます。

-t オプションが指定された場合、コマンドからの出力の最初の列はファイルの st_ctim 値になります。削除したファイルの場合、これは以前のスナップショットの最後の st_ctim になります。

変更のタイプはタイムスタンプのあとに表示され、単一の文字で記述されます。

+

以降のデータセットでファイルが追加されたことを示します。

-

以降のデータセットでファイルが削除されたことを示します。

M

以降のデータセットでファイルが変更されたことを示します。

R

以降のデータセットでファイルの名前が変更されたことを示します。

-F オプションが指定された場合、出力の次の列に、ファイルのタイプを示す単一の文字が表示されます。マッピングは次のとおりです。

F

標準ファイル

/

ディレクトリ

B

ブロック型デバイス

>

ドア

|

FIFO

@

シンボリックリンク

P

イベントポータル

=

ソケット

変更箇所に非ディレクトリファイルのリンク数の変更が含まれる場合、その変更は差分が括弧に囲まれた形式で変更行に表示されます。ファイルの名前が変更された場合、古い名前は、-> の文字列で新しい名前と区切られます。

-H オプションが選択された場合、簡単に解析できる出力が生成されます。フィールドは単一のタブで区切られ、名前変更されたファイルの古い名前と新しい名前の間には矢印文字列 (->) は挿入されません。-H が選択されていない場合の出力では、フィールド間に空白が挿入されるとは限りません。

-e オプションが選択された場合、2 つのスナップショットの間で追加または変更されたすべてのファイルが列挙され、削除されたファイルは表示されません。変更タイプは修正の種類にかかわらず、常に + と報告されます。

-E オプションが選択された場合、空のスナップショットと指定されたスナップショットまたはデータセットとの差異として表示されます。

-o フィールドオプションが選択された場合、選択されたフィールドのみが表示されます。各行は、-F および -t オプションで要求された標準のフィールドで開始され、後続の -o オプションで要求されたフィールドが後に続きます。-H オプションの場合、すべてのフィールドが単一のタブで区切られます。次のフィールド名が許可されます。

object

ファイルについて ls-i によって出力される数値

parent

ファイルを含んでいるディレクトリについて ls -i によって出力される数値

size

ls -s によって表示されるファイルサイズ

links

ファイルへのリンク数

linkschange

ファイルへのリンク数の変更

name

ファイルの名前

oldname

名前を変更する前のファイルの名前 (ファイルの名前が変更されていない場合は (ハイフン))

user

ls で表示されるファイルの所有者名

group

ls で表示されるファイルのグループ名

ctime

ファイルのメタデータが最後に変更されたときのタイムスタンプ

mtime

ファイルが最後に変更されたときのタイムスタンプ

atime

ファイルが最後にアクセスされたときのタイムスタンプ

crtime

ファイルが作成されたときのタイムスタンプ

{PRIV_SYS_CONFIG} または {PRIV_SYS_MOUNT} 権限をすでに持っていない場合、このサブコマンドを使うには、zfs allow によって、diff アクセス権が付与されている必要があります。

zfs get [-rHpe|-d max] [-o all | field[,...] [-s source[,...]] all | property[,...] filesystem|volume|snapshot|share ...

指定したデータセットのプロパティーを表示します。データセットが指定されていない場合、このコマンドはシステムのすべてのデータセットのプロパティーを表示します。プロパティーごとに、次の列が表示されます。

     name      Dataset name
     property  Property name
     value     Property value
     source    Property source. Can either be local, default,
               temporary, inherited, or none (-).

デフォルトでは、RECEIVED 列を除くすべての列が表示されます。特定の列またはすべての列を指定するには、-o オプションを使用します。このコマンドには、「ネイティブプロパティー」および「ユーザープロパティー」で説明されているコンマ区切りのプロパティーリストを指定できます。

特殊な値 all を使って、指定したデータセットのタイプ (ファイルシステム、ボリューム、またはスナップショット) に適用されるプロパティーをすべて表示できます。

-r

任意の子のプロパティーを再帰的に表示します。

-H

スクリプトによる解析がより容易な形式で、出力を表示します。ヘッダーがすべて省略され、フィールドが任意の数のスペースではなく、タブ 1 つで明示的に区切られます。

-p

解析可能な (絶対) 値で数を表示します。

-e

プロパティーのサブリストを任意の深さまで展開します。

-d max

データセットのすべての子を再帰的に表示しますが、再帰の深さは depth に制限されます。深さ 1 の場合は、データセットとその直接の子だけが表示されます。

-o field

表示するフィールドのセット。次の 1 つ以上のフィールドを指定します。

name,property,value,received,source

複数のフィールドをコンマ区切りリストで表します。デフォルト値は次のとおりです:

name,property,value,source

キーワード all はすべてのソースを指定します。

-s source

表示するソースのコンマ区切りのリスト。このリストにないソースからのプロパティーは、無視されます。各ソースは、次のいずれかでなければなりません:

local,default,inherited,temporary,received,none

デフォルト値はすべてのソースです。

zfs groupspace [-hniHp] [-o field[,...]] [-sS field]... [-t type [,...]] filesystem | snapshot

指定されたファイルシステムまたはスナップショットでの、各グループの消費容量および割り当てを表示します。このサブコマンドは zfs userspace と同じですが、デフォルトで表示されるタイプは -t posixgroup,smbgroup です。

-
zfs hold [-r] tag snapshot...

tag 引数で指定された単一の参照を、指定された 1 つ以上のスナップショットに追加します。個々のスナップショットには独自のタグ名前空間があり、その空間内でタグが一意である必要があります。

スナップショットに保持が設定されている場合、保持されたそのスナップショットを zfs destroy コマンドを使用して破棄しようすると、EBUSY が返されます。

-r

指定されたタグを持つ保持をすべての子孫ファイルシステムのスナップショットに再帰的に適用することを指定します。

zfs holds [-r] snapshot...

指定された 1 つ以上のスナップショットについて、既存のユーザー参照をすべて一覧表示します。

-r

指定されたスナップショットでの保持を一覧表示するだけでなく、指定された子孫スナップショットで設定されている保持を一覧表示します。

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

指定したプロパティーをクリアして、そのプロパティーが祖先から継承されるようにします。祖先にプロパティーが設定されていない場合は、デフォルト値が使用されます。デフォルト値のリスト、および継承可能なプロパティーの詳細については、「プロパティー」のセクションを参照してください。

-r

すべての子で指定したプロパティーを再帰的に継承します。

-S

受信したプロパティー値があれば、その値に戻します。プロパティーに受信値がない場合、zfs inherit -S の動作は、-S を指定しない zfs inherit と同じです。プロパティーに受信値が存在する場合、zfs inherit は、zfs inherit -S によって継承値が受信値に戻されるまで、受信値を継承値でマスクします。

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 key の構文および例についての完全な説明は、zfs_encrypt(1M) を参照してください。

zfs list [-rH|-d max] [-o property[,...]] [ -t type[, ...]] [ -s property ] ... [ -S property ] ... [filesystem|volume|snapshot|share| path] ...

指定したデータセットのプロパティー情報を、表形式で表示します。指定した場合、プロパティー情報を絶対パス名または相対パス名で表示できます。デフォルトでは、すべてのファイルシステムとボリュームが表示されます。スナップショットは、listsnaps プロパティーが on の場合に表示されます。デフォルトは off です。nameusedavailablereferenced、および mountpoint の各フィールドが表示されます。

-H

スクリプティングモードで使用します。ヘッダーを出力せず、フィールドを任意のスペース文字ではなく単一のタブで区切ります。

-r

データセットのすべての子をコマンド行に再帰的に表示します。

-d depth

データセットのすべての子を再帰的に表示しますが、再帰は最大 depth に制限されます。深さ 1 の場合は、データセットとその直接の子だけが表示されます。

-o property

表示するプロパティーのコンマ区切りのリスト。次のプロパティーを指定する必要があります:

  • 「ネイティブプロパティー」のセクションで示したプロパティーのいずれか

  • ユーザープロパティー

  • データセット名を表示する値 name

  • ファイルシステムとボリュームの領域使用状況プロパティーを表示する値 space。これは、-o name,avail,used,usedsnap,usedds,usedrefreserv,usedchild-t filesystem,volume 構文のショートカットです。

-s property

プロパティーの値に基づいて、出力を列で昇順にソートするためのプロパティー。プロパティーは、「プロパティー」のセクションで示したプロパティーのいずれか、またはデータセット名をソートする特殊な値 name にする必要があります。複数の -s プロパティーオプションを使用することで、一度に複数のプロパティーを指定できます。複数の -s オプションは、左から右の順で、重要度の高さが判断されます。

次に、ソート基準の一覧を示します。

  • 数値型は、数値順にソートされます。

  • 文字列型は、アルファベット順にソートされます。

  • 行に適さない型は、指定したソート順に関係なく、その行がリテラルソート順のいちばん下になります。

  • ソートオプションを指定しない場合は、zfs list の既存の動作が維持されます。

-S property

-s オプションと同じですが、プロパティーで降順にソートされる点が異なります。

-t type

表示するタイプのコンマ区切りのリスト。ここで、type は、filesystemsnapshotvolume、または all のいずれかになります。たとえば、-t snapshot を指定すると、スナップショットのみが表示されます。タイプ指定子の代わりに、fs (ファイルシステム)、snap (スナップショット)、および vol (ボリューム) の各別名を使用できます。

zfs mount

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

zfs mount [-vOS] [-o options] -a | filesystem

ZFS ファイルシステムをマウントします。これは、ブートプロセスの一部として自動的に呼び出されます。

-o options

マウント時に一時的に使用する、コンマ区切りのマウントオプションリスト (省略可能)。詳細は、「一時的なマウントポイントプロパティー」のセクションを参照してください。

-O

オーバーレイマウントを実行します。詳細は、mount(1M) を参照してください。

-v

マウントの進行状況を報告します。

-a

使用可能なすべての ZFS ファイルシステムをマウントします。これは、ブートプロセスの一部として自動的に呼び出されます。

filesystem

指定されたファイルシステムをマウントします。

暗号化されたデータセットの zfs mount 操作では、keysource プロパティー値によっては鍵の入力が求められる場合があります。これは、たとえば keysource ロケータが prompt に設定されている場合に起こることがあります。

zfs promote clone-filesystem

特定のクローンファイルシステムへの移行を促し、そのファイルシステムがのスナップショットに依存しないようにします。これにより、そのクローンの作成元のファイルシステムを破棄できるようになります。クローンの親子依存関係が逆転し、元のファイルシステムが、指定されたファイルシステムのクローンになります。

クローンされたスナップショットと、そのスナップショットより前のすべてのスナップショットは、移行を促されたクローンによって所有されるようになります。それらが使用する領域は、元のファイルシステムから移行を促されたクローンに移されます。したがって、それらのスナップショットを収容するための十分な領域が必要です。この操作を行なっても新しい領域は消費されませんが、領域のアカウンティングは調整されます。移行を促されたクローンは、自身の相反するスナップショット名を持ってはいけません。rename サブコマンドを使えば、競合するスナップショット名を変更できます。

zfs receive [-vnFu] [[-o property=value] | [-x property]] ... filesystem|volume| snapshot
zfs receive [-vnFu] [[-o property=value] | [-x property]] ... [-d | -e] filesystem

スナップショットを作成します。内容は、標準入力から受信したストリームの指定に基づきます。ストリーム全体を受信する場合、新しいファイルシステムも作成されます。ストリームは 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 オプションを指定すると、指定した filesystem に送信したスナップショットの名前を追加してスナップショット名が決定されます。-d オプションが指定された場合、送信されたスナップショットパスのプール名を除くすべてが付加され (たとえば、送信されたスナップショット a/b/c@1b/c@1 が付加)、-e オプションが指定された場合は、送信されたスナップショットパスの末尾だけが付加されます (たとえば、送信されたスナップショット a/b/c@1c@1 が付加)。-d の場合、送信されたスナップショットのパスを複製するために必要なファイルシステムは、指定されたファイルシステム内で作成されます。

-d

前の段落で説明したように、送信されたスナップショットパスの最初の要素を除くすべて (プール名を除くすべて) を使用して、新しいスナップショットの名前が決定されます。

-e

前の段落で説明したように、送信したスナップショットパスの最後の要素を使用して、新しいスナップショットの名前が決定されます。

-F

受信操作を実行する前に、ファイルシステムを最新のスナップショットに強制的にロールバックします。増分複製ストリーム (zfs send -R -[iI] で生成されたものなど) を受信する場合は、送信側に存在しないスナップショットとファイルシステムを破棄します。

-n

ストリームを実際には受信しません。これを -v オプションと組み合わせて使用すると、受信操作で使用する名前を確認するのに役に立ちます。

-o property=value

非増分 send ストリームからの受信データセットの作成時または増分 send ストリームからの受信データセットの更新時にコマンド property=value が呼び出された場合と同様に、指定されたプロパティーを設定します。編集可能なすべての ZFS プロパティーは、受信時にも設定可能です。normalizationcasesensitivity など受信データにバインドされるプロパティーは一度だけ設定可能で、データセットが zfs receive によって新しく作成された場合でも、受信時には設定できません。複数の -o オプションを指定できます。複数の -o オプションまたは -x オプション内で同じプロパティーを指定した場合は、エラーが発生します。

-u

受信したストリームに関連付けられているファイルシステムをマウントしません。

-v

ストリームおよび受信操作の所要時間に関する詳細な情報を出力します。

-x property

receive のあとにある指定されたプロパティーの有効な値が、そのプロパティーが send ストリームから除外されている場合と同様に、send ストリーム内のそのプロパティー (もしあれば) の値に影響されないようにします。指定されたプロパティーが send ストリームに存在しない場合、このオプションは何も行いません。受信されたプロパティーを上書きする必要がある場合、有効な値をそのプロパティーに応じて設定または継承できます。増分更新の場合、-x は、既存のローカル設定または明示的な継承を変更せずに残します (受信したプロパティーがすでに上書きされているため)。すべての -o 制限は、-x にも同様に適用されます。

zfs release [-r] tag snapshot...

tag 引数で指定された単一の参照を、指定された 1 つ以上のスナップショットから削除します。各スナップショットに対して、タグがすでに存在している必要があります。

スナップショットに保持が設定されている場合、保持されたそのスナップショットを zfs destroy コマンドを使用して破棄しようすると、EBUSY が返されます。

-r

指定されたタグを持つ保持をすべての子孫ファイルシステムのスナップショット上で再帰的に解除します。

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

指定したデータセットの名前を変更します。スナップショットを除き、新規ターゲットは ZFS 階層内の任意の場所に配置できます。スナップショットの名前を変更できるのは、親のファイルシステムまたはボリューム内だけです。スナップショットの名前を変更する場合、スナップショットの親ファイルシステムを 2 番目の引数として指定する必要はありません。名前の変更されたファイルシステムは、新しいマウントポイントを継承できます。この場合、ファイルシステムは、マウント解除されてから新しいマウントポイントで再マウントされます。

-p

存在しない親データセットをすべて作成します。この方法で作成されたデータセットは、それぞれの親から継承した mountpoint プロパティーに従って自動的にマウントされます。

zfs rename -r snapshot snapshot

すべての子孫データセットのスナップショットの名前を再帰的に変更します。スナップショットは、再帰的に名前を変更できるデータセットにすぎません。

zfs rename share share

指定した共有の名前を新しい共有名に変更します。

zfs rollback [-rRf] snapshot

指定したデータセットを以前のスナップショットにロールバックします。データセットをロールバックすると、スナップショット作成時から変更されたすべてのデータは破棄され、データセットがスナップショット作成時の状態に戻ります。デフォルトでは、このコマンドを使って、最新のスナップショット以外のスナップショットにロールバックすることはできません。最新でないスナップショットにロールバックする場合は、-r オプションを使って中間スナップショットをすべて破棄する必要があります。

-rR オプションは、再帰的スナップショットの子スナップショットを再帰的に破棄しません。これらのオプションはどちらも、最上位の再帰的スナップショットだけを破棄します。再帰的スナップショットを完全にロールバックするには、個々の子スナップショットをロールバックする必要があります。

-r

指定したスナップショット以降のスナップショットをすべて再帰的に破棄します。

-R

指定したスナップショット以降のスナップショットを再帰的に破棄するとともに、これらのスナップショットのクローンもすべて破棄します。

-f

-R オプションとともに使用すると、破棄するクローンファイルシステムをすべて強制的にマウント解除します。

zfs send [-DRbpv] [-[iI] snapshot] snapshot
zfs send -r [-Dbcpv] [-i snapshot] snapshot

2 番目の snapshot のストリーム表現を作成します。これは、標準出力に書き込まれます。出力は、ssh(1) などを使用して、ファイルまたは別のシステムにリダイレクトできます。デフォルトでは、完全なストリームが生成されます。

-b

データセットが受信された場合にのみ、ローカル設定によって上書きされているかどうかに関係なく、受信したプロパティー値だけを送信します。zfs receive で、送信されたデータセット上でバックアップされた受信プロパティーを復元し、かつソースデータセットそのものではなくデータのバックアップ方法にのみ関係する可能性があるローカル設定を送信しないようにする場合に、このオプションを使用します。

-c

自己完結型ストリームを作成します。自己完結型ストリームとは、ストリームパッケージに含まれていないデータセットに依存しないストリームのことです。-r オプションでのみ有効です。-i オプションで使用した場合、ストリームは、そのオプションの引数として指定したスナップショットに依存します。

詳細は、『ZFS 管理ガイド』の ZFS ストリームに関するセクションを参照してください。

-D

ストリームで dedup 処理を実行します。複製解除されたストリームは、ストリームの複製解除機能をサポートしていないシステム上では受信できません。

複製ストリームパッケージと再帰的ストリームパッケージの違いについて理解するには『ZFS 管理ガイド』の ZFS ストリームに関するセクションを参照してください。

-i snapshot

最初の snapshot から 2 番目の snapshot への増分ストリームを生成します。増分ソース (最初の snapshot) は、スナップショット名の最後のコンポーネント (たとえば、@ のあとの部分) として指定できます。これは、2 番目の snapshot と同じファイルシステムに由来すると見なされます。

宛先がクローンの場合、ソースとして元のスナップショットを指定できますが、完全な形式で指定する必要があります (たとえば、単に @origin と指定するのではなく、pool/fs@origin とする)。

-I snapshot

最初のスナップショットから 2 番目のスナップショットにすべての中間スナップショットを送信するストリームパッケージを生成します。たとえば、-I @a fs@d-i @a fs@b; -i @b fs@c; -i @c fs@d に似ています。増分ソーススナップショットは、-i オプションと同様に指定できます。

-R

複製ストリームパッケージを生成し、指定されたファイルシステム、および指定されたスナップショットまでのすべての子孫ファイルシステムを複製します。受信時には、すべてのプロパティー、スナップショット、下位ファイルシステム、およびクローンが維持されます。

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

-r

再帰的ストリームパッケージを生成します。再帰的ストリームパッケージには、一連の完全ストリームまたは増分ストリームあるいはその両方が含まれています。受信時に、すべてのプロパティーおよび子孫ファイルシステムが保持されます。-R フラグで生成される複製ストリームパッケージとは異なり、中間スナップショットは、それがストリームに含まれる複製元でないかぎり保持されません。

-i オプションと -r オプションを組み合わせて使用すると、再帰的増分ストリームが生成されます。プロパティーの現在の値、および現在のスナップショット名とファイルシステム名は、ストリームの受信時に設定されます。このストリームの受信時に -F オプションを指定すると、送信側に存在しないスナップショットとファイルシステムは破棄されます。-I オプションは -r オプションと組み合わせて使用できません。

-c オプションと組み合わせると、自己完結型の再帰的ストリームパッケージが作成されます。-c-i の両方のオプションを使用した場合、-i オプションで指定したスナップショットを持たないファイルシステムおよびボリュームは、自己完結型ストリームとして送信されます。

再帰的ストリームパッケージと複製ストリームパッケージの違いについて理解するには『ZFS 管理ガイド』の ZFS ストリームに関するセクションを参照してください。

-p

プロパティーを送信します。

-v

生成されたストリームパッケージに関する詳細な情報を表示します。

ストリームの形式が確定されました。ZFS の将来のバージョンで、使用しているストリームを受信できます。

zfs set [-r] property=value filesystem|volume|snapshot ...

プロパティーを、各データセット用に指定した値に設定します。一部のプロパティーのみ、編集可能です。設定可能なプロパティーおよび有効な値については、「プロパティー」のセクションを参照してください。数値は、正確な値を指定することも、BKMGTPE、または Z (それぞれ、バイト、K バイト、M バイト、G バイト、T バイト、P バイト、E バイト、または Z バイトを表す) のサフィックスを使って人間の読み取り可能な形式で指定することもできます。スナップショットでユーザープロパティーを設定できます。詳細は、「ユーザープロパティー」のセクションを参照してください。

-r

子データセットのサブツリー全体に対して、設定の有効な値を再帰的に適用します。有効な値は、プロパティーに応じて設定または継承できます。zfs help -l properties コマンドを使用して、プロパティーが設定可能か、または継承可能かを確認します。

zfs share [-u] -o property=value ... filesystem%share
zfs share filesystem|mountpoint|filesystem%share
zfs share -a | filesystem

zfs share 構文と例および share.nfs または share.smb プロパティーの設定の完全な説明については、zfs_share(1M) を参照してください。

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

指定した名前のスナップショットを作成します。正常終了したシステムコールによってファイルシステムに加えられていた変更は、すべてスナップショットに含まれます。zfs snapshot の別名として、zfs snap を使用できます。詳細は、「スナップショット」のセクションを参照してください。

-r

すべての子孫データセットのスナップショットを再帰的に作成します。スナップショットは原子的に取得されるため、再帰的スナップショットはすべて同じ時点のものになります。

-o property=value

指定されたプロパティーを設定します。詳細は、zfs create を参照してください。

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

zfs unallow の構文および例についての完全な説明は、zfs_allow(1M) を参照してください。

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

現在マウントされている ZFS ファイルシステムをマウント解除します。これは、シャットダウンプロセスの一部として自動的に呼び出されます。

-f

ファイルシステムを、使用中であっても強制的にマウント解除します。

-a

使用可能なすべての ZFS ファイルシステムをマウント解除します。これは、ブートプロセスの一部として自動的に呼び出されます。

filesystem|mountpoint

指定されたファイルシステムをマウント解除します。このコマンドには、システム上の ZFS ファイルシステムのマウントポイントのパスを指定することもできます。

暗号化されたデータセットの場合、ファイルシステムがマウント解除されているときには、鍵の読み込みは解除されません。鍵を読み込み解除するには、zfs key を参照してください。

zfs unshare filesystem|mountpoint|filesystem%share
zfs unshare -a | -r filesystem

zfs unshare の構文および例についての完全な説明は、zfs_share(1M) を参照してください。

zfs upgrade

ファイルシステムバージョンを指定します。このバージョンによって、現在実行中のソフトウェアリリースで使用可能なファイルシステム機能が決まります。古いファイルシステムバージョンを使用し続けることはできますが、一部の機能が使用できなくなる可能性があります。ファイルシステムは、zfs upgrade - a コマンドを使用するとアップグレードできます。以前のソフトウェアバージョンを実行しているシステムで、以降のバージョンのファイルシステムにアクセスすることはできません。

zfs upgrade [-v]

現在のソフトウェアでサポートされている ZFS ファイルシステムのバージョンを表示します。現在の ZFS ファイルシステムのバージョンおよびサポートされる以前のバージョンすべてが、各バージョンで提供される機能に関する説明とともに表示されます。

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

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

一般に、ファイルシステムのバージョンはプールのバージョンとは無関係です。zpool upgrade コマンドの詳細は、zpool(1M) を参照してください。

場合によっては、ファイルシステムのバージョンとプールのバージョンが相互に関連しており、ファイルシステムのバージョンをアップグレードする前にプールのバージョンをアップグレードする必要があります。

-a

インポートされたすべてのプールのファイルシステムをすべてアップグレードします。

filesystem

指定されたファイルシステムをアップグレードします。

-r

指定されたファイルシステムおよびすべての子孫ファイルシステムをアップグレードします。

-V version

指定された version にアップグレードします。-V フラグが指定されていない場合、このコマンドは最新のバージョンにアップグレードします。このオプションは、バージョン番号を増やす場合にのみ使用できます。また、指定できるのは、このソフトウェアでサポートされている最新のバージョンまでです。

zfs userspace [-hniHp] [-o field[,...]] [-sS field]... [-t type [,...]] filesystem | snapshot

指定されたファイルシステムまたはスナップショットでの、各ユーザーの消費容量および割り当てを表示します。これは、userused@user プロパティーと userquota@user プロパティーに対応します。

-h

構文ヘルプメッセージを表示して終了します。

-n

ユーザー名やグループ名の代わりに数値 ID を出力します。

-H

ヘッダーを出力せず、タブ区切りの出力を使用します。

-p

正確な (解析可能な) 数値出力を使用します。

-o field[,...]

次のセットの type,name,used,quota から、指定されたフィールドのみを表示します。デフォルトでは、すべてのフィールドが表示されます。

-s field

出力をこのフィールドでソートします。s フラグと S フラグは複数回指定できます。その場合、まず 1 つのフィールドでソートしてから、順次別のフィールドでソートできます。デフォルトは -s type -s name です。

-S field

このフィールドで逆順にソートします。-s を参照してください。

-t type[,...]

all,posixuser,smbuser,posixgroup,smbgroup のセットから、指定されたタイプのみを出力します。

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

デフォルトを変更してグループタイプを含めることもできます。

-i

SID を POSIX ID に変換します。マッピングが存在しない場合、POSIX ID は一時的なものになることがあります。通常の POSIX インタフェース (stat(2)ls - l など) はこの変換を実行するため、-i オプションを使用すると、zfs userspace からの出力をこれらのユーティリティーと直接比較できます。ただし、SMB から POSIX への名前のマッピングが確立される前に SMB ユーザーによって作成されたファイルがある場合は、-i を使用すると混乱が生じることがあります。そのような場合は、SMB エンティティーが所有するファイルと、POSIX エンティティーが所有するファイルが混在します。しかし、-i オプションでは、どちらについてもすべて POSIX エンティティーの使用量および割り当てとして報告されます。

使用例

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

次のコマンドは、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 です。プールのプロパティーの詳細については、zpool(1M) を参照してください。

# 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/annechecksum プロパティーを親から継承します。

# 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

終了ステータス

次の終了ステータスが返されます。

0

正常終了。

1

エラーが発生した。

2

無効なコマンド行オプションが指定された。

属性

属性についての詳細は、マニュアルページの attributes(5) を参照してください。

属性タイプ
属性値
使用条件
system/file-system/zfs
インタフェースの安定性
確実

関連項目

chmod(1), chown(1), pktool(1), setlabel(1), ssh(1), mount(1M), shadowd(1M), share(1M), share_nfs(1M), share_smb(1M), unshare(1M), zonecfg(1M), zpool(1M), chmod(2), chown(2), stat(2), write(2), fsync(3C), setflabel(3TSOL), dfstab(4), vfstab(4), attributes(5)

gzip(1) のマニュアルページを参照してください。これは SunOS マニュアルページコレクションには含まれていません。

その他の ZFS 機能の詳細は、zfs_allow(1M)zfs_encrypt(1M)zfs_share(1M)、および『Oracle Solaris 11.1 の管理: ZFS ファイルシステム』を参照してください。

注意事項

diff サブコマンドによって変更されたことが示されているファイルは、複数の方法で変更された可能性があります。変更箇所の報告は、st_ctim の変更の原因となったあらゆるアクション (stat(2) を参照) に基づいて行われます。