2010年4月28日水曜日

nilfs2 の運用で要注意

フツーに運用するだけで、
勝手にバックアップ(厳密にはスナップショット)を取ってくれるという
便利この上ないファイルシステム。
linuxでだけ稼働します。まあ役得でしょう。

筆者は、現状 二つのパーティションをnilfs2で運用中ですが、
うち1パーティションを、xfsに移すことにしました。

数百MBオーダのファイルの取扱いが苦手っぽいのと、
パーティションが100%近くなってきたのが理由です。

新しいドライブを買ってきてxfsでフォーマット。
とりあえず機械的に移動開始。

find . -type d -exec mkdir /NEWPARTITION/\{\} \;
find . -type f -exec mv -v \{\} /NEWPARTITION/\{\} \;


その過程で、弱った事態が発生。

nilfs2は、パーティション(の)ルートに、
".nilfs"というファイルがあるのは
使ってる人ならご存知だと思いますが。

  • 消せます。
  • しかし、削除すると、lscp等が動かなくなります。
前述の、別パーティションへのデータの引越し中、
/.nilfsをmvしちゃったから、アラ大変。
どうやら、ガベージコレクションも止まっちゃう模様。

100%に成る前なら、手動で、"/.nilfs"を作成すれば済む話ですが、
成っちゃったら、最後

  • .nilfsを作成できない
  • .nilfsが無いので、ガベージコレクションが稼働しない。
  • ガベージコレクションが稼働しないので100%のまま。

という、それはそれは恐ろしいスパイラル発生。

そんなに大事なら、何らか救済処置が必須だった筈。

  • 削除できないようにしておく
  • mountしなおしたら勝手に復活


仕方がないので、rsyncで、不足ファイルをコピー中。
もう、移転は最後までやり切っちゃうしかありません。
完全に後に引けなくなりました。

結論として、
容量ギリギリまで使っちゃいそうなパーティションには、
nilfsは使っちゃ駄目!ということになっちゃいそうです。