日本語 man コマンド類 (ja-man-1.1j_5) と日本語 man ドキュメント (ja-man-doc-5.4 (5.4-RELEASE 用) など) をインストールすると、以下のような man コマンド閲覧、キーワード検索が コンソールからできるようになります。
4.11-RELEASE-K, 5.4-RELEASE-K, 5.5-RELEASE-K, 6.0-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K, 12.1-RELEASE-K は、 プライベート版 (小金丸が編集してまとめたもの) ですが、 より多くの翻訳したファイルが含まれています。 (5.4-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K から 12.4-RELEASE-K, 13.0-RELEASE-K から 13.3-RELEASE-K, 14.0-RELEASE-K から 14.1-RELEASE-K は、全翻訳済み)
13.3-STABLE-K, 15.0-CURRENT-K は現在、作成中で日々更新されています。
Table of Contents
ZFS(8) FreeBSD システム管理者マニュアル ZFS(8)
名称
zfs -- ZFS データセットを設定する
書式
zfs -?V
zfs version
zfs subcommand [arguments]
解説
zfs コマンドは、zpool(8) で説明されているように、ZFS 記憶域プール内の ZFS
データセットを設定します。データセットは、ZFS 名前空間内のユニークのパス
によって識別されます。例えば、次の通りです:
pool/{filesystem,volume,snapshot}
ここで、データセット名の最大長は、MAXNAMELEN (256B) バイトで、パスで許可
される入れ子の最大量は、50 レベルの深さです。
データセットは、次の 1 つを指定することができます:
file system 標準システムの名前空間内にマウントすることができ、他の
ファイルシステムと同じように振る舞います。ZFS ファイル
システムは、POSIX に準拠するように設計されていますが、
いくらかの場合に準拠できない既知の問題が存在していま
す。標準の準拠に依存するアプリケーションは、ファイルシ
ステムの空き空間をチェックするとき、標準でない振る舞い
のために失敗するかもしれません。
volume 生 (raw) またはブロックデバイスのようにエクスポートさ
れた論理的なボリューム。このタイプのデータセットは、ブ
ロックデバイスが必要なときのみ使用されます。ファイルシ
ステムは、通常、ほとんどの環境で使用されます。
snapshot 与えられたある時点で、ファイルシステムまたはボリューム
の読み込み専用のバージョン。filesystem@name または
volume@name として指定されます。
bookmark snapshot (スナップショット) によく似ていますが、ディス
ク上のデータを保持しません。送信元として使用することが
できます (が、受信元としては使用できません)。
filesystem#name または volume#name として指定されま
す。
詳細については、zfsconcepts(7) を参照してください。
プロパティ
プロパティの 2 つのタイプに分割されます: ネイティブなプロパティとユーザ定
義 (または "user") プロパティ。ネイティブなプロパティは、内部統計をエクス
ポートするか、ZFS の振る舞いを制御します。さらに、ネイティブなプロパティ
は、編集可能であるか、または読み込み専用です。ユーザプロパティは、ZFS の
振る舞いに影響しませんが、利用者の環境で意味のある方法でデータセットに注
釈を付けるために使用することができます。プロパティに関する詳細について
は、zfsprops(7) を参照してください。
暗号化
encryption (暗号化) 機能を有効にすることによって、暗号化されたファイルシ
ステムとボリュームを作成することができます。ZFS は、ファイルと zvol デー
タ、ファイル属性、ACL、パーミッションビット、ディレクトリリスト、FUID
マッピングと userused/groupused/projectused データを暗号化します。暗号化
の概要については、zfs-load-key(8) を参照してください。
サブコマンド
状態を変更するすべてのサブコマンドは、それらの元の形式でプールに永続的に
ログ記録されます。
zfs -?
ヘルプメッセージを表示します。
zfs -V, --version
zfs version
zfs ユーザランドユーティリティと zfs カーネルモジュールのソフトウェア
バージョンを表示します。
データセット管理
zfs-list(8)
与えられたデータセットのためのプロパティ情報を表形式でリストします。
zfs-create(8)
新しい ZFS ファイルシステムまたはボリュームを作成します。
zfs-destroy(8)
与えられた (複数の) データセット、(複数の) スナップショットまたはブック
マークを破壊します。
zfs-rename(8)
与えられたデータセット (ファイルシステムまたはスナップショット) の名前
を変更します。
zfs-upgrade(8)
ファイルシステムのディスク上のバージョンのアップグレードを管理します。
スナップショット
zfs-snapshot(8)
与えられた名前でスナップショットを作成します。
zfs-rollback(8)
与えられたデータセットを以前のスナップショットにロールバックします。
zfs-hold(8)/zfs-release(8)
指定されたスナップショットまたは複数のスナップショットへのホールド参照
を追加または削除します。スナップショットでホールドが存在するなら、zfs
destroy コマンドを使用することによってそのスナップショットを破壊するこ
ころみは、EBUSY を返します。
zfs-diff(8)
与えられたファイルシステムのスナップショットと、後の時間からそのファイ
ルシステムの別のスナップショットとの差分または現在のファイルシステムの
内容を表示します。
クローン
zfs-clone(8)
与えられたスナップショットのクローンを作成します。
zfs-promote(8)
クローンファイルシステムを "origin" (元の) スナップショットに依存しない
ようにします。
送信と受信
zfs-send(8)
ファイルシステムのもので、ブックマークから増加される、送信ストリームを
生成します。
zfs-receive(8)
標準入力で提供されるストリームで指定された内容のスナップショットを作成
します。完全なストリームが受信されるなら、新しいファイルシステムは、同
様に作成されます。ストリームは、デフォルトで完全なストリームである、
zfs-send(8) サブコマンドを使用して作成されます。
zfs-bookmark(8)
与えられたスナップショットまたはブックマークの新しいブックマークを作成
します。ブックマークは、スナップショットが作成された時点をマークし、zfs
send コマンドのための増分ソースとして使用することができます。
zfs-redact(8)
新しい改訂ブックマークを生成します。この機能は、ファイルシステムのク
ローンをリモートシステムで利用可能とするために使用することができます、
この場合に、それらの親が必要としない (または必要としない)。
プロパティ
zfs-get(8)
与えられたデータセットのプロパティを表示します。
zfs-set(8)
プロパティまたはプロパティのリストをデータセットごとの与えられた値に設
定します。
zfs-inherit(8)
指定されたプロパティをクリアして、先祖から継承され、先祖にプロパティが
設定されていないなら、デフォルトに復元されるか、または -S オプションが
存在するなら、受信した値に戻します。
クォータ
zfs-userspace(8)/zfs-groupspace(8)/zfs-projectspace(8)
指定されたファイルシステムまたはスナップショットの各ユーザ、グループ、
またはプロジェクトによって消費される空間とクォータを表示します。
zfs-project(8)
(複数の) ファイルまたはディレクトリのプロジェクト ID および/または継承
フラグをリストす、設定す、またはクリアします。
マウントポイント
zfs-mount(8)
現在マウントされているすべての ZFS ファイルシステムを表示するか、または
その mountpoint プロパティによって表されるパスに ZFS ファイルシステムを
マウントします。
zfs-unmount(8)
現在マウントされている ZFS ファイルシステムをアンマウントします。
共有
zfs-share(8)
利用可能な ZFS ファイルシステムを共有します。
zfs-unshare(8)
現在共有されている ZFS ファイルシステムの共有を解除します。
管理の委任
zfs-allow(8)
指定されたファイルシステムまたはボリュームのパーミッションを委任しま
す。
zfs-unallow(8)
指定されたファイルシステムまたはボリュームで委任されたパーミッションを
削除します。
暗号化
zfs-change-key(8)
指定されたデータセットで暗号化キーを追加または変更します。
zfs-load-key(8)
指定された暗号化されたデータセットのキーロードして、アクセスを有効にし
ます。
zfs-unload-key(8)
指定されたデータセットのキーをアンロードして、データセットへのアクセス
を削除します。
チャネルプログラム
zfs-program(8)
Lua スクリプト言語のチャネルプログラムを通して、ZFS 管理操作プログラム
を実行します。
jail
zfs-jail(8)
ファイルシステムを jail にアタッチします。
zfs-unjail(8)
jail からファイルシステムをデタッチします。
待機
zfs-wait(8)
ファイルシステムのバックグラウンドアクティビティが完了するまで待ちま
す。
終了ステータス
zfs ユーティリティは、成功するなら、0 で終了し、エラーが起こったなら、1
で終了し、無効なコマンド行オプションが指定されたなら、2 で終了します。
使用例
例 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: スナップショットの作成
次のコマンドは、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 です。pool プロパティの詳細については、
zpoolprops(7) を参照してください。
# 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 のために 50 Gbytes のクォータを設定しま
す:
# 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 /pool/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 zoned off default
pool/home/bob snapdir hidden default
pool/home/bob acltype off 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 4 -
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 -
次のコマンドは、単一のプロパティ値を取得します:
# 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 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
populate /pool/project/production with data
# zfs snapshot pool/project/production@today
# zfs clone pool/project/production@today pool/project/beta
make changes to /pool/project/beta and test them
# zfs promote pool/project/beta
# zfs rename pool/project/production pool/project/legacy
# zfs rename pool/project/beta pool/project/production
once the legacy version is no longer needed, it can be destroyed
# zfs destroy pool/project/legacy
例 11: ZFS プロパティの継承
次のコマンドによって、pool/home/bob と pool/home/anne は、それらの親か
ら checksum (チェックサム) プロパティを継承します。
# zfs inherit checksum pool/home/bob pool/home/anne
例 12: ZFS データのリモートの複製
次のコマンドは、完全なストリームを送信し、次に、インクリメンタルスト
リームをリモートマシンに送信し、それぞれ poolB/received/fs@a と
poolB/received/fs@b にそれらを復元します。poolB は、ファイルシステム
poolB/received を含んでいなければならず、最初に poolB/received/fs を含
んていてはいけません。
# zfs send pool/fs@a |
ssh host zfs receive poolB/received/fs@a
# zfs send -i a pool/fs@b |
ssh host zfs receive poolB/received/fs
例 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 プロパティオプションの設定
次のコマンドは、IP アドレスの設定のために読み込み書き込みアクセスを有効
にし、tank/home ファイルシステムで、システム "neo" のための root のアク
セスを有効にするために sharenfs プロパティオプションを設定する方法を表
示しています:
# zfs set sharenfs='rw=@123.123.0.0/16,root=neo' tank/home
利用者が、ホスト名の解決のために DNS を使用しているなら、完全な形でのホ
スト名を指定します。
例 17: ZFS データセットの ZFS 管理パーミッションの委譲
次の例は、ユーザ cindys が tank/cindys で作成、破壊、マウントとスナップ
ショットの取得ができますように、パーミッションを設定する方法を表示しま
す。tank/cindys のパーミッションも表示されます。
# zfs allow cindys create,destroy,mount,snapshot tank/cindys
# zfs allow tank/cindys
---- Permissions on tank/cindys --------------------------------------
Local+Descendent permissions:
user cindys create,destroy,mount,snapshot
tank/cindys マウントポイントのパーミッションは、デフォルトで 755 に設定
されているので、ユーザ cindys は、tank/cindys の下でファイルシステムを
マウントすることができません。マウントポイントのアクセスを提供するため
に、次の構文に似た ACE を追加します:
# chmod A+user:cindys:add_subdirectory:allow /tank/cindys
例 18: ZFS データセットで作成時間パーミッションの委譲
次の例は、tank/users のファイルシステムを作成するために、グループ staff
の誰にでも許可する方法を表示しています。この構文は、また、スタッフメン
バがそれら自体のファイルシステムを破壊することはできますが、他の誰かの
ファイルシステムを破壊することはできません。tank/users のパーミッション
も表示されます。
# zfs allow staff create,mount tank/users
# zfs allow -c destroy tank/users
# zfs allow tank/users
---- Permissions on tank/users ---------------------------------------
Permission sets:
destroy
Local+Descendent permissions:
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
---- Permissions on tank/users ---------------------------------------
Permission sets:
@pset create,destroy,mount,snapshot
Local+Descendent permissions:
group staff @pset
例 20: ZFS データセットのプロパティのパーミッションの委譲
次の例は、クォータを設定し、users/home ファイルシステムの予約する能力を
付与して表示します。users/home のパーミッションも表示されます。
# zfs allow cindys quota,reservation users/home
# zfs allow users/home
---- Permissions on users/home ---------------------------------------
Local+Descendent permissions:
user cindys quota,reservation
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
---- Permissions on tank/users ---------------------------------------
Permission sets:
@pset create,destroy,mount,snapshot
Local+Descendent permissions:
group staff @pset
例 22: スナップショットと ZFS データセットの違いの表示
次の例は、ZFS データセットの以前のスナップショットとその現在の状態の間
で何が変更されたかを確認する方法を表示しています。-F オプションは、影響
されるファイルのためのタイプ情報を示すために使用されます。
# zfs diff -F 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
例 23: ブックマークの作成
次の例は、スナップショットのブックマークを作成します。次に、このブック
マークは、送信ストリームでスナップショットの代わりに使用することができ
ます。
# zfs bookmark rpool@snapshot rpool#bookmark
例 24: ZFS ファイルシステムの sharesmb プロパティオプションの設定
次の例は、ZFS を通して SMB ファイルシステムを共有する方法を表示していま
す。ユーザとそれらのパスワードを与えなければならないことに注意してくだ
さい。
# smbmount //127.0.0.1/share_tmp /mnt/tmp -o
user=workgroup/turbo,password=obrut,uid=1000
次のように、最小の /etc/samba/smb.conf 設定が必要です。
Samba は、ZFS ユーティリティが Samba と通信するために loopback インタ
フェースにバインドする必要があります。これは、ほとんどの Linux 配布のた
めのデフォルトの振る舞いです。
Samba は、ユーザを認証できなければなりません。これはいくつかの方法
(passwd(5), LDAP, smbpasswd(5), &c.) で行なうことができます。この方法
は、この文書の範囲外であり、詳細については、smb.conf(5) を参照してくだ
さい。
後から共有のあらゆるオプションを修正する必要がある場合に、すべての設定
オプションについては、USERSHARES セクションを参照してください。net(8)
コマンドで行なわれたあらゆる変更は、(リブートなどのような) 共有がすでに
共有されなくなったなら、元に戻されることに注意してください。
環境変数
ZFS_COLOR zfs diff の出力で ANSI カラーを使用します。
ZFS_MOUNT_HELPER zfs mount は、ZFS データセットをマウントするために
mount(8) を使用します。このオプションは、古い ZFS バー
ジョンとの後方互換性のために提供されています。
ZFS_SET_PIPE_MAX 送信/受信のための最大パイプサイズを設定するように zfs
に伝えます。Linux のパイプサイズ処理コードのデッドロッ
クが修正されていないため、Linux ではデフォルトで無効に
されます。
インタフェースの安定性
Committed.
関連項目
attr(1), gzip(1), ssh(1), chmod(2), fsync(2), stat(2), write(2), acl(5),
attributes(5), exports(5), zfsconcepts(7), zfsprops(7), exportfs(8),
mount(8), net(8), selinux(8), zfs-allow(8), zfs-bookmark(8), zfs-change-
key(8), zfs-clone(8), zfs-create(8), zfs-destroy(8), zfs-diff(8), zfs-
get(8), zfs-groupspace(8), zfs-hold(8), zfs-inherit(8), zfs-jail(8), zfs-
list(8), zfs-load-key(8), zfs-mount(8), zfs-program(8), zfs-project(8),
zfs-projectspace(8), zfs-promote(8), zfs-receive(8), zfs-redact(8), zfs-
release(8), zfs-rename(8), zfs-rollback(8), zfs-send(8), zfs-set(8), zfs-
share(8), zfs-snapshot(8), zfs-unallow(8), zfs-unjail(8), zfs-unload-
key(8), zfs-unmount(8), zfs-unshare(8), zfs-upgrade(8), zfs-userspace(8),
zfs-wait(8), zpool(8)
FreeBSD 13.2 June 30, 2019 FreeBSD 13.2