Web更新

UbuntuでZFSを使ってみよう 第40回 ZFSのサブコマンドを再確認しよう(5)

今回も、前回に引き続き、ZFSのサブコマンドについて解説します。

zfs snapshot

zfs snapshot [-r] [-o property=value]… dataset@snapname…

スナップショットはこの連載の第13回で説明したように、スナップショットを作成した時点でのファイルシステムの内容を、書き込み不可の状態で保持する機能です。スナップショットを作成した時点での、ファイルシステムへの正常なシステムコールによるすべての変更が、スナップショットの一部となります。 スナップショットはアトミックに取得されるため、すべてのスナップショットは同じ時間に取得されます。

zfs snapは、zfs snapshotのエイリアスとして使用できます。

-o property=value オプション

指定されたプロパティを設定します。property で指定できるプロパティは、zfs create で指定できるプロパティと同じです。

-r オプション

指定したデータセットのすべての子孫に対して、スナップショットを再帰的に作成します。

zfs rollback

zfs rollback [-Rfr] snapshot

zfs rollback は、データセットを指定したスナップショットへロールバックするコマンドです。 データセットがロールバックされると、指定したスナップショット以降に変更されたデータはすべて破棄され、データセットはスナップショットの時点の状態に戻ります。 デフォルトでは、最新のスナップショット以外のスナップショットにロールバックすることは拒否されます。 強制的に最新より前のスナップショットにロールバックする際には、-r オプションを指定します。

-r-R オプションは、指定されたファイルシステムのスナップショットだけを破棄し、再帰的スナップショットの子孫スナップショットを破棄しません。 再帰的スナップショットを完全にロールバックするには、子スナップショットを指定してロールバックする必要があります。

-Rオプション

最近のスナップショットやブックマーク、それらのスナップショットのクローンも破棄する。

-f オプション

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

-r オプション

指定したスナップショットより新しいスナップショットやブックマークを破棄する。

zfs hold/holds/release

ホールドはスナップショットに対する参照の1つで、タグ名で管理されます。スナップショットにホールドが存在する場合、zfs destroyコマンドを使用してそのスナップショットを破棄しようとすると、EBUSYが返され削除に失敗します。

zfs hold [-r] tag snapshot…

指定されたスナップショットに、引数tagで指定されたタグ名のホールドを追加します。 各スナップショットには独自のタグ名前空間があり、タグはその空間内で一意である必要があります。

% sudo zfs hold test rpool/ROOT/ubuntu_kk0842/var/www@autozsys_c1eyjj
% sudo zfs destroy rpool/ROOT/ubuntu_kk0842/var/www@autozsys_c1eyjj
cannot destroy snapshot rpool/ROOT/ubuntu_kk0842/var/www@autozsys_c1eyjj: dataset is busy
-r オプション

与えられたタグを持つホールドが、すべての子孫のファイルシステムのスナップショットに再帰的に適用します。

zfs holds [-rH] snapshot…

指定されたスナップショットまたはスナップショットの既存のホールドを、すべてリストアップします。

%sudo zfs holds rpool/ROOT/ubuntu_kk0842/var/www@autozsys_c1eyjj
NAME                                              TAG   TIMESTAMP
rpool/ROOT/ubuntu_kk0842/var/www@autozsys_c1eyjj  test  Fri May 26 13:56 2023
-r オプション

名前付きスナップショットのホールドをリストアップするのに加えて、名前付き子孫スナップショットに設定されているホールドをリストアップします。

% zfs holds -r rpool/ROOT/ubuntu_kk0842/var@autozsys_c1eyjj
NAME                                              TAG   TIMESTAMP
rpool/ROOT/ubuntu_kk0842/var/www@autozsys_c1eyjj  test  Fri May 26 13:56 2023
-H オプション

ヘッダを出力せず、タブ区切りで出力します。

zfs release [-r] tag snapshot…

指定されたスナップショットから、引数 tag で指定されたタグ名のホールドを削除します。 タグ名は、各スナップショットに対してすでに存在している必要があります。

% sudo zfs release test rpool/ROOT/ubuntu_kk0842/var/www@autozsys_c1eyjj
% sudo zfs holds rpool/ROOT/ubuntu_kk0842/var/www@autozsys_c1eyjj
NAME                                              TAG  TIMESTAMP
-r オプション

指定したスナップショットの、すべての子孫ファイルシステムのスナップショットに対して、指定されたタグ名のホールドを再帰的に削除します。

終わりに

今回は、zfs snapshot/rollbackzfs hold/holds/release サブコマンドについて説明しました。次回もZFSサブコマンドについて説明します。次回をお楽しみに。

さて、このコラムを掲載いただいているデジタル・ヒュージ・テクノロジー社は老舗のOSSインテグレーターです。特にLinuxは強く、OSSを活用した業務システムの実績も多いです。興味がある方は以下のページもご覧ください。 DHT OSS導入コンサルティングサービス

関連記事一覧