はじめに

自宅で運用している Btrfs ファイルサーバの設定についてまとめる。

Btrbk を利用した、自動スナップショット

人間は度々作業に失敗する。そこで、ミスをカバーできるようにディレクトリを適時バックアップを行う設定をする。Btrfs では、Btrbk1 や Snapper2 を利用することで、自動的に Btrfs のスナップショットを作成・管理できる。 ここでは Btrbk を利用している。

snapshot_preserve_min   1d # スナップショットを取る最小頻度
snapshot_preserve       7d # ここで指定した期間のスナップショットが追加で保存される
timestamp_format        long # タイムスタンプの形式

volume /mnt/Btrfs_Storage # Btrfs をマウントしているディレクトリ
    subvolume           data # スナップショットの作成元、volume からの相対リンク
    snapshot_dir        snapshot # スナップショットの作成先、volume からの相対リンク

と設定すると,

/mnt/Btrfs_Storage
  └─snapshot
    ├── data.20220804T2359
    └── data.20220805T0000

のように、subvolume.日時の形式で保存される。

Windowsの「以前のバージョンの復元」とのリンク

smb での共有では、スナップショットのディレクトリを指定することで、Windows 上から過去のファイルを復元できる3
samba の設定に、以下の内容を追記することで、Btrbk で作成したスナップショットとリンクされる。4

    vfs objects = shadow_copy2
    shadow:localtime = yes
    shadow:format = data.%Y%m%dT%H%M
    shadow:sort = desc
    shadow:basedir = /mnt/Btrfs_Storage/data
    shadow:snapdir = /mnt/Btrfs_Storage/snapshot