Btrfsを使ってみる
History
#Linux #Btrfs

ファイルシステムの作成

$ sudo mkfs.btrfs /dev/loop0p1

複数パーティションにまたがるbtrfsを作成(RAID0ではない)

$ sudo mkfs.btrfs /dev/loop0p1 /dev/loop1p1

RAID0でbtrfsを作成

$ sudo mkfs.btrfs -d raid0 /dev/loop0p1 /dev/loop1p1

RAID1でbtrfsを作成

$ sudo mkfs.btrfs -d raid1 /dev/loop0p1 /dev/loop1p1
  • RAID0, RAID1, RAID10, RAID5, RAID6に対応している
  • デフォルトでメタデータはRAID1になる
    • 変更したい場合はsudo mkfs.btrfs -m raid0 -d raid0 /dev/loop0p1 /dev/loop1p1のようにする

サブボリュームの操作

作成

$ sudo btrfs subvolume create vol1

削除

$ sudo btrfs subvolume delete vol1

rmやrmdirでもディレクトリと同じように削除可能

名前の変更

mvでディレクトリと同じように変更する

リスト表示

$ sudo btrfs subvolume list /mnt/

マウント

$ sudo mount /dev/loop0p1 /mnt/ -o subvol=vol1

一番上の階層をマウントしたい場合は-o subvol=/

デフォルトのサブボリュームの設定

$ sudo btrfs subvolume set-default 260 /mnt/
$ sudo btrfs subvolume set-default /mnt/vol1/

マウント時にサブボリュームの指定をしない場合の設定

デフォルトのサブボリュームの取得

sudo btrfs subvolume get-default /mnt/

スナップショットの操作

作成

$ sudo btrfs subvolume snapshot vol1/ snap1
$ sudo btrfs subvolume snapshot -r vol1/ snap2

-rでリードオンリーなスナップショットを作れる
削除などのその他の操作はサブボリュームと同じ

圧縮

  • 利用可能なのはzstd zlib lzo
$ sudo mount /dev/loop0p1 /mnt -o compress=zstd
$ sudo mount /dev/loop0p1 /mnt -o compress-force=zstd

下のコマンドでは、すでにあるファイルも圧縮を試みる

デバイスの追加

$ sudo btrfs device add /dev/loop2p1 /mnt/
$ sudo btrfs balance start /mnt/

デバイスの削除

$ sudo btrfs device remove /dev/loop2p1 /mnt/

RAIDでディスクを交換

  • 欠落が多い場合は使えない(RAID0など)
  • 片方のディスクが認識できなくなった場合はdegradedでマウントする
sudo mount /dev/loop0p1 /mnt/ -o degraded
  • 使えなくなったディスクのIDを確認する
$ sudo btrfs device usage /mnt/
  • 2のディスクを交換する
$ sudo btrfs replace start 2 /dev/loop2p1 /mnt/
  • データの再配置をする
$ sudo btrfs balance start /mnt/

RAIDレベルの変更

$ sudo btrfs balance start -dconvert=raid1 -mconvert=raid1 /mnt

この例ではメタデータとデータがRAID1に変わる

« Arch Linuxのlibvirtで仮想マシンの電源をホストと連動させる
LVMを使ってみる »