Previous Post | Top | Next Post |
TOC
半年前に覗いたBtrfs をもう一度見直しました。以下は自分なりの備忘録メモです。
subvolumeの使い方
使用法のガイド のリストのリンク先には興味深いコンテントがあります。 システム管理者ガイド 中の、subvolumeレイアウト の内容は、「使い方」を見詰め直す上で目から鱗でした。
私は単純にFlatなsubvolumeレイアウトを乱用していましたが、
Nestedなsubvolumeレイアウトをうまく使い/etc/fstab
を簡素化し、
よく考えて構成したMixedなsubvolumeレイアウトを使うと管理が楽そうです。
この際、Ubuntu風の@home
等の
慣習Subvolume命名法
を、Flatなsubvolumeレイアウトなsubvolume名に適用しています。
Debianでは、subvolume名 @rootfs
がシステムの導入の際に使われています。
一方、Ubuntuでは、subvolume名 @
がシステムの導入の際に使われているようなので、要注意です。
btrfs のシステムへの導入
RAID関係、圧縮関係、SWAP FILE関係にかかわらない限りbtrfsはかなり安定なようなので ext4にしていたルートファイルシステムのbtrfs化をめざします。
busterリリース版のd-iでbtrfsのpartitionを作成し、それをroot filesystem
に指定すると、@rootfs
というsubvolumeが作成され、その中にシステムが導入できます。
NOTE: 強引にroot filesystemを@
に置く設定をしてると、2022年7月以降はトラブルが
発生しました。素直に上記の様にd-i で btrfs への root filesystem導入をはかるのが良いようです。
ユーザー毎のsubvolの追加など
ホームディレクトリーにあるユーザーデーターをシステム再構築から保護する上でも、 ホームディレクトリーは別のパーティションかsubvolumeに保存するのが便利です。
btrfsがあるので、@rootfs
が置かれたbrtfs内に、ユーザー毎にsubvol=@homefoo
を
追加し、それを/etc/fstab
からmountします。
その際にユーザー権限でのsubvolume削除を可能にすると、Nestedなsubvolumeレイアウトが
使いやすくなります。そのためには、btrfsをuser_subvol_rm_allowed
オプションで
mountする必要があります。
例えば、ホームディレクトリー内だけでsubvolume削除を可能にするには、
/etc/fstab
のエントリーを以下とします。
UUID=???first / btrfs subvol=@rootfs,defaults 0 0
UUID=???second /home/foo btrfs subvol=@homefoo,user_subvol_rm_allowed,defaults 0 0
btrfs
(5) mount option に以下の記載があるのには要注意です。“most mount options
apply to the whole filesystem and only options in the first mounted subvolume
will take effect.”
また、最近(2019-06-13以降)のuseradd
コマンドにはマニュアルにはないけど
--btrfs-subvolume-home
があります。これを使うのも面白そうですがやっていません。
adduser
は意識的にこのオプションをサポートしていません。
No_COW attribute
No_COWアトリビュートをディレクトリ毎chattr +C <dirname>
で設定できるようです。
swapは別パーティションなので使いませんが、kvmが使うqcow2フォーマットのイメージファイルのある
/var/lib/libvirt/images
には適用してみました。No_COWアトリビュート設定の確認
にはlsattr
(1)をつかいます。
bss バップアップスクリプト
2021年の春からはスナップショットとエイジングをするシェルスクリプトで 書かれたbssというスクリプトを作成して、 スナップショットを管理しています。
自動スナップショット機能なども付けたので悪くない感じです。
マウントポイントごとに機能します。
2022年にスナップショットの書き出し先を設定できる改善をしました。 APTのsnapshotでのリバーと操作が使いやすくなりました。
参考サイト
- Btrfs: SysadminGuide
- Btrfs: Manpage/btrfs(5)
- Convert your filesystem to Btrfs (2021-01)
- Default btrfs mount options and subvolume layout (2020-12)
- Getting started with btrfs for Linux (2020-11)
- What are optimal btrfs mount options / best practices (2020-07)
- Next-Gen Backup with BTRFS Snapshots for Root-Fs and Databases (2017-09)
Previous Post | Top | Next Post |