btrfsは便利

mkfs.btrfs -L RAID1 -m rda1 -d raid1 /dev/sdc1 /dev/sdd1
これで、RAID1が構築できる。
ここで、/dev/sdd1を故意に破壊。
mount /dev/sdc1 /mntでマウントできなくなる。btrfsはマウントできないと何もできないので、焦ったが、
mount -o degraded /dev/sdc1 /mntで、マウントできる。
btrfs device delete missing /mntで、消失デバイスを除き、
btrfs device add /dev/sdd1 /mntで、新たなデバイスを追加する。
自動で、再構築するようだが、容量が大きいととても時間がかかるようだ。
btrfs fi usage /pathで確認すると、singleの部分が残っている。
btrfs balance start /pathで、singleの部分がなくなり、完全に再構築された。
4TBのハードディスクに、fdiskでgptのパーティションをつくったが、verifyでエラーになり、
gpartedを、利用した。原因不明。瓦記録のHDDだからなのか?

デバイスを後から加えて、RAID1を構成することも簡単にできる。
mkfs.btrfs /dev/sdb1
mount /dev/sdb1 /mnt
btrfs device add /dev/sdc1 /mnt
btrfs balance start -dconvet=raid1 -mconvert=raid1

サーバに手を入れたので、btrfsのsubvolumeを使ってみた。
mount /dev/sdc1 /mnt
btrfs sub create /mnt/test
btrfs sub list /mnt
umount /mnt
mount -o subvol=test /dev/sdc1 /media/disk
mount
umount /media/disk
あまり理解できていないが、ディレクトリのように扱えるパーティションのようなものか。とりあえず、一つのパーティションを複数のディレクトリにマウントできるようなもので便利。パーティションのトップもデフォルトのサブボリュームの扱いだし。
こうなると、パーティションは不要だが、lsblkなどを使用したときに内容が表示されなくなるので、パーティションを一つ作成しておいたほうが便利。
ただ、btrfsはとりあえずマウントしないと操作ができないのでわかりにくい。
サブボリュームのマウント状態は、dfではわからないので、findmnt -Dで一覧するのが便利。

コメント