распределенная файловая система, то есть, файловая система, которая может быть размазана по разным серверам с целью защиты от сбоев и/или повышения производительности дисковой системы. Разработана компанией Gluster Inc на языке Си.
Обладает следующими преимуществами:
- Отказоустойчивость.
- Масштабируемость.
- Высокая скорость работы.
Имеет клиент-серверную архитектуру. На стороне сервера работает демон glusterfsd. На стороне клиента запускается процесс glusterfs, который подключается по сети к серверам и объединяет все серверные тома в один том и монтирует его при помощи модуля FUSE (filesystem in userspace). Безопасность подключения мы можем настроить с помощью опции auth.allow на стороне сервера.
Так как доступ к дисковым томам осуществляется по сети, для работы распределенная файловая система использует следующие порты:
Порт | Назначение |
24007/tcp | Для сервиса glusterfsd |
24008/tcp | Порт для управления |
24009/tcp и выше (GlusterFS 3.4 и ниже) | Для каждого кирпичика (brick или основной единицы хранения в GlusterFS) требуется свой порт |
49152/tcp и выше (GlusterFS 3.4 и выше) | |
38465-38467/tcp | Для Gluster NFS |
111/udp | Для сопоставления портов |
GlusterFS позволяет создать следующие типы томов:
- Distributed (Распределенный). Файлы раскиданы по серверам без дублирования. Дает хорошую производительность, но без резервирования данных.
- Replicated (С репликацией). Данные дублируются на других серверах. Применяется, где нужна высокая доступность.
- Distributed Replicated (Распределенный с репликацией). Данные раскиданы по серверам, но с дублированием. Хорошая производительность на чтение + отказоустойчивость.
- Dispersed (Рассредоточенный). Данные дублируются, но создается не копия файла, а фрагмент, которого достаточно для восстановления исходного файла. Является экономным вариантом распределенного тома.
- Distributed Dispersed (Распределенный рассредоточенный). Распределение файлов по серверам с дублированием за счет сохранения не копии файлов, а части, необъходимой для восстановления информации.
* есть еще несколько других типов, которые разработчик объявил устаревшими.
Примеры использования GlusterFS:
- Хранение контейнеров кластеров Kubernetes.
- Создание общего тома для кластеров виртуализации с системой управления Proxmox VE или oVirt.
Установку GlusterFS можно выполнить из репозитория на системы семейства Linux (Ubuntu, Debian, CentOS, Red Hat и так далее), BSD, Mac OS.
Среди аналогов можно выделить:
- Ceph. Обработка данных и метаданных выполняется на разных серверах.
- Lustre. Как и в Ceph, использует разные серверы для обработки метаданных и данных.
- BeeGFS. Оптимизированная для высокопроизводительных вычислений.
- GFS (Google File System). Оптимизирована для нужд операционной системы.
В сравнении с Lustre и Ceph, для GlusterFS не требуется отдельного сервера для хранения метаданных. Также GlusterFS работает поверх файловых систем, используя FUSE и не размазывает файлы по серверам, храня их целиком.
Еще немного о GlusterFS на Википедии.
Официальная документация доступна на сайте разработчика.