kernel/memo/fs

Last-modified: 2008-09-02 (火) 23:17:55

●ファイル時間
atime・・・最終アクセス : 最後にファイルを読む(read)実行(execution)させた時間
mtime・・・最終変更時間 : ファイルを生成 (creation)した時間、または最後にファイル内容を変更した時間
ctime・・・最後のファイル作成・変更時間 : 最後にファイルの所有者、グループ、パーミッションなどが変更された時間、dtimeがないシステムではctimeをファイルの削除時間として使用することが出来る
dtime・・・ファイル削除時間

●ext3
ext3のファイルシステム(パーティション)は複数個のブロックグループから構成される。
1つのブロックグループには以下のエリアが含まれる
・スーパーブロック(実際に使用されるのはブロックグループ0のもの、その他はバックアップ)
 ⇒ブロックサイズ、空きブロック数、空きiノード数などのようなファイルシステム全体の管理情報を記録
・グループディスクリプタ(実際に使用されるのはブロックグループ0のもの、その他はバックアップ)
 ⇒ブロックグループの空きiノード数や空きブロック数を記録
・データブロックビットマップ
 ⇒データブロックの使用/未使用をビットで管理。
  1つのデータブロックを使用するため、ブロックサイズが1KBであれば4096のブロックが管理できる。
・iノードビットマップ
 ⇒iノードの使用/未使用をビットで管理。1つのデータブロックを使用する。
・iノードテーブル
 ⇒iノードのデータ本体
・データブロック
 ⇒データ本体
※パーティションにスーパーブロックとグループディスクリプタは各1つあればよく、
 実際にブロックグループ0のものが使用され、他のブロックグループのものはバックアップの意味を持つ。

●iノード
12の直接参照、間接参照、二段間接参照、三段間接参照の15の参照ポインタを持つ。

●ext3におけるジャーナリング
データの完全性を保証するものではない。
メタデータの整合性を保証することによってファイルシステムを保護する。

トランザクション--->アトミックな処理のまとまり
コミット(kjournald)
orderedモードの場合、(データそのものの)データブロックのフラッシュ
メタデータ(バッファ)のジャーナル領域への書き出し(フラッシュ?)

チェックポイント
メタデータの書きだし
データがディスクに書き込まれたことが確認できたらジャーナルログは破棄される。


mkfs(mke2fs)でのiオプションはiノードをパーティション/iオプション指定サイズ
数分作成する?
値が大きいほど作成されるiノード数は少なくなる。
またブロックサイズ数より小さくすると無駄なiノードが発生する。