Кластер файловой системы linux

Развёртывание GlusterFS на Linux

Пошаговая инструкция по установке и настройке кластера серверов на примере CentOS Stream 8.3, Debian GNU/Linux 10.9 и Ubuntu Server 20.10 для организации распределённой файловой системы GlusterFS и объединение её в единое файловое хранилище.

Для этого нам потребуется:

  • 2 сервера
  • по одному дополнительному жёсткому диску на каждый сервер, где будут храниться данные
  • 1 машина (желательно тоже серверная) для монтирования томов сервера

Подготовка машин

В первую очередь необходимо настроить имена хостов. В этой статье они организованы следующим образом:

  • первый сервер — IP: 192.168.1.53 — glusterfs-srv1.local
  • второй сервер — IP: 192.168.1.54 — glusterfs-srv2.local
  • клиентская машина — IP: 192.168.1.50 — glusterfs-client.local

Это необходимо прописать в DNS-сервере. Если его нет, тогда на каждой машине открываем файл /etc/hosts

и в самом конце прописываем такие строчки:

192.168.1.53 glusterfs-srv1.local glusterfs-srv1 192.168.1.54 glusterfs-srv2.local glusterfs-srv2 192.168.1.50 glusterfs-client.local glusterfs-client

Теперь на всех машинах останавливаем и выключаем FirewallD

# systemctl stop firewalld && systemctl disable firewalld

В CentOS Stream устанавливаем пакет centos-release-gluster

# yum install centos-release-gluster

Настройка серверов

Устанавливаем серверную часть GlusterFS

# dnf install glusterfs-server
# yum install glusterfs-server
# apt install glusterfs-server

Теперь необходимо разметить дополнительный жёсткий диск. Можно с помощью утилиты cfdisk

Лучше всего будет сделать один раздел sdb1 на жёстком диске sdb.

Далее форматируем созданный раздел, например в ext4

и монтируем его в /mnt/data

После этого открываем файл /etc/fstab

и в самом конце пропишем строчку:

/dev/sdb1 /mnt/data ext4 defaults 1 2

Это позволит монтировать раздел при загрузке ОС.

Для проверки можно перезагрузить сервера

Читайте также:  Install i2p on linux

или выполнить команду, которая примонтируем все прописанные устройства с файла /etc/fstab

Теперь перезапускаем службу glusterd и включаем её в автозагрузку

# systemctl start glusterd && systemctl enable glusterd

Далее собираем наши сервера в кластер. Для этого с сервера с хостом glusterfs-srv1.local запускаем команду:

# gluster peer probe glusterfs-srv2.local

Должно появиться сообщение:

Можно также запустить со второго сервера команду:

# gluster peer probe glusterfs-srv1.local

Должно появиться такое же сообщение.

После этого на обоих серверах перезапустим службу glusterd

# systemctl restart glusterd

Появится таблица со столбцами UUID, Hostname и State. State на всех хостах должен быть в режиме Connected.

Настройка клиентской машины

Устанавливаем клиентскую часть GlusterFS

# yum install glusterfs glusterfs-cli glusterfs-client
# apt install glusterfs glusterfs-cli glusterfs-client

И создаём каталог /mnt/data, в который будут примонтированы тома из серверов

Настройка томов

GlusterFS поддерживает несколько типов распределения данных, объединённых в том (volume):

  • Distributed Volume (распределённый) — распределение данных в случайном порядке между каталогами, входящими в том
  • Replicated Volume (реплицируемый) — зеркальное распределение данных (в каждом томе одинаковые файлы)
  • Striped Volume (разделённый по частям) — разбиение файлов по частям и хранение каждой части на отдельном сервере
  • Distributed Striped Volume (распределённый и разделённый по частям) — разбиение файлов на части и распределение по каталогам
  • Distributed Replicated Volume (распределённый и реплицируемый) — распределение данных в случайном порядке по каталогам, каждый из которых имеет свою зеркальную копию

Настройка Distributed Volume

На серверах создадим каталог /mnt/data/dv:

Создадим том на любом из серверов

# gluster volume create dv-data transport tcp glusterfs-srv1.local:/mnt/data/dv glusterfs-srv2.local:/mnt/data/dv force

должно появиться сообщение:

volume create: dv-data: success: please start the volume to access data

Теперь стартанём том dv-data

# gluster volume start dv-data

должно появиться сообщение:

volume start: dv-data: success

На клиенте создадим каталог /mnt/data/dv-data

Читайте также:  Чем форматировать флешку линукс

и примонтируем к нему том

# mount.glusterfs glusterfs-srv1.local:/dv-data /mnt/data/dv-data

Теперь открываем файл /etc/fstab

и в самом конце добавим такую строчку:

glusterfs-srv1.local:/dv-data /mnt/data/dv-data glusterfs defaults 0 0

Для проверки перезагрузим машину

или примонтируем всё, что прописано в /etc/fstab

Настройка Replicated Volume

На серверах создадим каталог /mnt/data/rv

Создадим том на любом из серверов

# gluster volume create rv-data replica 2 transport tcp glusterfs-srv1.local:/mnt/data/rv glusterfs-srv2.local:/mnt/data/rv force

должно появиться сообщение:

volume create: rv-data: success: please start the volume to access data

Теперь стартанём том rv-data

# gluster volume start rv-data

должно появиться сообщение:

volume start: rv-data: success

На клиенте создадим каталог /mnt/data/rv-data

и примонтируем к нему том

# mount.glusterfs glusterfs-srv1.local:/rv-data /mnt/data/rv-data

Теперь открываем файл /etc/fstab

и в самом конце добавим такую строчку:

glusterfs-srv1.local:/rv-data /mnt/data/rv-data glusterfs defaults 0 0

Для проверки перезагрузим машину

или примонтируем всё, что прописано в /etc/fstab

Настройка Striped Volume

На серверах создадим каталог /mnt/data/sv

Создадим том на любом из серверов

# gluster volume create sv-data stripe 2 transport tcp glusterfs-srv1.local:/mnt/data/sv glusterfs-srv2.local:/mnt/data/sv force

должно появиться сообщение:

volume create: sv-data: success: please start the volume to access data

Теперь стартанём том sv-data

# gluster volume start sv-data

должно появиться сообщение:

volume start: sv-data: success

На клиенте создадим каталог /mnt/data/sv-data

и примонтируем к нему том

# mount.glusterfs glusterfs-srv1.local:/sv-data /mnt/data/sv-data

Теперь открываем файл /etc/fstab

и в самом конце добавим такую строчку:

glusterfs-srv1.local:/sv-data /mnt/data/sv-data glusterfs defaults 0 0

Для проверки перезагрузим машину

или примонтируем всё, что прописано в /etc/fstab

Настройка Distributed Striped Volume

На сервере glusterfs-srv1.local создадим 2 каталога: /mnt/data/dsv1 и /mnt/data/dsv3

# mkdir /mnt/data/dsv1 /mnt/data/dsv3

На сервере glusterfs-srv2.local также создадим 2 каталога: /mnt/data/dsv2 и /mnt/data/dsv4

# mkdir /mnt/data/dsv2 /mnt/data/dsv4

Создадим том на любом из серверов

# gluster volume create dsv-data stripe 2 transport tcp glusterfs-srv1.local:/mnt/data/dsv1 glusterfs-srv2.local:/mnt/data/dsv2 glusterfs-srv1.local:/mnt/data/dsv3 glusterfs-srv2.local:/mnt/data/dsv4 force

должно появиться сообщение:

volume create: dsv-data: success: please start the volume to access data

Теперь стартанём том dsv-data

# gluster volume start dsv-data

должно появиться сообщение:

volume start: dsv-data: success

На клиенте создадим каталог /mnt/data/dsv-data

Читайте также:  Просмотр доступных пакетов linux

и примонтируем к нему том

# mount.glusterfs glusterfs-srv1.local:/dsv-data /mnt/data/dsv-data

Теперь открываем файл /etc/fstab

и в самом конце добавим такую строчку:

glusterfs-srv1.local:/dsv-data /mnt/data/dsv-data glusterfs defaults 0 0

Для проверки перезагрузим машину

или примонтируем всё, что прописано в /etc/fstab

Настройка Distributed Replicated Volume

На сервере glusterfs-srv1.local создадим 2 каталога: /mnt/data/drv1 и /mnt/data/drv3

# mkdir /mnt/data/drv1 /mnt/data/drv3

На сервере glusterfs-srv2.local также создадим 2 каталога: /mnt/data/drv2 и /mnt/data/drv4

# mkdir /mnt/data/drv2 /mnt/data/drv4

Создадим том на любом из серверов

# gluster volume create drv-data replica 2 transport tcp glusterfs-srv1.local:/mnt/data/drv1 glusterfs-srv2.local:/mnt/data/drv2 glusterfs-srv1.local:/mnt/data/drv3 glusterfs-srv2.local:/mnt/data/drv4 force

должно появиться сообщение:

volume create: drv-data: success: please start the volume to access data

Теперь стартанём том drv-data

# gluster volume start drv-data

должно появиться сообщение:

volume start: drv-data: success

На клиенте создадим каталог /mnt/data/drv-data

и примонтируем к нему том

# mount.glusterfs glusterfs-srv1.local:/drv-data /mnt/data/drv-data

Теперь открываем файл /etc/fstab

и в самом конце добавим такую строчку:

glusterfs-srv1.local:/drv-data /mnt/data/drv-data glusterfs defaults 0 0

Для проверки перезагрузим машину

или примонтируем всё, что прописано в /etc/fstab

Другие команды GlusterFS

Просмотр списка пулов в кластере

Добавить новый пул в кластер

# gluster peer probe glusterfs-srv3.local
# gluster peer detach glusterfs-srv3.local
# gluster volume stop volume-name
# gluster volume delete volume-name

Запуск ребалансировки тома

# gluster volume rebalance volume-name start

Просмотр состояния ребалансировки тома

# gluster volume rebalance volume-name status
# gluster volume add-brick replica 3 volume-name glusterfs-srv3.local:/mnt/data/volume-data-2/
# gluster volume remove-brick volume-name glusterfs-srv3.local:/mnt/data/volume-data-2/

Заключение

GlusterFS поднят, теперь остаётся лишь решить, какой тип распределения данных использовать, настроить его и запустить. Подойти к этому лучше серьёзно, так как необходимо учесть многие технические моменты.

Похожие посты:

Источник

Оцените статью
Adblock
detector