Btrfs の領域が完全に沈黙

いろいろなデータのバックアップ先として使っていた Btrfs な領域が読みも書きもできなくなってしまった。cd も ls もできない。たぶん復旧不可だな。もちろん btrfsck は行っている。きゅぅぅぅぅ。

原因は領域を完全に使い果たしたからのようだ。今なら disk full を検知できるように思えるのだが、まだまだ実用レベルではないようだ。まあ、ほんのひと昔前までは disk full を検知する仕組みが実装されていなかったのだから仕方がないだろう。でもさ、悲しい。

[2011-01-07 Fri] 追記:きっちり 85% というわけではない。多少のばらつきはあるようだ。手元では 88% で disk full になったものがある。(追記ここまで)

[2011-01-08 Sat] さらに追記:Linux カーネルのバージョンにもよるようで、なるべく新しいものを使ったほうがよい。できれば新しいカーネル上で領域を作り直したほうがいいのかもしれない。公式ページの FAQ を読みましょう。(追記ここまで)

ウェブで調べてみると、どうやら Btrfs というのは df コマンドで分かる使用量でいうところの 85% までしか書き込みができないようだ。実は僕の沈黙した Btrfs 領域は読み書き不能であるがマウントはできる。試しに df コマンドでこの領域の使用量を見てみると、ちょうど 85% であった。

/dev/sdg1            1465136000 1237335260 227139220  85% /mnt/mirror

しかし、btrfs filesystem show (もしくは btrfs-show) で見てみると領域をきっちり使い果たしていた。これじゃあなあ。

% sudo btrfs filesystem show
Label: none  uuid: bf990d34-139f-4b01-a236-70f6d25ff2e3
        Total devices 1 FS bytes used 1.14TB
        devid    1 size 1.36TB used 1.36TB path /dev/sdg1

Btrfs Btrfs v0.19

ちなみに、btrfs filesystem df の結果は次の通りだった。

% btrfs filesystem df /mnt/mirror 
Metadata, DUP: total=13.50GB, used=13.20GB
System, DUP: total=8.00MB, used=156.00KB
Data: total=1.34TB, used=1.13TB
Metadata: total=8.00MB, used=0.00
System: total=4.00MB, used=0.00

今回の失敗を繰り返さないよう df と btrfs filesystem show の出力に注意しないといけないな。

あと、Btrfs のマウントオプションに compress を付けることにしよう。しょせんバックアップデータだから事故が起こらない限り読みに行かないもんね。