Открыть сервис

Google File System

Google File System (GFS) — это масштабируемая распределённая файловая система, разработанная компанией Google для обеспечения надёжного доступа к большим объёмам данных в условиях использования стандартного, недорогого оборудования. GFS была спроектирована для обработки потоковых чтений и записи данных в одномодовом (single-writer) режиме, ориентирована на большие файлы и устойчива к частым отказам компонентов кластера. Система стала основой для многих технологий хранения и обработки данных, включая Apache Hadoop Distributed File System (HDFS), и сыграла ключевую роль в развитии облачных вычислений и больших данных (Big Data).

История

Разработка GFS началась в конце 1990-х годов, когда инженеры Google столкнулись с ограничениями существующих решений (например, Network File System, NFS) при обработке терабайтных наборов данных, используемых в поисковом индексе и других сервисах. Традиционные файловые системы не обеспечивали необходимой отказоустойчивости, параллельной пропускной способности и автоматического восстановления при сбоях.

Первое публичное описание архитектуры GFS было опубликовано в 2003 году в статье «The Google File System» (Sanjay Ghemawat, Howard Gobioff, Shun-Tak Leung). В статье излагались принципы, на которых была построена система:

GFS была полностью реализована на C++ и запущена в производственной среде Google в 2001 году. В течение следующих лет она использовалась для хранения данных всех основных сервисов Google: поиска, Gmail, YouTube, Google Maps, Google Drive и других.

Архитектура

Архитектура GFS включает три основные компоненты:

Master-узел (GFS Master)

Серверы блоков (Chunkservers)

Клиент (GFS Client)

Процесс записи

  1. Клиент запрашивает у master разрешение на запись в конкретный файл и получает информацию о серверах блоков.
  2. Master назначает одну из реплик первичной (primary) репликой (lease holder) — она координирует порядок записи.
  3. Клиент передаёт данные (обычно в потоковом режиме) всем репликам последовательно. После того как все реплики подтвердят получение, клиент отправляет команду на фиксацию записи первичной реплике.
  4. Первичная реплика фиксирует операцию и уведомляет остальные реплики. В случае сбоя master перевыбирает первичную реплику.

Процесс чтения

Ключевые особенности

Применение

GFS использовалась во всех основных продуктовыхподсистемах Google до середины 2010-х годов. Примеры:

В 2010 году Google анонсировала преемника GFS — Colossus (также известный как Google File System II, GFS2). Colossus устранил ограничение единственного master-узла, используя распределённые метаданные, и улучшил поддержку произвольной записи. Colossus до сих пор является основной файловой системой Google.

Влияние

GFS оказала огромное влияние на индустрию обработки данных. Статья 2003 года вдохновила разработчиков проекта Apache Hadoop на создание Hadoop Distributed File System (HDFS), которая скопировала многие архитектурные решения GFS: один namenode (master), блоки 64–128 МБ, репликация, разделение метаданных и данных, подход «write-once-read-many». GFS также повлияла на проекты Ceph, GlusterFS и MooseFS.

Некоторые принципы GFS, такие как хранение метаданных в памяти и репликация как основной механизм отказоустойчивости, легли в основу более современных систем управления данными (например, Amazon DynamoDB и Apache Cassandra используют аналогичные идеи, но в привязке к NoSQL-моделям).

Критика и ограничения

Интересные факты

Источники

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →