FreeBSD - メンテナンス・トラブルシュート - zfs - スナップショット

クラウディア 
1. 概要
2. リスト
3. 作成
4. 削除
5. 中身を見る

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
 と、ディレクトリ構造のまま見ることができます。  これで欲しい、ファイルやディレクトリのみを取り出すこともできます。
ハイスピードプラン