unionfsのバグを直そう

FreeBSDのunionfsがバグっててひどいという話。

元々、jailをunionfsを使って管理したいと思ってはじめたもの。Dockerがaufsを使っているのと同じイメージ。
同じようにハマる人はたくさんいるようで。

Thin jail woes
https://forums.freebsd.org/threads/54530/

> As krawall states, unionfs are dangerous. They will panic your kernel, at some point, guaranteed. I would stay waaay clear if I were you.

(意訳) unionfsはポンコツだから使わないほうがいいよ。

そんなこと言わないでみんなで使って直そうよ……。
というわけで、休日やら週末やらを使って調査&修正してみた。FreeBSDのVFSも少し理解できた(気がする)。

https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=214326

これを機に、manページから以下の素敵な記述が消える日が来るといいんだけど。

THIS FILE SYSTEM TYPE IS NOT YET FULLY SUPPORTED (READ: IT DOESN'T WORK)
AND USING IT MAY, IN FACT, DESTROY DATA ON YOUR SYSTEM.  USE AT YOUR OWN
RISK.  BEWARE OF DOG.  SLIPPERY WHEN WET.  BATTERIES NOT INCLUDED.

余談:
なぜezjailやiocageを使わないかというと、こいつらがZFSを使うから。
ZFSが嫌いなのではなくて、中央ストレージにNFSで接続してるから使えないのだ。
file-backedなZFSも作れるけど、そうすると中央ストレージ(+ほかのシステム)から中身が見えない。(clustered-FSではないので、複数マシンから同時にマウントはできない)
それにfile-backedは仮想マシンのHDDイメージと同じで事前に容量を決めなきゃいけないし、zfs上でファイルを消しても縮んだりしない。
そんなわけで、今回の構成ではイマイチなのだ。