- 867 名前:login:Penguin mailto:sage [2009/03/14(土) 14:45:40 ID:NGZaZVb3]
- >>865
最初のはそうだけど、2つ目が問題なんだわ。 xfsはデフォルトでメタデータが先にコミットされるので、その直後に クラッシュするとファイルシステムの構造的には不整合はないが、その メタデータが指しているデータは存在しない。 で、xfsはメタデータがゴミデータを指してる状態で開けると、何が 見えるかわからん(古い/etc/passwdのブロックかもしれん)から セキュリティ的な問題があるよね、ときちんとメタデータが指している データを最初はゼロクリアした状態にしている(本来のデータがコミット されたら当然そちらに付け替える)。 ext3等はデフォルトではデータが先にコミットされるので、2での問題は 生じ得ない。一方、xfsの順序は最高性能を発揮するためで、生まれた時代や 背景を考えると致し方ない。 POSIX的にはfsyncしてない限り、どちらの挙動も問題なしで、fsyncしない アプリ開発者がPOSIXを理解してないというのが結論になる・・・が、 正直2の書き方って、すごい一般的だよね、さあどうしよう、という状況。 hogehoge > fugafuga && fsync fugafuga.new && mv fugafuga.new fugafuga とか直していくしかない。Ubuntuだっけ?にfsyncコマンドがあるのは このためだろうと思われる。 もっとも、ドライブキャッシュがあるとfsyncすら保証してくれないので、 さらにバリア張らないととか延々と話が続くんだけど。
|

|