Bcachefs
Bcachefs は、 Btrfs と ZFS の機能をよりクリーンなコードベース、より安定性、より高速、 GPL 互換のライセンスを提供することを目的とした次世代の CoW ファイルシステムです。
主に Kent Overstreet によって開発されています。
目次
インストール
Bcachefs はまだアップストリーム カーネル にありませんが、 linux-bcachefs-gitAUR カーネルは AURからインストールできます。
Bcachefs ユーザースペースツールは bcachefs-tools-gitAUR から入手できます。
セットアップ
シングルドライブ
#bcachefs format /dev/sda #mount -t bcachefs /dev/sda/mnt
RAID0/1 の複数のドライブ
Bcachefs はレプリカをデータの任意のインスタンスとして定義するため、2つのドライブを備えた1つのレプリカは RAID0 に相当し、2つのドライブを備えた2つのレプリカは RAID1 に相当します。
# bcachefs format /dev/sda /dev/sdb --replicas=n # mount -t bcachefs /dev/sda1:/dev/sdb1 /mnt
SSD キャッシングを備えた RAID0/1
Bcachefs には、バックグラウンド、フォアグラウンド、プロモートの3つのストレージカテゴリがあります。ファイルシステムへの書き込みでは、フォアグラウンドドライブに優先順位が付けられ、その後、時間の経過とともにバックグラウンドに移動されます。読み取りはプロモートドライブにキャッシュされます。
次の例のように、推奨される構成は、フォアグラウンドとプロモートに ssd グループを使用し、バックグラウンドに hdd グループを使用することです。
# bcachefs format \ --group=ssd /dev/sda /dev/sdb --group=hdd /dev/sdc /dev/sdd /dev/sde /dev/sdf \ --data_replicas=1 --metadata_replicas=2 \ --foreground_target=ssd \ --background_target=hdd \ --promote_target=ssd # mount -t bcachefs /dev/sda:/dev/sdb:/dev/sdc:/dev/sdd/dev/sde:/dev/sdf /mnt
設定
ほとんどのオプションは、 bcachefs format
中、マウント時 (mount -o option=value
)、またはsysfs (echo X > /sys/fs/bcachefs/UUID/options/option
) フォーマット中にオプションを設定するか、 sysfs を介してオプションを変更すると、ファイルシステムのスーパーブロックに保存され、それらのドライブのデフォルトになります。マウントオプションはこれらのデフォルトを上書きします。
- data_checksum、metadata_checksum(none、crc32c、crc64)
- (foreground)compression、background_compression(None、lz4、gzip、zstd)
- foreground_target、background_target、promote_target
以下は、 bcachefs setattr file --option=value
を使用して、ディレクトリごとまたはファイルごとに設定することもできます。
- data_replicas
- data_checksum
- compression, background_compression
- foreground_target, background_target, promote_target
デバイスのグループの変更
# echo group > /sys/fs/bcachefs/filesystem_uuid/dev-X/label
デバイスの追加
# bcachefs device add --group=group /mnt /dev/device
これがグループ内の最初のドライブである場合は、それを使用するためにターゲット設定を変更する必要があります。この例は、キャッシュドライブを追加するためのものです。
# echo new_group > /sys/fs/bcachefs/filesystem_uuid/options/promote_target # echo new_group > /sys/fs/bcachefs/filesystem_uuid/options/foreground_target # echo old_group > /sys/fs/bcachefs/filesystem_uuid/options/background_target
デバイスの取り外し
まず、少なくとも2つのメタデータレプリカがあることを確認します (Evacuate はメタデータに対して機能していないようです) データとメタデータがすでに複製されている場合は、この手順をスキップできます。
# echo 2 > /sys/fs/bcachefs/UUID/options/metadata_replicas # bcachefs data rereplicate /mnt # bcachefs device set-state device readonly # bcachefs device evacuate device
デバイスを削除します。
#bcachefs device remove device #bcachefs データは /mnt を再複製します
Tips and tricks
Documentation
Up-to-date documentation is only available via bcachefs --help
. The man page, for instance, includes the now-useless --tier
option.
Check dmesg for more useful error messages.