Btrfs入門(2)

Date: 2021/02/16 (initial publish), 2022/08/20 (last update)

Source: jp/note-00034.md

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でのリバーと操作が使いやすくなりました。

参考サイト

Previous Post Top Next Post