RSS

LVM+btrfs+RAID1 rootの試み

LVMのLVを使ってbtrfsのRAID1をrootを挑戦した。なんとか問題は解決したがきれいではない。

環境はDebian8(Jessie)で実行。最初にRAID1を設定するところまでは問題なかったのだが再起動するとこける状態になった。btrfs RAID1のroot自体はドキュメントも見つかるのでできないはずではないのに謎なことになった。

ディスクは2台ありsdaとsdbとする。まず作業手順だが普通にインストールする。sdaとsdaにそれぞれ別にLVMのvgを作成する(vg0とvg1とする)。そのあとlvも作成(/dev/vg0/rootと/dev/vg1/root)。

vg0/rootをbtrfsにして通常のインストール。インストール終了したあとにRAID1を作成する。

# btrfs device add /dev/vg1/root /
# btrfs fi balance -mconvert=raid1 -dconver=raid1

そのあと再起動…するとinitramfsの処理中にこける。rootflags=degradedをつけてブートするととりあえずブートするが片肺運用になるのでよろしくない。なぜこういうことになるのか,ということだが結論はinitramfsのLVMが必要最低限のlvしかactivateしないことが原因だった(rootflags=device=/dev/mapper/vg0-root,device=/dev/mapper/vg1-rootとかいろいろやったんだよ)。

なんかローカルで設定持てばいいんだろうということで解決は以下のよう。/usr/share/initramfs-tools/scripts/local-top/lvm2/etc/initramfs-tools/scripts/local-top にコピーする。

下のほうに activate "$ROOT"とある下に activate "/dev/mapper/vg1-root" を追加。これで解決したがゴリ押しっぽくていまいち美しくないいのでもっと簡潔な方法がないか考え中。

解決するまで何度も何度もリブートかけて仮想マシンとは言え面倒だった。時々壊れてマウントできなくなるので仮想CDから復旧かけるとか…。