名前 | 形式 | 機能説明 | サブコマンド | 使用例 | 終了ステータス | 属性 | 関連項目
zfs [-?]
zfs create [[-o property=value]]... filesystem
zfs create [-s] [-b blocksize] [[-o property=value]]... -V size volume
zfs destroy [-rRf] filesystem|volume|snapshot
zfs clone snapshot filesystem|volume
zfs promote filesystem
zfs rename filesystem|volume|snapshot [filesystem|volume|snapshot]
zfs snapshot [-r] filesystem@name|volume@name
zfs rollback [-rRf] snapshot
zfs list [-rH] [-o prop[,prop] ]... [ -t type[,type]]... [ -s prop [-s prop]]... [ -S prop [-S prop]...] filesystem|volume|snapshot|/pathname|./pathname ...
zfs set property=value filesystem|volume ...
zfs get [-rHp] [-o field[,field]...] [-s source[,source]...] all | property[,property] ... filesystem|volume|snapshot ...
zfs inherit [-r] property filesystem|volume... ...
zfs mount
zfs mount [-o options] [-O] -a
zfs mount [-o options] [-O] filesystem
zfs unmount [-f] -a
zfs unmount [-f] filesystem|mountpoint
zfs share -a
zfs share filesystem
zfs unshare [-f] -a
zfs unshare [-f] filesystem|mountpoint
zfs send [-i snapshot1] snapshot2
zfs receive [-vnF ] filesystem|volume|snapshot
zfs receive [-vnF ] -d filesystem
zfs コマンドは、ZFS ストレージプール内の ZFS データセットを構成します。詳細は、zpool(1M) を参照してください。データセットの識別には、ZFS 名前空間内部の一意のパスが使用されます。次に例を示します。
pool/{filesystem,volume,snapshot} |
この場合、データセット名の最大長は MAXNAMELEN (256 バイト) です。
使用できるデータセットは、次のうちのいずれかです。
標準の POSIX ファイルシステム。ZFS ファイルシステムは、標準ファイルシステムの名前空間内でマウントでき、その他のファイルシステムと同様に動作します。
ブロック型デバイスとしてエクスポートされた論理ボリューム。このタイプのデータセットは特殊な状況でのみ使用し、通常はファイルシステムを使用するようにしてください。ボリュームは、非大域ゾーン内では使用できません。
特定の時点におけるファイルシステムまたはボリュームの読み取り専用バージョン。これは、filesystem@name または volume@name として指定されます。
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 の編集は不要)。このマウントポイントプロパティーは継承可能です。このため、pool/home が /export/stuff のマウントポイントを保持する場合、pool/home/user は自動的に /export/stuff/user のマウントポイントを継承します。
ファイルシステムの mountpoint プロパティーが「none」の場合、ファイルシステムはマウントされません。
必要に応じ、従来のツール (mount、umount、/etc/vfstab) を使って ZFS ファイルシステムを管理することもできます。ファイルシステムのマウントポイントが「legacy」に設定されている場合、ZFS はファイルシステムの管理を試みません。管理者が、ファイルシステムのマウントおよびマウント解除を担当します。
ZFS ファイルシステムを非大域ゾーンに追加するには、zonecfg の「add fs」サブコマンドを使用します。非大域ゾーンに追加する ZFS ファイルシステムでは、mountpoint プロパティーを legacy に設定する必要があります。
追加したファイルシステムの物理プロパティーの制御は、大域管理者が行います。ただし、ゾーン管理者は、追加したファイルシステム内部のファイルを、ファイルシステムのマウント方法に対応した方法で作成、変更、または破棄できます。
データセットを非大域ゾーンに委任する場合は、zonecfg の「add dataset」サブコマンドを使用します。データセットをあるゾーンに委任し、同じデータセットの子を別のゾーンに委任することはできません。ゾーン管理者は、データセットおよびそのすべての子のプロパティーを変更できます。ただし、「quota」プロパティーの制御は、大域管理者が行います。
ZFS のエミュレートされたボリュームをデバイスとして非大域ゾーンに追加するには、zonecfg の「add device」サブコマンドを使用します。ただし、その物理プロパティーを変更できるのは大域管理者だけです。
zonecfg の構文の詳細は、zonecfg(1M) を参照してください。
データセットが非大域ゾーンに委任されると、「zoned」プロパティーが自動的に設定されます。ゾーン管理者により、マウントポイントが受け入れられない値に設定されている可能性があるため、ゾーンファイルシステムを大域ゾーンにマウントすることはできません。
大域管理者は「zoned」プロパティーを強制的にクリアできます。 ただし、この操作は特に慎重に行うようにしてください。大域管理者は、このプロパティーをクリアする前に、すべてのマウントポイントが受け入れられるものであることを確認してください。
プロパティーは、ネイティブプロパティーとユーザー定義プロパティーの 2 つの種類に分けられます。ネイティブプロパティーは、内部統計データのエクスポートや ZFS の動作制御を行います。また、ネイティブプロパティーは編集可能であるか、読み取り専用です。ユーザープロパティーは ZFS の動作には影響を及ぼしませんが、ユーザーの環境で意味のある方法でデータセットに注釈を付けるのに利用できます。ユーザープロパティーの詳細は「ユーザープロパティー」の項を参照してください。
すべてのデータセットには、さまざまな動作を制御するプロパティーに加え、データセットに関する統計データを出力するプロパティーがあります。プロパティーは、子により上書きされないかぎり、親から継承されます。スナップショットのプロパティーは編集できません。スナップショットは常に、継承可能なプロパティーを継承します。スナップショットに適用不可能なプロパティーは、表示されません。
数値プロパティーの値は、人間が読み取ることのできるサフィックス (k、KB、M、Gb など) を使って指定できます。使用可能な最大サフィックスは Z (ゼッタバイト) です。次の指定はすべて有効 (および等価) です。
"1536M"、"1.5g"、"1.50GB" |
数値以外のプロパティーの値では、大文字と小文字が区別され、「mountpoint」と「sharenfs」を除き、小文字にする必要があります。
最初のプロパティーセットは、データセットに関する統計データを表示するものです。これらのプロパティーは、設定不可能であり、継承も行われません。ネイティブプロパティーは、特に注記がないかぎり、すべてのデータセットタイプに適用されます。
データセットのタイプ。「filesystem」、「volume」、「snapshot」、または「clone」です。
このデータセットが作成された時刻。
このデータセットおよびそのすべての子孫が使用する容量を調べます。この値は、このデータセットの割り当ておよび予約に基づいて計算されます。使用される領域にこのデータセットの予約は含まれませんが、子孫のデータセットがある場合はそれらの予約も考慮されます。データセットがその親から継承して使用する容量、およびこのデータセットが再帰的に破棄されるときに解放される容量は、使用済み領域および予約の中で大きな割合を占めます。
スナップショット (「スナップショット」の節を参照) を作成したときは、それらの領域は最初はスナップショットとファイルシステムの間で共有されます。それまでに作成したスナップショットと領域が共有されることもあります。ファイルシステムが変化していくにつれて、それまで共有されていた領域がスナップショット固有になり、スナップショットが使用する領域に計上されます。また、スナップショットを削除すると、ほかのスナップショットに固有の (および使用される) 容量を増やすことができます。
使用している容量、使用できる容量、または参照する容量では、保留状態の変更は考慮されません。保留状態の変更は通常、数秒以内に計上されます。fsync(3C) や O_SYNC を使用してディスクへの変更をコミットしても、領域の使用状況の情報がすぐに更新されることが保証されているわけではありません。
データセットおよびその子すべてが使用可能な容量。プール内にその他のアクティビティーが存在しないものとして計算されます。容量はプール内で共有されるため、プールの物理サイズ、割り当て、予約、プール内のほかのデータセットなどのさまざまな要因によって、利用できる容量が制限されることがあります。
このプロパティーは、列名の短縮形「avail」を使用しても参照できます。
このデータセットでアクセス可能なデータ量。これは、プール内のほかのデータセットと共有される場合も、共有されない場合もあります。スナップショットまたはクローンを作成したときには、それらの作成元のファイルシステムまたはスナップショットと同じ領域を最初は参照しています。内容が同じであるためです。
このプロパティーは、列名の短縮形「refer」を使用しても参照できます。
このデータセットに対して達成された圧縮比。乗数で表記されます。「zfs set compression=on dataset」を実行すると、圧縮を有効にできます。デフォルト値は「off」です。
ファイルシステムの場合は、ファイルシステムが現在マウントされているかどうかを示します。このプロパティーは、「yes」または「no」になります。
ファイルシステムまたはボリュームのクローンを作成した場合は、クローンの作成元のスナップショット。クローンが存在するかぎり、-r や -f オプションを使用しても、作成元は破棄できません。
次からのプロパティーセットは、データセット間で容量を割り当てる方法を制御するものです。これらのプロパティーは継承されませんが、子孫に影響を及ぼします。
データセットおよびその子孫が使用できる容量を制限します。このプロパティーにより、使用される容量に対して強い制限値が設定されます。これには、子孫の消費する容量すべて (ファイルシステムとスナップショットを含む) が含まれます。割り当てがすでに設定されているデータセットの子孫に割り当てを設定した場合は、祖先の割り当ては上書きされずに、制限が追加されます。
ボリュームには割り当てを設定できません。「volsize」プロパティーが暗黙的な割り当てとして機能します。
データセットおよびその子孫に保証される最小容量。使用している容量がこの値を下回っているデータセットは、予約に指定された容量を使用していると見なされます。予約は、親データセットが使用する容量に計上されるので、親データセットの割り当てと予約を減らすことになります。
このプロパティーは、列名の短縮形「reserv」を使用しても参照できます。
ボリュームの場合に、ボリュームの論理サイズを指定します。デフォルトでは、ボリュームを作成するときに、同じ容量の予約が設定されます。volsize への変更があった場合には、予約にも対応する変更が反映されます。volsize に設定可能な値は、volblocksize の倍数だけです。この値をゼロにすることはできません。
コンシューマの予期しない動作を防ぐため、予約はボリュームの論理サイズと等価に保たれます。予約を使用しない場合、ボリュームの使用方法によっては、ボリュームの容量が不足して未定義の動作またはデータ破壊が発生する可能性があります。このような影響は、ボリュームの使用中にボリュームサイズを変更した場合にも発生することがあります。特に、サイズを縮小した場合にはその可能性が高くなります。 ボリュームサイズを調整するときは、特に注意するようにしてください。
推奨されてはいませんが、「zfs create -V」コマンドに -s オプションを指定するか、ボリュームの作成後に予約を変更することにより、「疎ボリューム」(「シンプロビジョニング」とも呼ばれる) を作成できます。「疎ボリューム」とは、予約がボリュームサイズよりも小さいボリュームのことです。このため、領域上のプールが小さい場合、疎ボリュームへの書き込みが ENOSPC で失敗する可能性があります。疎ボリュームの場合、volsize を変更しても予約には反映されません。
ボリュームの場合に、ボリュームのブロックサイズを指定します。ボリュームが書き込まれたあとで、blocksize を変更することはできません。このため、このプロパティーはボリュームの作成時に設定してください。ボリュームのデフォルト blocksize は、8K バイトです。512 バイト〜 128K バイトの範囲で、任意の 2 の累乗を指定できます。
このプロパティーは、列名の短縮形「volblock」を使用しても参照できます。
ファイルシステムに格納するファイルの推奨ブロックサイズを指定します。このプロパティーは、レコードサイズが固定されているファイルにアクセスするデータベースワークロードだけで使用するように設計されています。ZFS では、標準的なアクセスパターンに最適化された内部アルゴリズムに従って、ブロックサイズが自動的に調整されます。
作成されるファイルのサイズが非常に大きく、それらのファイルにさまざまなパターンの小さなブロック単位でアクセスするデータベースの場合には、このようなアルゴリズムが最適でないことがあります。「recordsize」にデータベースレコードのサイズ以上の値を設定すると、パフォーマンスが大きく向上することがあります。このプロパティーを汎用目的のファイルシステムに使用することは、パフォーマンスが低下する可能性があるため、できるだけ避けてください。
指定するサイズは、512 バイト〜 128K バイトの 2 の累乗にしてください。
ファイルシステムの recordsize を変更すると、その後に作成されたファイルだけが影響を受けます。既存のファイルに影響はありません。
このプロパティーは、列名の短縮形「recsize」を使用しても参照できます。
このファイルシステムで使用されるマウントポイントを制御します。使用方法の詳細は、「マウントポイント」の節を参照してください。
ファイルシステムの mountpoint プロパティーを変更すると、そのマウントポイントを継承するファイルシステムおよびそのすべての子がマウント解除されます。新しい値が「legacy」である場合、マウント解除された状態が継続します。それ以外のときは、プロパティーの古い値が legacy または none だった場合、またはプロパティーが変更される前にマウントされていた場合は、新しい場所で自動的に再マウントされます。また、共有されていたすべてのファイルシステムは、共有が解除されてから新しい場所で共有されます。
ファイルシステムを NFS 経由で共有するかどうか、および使用するオプションを制御します。「sharenfs」プロパティーが「off」であるファイルシステムは、share(1M)、unshare(1M)、dfstab(4) などの従来のツールを使って管理します。これらのツールを使って管理しない場合、ファイルシステムは「zfs share」および「zfs unshare」コマンドにより自動的に共有および共有解除されます。このプロパティーを「on」に設定すると、share(1M) コマンドがオプションなしで呼び出されます。「on」に設定しない場合、share(1M) コマンドの呼び出し時に、このプロパティーの内容と等価なオプションが使用されます。
データセットの「sharenfs」プロパティーが変更されると、プロパティーが以前に「off」に設定されていたか、変更前に共有されていた場合にのみ、そのデータセットおよびそのプロパティーを継承するすべての子により新しいオプションが再度共有されます。新規プロパティーが「off」の場合、ファイルシステムは共有を解除されます。
「shareiscsi」は、「sharenfs」プロパティーと同様に、ZFS ボリュームが iSCSI ターゲットとしてエクスポートされるかどうかを示します。このプロパティーで使用可能な値は、「on」、「off」、および「type=disk」です。デフォルト値は「off」です。将来は、その他のターゲットタイプもサポートされる可能性があります。たとえば「tape」などです。
ファイルシステムに「shareiscsi=on」を設定して、そのファイルシステム内のすべての ZFS ボリュームがデフォルトで共有されるようにしたい場合があるかもしれません。しかし、ファイルシステム上でこのプロパティーを設定しても、直接的な効果はありません。
データの完全性を検証するために使用するチェックサムを制御します。デフォルト値「on」では、適切なアルゴリズムが自動的に選択されます。 現在、アルゴリズムは fletcher2 ですが、将来のリリースで変更される可能性があります。値が「off」の場合、ユーザーデータの完全性チェックが無効になります。チェックサムの無効化は、推奨されていない操作です。
このデータセットで使用される圧縮アルゴリズムを制御します。現在のところ、存在するアルゴリズムは「lzjb」だけですが、将来のリリースでは変更される可能性があります。デフォルト値は「off」です。
このプロパティーは、列名の短縮形「compress」を使用しても参照できます。
ファイルを読み取るときにファイルのアクセス時刻を更新するかどうかを制御します。このプロパティーをオフに設定すると、ファイルを読み取るときに書き込みトラフィックが生成されなくなるため、パフォーマンスが大幅に向上する可能性があります。ただし、メールプログラムなどのユーティリティーが予期しない動作をすることがあります。デフォルト値は「on」です。
このファイルシステムでデバイスノードを開くことができるかどうかを制御します。デフォルト値は「on」です。
このファイルシステム内部からプロセスを実行可能かどうかを制御します。デフォルト値は「on」です。
設定された UID ビットが、このシステムで順守されるかどうかを制御します。デフォルト値は「on」です。
このデータを変更できるかどうかを制御します。デフォルト値は「off」です。
このプロパティーは、列名の短縮形「rdonly」を使用しても参照できます。
データセットを非大域ゾーンから管理するかどうかを制御します。詳細は、「ゾーン」の節を参照してください。デフォルト値は「off」です。
ファイルシステムのルートで、「.zfs」ディレクトリを非表示にするか、表示するかを制御します。詳細は、「スナップショット」の節を参照してください。デフォルト値は「hidden」です。
chmod(2) の実行時の ACL の変更方法を制御します。「aclmode」プロパティーが「discard」であるファイルシステムでは、ファイルのモードを表さない ACL エントリがすべて削除されます。「aclmode」プロパティーの「groupmask」 (デフォルト) は、ユーザーまたはグループのアクセス権を低下させます。アクセス権は、グループアクセス権ビットと同程度にまで低下します。ただし、アクセス権がファイルまたはディレクトリの所有者と同じ UID を持つユーザーエントリである場合を除きます。この場合、ACL アクセス権は、所有者のアクセス権ビットと同程度にまで引き下げられます。「aclmode」プロパティーが「passthrough」であるファイルシステムでは、ファイルまたはディレクトリの新規モードを表す必須の ACL エントリを生成する以外、ACL に変更は加えられません。
ファイルとディレクトリが作成されるときに ACL エントリをどのように継承するかを制御します。「aclinherit」プロパティーが「discard」であるファイルシステムは、 ACL エントリを一切継承しません。「aclinherit」プロパティーが「noallow」であるファイルシステムは、「deny」アクセス権を指定する継承可能な ACL エントリだけを継承します。プロパティー値「secure」(デフォルト) は、ACL エントリの継承時に「write_acl」および「write_owner」アクセス権を削除します。「aclinherit」プロパティー値が「passthrough」であるファイルシステムは、継承時に ACL エントリに加えられた変更を除く、継承可能なすべての ACL エントリを継承します。
このプロパティーが「off」に設定されている場合、ファイルシステムはマウントできず、「zfs mount -a」を実行しても無視されます。これは、「mountpoint」プロパティーを「none」に設定することに似ていますが、継承可能な通常の「mountpoint」プロパティーをデータセットが引き続き保持する点が異なります。これによってデータセットを、もっぱらプロパティー継承の機構として使用できるようになります。1 つの使用例として、論理的に分けられた 2 つのデータセットが同じマウントポイントを保持するようにできます。これにより、両方のデータセットの子は、同じディレクトリ内に表示されますが、継承する特性は異なります。デフォルト値は「on」です。
このプロパティーは継承されません。
このファイルシステムで拡張属性が有効かどうかを制御します。デフォルト値は「on」です。
この読み取り専用の隠しプロパティーは、iSCSI ターゲットデーモンにより IQN などの持続的情報の格納に使用されます。zfs コマンドを使って、これを表示または変更することはできません。この内容は、外部のコンシューマを対象としたものではありません。
ファイルシステムのマウント時に、mount(1M) (従来のマウント)、または「zfs mount」コマンド (通常のファイルシステム) を使用して、プロパティーに合わせたマウントオプションが設定されます。プロパティーとマウントオプションは、次のような関係になっています。
PROPERTY MOUNT OPTION devices devices/nodevices exec exec/noexec readonly ro/rw setuid setuid/nosetuid xattr xattr/noxattr |
さらに、-o オプションを使って、ディスクに格納されたプロパティーに影響を及ぼすことなく、これらのオプションをマウントごとに設定できます。コマンド行に指定した値により、データセットに格納された値が上書きされます。-nosuid オプションは、「nodevices,nosetuid」の別名です。これらのプロパティーは、「zfs get」コマンドにより、「temporary」とレポートされます。データセットのマウント時にプロパティーが変更されると、新規設定により一時設定がすべて上書きされます。
ZFS は、標準のネイティブプロパティーに加えて、任意のユーザープロパティーもサポートします。ユーザープロパティーは ZFS の動作には影響を与えませんが、アプリケーションや管理者が使用して、データセットに注釈を付けることができます。
ユーザープロパティー名には、ネイティブプロパティーと区別するためにコロン (「:」) 文字を含める必要があります。ユーザープロパティーに含めることができるのは、小文字の英字、数字、および句読文字のコロン (「:」)、ダッシュ (「-」)、ピリオド (「.」)、および下線 (「_」) です。想定されている規則では、プロパティー名は 2 つの部分に分割します (例: 「module:property」)。ただし、この名前空間は ZFS によって強制されているものではありません。ユーザープロパティー名には、最大 256 文字を使用できます。名前の先頭にダッシュ (「-」) を付けることはできません。
ユーザープロパティーをプログラムで使用する場合、プロパティー名の module 要素には、逆順にした DNS ドメイン名を使用することを強くお勧めします。これは、それぞれ単独で開発された 2 つのパッケージが、異なる目的で同じプロパティー名を使用する可能性を減らすためです。「com.sun.」で始まるプロパティー名は、Sun Microsystems が使用するために予約されています。
ユーザープロパティーの値は任意の文字列であり、常に継承されます。また、決して検証されることがありません。プロパティー上で動作するコマンド (「zfs list」、「zfs get」、「zfs set」など) はすべて、ネイティブプロパティーとユーザープロパティーの両方の操作に使用できます。ユーザープロパティーをクリアーするには、「zfs inherit」コマンドを使用します。プロパティーがどの親データセット内でも定義されていない場合は、そのプロパティー全体が削除されます。プロパティー値は、1024 文字以内に制限されています。
スワップ領域を設定するには、特定のサイズの ZFS ボリュームを作成してから、そのデバイスでスワップを有効にします。詳細は、「例」の節を参照してください。
ZFS ファイルシステム上のファイルには、スワップを作成しないでください。ZFS のスワップファイル設定は、サポートされていません。
ZFS ボリュームをダンプデバイスとして使用する方法は、サポートされていません。
状態を変更するサブコマンドはすべて、元の形式でプールに永続的に記録されます。
ヘルプメッセージを表示します。
新しい ZFS ファイルシステムを作成します。ファイルシステムは、親から継承した「mountpoint」プロパティーに従って自動的にマウントされます。
データセットの作成時に「zfs set property=value」が呼び出された場合と同様に、指定されたプロパティーを設定します。編集可能なすべての ZFS プロパティーは、作成時にも設定可能です。複数の -o オプションを指定できます。複数の -o オプション内で同じプロパティーを指定した場合は、エラーが発生します。
指定したサイズのボリュームを作成します。ボリュームは、/dev/zvol/{dsk,rdsk}/path 内にブロックデバイスとしてエクスポートされます。ここで、path は ZFS 名前空間内のボリュームの名前です。このサイズは、デバイスによりエクスポートされる論理サイズを表します。デフォルトでは、同サイズの予約が作成されます。
size は、ボリュームが blocksize に関係なく整数のブロックを持つように、もっとも近い 128K バイトに自動的に切り上げられます。
予約なしで疎ボリュームを作成します。疎ボリュームの詳細は、「ネイティブプロパティー」の節の「volsize」を参照してください。
データセットの作成時に「zfs set property=value」が呼び出された場合と同様に、指定されたプロパティーを設定します。編集可能なすべての ZFS プロパティーは、作成時にも設定可能です。複数の -o オプションを指定できます。複数の -o オプション内で同じプロパティーを指定した場合は、エラーが発生します。
「-o volblocksize=blocksize」と同等です。このオプションを「-o volblocksize」と組み合わせて指定した場合の動作は、定義されていません。
指定されたデータセットを破棄します。デフォルトでは、このコマンドは共有中のファイルシステムすべての共有を解除し、マウント中のファイルシステムすべてをマウント解除し、アクティブな依存関係 (子、スナップショット、クローン) を持つデータセットの破棄を拒否します。
すべての子を再帰的に破棄します。スナップショットが指定された場合、子孫ファイルシステム内でこの名前を持つすべてのスナップショットを破棄します。
ターゲット階層外にあるクローンファイルシステムを含む、すべての依存関係を再帰的に破棄します。スナップショットが指定された場合、子孫ファイルシステム内でこの名前を持つすべてのスナップショットを破棄します。
「unmount -f」コマンドを使用してすべてのファイルシステムを強制的にマウント解除します。非ファイルシステムやマウント解除されたファイルシステムは、このオプションの影響を受けません。
-r や -f オプションを適用すると、プールのかなりの部分を破棄することが可能で、使用中のマウントされたファイルシステムで予期しない動作が発生する場合があるため、これらのオプションは特に注意深く使用するようにしてください。
指定したスナップショットのクローンを作成します。詳細は、「クローン」の節を参照してください。ターゲットのデータセットは、ZFS 階層内の任意の場所に配置できます。作成されたデータセットは元のデータセットと同タイプになります。
特定のクローンファイルシステムへの移行を促し、そのファイルシステムが「元」のスナップショットに依存しないようにします。これにより、そのクローンの作成元のファイルシステムを破棄できるようになります。クローンの親子依存関係が逆転し、「元」のファイルシステムが、指定されたファイルシステムのクローンになります。
クローンされたスナップショットと、そのスナップショットより前のすべてのスナップショットは、移行を促されたクローンによって所有されるようになります。それらが使用する領域は、「元」のファイルシステムから移行を促されたクローンに移されます。これは、それらのスナップショットを収容するための領域が不足しないようにするためです。この操作を行なっても新しい領域は消費されませんが、領域のアカウンティングは調整されます。移行を促されたクローンは、自身の衝突するスナップショット名を持ってはいけません。「rename」サブコマンドを使えば、衝突するスナップショット名を変更できます。
指定したデータセットの名前を変更します。スナップショットを除き、新規ターゲットは ZFS 階層内の任意の場所に配置できます。スナップショットの名前を変更できるのは、親のファイルシステムまたはボリューム内だけです。スナップショットの名前を変更する場合、スナップショットの親ファイルシステムを 2 番目の引数として指定する必要はありません。名前の変更されたファイルシステムは、新しいマウントポイントを継承できます。この場合、ファイルシステムは、マウント解除されてから新しいマウントポイントで再マウントされます。
指定した名前のスナップショットを作成します。詳細は、「スナップショット」の節を参照してください。
すべての子孫データセットのスナップショットを再帰的に作成します。スナップショットは原子的に取得されるため、再帰的スナップショットはすべて同じ時点のものになります。
指定したデータセットを以前のスナップショットにロールバックします。データセットをロールバックすると、スナップショット作成時から変更されたすべてのデータは破棄され、データセットがスナップショット作成時の状態に戻ります。デフォルトでは、このコマンドを使って、最新のスナップショット以外のスナップショットにロールバックすることはできません。最新でないスナップショットにロールバックする場合は、-r オプションを使って中間スナップショットをすべて破棄する必要があります。このファイルシステムは、必要に応じて、マウント解除および再マウントされます。
指定したスナップショット以降のスナップショットをすべて再帰的に破棄します。
指定したスナップショット以降のスナップショットを再帰的に破棄すると共に、これらのスナップショットのクローンもすべて破棄します。
「unmount -f」コマンドを使用してすべてのファイルシステムを強制的にマウント解除します。
指定したデータセットのプロパティー情報を、表形式で表示します。指定した場合、プロパティー情報を絶対パス名または相対パス名で表示できます。デフォルトでは、すべてのデータセットが表示されます。次のフィールドが含まれます。
name,used,available,referenced,mountpoint |
スクリプティングモードで使用します。ヘッダーを出力せず、フィールドを任意の空白文字ではなく単一のタブで区切ります。
データセットのすべての子をコマンド行に再帰的に表示します。
表示するプロパティーのコンマ区切りのリスト。プロパティーは、「ネイティブプロパティー」の節で示したプロパティーのいずれか、またはデータセット名を表示する特殊な値「name」を使用する必要があります。
プロパティーの値に基づいて、出力を列で昇順にソートする場合に使用するプロパティー。プロパティーは、「プロパティー」の節で示したプロパティーのいずれか、またはデータセット名をソートする特殊な値「name」にする必要があります。複数の -s プロパティーオプションを使用することで、一度に複数のプロパティーを指定できます。複数の -s オプションは、左から右の順で、重要度の高さが判断されます。
次に、ソート基準の一覧を示します。
数値型は、数値順にソートされる。
文字列型は、アルファベット順にソートされる。
行に適さない型は、指定したソート順に関係なく、その行がリテラルソート順の一番下になる。
ソートオプションを指定しない場合は、「zfs list」の既存の動作が維持される。
-s オプションと同じですが、プロパティーで降順にソートされる点が異なります。
表示するタイプのコンマ区切りのリスト。ここで、「type」は、「filesystem」、「snapshot」、「volume」のいずれかになります。たとえば、「-t snapshot」を指定すると、スナップショットだけが表示されます。
プロパティーを、各データセット用に指定した値に設定します。一部のプロパティーのみ、編集可能です。設定可能なプロパティーおよび有効な値については、「プロパティー」の節を参照してください。数値は、正確な値を指定することも、サフィックス「B」、「K」、「M」、「G」、「T」、「P」、「E」、「Z」(それぞれ、バイト、キロバイト、メガバイト、ギガバイト、テラバイト、ペタバイト、エクサバイト、ゼタバイトを表す) を使って人間の読み取り可能な形式で指定することもできます。スナップショットにプロパティーを設定することはできません。
指定したデータセットのプロパティーを表示します。データセットが指定されていない場合、このコマンドはシステムのすべてのデータセットのプロパティーを表示します。プロパティーごとに、次の列が表示されます。
name Dataset name property Property name value Property value source Property source. Can either be local, default, temporary, inherited, or none (-). |
デフォルトではすべての列が表示されます。これは、-o オプションを使って制御できます。このコマンドには、「ネイティブプロパティー」および「ユーザープロパティー」で説明されているコンマ区切りのプロパティーリストを指定できます。
特殊な値「all」を使って、指定したデータセットのプロパティーをすべて表示できます。
任意の子のプロパティーを再帰的に表示します。
スクリプトによる解析がより容易な形式で、出力を表示します。ヘッダーがすべて省略され、フィールドが任意の数の空白ではなく、タブ 1 つで明示的に区切られます。
表示する列のコンマ区切りのリスト。デフォルト値は、「name,property,value,source」です。
表示するソースのコンマ区切りのリスト。このリストにないソースからのプロパティーは、無視されます。各ソースは、「local、default、inherited、temporary、none」のいずれかでなければなりません。デフォルト値はすべてのソースです。
解析可能な (絶対) 値で数を表示します。
指定したプロパティーをクリアして、そのプロパティーが祖先から継承されるようにします。祖先にプロパティーが設定されていない場合は、デフォルト値が使用されます。デフォルト値のリスト、および継承可能なプロパティーの詳細については、「プロパティー」の節を参照してください。
すべての子で指定したプロパティーを再帰的に継承します。
現在マウントされているすべての ZFS ファイルシステムを表示します。
使用可能なすべての ZFS ファイルシステムをマウントします。これは、ブートプロセスの一部として自動的に呼び出されます。
マウント時に一時的に使用する、コンマ区切りのマウントオプションリスト (省略可能)。詳細は、「一時的なマウントポイントプロパティー」の節を参照してください。
オーバーレイマウントを実行します。詳細は、mount(1M) を参照してください。
特定の ZFS ファイルシステムをマウントします。ファイルシステムは作成時または mountpoint プロパティーの変更時に自動的にマウントされるため、通常、これは必要ありません。詳細は、「マウントポイント」の節を参照してください。
マウント時に一時的に使用する、コンマ区切りのマウントオプションリスト (省略可能)。詳細は、「一時的なマウントポイントプロパティー」の節を参照してください。
オーバーレイマウントを実行します。詳細は、mount(1M) を参照してください。
現在マウントされているすべての ZFS ファイルシステムをマウント解除します。これは、シャットダウンプロセスの一部として自動的に呼び出されます。
指定したファイルシステムをマウント解除します。このコマンドには、システム上の ZFS ファイルシステムのマウントポイントのパスを指定することもできます。
ファイルシステムを、使用中であっても強制的にマウント解除します。
使用可能なすべての ZFS ファイルシステムを共有します。これは、ブートプロセスの一部として自動的に呼び出されます。
「sharenfs」プロパティーに従って、特定の ZFS ファイルシステムを共有します。ファイルシステムは、「sharenfs」プロパティーの設定時に共有されます。
現在共有されているすべての ZFS ファイルシステムを共有解除します。これは、シャットダウンプロセスの一部として自動的に呼び出されます。
指定したファイルシステムの共有を解除します。このコマンドには、システム上で共有される ZFS ファイルシステムのパスを指定することもできます。
ファイルシステムを、使用中であっても強制的に共有解除します。
snapshot2 のストリーム表現を作成します。これは、標準出力に書き込まれます。出力は、ssh(1) などを使用して、ファイルまたは別のマシンにリダイレクトできます。デフォルトでは、完全なストリームが生成されます。
snapshot1 から snapshot2 への増分ストリームを生成します。増分ソース snapshot1 は、スナップショット名の最後の構成要素 (たとえば、「@」のあとの部分) として指定できます。これは、snapshot2 と同じファイルシステムに由来すると見なされます。
ストリームの形式は、発展途上にあります。下位互換性は保証されていません。ZFS の将来のバージョンでは、使用しているストリームを受信できなくなる可能性があります。
スナップショットを作成します。内容は、標準入力から受信したストリームの指定に基づきます。ストリーム全体を受信する場合、新しいファイルシステムも作成されます。ストリームは「zfs send」サブコマンドによって作成されます。このサブコマンドはデフォルトで、完全なストリームを作成します。「zfs receive」の別名として、「zfs recv」を使用できます。
増分ストリームが受信された場合、対象となるファイルシステムがすでに存在しており、かつその最新のスナップショットがその増分ストリームのソースに一致する必要があります。対象となるファイルシステムおよびその子ファイルシステムがすべてマウント解除されるため、受信操作中にアクセスすることはできません。
このサブコマンドが作成するスナップショット (ストリーム全体を受信する場合はファイルシステムも) の名前は、引数タイプおよび -d オプションによって決まります。
引数がスナップショット名の場合には、指定した snapshot が作成されます。引数がファイルシステム名またはボリューム名の場合には、送信されたスナップショットと同名のスナップショットが、指定した filesystem または volume 内部で作成されます。-d オプションを指定すると、指定した filesystem に送信したスナップショットの名前を追加してスナップショット名が決定されます。-d オプションを指定すると、指定したファイルシステム内のすべての必須ファイルシステムが作成されます。
前の段落で説明したように、送信したスナップショットの名前を使って、新規スナップショットの名前が決定されます。
ストリームおよび受信操作の所要時間に関する詳細な情報を出力します。
ストリームを実際には受信しません。これを -v オプションと組み合わせて使用すると、受信操作で使用する名前を決定するのに役に立ちます。
受信操作を実行する前に、filesystem のロールバックを最新のスナップショットに強制します。
次のコマンドは、「pool/home」という名前のファイルシステムと、「pool/home/bob」という名前のファイルシステムを作成します。マウントポイント「/export/home」が、親のファイルシステムに対して設定され、子のファイルシステムがそれを自動的に継承します。
# zfs create pool/home # zfs set mountpoint=/export/home pool/home # zfs create pool/home/bob |
次のコマンドは、「yesterday」という名前のスナップショットを作成します。このスナップショットは、要求に応じて、「pool/home/bob」ファイルシステムのルートにある「.zfs/snapshot」ディレクトリにマウントされます。
# zfs snapshot pool/home/bob@yesterday |
次のコマンドは、「pool/home」とその子孫ファイルシステムの、「yesterday」という名前のスナップショットを作成します。各スナップショットは必要に応じて、そのファイルシステムのルートの「.zfs/snapshot」ディレクトリにマウントされます。2 つ目のコマンドは、新しく作成されたスナップショットを破棄します。
# zfs snapshot -r pool/home@yesterday # zfs destroy -r pool/home@yesterday |
次のコマンドは、「pool/home」以下のすべてのファイルシステムで圧縮を無効にしますが、「pool/home/anne」に対しては明示的に有効にします。
# zfs set compression=off pool/home # zfs set compression=on pool/home/anne |
次のコマンドは、システム内のアクティブなファイルシステムをすべて一覧表示します。
# zfs list NAME USED AVAIL REFER MOUNTPOINT pool 100G 60G - /pool pool/home 100G 60G - /export/home pool/home/bob 40G 60G 40G /export/home/bob pool/home/bob@yesterday 3M - 40G - pool/home/anne 60G 60G 40G /export/home/anne |
次のコマンドは、「pool/home/bob」に 50G バイトの割り当てを設定します。
# zfs set quota=50G pool/home/bob |
次のコマンドは、「pool/home/bob」のプロパティーをすべて一覧表示します。
# zfs get -o property,value,source all pool/home/bob PROPERTY VALUE SOURCE type filesystem - creation Tue Feb 14 15:51 2006 - used 571K - available 50.0G - referenced 376K - compressratio 1.00x - mounted yes - quota 50G local reservation none default recordsize 128K default mountpoint /pool/home/bob default sharenfs off default shareiscsi off default checksum on default compression on local atime on default devices on default exec on default setuid on default readonly off default zoned off default snapdir visible default aclmode groupmask default aclinherit secure default xattr on 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 compression on pool/home checksum off |
次のコマンドは、「pool/home/anne」の内容を「yesterday」という名前のスナップショットに戻し、中間のスナップショットをすべて削除します。
# zfs rollback -r pool/home/anne@yesterday |
次のコマンドは、初期内容が「pool/home/bob@yesterday」と同一の書き込み可能なファイルシステムを作成します。
# zfs clone pool/home/bob@yesterday pool/clone |
次の各コマンドは、クローン、クローンの移行の促進、および名前変更を実行することで、あるファイルシステムに対する変更内容をテストしたあと、その変更後のファイルシステムで元のファイルシステムを置き換える方法を示しています。
# 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 |
次のコマンドにより、「pool/home/bob」および「pool/home/anne」は「checksum」プロパティーを親から継承します。
# zfs inherit checksum pool/home/bob pool/home/anne |
次のコマンドは、リモートマシンにストリーム全体を送信してから、増分ストリームを送信して、「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 |
次のコマンドは、「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 |
次の例は、5G バイトの ZFS ボリュームを作成し、そのボリュームをスワップデバイスとして追加する方法を示します。
# zfs create -V 5gb tank/vol # swap -a /dev/zvol/dsk/tank/vol |
次の例では、ユーザー定義の 「com.example:department」プロパティーをデータセットに設定します。
# zfs set com.example:department=12345 tank/accounting |
次の例は、ZFS ボリュームを iSCSI ターゲットとして作成する方法を示します。
# zfs create -V 2g pool/volumes/vol1 # zfs set shareiscsi=on pool/volumes/vol1 # iscsitadm list target Target: pool/volumes/vol1 iSCSI Name: iqn.1986-03.com.sun:02:7b4b02a6-3277-eb1b-e686-a24762c52a8c Connections: 0 |
iSCSI ターゲットの作成後に、iSCSI イニシエータを設定します。Solaris iSCSI イニシエータの詳細は、『Solaris のシステム管理 (デバイスとファイルシステム)』を参照してください。
次のコマンドでは、tank/home ファイルシステムに「sharenfs」プロパティーオプションを設定することで、IP アドレスのセットに対して rw アクセスを有効にし、システム neo に対して root アクセスを有効にする方法を示しています。
# zfs set sharenfs='rw=@123.123.0.0/16,root=neo' tank/home |
ホストの名前解決に DNS を使用している場合は、完全指定のホスト名を指定してください。
次の属性についての詳細は、マニュアルページの attributes(5) を参照してください。
属性タイプ |
属性値 |
---|---|
使用条件 |
SUNWzfsu |
インタフェースの安定性 |
開発中 |
ssh(1), mount(1M), share(1M), unshare(1M), zonecfg(1M), zpool(1M), chmod(2), stat(2), fsync(3C), dfstab(4), attributes(5)
ZFS の Web ベース管理ツールおよびその他の ZFS 機能を使用するための情報については、『Solaris ZFS 管理ガイド』を参照してください。