В данной статье проводится исследование архитектур двух распределенных файловых систем (РФС) — Google File System (GFS) и Hadoop Distributed File System (HDFS). Автор анализирует структуру обеих систем, выделяя их ключевые особенности и уникальные характеристики.
Ключевые слова : РФС, GFS, HDFS, файловая система.
Распределенные файловые системы (РФС) играют важную роль в современных вычислительных средах, обеспечивая эффективное хранение и обработку огромных объемов данных. Две из самых известных и широко используемых РФС — Google File System (GFS) от Google и Hadoop Distributed File System (HDFS) от Apache, обладают рядом схожих черт, но имеют и свои особенности в архитектуре и применении.
Архитектура GFS
В структуре файловой системы Google File System (GFS) файлы организованы иерархически с использованием каталогов, как и в аналогичных файловых системах, и идентифицируются своим путем. Пользователи могут выполнять стандартные операции с файлами в GFS, такие как создание, удаление, открытие, закрытие, чтение и запись. Кроме того, GFS предоставляет возможность создавать резервные копии, или снимки, файлов или дерева каталогов с минимальными затратами.
Основными компонентами GFS являются мастер-сервер и чанк-серверы, где хранятся данные. Обычно кластер GFS состоит из одного главного мастер-сервера и нескольких чанк-серверов. Файлы в GFS разбиваются на небольшие фрагменты, называемые чанками, которые хранятся на чанк-серверах и реплицируются для обеспечения отказоустойчивости. Мастер-сервер отвечает за управление метаданными всей файловой системы, включая пространства имен, контроль доступа и информацию о чанках.
Клиенты взаимодействуют с мастер-сервером только для операций, связанных с метаданными, в то время как операции с данными выполняются напрямую с чанк-серверами. GFS не поддерживает POSIX API, что освобождает разработчиков от необходимости работать с уровнем VNode в Linux. Обычный размер чанка в GFS составляет 64 мегабайта, что обеспечивает эффективную работу с крупными файлами. Общая архитектура GFS представлена на рис. 1.
Рис. 1. Общая архитектура GFS
Исходя из вышеописанной архитектуры можно выделить преимущества такой системы:
— Высокая доступность и отказоустойчивость, достигающаяся с помощью репликации
— Операции пакетной обработки, такие как запись в журнал операций и сбор мусора, способствуют увеличению пропускной способности.
— Простой и эффективная архитектура с одним мастером обеспечивает хорошую производительность для последовательного чтения большого количества данных.
Также в данной архитектуре присутствуют и минусы:
— При увеличении записей производительность системы может уменьшаться.
— Система ограничена количеством памяти на GFS Мастере.
— Маленькие файлы разбиваются на малое количество частей, что может привести к увеличению нагрузки на серверах, хранящих такие файлы.
Архитектура HDFS
Hadoop Distributed File System (HDFS) — распределенная файловая система, созданная для использования на оборудовании общего назначения. Она имеет много общих черт с другими распределенными файловыми системами, но имеет и значительные отличия. HDFS обеспечивает высокую отказоустойчивость и разработана для работы на недорогом оборудовании. Она обеспечивает высокую пропускную способность доступа к данным приложений и подходит для работы с большими объемами данных. HDFS в некоторых аспектах отличается от стандартов POSIX, чтобы обеспечить потоковый доступ к данным файловой системы.
HDFS имеет архитектуру типа maser/slave. Кластер HDFS состоит из одного NameNode, мастер-сервера, который управляет пространством имен файловой системы и регулирует доступ к файлам клиентов. Кроме того, есть несколько DataNode, обычно по одному на узел в кластере, которые управляют хранилищем, присоединенным к узлам, на которых они работают. HDFS предоставляет пространство имен файловой системы и позволяет хранить пользовательские данные в файлах. Внутренне файл разбивается на один или несколько блоков, и эти блоки хранятся в наборе DataNode. NameNode выполняет операции пространства имен файловой системы, такие как открытие, закрытие и переименование файлов и каталогов. Он также определяет сопоставление блоков с DataNode. DataNode отвечают за обслуживание запросов на чтение и запись от клиентов файловой системы. DataNode также выполняют создание, удаление и репликацию блоков по инструкции от NameNode. Проиллюстрируем данную архитектуру на рис. 2.
Рис. 2. Общая архитектура HDFS
Преимущества HDFS:
— Большой размер блока по сравнению с другими файловыми системами.
— Принцип WORM (Write Once, Read Many) полностью освобождает систему от блокировок типа «запись-чтение».
— Запись в файл в одно время доступна только одному процессу, что исключает конфликты множественной записи.
— HDFS оптимизирована под потоковую передачу данных.
Недостатки HDFS:
— Сервер имён является центральной точкой всего кластера, и его отказ повлечёт сбой системы целиком.
— Нельзя дописывать или оставлять открытыми для записи файлы в HDFS.
Вывод
HDFS упрощает модель записи, разрешая только одного писателя или добавление данных одновременно, что обеспечивает более простую систему управления согласованностью данных. С другой стороны, GFS позволяет нескольким клиентам писать или добавлять данные в один файл одновременно, что увеличивает сложность обеспечения согласованности данных, но может повысить параллелизм записи данных.
Однако следует отметить, что GFS использует механизм аренды для обеспечения последовательной согласованности при записи данных на несколько реплик. Этот механизм позволяет определить порядок записи для каждой реплики и гарантирует согласованность данных в глобальном порядке.
В целом, HDFS и GFS являются мощными распределенными файловыми системами, которые оптимизированы для различных типов рабочих нагрузок. HDFS становится отраслевым стандартом для хранения больших объемов данных, в то время как GFS, с его поддержкой конкурентной записи, остается востребованным решением для приложений, требующих параллельной обработки данных.
Литература:
- White, Tom. Hadoop: The Definitive Guide. — O'Reilly Media, 2015.
- Kleppmann, Martin. Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems. — O'Reilly Media, 2017.