GlusterFS


GlusterFS — распределённая, параллельная, линейно масштабируемая файловая система с возможностью защиты от сбоев. С помощью InfiniBand RDMA или TCP/IP GlusterFS может объединить системы хранения, находящиеся на разных серверах, в одну параллельную сетевую файловую систему. GlusterFS работает в пользовательском пространстве при помощи технологии FUSE, поэтому не требует поддержки со стороны ядра операционной системы и работает поверх существующих файловых систем (ext3, ext4, XFS, reiserfs и т. п.). В отличие от других распределённых файловых систем, таких как Lustre и Ceph, для работы GlusterFS не требуется отдельный сервер для хранения метаданных.

GlusterFS разделена на серверную и клиентскую части. На каждом сервере работает демон glusterfsd который делает доступным для клиентов локальную систему хранения в качестве тома. Клиентский процесс glusterfs соединяется с одним или несколькими серверами посредством TCP/IP или InfiniBand и объединяет все доступные серверные тома в один, используя расширяемые трансляторы (функциональные модули системы). Получившийся том монтируется на клиентском хосте при помощи механизма Filesystem in Userspace (FUSE).

Бо́льшая часть функциональности GlusterFS реализована в виде трансляторов (модулей). Использование необходимых трансляторов и их настройка позволяет гибко конфигурировать режим работы системы. Трансляторы реализуют следующие возможности:

Сервер GlusterFS реализован довольно просто: он предоставляет в пользование клиенту свою систему хранения, оставляя за клиентом право решать каким образом организовать хранение. Все клиенты одного кластера должны быть настроены одинаково, во избежание проблем с согласованностью данных. Такая архитектура позволяет масштабировать GlusterFS до систем, общий объём которых может измеряться петабайтами данных, используя аппаратное обеспечение средней производительности. Также, архитектура GlusterFS позволяет избежать узких мест, которые свойственны распределённым системам с более тесной модульной интеграцией.

Для работы GlusterFS не требуется отдельный сервер метаданных, что улучшает масштабируемость и надёжность системы. Метаданные хранятся вместе с даннымирасширенных атрибутах файлов).

Доступ к Gluster-ресурсу можно получать как с использованием FUSE, так и через NFS-протокол версии не ниже третьей. В последнем случае (доступ по NFS) демон Gluster подгружает соответствующий транслятор, который выступает в роли NFS-сервера и не может работать совместно с другими NFS-серверами. Несмотря на то, что разработчики Gluster декларируют совместимость с CIFS, в действительности такая совместимость средствами самого Gluster не обеспечивается, поэтому для экспорта Windows-клиентам необходимо создать разделяемый ресурс средствами Samba.