ext3とext4比較

ext3とext4って何が変わったのかようしらんかったのでついでに違いを調べてみた。

  1. ファイルシステムの最大サイズが16TBから1EB(1,048,576 TB)に
  2. ファイルの最大サイズが2TBから16TBに
  3. 最大サブディレクトリ数が32000から無制限に
  4. ファイルのデータへの参照方法が間接ブロックマッピングからエクステントに(前のエントリの下のほう参照)
  5. ファイルシステムへのデータの配置時、ブロックアロケータが1ブロックずつではなくたくさんのブロックに配置できるように(マルチブロックアロケーション)
  6. 遅延配置ができるように(ディレイドアロケーション)
  7. fsckが2から20倍の早さに
  8. ジャーナルにチェックサムつけるようになって信頼性向上
  9. ジャーナルを使わないモードも指定できる
  10. オンラインデフラグが可能に(未実装)
  11. inodeのデフォルトが256バイトになってナノ秒まで保持するように
  12. 持続的な事前配置が可能に(persistant preallocation)
  13. barriersオプション(RDBMSでbegin transaction, commit transactionとかやるようなもん)がデフォルトに

まあそんな感じらしい。

でまあ、ちょっとext4特有のフィーチャーに関して調べてみた。

  • extent — 4にあたる。でかいファイルへの読み書きが速くなる予定。フラグメンテーションも軽減。
  • huge_file — 1,2にあたる。たぶん。一般ユーザには関係なさそう。
  • dir_nlink — 3にあたる。企業システムとかだとたまにこれはまるんだよね。
  • extra_isize — 11にあたる。タイムスタンプがナノ秒まで見られてもありがたみがあまりよくわからないが、inodeが256バイトないとext4の固有の機能が使えないぽい。たぶんextentsとかblock group周りで使いそう。あとまあ、でかいファイルだと間接参照が減るんで、extents使わなくても大容量ファイルの取り扱いは早くなる。んじゃないかな。昔はinodeの枯渇とかありましたね。
  • flex_bg — ブロックグループのinodeとbitmapの配置位置が自由になる。これにより仮想的な大きなブロックグループを使ってinodeの割り当てをする。速度向上やフラグメンテーション軽減。
  • uninit_bg — 7にあたる。ブロックグループのデータブロックビットマップとiノードビットマップを初期化しないでアクセスする。使用されていないinodeのリストをそれぞれのブロックのiノードテーブルの最後にチェックサムをつけて保持しておいて、e2fsckのときに読むなよフラグをグループディスクリプタにくっつける。結果inodeの数が多ければ多いほどfsckにかかる時間が相対的に短くなる。

で、マウントオプション。

  • journal_checksum — 8にあたる。
  • noload — ジャーナルをロードしない。9にあたる。
  • barrier — 13。デフォルト。無効にするならnobarrierまたはbarrier=0。
  • orlov — 5。デフォルト。マルチブロックアロケータを使う。ext3までのがいいならoldalloc。
  • delalloc — 6。デフォルト。キャッシュから実際に書き出されるまでアロケーションを遅らせる。flex_bgやextentsが有効だと相乗効果でその間に配置の最適化とかが進んでより速く。キャッシュに入ったらすぐブロック確保したいならnodelalloc。

なんか12はext3でも実装されてるような。
マウントオプションはリストにあがってないやつは省き。

こうしてみてみるとext4ってよさそうな。
でもWindowsでマウントできないのはいやだなー。
extent, dir_nlink, extra_isize, flex_bg, uninit_bgってかんじかなー。
huge_fileはどっちでも。

「ext3とext4比較」への1件のフィードバック

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>