まとめ

完了
  • Hadoop 分散ファイル システム (HDFS) は、Google File System (GFS) のオープンソースのクローンです。
  • HDFS は、ノードのクラスター上で実行するように設計されており、モデルの I/O データ用の分散ファイル システム (DFS) を提供することによって MapReduce プログラミング モデルがサポートされています。
  • HDFS には、共通のクラスター全体の名前空間があります。これは、大きなファイルを格納でき、Write-Once, Read-Many 用に最適化され、ノード障害が発生した場合に高可用性を実現するように設計されています。
  • HDFS はプライマリ/セカンダリ トポロジに従います。このメタデータは NameNode によって処理され、データは DataNode に格納されます。
  • HDFS 内のファイルはブロック ("チャンク" とも呼ばれます) に分割され、既定のサイズは 128 MB です。
  • 既定では、ブロックはクラスター全体で 3 回 ("レプリケーション ファクター" と呼ばれます) レプリケートされます。
  • HDFS では、ツリー形式のクラスター トポロジを前提とし、ファイル アクセスを最適化してパフォーマンスを向上させ、複数のラックへのブロック レプリカの配置を試みます。
  • 元の HDFS 設計は変更不可のセマンティクスに従い、既存のファイルを書き込み用に開くことは許可されません。 新しいバージョンの HDFS では、ファイルの追加がサポートされます。
  • ファイルの書き込みはすべてのレプリカが書き込まれた後にのみ完了とマークされるため、HDFS は厳密に一貫性があります。
  • NameNode ではハートビート メカニズムを使用して DataNode エラーが追跡されます。DataNode が応答しなかった場合、それらは停止とマークされ、目的のレプリケーション係数を維持するために、その DataNode 上にあったブロックのコピーがさらに作成されます。
  • NameNode は、当初の HDFS 設計における単一障害点 (SPOF) です。 セカンダリ NameNode は、プライマリ NameNode からメタデータを定期的にコピーするように指定できますが、完全なフェールオーバー冗長性は提供されません。
  • HDFS では、MapReduce、高い信頼性、1 バイトあたりの低コスト、優れたスケーラビリティを実現するために高帯域幅が提供されます。
  • HDFS は、(既定のブロック サイズが大きいせいで) 小さなファイルでは非効率的であり、POSIX に準拠せず、最新バージョンの HDFS への追加を除いてファイルの書き換えは許可されません。
  • Ceph は、クラウド アプリケーション向けに設計されたストレージ システムです。 Ceph は、サービスが上部に階層化された分散オブジェクト ストアに基づいています。
  • Ceph の中核となるのは、オブジェクト ストア デーモン (OSD) の自己管理クラスターである RADOS と、モニター ノードです。 ノードでは、自己管理、フォールトトレランス、拡張性を実現するために高度な手法が使用されます。
  • RADOS 内のオブジェクトは、配置グループにハッシュされ、CRUSH アルゴリズムを使用して OSD に関連付けられます。
  • RADOS には、さまざまなプログラミング言語で動作するネイティブ RADOS クライアントである librados を通じてアクセスできます。
  • また、アプリケーションは、REST インターフェイスを通じて S3 および Swift プロトコルをサポートする RADOS Gateway を通じて RADOS 内のデータにオブジェクトとしてアクセスすることもできます。
  • RADOS では、RBD を使用して、ブロック記憶デバイスをエクスポートすることもできます。 これらは、仮想マシンのディスク イメージとして使用できます。
  • Ceph FS は、RADOS 上に階層化されたファイルシステムです。 これは、ファイルシステムのメタデータを追跡する特殊なメタデータ ノードを使用して実現されます。 メタデータ ノードでは、特殊なアルゴリズムを使用してファイルシステム ツリーが動的にパーティション分割されます。 メタデータ エントリは、フォールトトレランスを実現するために、RADOS にも保管されます。