1. 概要
「zfs」は、スナップショットをとることができます。
これは、便利ではありますが、逆に、スナップショットでないと、他のマシンへバックアップをとることはできません。
本ページは、下記のサイトを参考にさせていただきました。
「スナップショット · How to ZFS」
2. リスト
現在のスナップショットをリストするには。
zfs list -t snapshot
実は、一度もスナップショットを作成したことのないマシンでも。
NAME USED AVAIL REFER MOUNTPOINT
zroot/ROOT/default@2024-06-06-14:44:45-0 87.6M - 3.07G -
てな感じで表示されました。
これは、たぶん、「FreeBSD」で、自動的に作成されているものと思われます。
3. 作成
スナップショットは、下記の要領で作成します。
zfs snapshot マウントポイント?プール?@スナップショット名
用語として、マウントポイントちゅうのが正しいのか、プールというのが正しいのか、まだよくわかっていません(2024年7月3日)。
「df」コマンドで見るとこんな感じで。
$ df -H
Filesystem Size Used Avail Capacity Mounted on
zroot/ROOT/default 138G 5.7G 132G 4% /
devfs 1.0k 0B 1.0k 0% /dev
zroot/tmp 132G 3.8M 132G 0% /tmp
zroot/var/log 132G 258k 132G 0% /var/log
zroot/usr/ports 134G 1.8G 132G 1% /usr/ports
zroot 132G 98k 132G 0% /zroot
zroot/home 132G 98k 132G 0% /home
zroot/var/crash 132G 98k 132G 0% /var/crash
zroot/usr/src 133G 893M 132G 1% /usr/src
zroot/var/mail 132G 131k 132G 0% /var/mail
zroot/var/tmp 132G 98k 132G 0% /var/tmp
zroot/var/audit 132G 98k 132G 0% /var/audit
zroot/home/hogehoge 132G 111M 132G 0% /home/hogehoge
これを、「zfs list」で見るとこんな感じ。
$ zfs list
NAME USED AVAIL REFER MOUNTPOINT
zroot 8.08G 123G 96K /zroot
zroot/ROOT 5.43G 123G 96K none
zroot/ROOT/240606-144445 8K 123G 3.07G /
zroot/ROOT/default 5.43G 123G 5.35G /
zroot/home 106M 123G 96K /home
zroot/home/hogehoge 106M 123G 106M /home/hogehoge
zroot/tmp 3.66M 123G 3.66M /tmp
zroot/usr 2.54G 123G 96K /usr
zroot/usr/ports 1.71G 123G 1.71G /usr/ports
zroot/usr/src 852M 123G 852M /usr/src
zroot/var 764K 123G 96K /var
zroot/var/audit 96K 123G 96K /var/audit
zroot/var/crash 96K 123G 96K /var/crash
zroot/var/log 252K 123G 252K /var/log
zroot/var/mail 128K 123G 128K /var/mail
zroot/var/tmp 96K 123G 96K /var/tmp
こう見ると、「zroot/ROOT/default」ちゅうところにほぼ全部詰め込まれているように見えます。
ちゅうことで、下記のようにスナップショットを作成してみました。
zfs snapshot zroot/ROOT/default@snapshot
作成直後にリストしてみると。
$ zfs list -t snapshot
NAME USED AVAIL REFER MOUNTPOINT
zroot/ROOT/default@2024-06-06-14:44:45-0 87.6M - 3.07G -
zroot/ROOT/default@snapshot 0B - 5.35G -
う~んと、作成直後なので、差分がないため「USED」が「0B」で、参照が「5.35GB」ちゅうことなのかな?
4. 削除
作成したスナップショットを削除するには。
zfs destroy マウントポイント?プール?@スナップショット名
複数のスナップショットをまとめて削除したりは、できないようです。
5. 中身を見る
スナップショットは、マウントすることができます。
mount -t zfs zroot/ROOT/default@snapshot /mnt
これで、「/mnt」の下を見てみると。
$ ls /mnt
. .cshrc bin COPYRIGHT entropy home libexec mnt proc root sys usr zroot
.. .profile boot dev etc lib media net rescue sbin tmp var
と、ディレクトリ構造のまま見ることができます。
これで欲しい、ファイルやディレクトリのみを取り出すこともできます。