2010年4月19日月曜日

安全なファイルシステムとは

筆者が3年間ぐらい考えてるのが、
「安全なファイルシステムとは何か」です。
いや済みません。別に作ったりとかしてないです。
時間と実力は無いので。

期待している「安全」には幾つか「層」があって、

  • ハードウエア故障からの回復
  • ソフトウエア故障からの回復
  • 人的ミスの回復
前二つについては、幾つか方法があるので、
今回は割愛&あるいは別エントリを書きます。

人的ミスとは、つまり「間違って削除しちゃった」です。
人間は間違えます。
コンピュータは、人間が間違えたとおりに実行するだけです。

大抵は、削除しちゃった直後に自分で気がつくので、
「本当に削除する前の執行猶予」があれば
概ね上手くいきそうです。

「ごみ箱」もその手段の一部ですが、
人間に丸投げなので、解決には至りません。
また「「ごみ箱」に移動しない」方法も依然として有るので、
形骸化していると言えます。

その証拠が、ファイル復旧プログラムの存在ですね。

ハードウエア故障の懸念もあるので、
世間一般には「バックアップしようね」って事になってますが、
「間違って消す人間」はほとんどバックアップなんかしません。

ここまで否定的な話が続きましたが、
実は筆者自身が「間違って消す人間」なので、
馬鹿にしてるわけではありません。

やはり、運用上は、極めてフツーに使えて、
「消しちゃった!」時にサラリと復活できるのが理想です。

MacOS では、10.5以降、"time machine"を内蔵しました。
自動バックアップシステムらしい。

商用OSでコレが付くのは珍しいと思います。
復活の操作方法も、流石のMacOS。恰好良いですね。

筆者が常用しているのは、ubuntuです。
ファイルシステムでの解決策が幾つかあります。
zfs_fuse と nilfs2 です。いずれも2ヶ月以上は試してはみました。

zfs そのもので言えば、ストレージプールの発想は
やはりエンタープライズ向きでしょう。
個人ベースでやっても混乱するだけです。

筆者が試したのは2009年夏で、当時の選択肢としては、
他にOpenSolarisとFreeBSD-8が有りましたが、

OpenSolarisは、用意していたサーバ用PCでは
インストーラがまず起動せず断念。

FreeBSD-8は当時はまだリースしてませんでした。
今はリリースしてるけどZFSはno longerでexperimetalですと。
仕事のデータは入れられないなあ。

OpenSolaris版もFreeBSD版も、
zfsそのものの事情は一緒で、
メモリを大量に確保しないと落ちる。らしい。

zfs_fuse特有の欠点として、
fuse上で再現したものなのでnfsサーバ側で使えない上に、
linux上では、マジックナンバーがぶつかるらしく、
xfsと同時には使えません。
2008年で開発が止まっちゃってるのも残念。

nilfs2は、コンセプトは期待通りなのですが、
明確な欠点があり。
ただ巨大なファイルの削除と更新が、恐ろしく遅いです。
リネームも遅かったと思った。
「裏で、なんか色々コピーしてるなー」、と実感できる遅さ。

スナップショットの参照は、マウントオプションで指定するのですが、
デバイス名が本体と一緒なので、本体のマウントを一旦外さないと、
正常にスナップショットの中身が参照できません。

現状、
1TBと500GBの二つのパーティションはnilfs2で据え置きですが、
数百メガ単位のファイルを扱うと、絶望的な遅さです。
心が折れてきて、片方をxfsに移そうかと思っているところ。