FreeBSD の スナップショットを保持している ufs がいっぱいになるとファイルが飛ぶ2024年04月17日 12時15分43秒

FreeBSD の UFS にもスナップショットを取る機能がある。UFS は古いファイルシステムなので、スナップショットは後付けだ。以前から不思議なシステムパニックに出会うことがあったが、最近何度か遭遇してかなり確信度があがった。

パニックの再現方法なのだが、UFS スナップショットを取った後にパーティション容量を使い尽くすこと。5% 程 UFS は予備でユーザが書き込めない分があるので、これには root ユーザで行う必要がある。ファイルシステムに書き込む場所がなくなればパニックが起こる。そして、fsck -yを行うと、どうもクラッシュ前のファイルが大量に消失してしまうようだ。

まだ、確信は無いのだが、どうも存在していたスナップショットに戻ってしまった模様。しかし、一つしかスナップショットが無い状態でのパニックしか経験していないので、二つ以上あった場合の動作がどうなるかは判らない。

なぜ、root ユーザで作業を行っていたかと言うと、/usr/local に割り当てた部分だったから。pkg の更新を行っていたのだ。そして、以前に作成したスナップショットが消されていないのに気が付かなかった。スナップショットが無ければ pkg delete が呼ばれた時点で容量が減る。しかし、スナップショットがあった為、pkg delete でも容量は減らない。容量の低下に気が付いて、急遽行ったいらないファイルの削除はむしろ墓穴を掘っただけだった。

取り敢えず、もう少し様子を見てから、bugzilla で検索をかけてみるつもり。