Введение в GlusterFS (файловая система) и установка на RHEL/CentOS и Fedora

Мы живем в мире, где данные растут непредсказуемым образом, и нам нужно хранить эти данные, будь то структурированные или неструктурированные, эффективным образом. Распределенные вычислительные системы предлагают широкий спектр преимуществ по сравнению с централизованными вычислительными системами. Здесь данные хранятся распределенным образом с несколькими узлами в качестве серверов.

GlusterFS Storage

Концепция сервера метаданных больше не требуется в распределенной файловой системе. В распределенных файловых системах она предлагает общую точку зрения на все файлы, разделенные между различными серверами. Файлы/каталоги на этих серверах хранения доступны обычным способом.

Например, разрешения для файлов/каталогов могут быть установлены как в обычной модели разрешений системы, т.е. владелец, группа и другие. Доступ к файловой системе в основном зависит от того, как разработан конкретный протокол для работы с ней.

Что такое GlusterFS?

GlusterFS – это распределенная файловая система, предназначенная для использования в пространстве пользователя, т.е. файловая система в пространстве пользователя (FUSE). Это программно-ориентированная файловая система, которая обладает своей гибкостью.

Посмотрите на следующую схему, которая схематически представляет положение GlusterFS в иерархической модели. По умолчанию GlusterFS будет использовать протокол TCP.

GlusterFS Design

Преимущества GlusterFS

  1. Инновации – Он устраняет метаданные и может значительно улучшить производительность, что поможет нам объединить данные и объекты.
  2. Эластичность – Адаптирован к росту и уменьшению размера данных.
  3. Линейное масштабирование – У него есть доступ к петабайтам и далее.
  4. Простота – Легко управлять и независимо от ядра при работе в пространстве пользователя.

Что делает Gluster выдающимся среди других распределенных файловых систем?

  1. Масштабируемость – Отсутствие сервера метаданных обеспечивает более быструю файловую систему.
  2. Доступность – Он развертывается на оборудовании стандартного качества.
  3. Гибкость – Как я уже сказал, GlusterFS – это только программная файловая система. Здесь данные хранятся на собственных файловых системах, таких как ext4, xfs и т. д.
  4. Открытый исходный код – В настоящее время GlusterFS поддерживается Red Hat Inc, миллиардным открытым исходным компанией, как часть хранилища Red Hat.

Концепции хранения в GlusterFS

  1. Кирпич – Кирпичом является в основном любой каталог, предназначенный для общего использования в доверенном пуле хранения.
  2. Доверенный пул хранения – это совокупность этих общих файлов/каталогов, которые основаны на разработанном протоколе.
  3. Блочное хранилище – Это устройства, через которые данные перемещаются между системами в виде блоков.
  4. Кластер – В хранилище Red Hat и кластер, и доверенный пул хранения означают то же самое – сотрудничество серверов хранения на основе определенного протокола.
  5. Распределенная файловая система – Файловая система, в которой данные распределены по разным узлам, где пользователи могут получить доступ к файлу, не зная фактического расположения файла. Пользователь не испытывает ощущения удаленного доступа.
  6. FUSE – Это загружаемый модуль ядра, который позволяет пользователям создавать файловые системы над ядром без участия какого-либо кода ядра.
  7. glusterd – glusterd – это демон управления GlusterFS, который является основой файловой системы, который будет работать все время, когда сервера находятся в активном состоянии.
  8. POSIX – Переносной интерфейс операционной системы (POSIX) – это семейство стандартов, определенных IEEE как решение совместимости между вариантами Unix в виде интерфейса прикладного программирования (API).
  9. RAID – Массив избыточных независимых дисков (RAID) – это технология, обеспечивающая повышенную надежность хранения за счет избыточности.
  10. Подтом – Кирпич после обработки хотя бы одним переводчиком.
  11. Переводчик – Переводчик – это тот кусок кода, который выполняет основные действия, инициированные пользователем с точки монтирования. Он соединяет один или несколько подтомов.
  12. Том – Том – это логическое собрание кирпичей. Все операции основаны на различных типах томов, созданных пользователем.
Различные типы томов

Представления различных типов томов и комбинации среди этих основных типов томов также допускаются, как показано ниже.

Distributed Volume
Replicated Volume
Striped Volume
Распределенный реплицированный объем

Представление распределенно-реплицированного объема.

Distributed Replicated Volume

Установка GlusterFS в RHEL/CentOS и Fedora

В этой статье мы установим и настроим GlusterFS впервые для обеспечения высокой доступности хранилища. Для этого мы возьмем два сервера для создания объемов и репликации данных между ними.

Шаг 1: Иметь как минимум два узла

  1. Установите CentOS 6.5 (или любую другую ОС) на двух узлах.
  2. Установите имена хостов “server1” и “server2”.
  3. A working network connection.
  4. Хранилище дисков на обоих узлах названо “/data/brick”.

Шаг 2: Включение репозиториев EPEL и GlusterFS

Перед установкой GlusterFS на обоих серверах нам необходимо включить репозитории EPEL и GlusterFS для удовлетворения внешних зависимостей. Используйте следующую ссылку для установки и включения репозитория epel под обе системы.

  1. Как включить репозиторий EPEL в RHEL/CentOS

Затем нам нужно включить репозиторий GlusterFs на обоих серверах.

# wget -P /etc/yum.repos.d http://download.gluster.org/pub/gluster/glusterfs/LATEST/EPEL.repo/glusterfs-epel.repo

Шаг 3: Установка GlusterFS

Установите программное обеспечение на обоих серверах.

# yum install glusterfs-server

Запустите демон управления GlusterFS.

# service glusterd start

Теперь проверьте статус демона.

# service glusterd status
Пример вывода
service glusterd start
  service glusterd status
  glusterd.service - LSB: glusterfs server
   	  Loaded: loaded (/etc/rc.d/init.d/glusterd)
  	  Active: active (running) since Mon, 13 Aug 2012 13:02:11 -0700; 2s ago
  	 Process: 19254 ExecStart=/etc/rc.d/init.d/glusterd start (code=exited, status=0/SUCCESS)
  	  CGroup: name=systemd:/system/glusterd.service
  		  ├ 19260 /usr/sbin/glusterd -p /run/glusterd.pid
  		  ├ 19304 /usr/sbin/glusterfsd --xlator-option georep-server.listen-port=24009 -s localhost...
  		  └ 19309 /usr/sbin/glusterfs -f /var/lib/glusterd/nfs/nfs-server.vol -p /var/lib/glusterd/...

Шаг 4: Настройка SELinux и iptables

Откройте «/etc/sysconfig/selinux» и измените режим SELinux на «permissive» или «disabled» на обоих серверах. Сохраните и закройте файл.

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of these two values:
#     targeted - Targeted processes are protected,
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

Затем сбросьте iptables на обоих узлах или разрешите доступ к другому узлу через iptables.

# iptables -F

Шаг 5: Настройка доверенного пула

Выполните следующую команду на «Server1».

gluster peer probe server2

Выполните следующую команду на «Server2».

gluster peer probe server1

Примечание: После подключения этого пула только доверенные пользователи могут добавлять новые серверы в этот пул.

Шаг 6: Настройка объема GlusterFS

На обоих server1 и server2.

# mkdir /data/brick/gv0

Создайте объем на любом одном сервере и запустите его. Здесь я взял «Server1».

# gluster volume create gv0 replica 2 server1:/data/brick1/gv0 server2:/data/brick1/gv0
# gluster volume start gv0

Затем подтвердите статус объема.

# gluster volume info

Примечание: Если вдруг объем не запущен, сообщения об ошибках регистрируются в «/var/log/glusterfs» на одном или обоих серверах.

Шаг 7: Проверка объема GlusterFS

Подключите объем к каталогу в «/mnt».

# mount -t glusterfs server1:/gv0 /mnt

Теперь вы можете создавать и редактировать файлы в точке монтирования как единую систему файлов.

Особенности GlusterFS

  1. Самовосстановление – Если какой-либо из блоков в реплицированном томе отключен, и пользователи изменяют файлы в другом блоке, автоматический демон самовосстановления вступит в действие, как только блок снова будет активирован, и транзакции, произошедшие во время отключения, будут синхронизированы.
  2. Балансировка – Если мы добавляем новый блок к существующему тому, где ранее находилось большое количество данных, мы можем выполнить операцию балансировки для распределения данных между всеми блоками, включая только что добавленный блок.
  3. Георепликация – Это обеспечивает резервные копии данных для восстановления после катастрофы. Здесь возникает концепция главного и ведомого томов. Таким образом, если главный том отключен, весь объем данных можно получить через ведомый том. Эта функция используется для синхронизации данных между географически разделенными серверами. Инициализация сеанса георепликации требует выполнения серии команд Gluster.

Вот снимок экрана, показывающий модуль георепликации.

Geo Replication

Ссылки на источники

Домашняя страница GlusterFS

Это пока все! Оставайтесь на связи для подробного описания функций, таких как Самовосстановление и Балансировка, Георепликация и т. д. в моих предстоящих статьях.

Source:
https://www.tecmint.com/introduction-to-glusterfs-file-system-and-installation-on-rhelcentos-and-fedora/