a hack which force blocks that had been delay allocated to be allocated when either (a) the file in which was being written had previously been truncated using ftruncate or opened using O_TRUNC, at which point the blocks will be allocated when the file is closed, or (b) if a file containing blocks not yet allocated is renamed using the rename(3) system call causing a previously existing file to be unlinked (i.e., the application has written the file "foo.new" and is now calling rename("foo.new", "foo"), causing the file "foo" to be unlinked), then the file's blocks will also be forcibly allocated.
Ubuntu関係なくね? (スコア:2, 参考になる)
Ubuntuのext4でのみ問題が起こるようにも読める文章ですが、
カーネルの問題であって基本的にディストリビューションは関係ないですよね?
(もちろん独自にパッチをバックポート、とかはあるでしょうが)
本家記事は元のバグレポートがUbuntuに対してなされてるのがわかるので意味が通るんですが
こっちでは何が何やら、ミスリードチックです。
Re: (スコア:0)
Ext4の問題でも、Ext3のコミット間隔を当てにしたアプリケーションの問題でもなく、Linuxカーネルの問題……ってことですよね?
何のことなのか訳分からなくてLinux環境ではファイルシステムを意識してソフト開発しないといけないのかなんて思ってました。
Re: (スコア:0)
Ext3のコミット間隔を当てにしたアプリケーションの問題ですよ。
Re: (スコア:0)
突然のシステムダウンから復帰したときに、色んなファイルがゼロバイトになる現象のようなんですど、複数のファイルがごっそりゼロバイトになることに未対応であるアプリがあるってだけなんじゃないかと。
Re: (スコア:5, 参考になる)
要はPOSIXで制定されている以上の事を求めるプログラマ多すぎ、というのが結論。
Ext3の挙動が標準であると思い込んでアプリケーション書いていたら、その挙動はExt3固有で POSIXにはそんなこと書いてなかった。
それで、Ext4じゃその挙動が変わっちゃったという話みたい。
Ted Tsoがバグレポートの中 [launchpad.net]で書いていることを引用すると、
Re: (スコア:0)
これは何のパッチなのでしょうか?
自分でバグレポートを読め?ごもっとも。
Re: Ubuntu関係なくね? (スコア:4, 参考になる)
これは何のパッチなのでしょうか?
再び、Ted Ts'o曰く, [launchpad.net]
意訳:(a) ftruncate()されたか"O_TRUNC"で開かれたファイルにwriteし、そのファイルをクローズする際か、(b)まだ、ディスクに書き込まれていないデータを含むファイルを、既に存在するファイルに上書き(rename("foo.new", "foo");上の2.eのケース)する際に、強制的にディスクに書き込むようにする。
基本的には、問題になっているケースに限ってExt3と同様な挙動をするようにする為のパッチとのこと。
なお、大きいファイルやデータベースのファイル等は上記パターンに合致しないのが殆どなので、大体においてExt4のパフォーマンスはそれほど落ちないとか。
安定したシステムにおいて、以上の挙動を無効化する為のマウントオプションも2.6.30向けに準備しているとも。
ちなみに、Ubuntuのカーネルメンテナンスチームメンバらしき人がこのパッチをUbuntu 9.04向けに取り込む予定はない [launchpad.net]と述べている。