ScholarGate
アシスタント

ファイルシステム

ファイルシステムは、永続的なデータをストレージデバイス上の名前付きファイルとディレクトリに整理し、データの配置、検索、保護、一貫性の維持を管理するオペレーティングシステムコンポーネントです。

PaperMindでテーマを探す近日公開Find papers & topics
Tools & resources
スライドをダウンロード
Learn & explore
動画近日公開

Definition

ファイルシステムとは、オペレーティングシステムがストレージデバイス上の永続的なデータを保存、整理、命名、検索、保護するために使用する手法とデータ構造であり、デバイス上のレイアウトと一貫性を管理しながら、アプリケーションにファイルとディレクトリを提示します。

Scope

このトピックでは、ファイル抽象化とインターフェース、ディレクトリ構造、割り当て方法(連続、リンク、インデックス)、空き領域管理、iノードなどのメタデータ構造、ジャーナリングとクラッシュ一貫性、およびバッファキャッシュについて扱います。OSがどのようにして生のストレージを信頼性の高い名前付き名前空間に変えるかについて説明します。物理ストレージデバイス自体(二次記憶装置)およびOSの主記憶管理(メモリ管理)は対象外です。

Core questions

  • ファイルはどのように命名され、ディレクトリに整理され、アクセスされるのでしょうか?
  • ファイルのデータはストレージデバイス上でどのように割り当てられ、配置されるのでしょうか?
  • ファイルシステムはどのようなメタデータを保持し、空き領域はどのように管理されるのでしょうか?
  • ファイルシステムはクラッシュ時にどのように一貫性を保つのでしょうか?

Key concepts

  • ファイル抽象化とインターフェース
  • ディレクトリと名前空間
  • iノードとメタデータ
  • 割り当て方法(連続、リンク、インデックス)
  • 空き領域管理
  • ジャーナリングとクラッシュ一貫性
  • バッファキャッシュ
  • アクセス制御とパーミッション

Key theories

クラッシュ一貫性
クラッシュによって複数ステップの更新が中断される可能性があるため、ファイルシステムは、ジャーナリング(変更を適用する前に意図した変更をログに記録する)やコピーオンライトなどの技術を使用して、障害発生後にファイルシステムが一貫性のある状態に復元されることを保証します。

Mechanisms

ファイルシステムは、各ファイルの論理バイトストリームをデバイス上のブロックにマッピングし、そのマッピングと属性をiノードやディレクトリなどのメタデータ構造に記録します。割り当て方法はブロックの割り当てと追跡方法を決定し、空き領域構造は利用可能なブロックを記録します。バッファキャッシュは最近使用されたブロックをメモリに保持し、ジャーナリングまたはコピーオンライトは、中断された更新がファイルシステムを回復可能で一貫性のある状態に保つことを保証します。

Clinical relevance

ファイルシステムは、ほとんどすべての永続的なデータが保存および取得される方法であるため、そのパフォーマンスと信頼性は、データベース、アプリケーション、およびユーザーにとって同様に重要です。メタデータ、キャッシング、およびクラッシュ一貫性に関する設計上の選択は、障害発生後の耐久性と回復を決定し、ext4、NTFS、ZFSなどの広く使用されているファイルシステムは、これらのトレードオフの数十年にわたる成果を具体化しています。

History

ディレクトリとiノードモデルを持つ階層型ファイルシステムは、1970年頃にUNIXによって確立されました。Berkeley Fast File Systemはレイアウトとパフォーマンスを改善し、1990年代のジャーナリングとログ構造設計はクラッシュ一貫性と書き込みパフォーマンスに対処しました。ZFSやBtrfsなどのコピーオンライトファイルシステムは、後にチェックサムとスナップショットを統合して、より強力な整合性を実現しました。

Debates

一貫性のためのジャーナリング対コピーオンライト
ジャーナリングは意図した変更を適用する前にログに記録するのに対し、コピーオンライトは新しいデータを新しい場所に書き込み、アトミックにポインタを切り替えます。それぞれ異なるパフォーマンス、スペース、整合性のトレードオフを伴うクラッシュ一貫性を提供し、現代のシステムでは両方が使用されています。

Key figures

  • Ken Thompson
  • Dennis Ritchie
  • Marshall Kirk McKusick
  • Abraham Silberschatz

Related topics

Seminal works

  • silberschatz2018
  • tanenbaum2014os

Frequently asked questions

iノードとは何ですか?
iノードは、ファイルのサイズ、所有権とパーミッション、タイムスタンプ、およびそのデータを保持するストレージブロックへのポインタなど、ファイルを記述するメタデータ構造です。ディレクトリは人間が読める名前をiノードにマッピングし、ファイルの名前とデバイス上の表現を分離します。
ジャーナリングはクラッシュからどのように保護するのですか?
ファイルシステム構造を変更する前に、ジャーナリングファイルシステムは意図した変更をログに記録します。クラッシュによって更新が中断された場合、再起動時にシステムはログに記録された変更を再生または破棄し、ファイルシステムが破損した状態になるのではなく、一貫性のある状態を復元します。

Methods for this concept

Related concepts