Поиск по сайту:

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


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

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

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

Что такое ГлюстерФС?

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

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

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

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

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

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

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

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

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

Распределенный реплицируемый том

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

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

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

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

  1. Установите CentOS 6.5 (или любую другую ОС) на двух узлах.
  2. Задайте имена хостов с именами «server1» и «server2».
  3. Рабочее сетевое соединение.
  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 на «разрешительный» или «отключенный» на обоих серверах. Сохраните и закройте файл.

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

И на сервере1, и на сервере2.

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.

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

Справочные ссылки

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

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