ablog

不器用で落着きのない技術者のメモ

ext3 + Oracle

DBマガジン5月号の「Linux-DBサーバー構築入門/松信嘉範」に Linuxext3 ファイルシステムのことが書かれていた。
Oracle を使う場合、自分ならどうするか妄想してみた。

  • ジャーナリング方式
    • journal *1はない。
    • デフォルトの orderd*2 で良さそう。
    • wirteback*3 にしたらどれくらいパフォーマンスが違うんだろう?
    • REDO ログに同期書込み*4するので、writeback にしても信頼性は問題ないみたいだけど。
  • noatime
    • 各ファイルは「最終アクセス時刻」というメタデータを持っている。
    • read()システムコールなどでファイルの中身を読んだときに、アクセス時刻が記録される。
    • 無効化したほうがオーバヘッドが減る。
    • 「mount -o noatime /dev/sda1 /data」みたにして無効化できる。
    • うん、無効化で良いと思う。
  • ファイルシステムチェック回数
    • ext3 では、一定回数ファイルシステムをマウント/アンマウントしたり、最終ファイルシステム時刻から一定時間以上が経過すると、不整合検知のためにファイルシステム全体に対するチェックが実行されることがある。
    • 「tune2fs -c -1 -i 0 /dev/sda1」みたいにして無効化できる。
    • (↓)うん、めっちゃ嫌。こりゃ恐ろしい。

P.179

ファイルシステムチェックの間隔
...
ファイルシステムチェックはエラー検知のためにも意味のある処理なのですが ...
特にHAクラスタ構成を組んでいる場合、フェイルオーバー時に全体へのファイルシステムチェックで長時間待たされてしまうのは嫌でしょう。

*1:メタデータ・実データともジャーナリングする。

*2:メタデータのみジャーナリングする。ジャーナリング順序が保証される。

*3:メタデータのみジャーナリングする。ジャーナリング順序が保証されない。

*4:fsync()・fdatasync()システムコール、O_SYNC・O_DSYNCモードでopen