Google File System

Google File System(GFS、GoogleFS)は、Googleが自社のシステムのために開発した分散ファイルシステムである。大規模なデー�…

Google File System
Google File System
対応OS Linux
種別 分散ファイルシステム
ライセンス プロプライエタリソフトウェア
テンプレートを表示

Google File SystemGFSGoogleFS)は、Googleが自社のシステムのために開発した分散ファイルシステムである。大規模なデータセンターに特化した、効率的で信頼性の高いシステムとして設計されている[1]。2010年には後継のColossusというファイルシステムが利用されている[2]

概要

Google File System(GFS)は、同社の主要なサービスである検索エンジンや各種サービスのデータストレージとして利用されている。創業者であるラリー・ペイジおよびサーゲイ・ブリンが同社の初期に開発したデータベースであるBigFilesから発展して生まれた[1]。通常のファイルシステムと似ており、データは64メガバイトにサイズを固定(チャンクと呼ばれる)して分割し保存される。ファイルに上書きをすることはほとんど無く、通常は追記と読み込みを中心に利用される。

オープンソースHadoop Distributed File System(HDFS)は、GFSとほぼ同じ仕組みを採用している。

設計

Google File Systemの構成

Googleでは、一般的に利用されている安価な、いわゆるコモディティなパーソナルコンピュータの部品を利用して大規模なデータセンターを構築している。このため、個々のサーバーが故障してもデータが損失せず、また自動的に復旧できるシステムとして設計されている。実際にGFSは複数のサーバノード)から構成される[3]。具体的には1台のMasterノードと複数台(10-1000台[4])のChunkサーバーである。

クライアントもしくはアプリケーションがGFS領域にデータを書き込むことを考える。データは前述の通りチャンクに分割される。Masterノードは、チャンクが生成された時、各チャンクに64 bitのユニークなIDを付ける[3]。その後、LinuxがインストールされたChunkノードはローカルディスクにチャンクを書き込む。この時、可用性確保のために複数の別々のChunkノードに、同じチャンクを書き込む。デフォルトでは3つのレプリカを作成する。

次に、データの読み出しを考える。Masterノードはアクセスに必要な全てのメタデータ情報をメモリ上に蓄えている[4]。例えば、「名前空間(ディレクトリ構造)」、「アクセス権限」、「原本ファイルとチャンクの対応表」、「チャンクが保存されているサーバの場所」等である。クライアントはまずMasterノードと通信し、チャンクのIDと場所を問い合わせる。続けてクライアントはChunkサーバーに直接アクセスし、チャンクを受け取る。最終的にデータを結合して元のファイルを復元する。

このように、メタデータがメモリにあるため高速な探索が可能であること、データの読み書きはクライアントとChunkサーバー間で直接行われておりキャッシュが介在しないこと、最終的なチャンク (データ) の記録にはLinuxのファイルシステムを利用していることが特徴と言える。

データの書き込みや読み出しはAPIを通して行われ[3]、標準的な"Write"、"Read"、"Open"、"Close"、"Delete"等の命令が揃えられている。ただし、POSIX準拠ではない。オブジェクトストレージとは異なりディレクトリ構造もある。

Masterノードはメタデータ保持以外にも、Chunkサーバーの状態を監視する役目もある。

関連事項

参照

  1. ^ a b 英語版Wikipediaより
  2. ^ Colossus: Successor to the Google File System (GFS)”. 2018年1月1日閲覧。
  3. ^ a b c The Google File System”. 2018年1月1日閲覧。
  4. ^ a b GFS: The Google File System”. 2018年1月1日閲覧。



Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.