- 1 名前:login:Penguin mailto:sage [2008/10/26(日) 15:18:36 ID:VYy55fXH]
- 過去スレ
01 pc.2ch.net/test/read.cgi/linux/1006743807/ 02 pc5.2ch.net/test/read.cgi/linux/1063025258/ 03 pc8.2ch.net/test/read.cgi/linux/1101495293/ 04 pc8.2ch.net/test/read.cgi/linux/1136695633/ 05 pc8.2ch.net/test/read.cgi/linux/1152348695/ 06 pc11.2ch.net/test/read.cgi/linux/1173530292/ 07 08 pc11.2ch.net/test/read.cgi/linux/1190788761/
- 865 名前:login:Penguin mailto:sage [2009/03/14(土) 10:46:54 ID:Fjttua0k]
- これってext3でも起こるよね。起こりにくいだけで。
>>863の最初の例なんか、 truncate -> writeで、write前に落ちれば どのジャーナルモードでもデータが消えるんじゃないか? すでに実行されていたとしても、ジャーナルにあって次マウントしたときにreplayされても。
- 866 名前:login:Penguin mailto:sage [2009/03/14(土) 11:40:29 ID:tgz4pVHK]
- > rename("~/.kde/foo/bar/baz", "~/.kde/foo/bar/baz~") --- this is optional
> rename("~/.kde/foo/bar/baz.new", "~/.kde/foo/bar/baz") は unlink("~/.kde/foo/bar/baz~")l link("~/.kde/foo/bar/baz", "~/.kde/foo/bar/baz~") rename("~/.kde/foo/bar/baz.new", "~/.kde/foo/bar/baz") にすべきだよな
- 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すら保証してくれないので、 さらにバリア張らないととか延々と話が続くんだけど。
- 868 名前:login:Penguin mailto:sage [2009/03/14(土) 16:28:12 ID:l9ZzVqeQ]
- blogの翻訳?
- 869 名前:login:Penguin mailto:sage [2009/03/14(土) 19:12:33 ID:++9sa7SW]
- 一時ファイルに書き込み→名前変更ってのは当たり前の技法だと思ってたけど
そうでもないのかな?
- 870 名前:login:Penguin mailto:sage [2009/03/14(土) 20:08:40 ID:6p4fiq3F]
- >>869
いや、あたりまえの技法というコンセンサスはとれていた。ゆえにTed Tsoは仕様どおりだ!とか片意地はらずに直すと言っている。という理解
- 871 名前:login:Penguin mailto:sage [2009/03/14(土) 20:11:26 ID:RgsfJUAA]
- しかしまぁ、仕様通りだから悪くない、と言っても汎用的なFSとしては使えないよなぁ
- 872 名前:login:Penguin mailto:sage [2009/03/14(土) 20:19:32 ID:qHb4tz1u]
- でもそうやって理想の仕様よりも現実を優先していくとWindowsみたいになるわけだけだが。
一見すると謎仕様すぎて、分かってない連中にボロくそに言われるという。
- 873 名前:login:Penguin mailto:sage [2009/03/14(土) 20:21:09 ID:Fjttua0k]
- >>867。
なるほど。 >>869もいってるけど、うまく書けたらリネームっていうのは、良くやるやり方なので、 確かにext3の挙動の方が安心できる気がしますね。 結局ext4での書き込みがext3より大幅に遅延するとしても、 ジャーナルに記録されていれば大丈夫な気がするのだが。
- 874 名前:login:Penguin mailto:sage [2009/03/14(土) 20:23:23 ID:2PA7Wxqo]
- そしてHans Reiser恩赦に
- 875 名前:login:Penguin mailto:sage [2009/03/14(土) 21:23:11 ID:Qv+bO9QY]
- 壊れたメタデータのコミット先を教えるかわりに
FSの破壊を軽減する司法取引だな
- 876 名前:login:Penguin mailto:sage [2009/03/14(土) 21:57:26 ID:wTSiQHD4]
- ZFSとかFS層の破壊防止を徹底してるから、
これからはそういう設計が定番になるんじゃないかな。 Btrfsはどうなんだろ?
- 877 名前:login:Penguin mailto:sage [2009/03/14(土) 23:59:37 ID:1qF/srTZ]
- super_operations構造体のメンバ
freeze_fsやunfreeze_fsってwrite_super_lockfsやunlockfsから名前変えたのか?何故に・・
- 878 名前:login:Penguin mailto:sage [2009/03/15(日) 10:02:11 ID:PCGBiEcT]
- >>872
これは現場ではうまくいっていたけど理想的な方法ではないのを、改めているのだと思うぞ。
- 879 名前:login:Penguin mailto:sage [2009/03/15(日) 10:18:44 ID:xjkBDfQM]
- >>877
きまぐれ。
- 880 名前:login:Penguin mailto:sage [2009/03/15(日) 19:42:41 ID:PU06YtSt]
- もう名前変更しなくていいようにメンバは
struct struct0001_s { member0001_t member0001; member0002_t member0002; member0003_t member0003; ... として意味は仕様書と帳票で管理すべし。これならコードで 書く内容も迷うことが少なくていいし、順序がずれたらABI破壊バグと すぐわかる。
- 881 名前:login:Penguin mailto:sage [2009/03/15(日) 20:01:52 ID:mnUY72EV]
- >>879
だったら やめて ちょうだい 本気で好きになりそうだから あなたの前では きれいでいたいし
- 882 名前:login:Penguin mailto:sage [2009/03/15(日) 20:31:39 ID:ReDUN6Ol]
- >>876
btrfsはZFSと同じくCOWで書くから、この問題は起こらない
- 883 名前:login:Penguin mailto:sage [2009/03/15(日) 20:34:14 ID:kmO3PCzB]
- btrfsはなんでaddressingを128bitにしなかったの?ZFSに負けちゃうよ
- 884 名前:login:Penguin mailto:sage [2009/03/15(日) 20:56:32 ID:LgaDmqJ8]
- >>881
吹いた
- 885 名前:login:Penguin mailto:sage [2009/03/15(日) 22:13:07 ID:VfSmlfyi]
- デ♥フ♥ラ♥グ
- 886 名前:login:Penguin mailto:sage [2009/03/15(日) 23:37:34 ID:mnUY72EV]
- >>884
歌詞の一部です 若かった昔を思い出させる 今夜のナンバー 1曲目は 長渕剛 素直 ttp://www.youtube.com/watch?v=cM-QvJI_RJQ
- 887 名前:login:Penguin mailto:sage [2009/03/16(月) 01:59:21 ID:Gwa/wpQE]
- >>883
btr2fs誕生のフラグです
- 888 名前:login:Penguin mailto:sage [2009/03/16(月) 02:03:51 ID:08WqhxTZ]
- >>883
アドレスが128bitだとIPv6を連想して不吉だから
- 889 名前:login:Penguin mailto:sage [2009/03/16(月) 15:19:00 ID:fRtMFqd9]
- マジレスするとVFSが対応していない。
- 890 名前:login:Penguin mailto:sage [2009/03/16(月) 15:31:04 ID:FfCxFL0P]
- ext3は罪な奴だな
fsyncを徹底すると遅すぎて使い物にならないし fsyncをしなくても十分安全だから fsync無しの更新を一般化させてしまった ext4も、data=orderedがデフォルトで安全なはずなんだけどなぁ 遅延アロケーションはジャーナルのコミットを考慮しない言うのか
- 891 名前:login:Penguin mailto:sage [2009/03/16(月) 16:49:59 ID:TUvh8KP2]
- extなんとかが最もポピュラーなのはなぜ?
歴史的な理由ですか?
- 892 名前:login:Penguin mailto:sage [2009/03/16(月) 18:13:10 ID:4dJsZZR0]
- なんだかんだで愛されてるんだよ
- 893 名前:login:Penguin [2009/03/16(月) 18:59:45 ID:XO5/u8kb]
- 殺人よりはマシだからな(ワラ
- 894 名前:login:Penguin mailto:sage [2009/03/16(月) 20:55:40 ID:fRtMFqd9]
- >>891
そのとおり。 ext2時代は事実上、それしか選択肢がなかった。 ext3時代はredhatが他のFSをサポートしなかった。FSの品質はテスターの数にめっさ依存するので ディストロの対応重要。
|

|