RAID1なbtrfsでストレージ組んだ

Contents
  1. なぜ
  2. 構築
  3. マウント
  4. 確認
  5. 所感

自宅サーバをリプレースしたので、ストレージ用に 2TB x 2 の HDD を使って RAID1 な btrfs を組んでみました。

なぜ

最初は RAID1 + LVM + … な構成にしようと思ってたけど、どうせなら新しいものを触ってみたいということで btrfs を選んだ。

btrfs vs zfs でちょっと迷ったけど、将来性があって Linux との親和性が高そうな btrfs を選択。

構築

/dev/sdb と /dev/sdc が対象ディスク。

RAID1 構成の btrfs を組むにはこれだけ。パーティションも何も作成されてない状態で実行する。 ラベル(STORAGE)を設定しとくとこれでマウントできるようになるのでおいしい。

mkfs.btrfs -L STORAGE -d raid1 -f /dev/sdb /dev/sdc

マウント

最終的なマウントオプションはこんな感じ。

LABEL=STORAGE /mnt/storage btrfs noatime,autodefrag,compress-force=lzo,space_cache 0 0
  • noatime - atime を更新しないようにする。パフォーマンスがめっちゃあがる。特に btrfs だとそうらしい。
  • autodefrag - 自動でデフラグしてくれる。
  • compress-force=lzo - 圧縮を有効化する。lzo は速いやつ。
  • space_cache - キャッシュを高速化する。

参考: https://btrfs.wiki.kernel.org/index.php/Mount_options

確認

こんな感じになる。

$ df -h /mnt/storage
ファイルシス   サイズ  使用  残り 使用% マウント位置
/dev/sdb         1.9T   17M  1.9T    1% /mnt/storage

/dev/sdb がマウントされてることになってる。ちゃんと RAID1 になってるのか…? ってことで確認してみた。

$ sudo btrfs filesystem show /mnt/storage
Label: 'STORAGE'  uuid: b1193efc-ef62-4633-bca1-d3f61b79a2fe
	Total devices 2 FS bytes used 640.00KiB
	devid    1 size 1.82TiB used 2.01GiB path /dev/sdb
	devid    2 size 1.82TiB used 2.01GiB path /dev/sdc

# 圧縮されないように /dev/urandom
$ sudo dd if=/dev/urandom of=/mnt/storage/dummy bs=1M count=10240

$ btrfs filesystem show /mnt/storage
Label: 'STORAGE'  uuid: b1193efc-ef62-4633-bca1-d3f61b79a2fe
	Total devices 2 FS bytes used 10.02GiB
	devid    1 size 1.82TiB used 12.01GiB path /dev/sdb
	devid    2 size 1.82TiB used 12.01GiB path /dev/sdc

見る限りレプリケーションはされてるっぽい ✨

所感

思ってた以上に簡単で未来を感じた 😌 パフォーマンスとか安定性はこれからどうなるかですね 😎