のマンページは次のようにfsync
述べています。
基になるハード ディスクで書き込みキャッシュが有効になっている場合、fsync() / fdatasync() が戻ったときに、データが実際には永続的なストレージにない可能性があります。
データがディスクに物理的に書き込まれたことを確認する方法はありますか?
のマンページは次のようにfsync
述べています。
基になるハード ディスクで書き込みキャッシュが有効になっている場合、fsync() / fdatasync() が戻ったときに、データが実際には永続的なストレージにない可能性があります。
データがディスクに物理的に書き込まれたことを確認する方法はありますか?
いいえ、ありません。
OSにディスクに書き込むようにfsync
指示すると、OSに関する限り、ディスクに書き込まれます。
ディスクがこれを偽装している場合、残念ながら実際に変更できるものではありません。適切なディスク システム (つまり、BBU RAID セットアップ) を使用すると、書き込みキャッシュを有効/無効にするだけで、ほとんどこれを回避できます。
O_DIRECT
およびO_SYNC
フラグを指定する場合は、ディスクに書き込む必要があることに注意してください: http://www.kernel.org/doc/man-pages/online/pages/man2/open.2.html