Glus­terFS часть 1. Что за зверь?

GlusterFS. Все статьи цикла

GlusterFS — это распределенная, параллельная, линейно масштабируемая файловая система с возможностью защиты от сбоев. С помощью нее можно объединить множество хранилищ данных, размещенных на разных серверах (горизонтальное масштабирование) в одну сетевую файловую систему. Так же возможно объединение нескольких хранилищ одного сервера (вертикальное масштабирование). А защита от сбоев достигается с помощью различных политик дублирования данных.
GlusterFS использует механизмы FUSE (файловая система в пользовательском пространстве) и работает по верх любых POSIX ФС, например Ext3, Ext4, XFS, Btrfs.
В качестве транспорта может использоваться Infiniband RDMA и TCP/IP.
В отличие от других распределённых файловых систем, таких как Lustre и Ceph, для работы GlusterFS не требуется отдельный сервер для хранения метаданных. В данном случае они хранятся вместе с данными в расширенных атрибутах файлов. Благодаря отсутствию привязки к централизованному серверу мета-данных ФС предоставляет практически неограниченную масштабируемость. Объём хранилища может измеряться петабайтами.

Коротко о остальных возможностях ФС:

Можно использовать любое оборудование (подойдёт даже ARM);
Работает через стандартные протоколы NFS, SMB/CIFS или нативный клиент;
Автоматическое обнаружение отказа отдельного хранилища (Brick Failure Detection);
Возможно сжатие данных при передаче по сети;
Поддерживается шифрование данных дисковых разделов на стороне сервера с использованием ключей, доступных только клиенту. При этом шифруется только содержимое файлов, имена и метаданные остаются незашифрованными. Шифрование неприменимо при использовании NFS;
Оптимизирована для использования в качестве распределённого хранилища образов виртуальных машин;
Интеграция с QEMU и Samba позволяющая организовать прямой доступ к данным, хранимым в GlusterFS, без монтирования раздела;
Может использоваться в качестве первичного хранилища в OpenStack;
Механизм zerofill позволяет заполнять нулями новые образы виртуальных машин;
Поддерживается асинхронная гео-репликация по модели master–slave. На эту тему я планирую подготовить отдельный материал.

Примечание: FUSE — это модуль ядра в ОС UNIX и Linux, который является своего рода посредником между пользовательским пространством и пространством ядра. FUSE предоставляет интерфейс ядра (API) с помощью которого непривилегированные процессы получают доступ к низкоуровневым механизмам файловых систем (посредством VFS). Благодаря этому, можно написать свою собственную файловую систему которая будет обладать практически всеми возможностями низкоуровневой ФС но работать с правами обычного пользователя. Конечно же, наличие данной прослойки сказывается на производительности ФС, но сегодня даже среднее по производительности оборудование может компенсировать данный недостаток. Наиболее известные ФС использующие механизм FUSE; SSHFS (SSH Filesystem), EncFS(Encrypted Filesystem), NTFS-3G.

GlusterFS сейчас

Работа над GlusterFS была начата в 2005 году. В 2011 проект был приобретен компанией Red Hat и лег в основу Red Hat Storage Server.

На текущий момент код ФС полностью открыт а проект Gluster трансформирован в новое сообщество для разработки свободных проектов, связанных с системами хранения данных.

Сегодня GlusterFS используют Pandora, Box.net, Samsung, Autodesk, Deutche Bank — и это лишь те компании которые я смог отыскать.