GFS 論文ノート
GFSは分散ファイルシステムであり、以下の4つの特徴を持っています:
- 機械の故障を前提とした設計 - GFSは大量の安価なハードウェアで構成されるクラスタ上で動作するため、様々な理由で部分的な故障が発生します。
- 大容量ファイルの保存 - (2003年当時の基準で)数GBの大きなファイルが一般的であるため、I/O操作やブロックサイズは特別に考慮されています。
- ファイル操作は追記が中心 - これが主な最適化の対象です。
- ファイルシステムの設計はアプリケーションの使用シナリオを考慮 - 柔軟性が大幅に向上しており、これはクローズドシステムの利点と言えます。
設計概要
前提条件
- 部分的な故障は常態である - 監視、検査、エラーへの耐性、自己修復性が必要です。
- 大容量ファイルは常態である - 主に大容量ファイルの管理を最適化します。
- Readワークロードは主に以下の2種類です:
- 大量のストリーミング読み取り - 約1MBずつ、継続的に読み取ります。
- 少量のランダム読み取り - 数KBずつですが、アプリケーションは実際にはランダム読み取りを許容しません。
- Writeワークロードは主に大量のシーケンシャル書き込みであり、読み取り操作と同様に、変更はほとんど行われないため、最適化の対象外です。
- 複数のクライアントによる同一ファイルへの並列書き込みを最適化 - 適切なアトミック操作によって実現します。