GlusterFS або Gluster File System – вільна розподілена файлова система з відкритим вихідним кодом, розроблена компанією RedHat. GlusterFS являє собою масштабовану файлову систему, сформовану з декількох серверів в єдину файлову систему, яка дає змогу користувачам підключати і монтувати томи GlusterFS.
GlusterFS – це сучасна файлова система, здатна обробляти петабайти даних. Крім того, її легко встановлювати і підтримувати, а також легко масштабувати файлову систему.
У цьому посібнику ми розглянемо процес встановлення кластера GlusterFS на серверах AlmaLinux 9. Ви налаштуєте зберігання файлової системи високої доступності за допомогою GlusterFS на серверах AlmaLinux 9.
Необхідні умови
Перш ніж приступити до роботи, переконайтеся, що у вас є таке:
- Два або більше серверів AlmaLinux 9 – У даній демонстрації використовуються два сервери AlmaLinux srv1 з IP-адресою 192.168.10.41 і srv2 з IP-адресою 192.168.10.42.
- Користувач, який не є root, має привілеї адміністратора root.
- Новий диск буде використовуватися GlusterFS.
Підготовка диска і розділу
Для створення кластера GlusterFS рекомендується використовувати окремий диск. Таким чином, ваші дані завжди будуть у безпеці. У наступній демонстрації використовуються два різні сервери, і кожен з них має додатковий диск /dev/sdb.
У цьому розділі буде створено новий розділ диска /dev/sdb, який буде використовуватися GlusterFS.
Виконайте наступну команду для перевірки списку доступних дисків у вашій системі. У цьому випадку у нас є два диски /dev/sda і /dev/sdb, і диск /dev/sdb буде використовуватися для GlusterFS.
sudo fdisk -l
Введіть таку команду для створення нового розділу на диску /dev/sdb.
sudo fdisk /dev/sdb
- Введіть n для створення нового розділу.
- Виберіть тип розділу p для основного.
- Для номера розділу введіть 1, щоб створити 1 розділ.
- Для першого й останнього сектора розділу залиште значення за замовчуванням і натисніть ENTER.
- Нарешті, введіть w для збереження змін.
Новий розділ /dev/sdb1 буде створено.
Тепер виконайте таку команду для форматування розділу /dev/sdb1 у файлову систему ext4.
sudo mkfs.ext4 /dev/sdb1
Після цього виконайте наведену нижче команду для створення нового каталогу, який буде використовуватися як цільовий каталог монтування для /dev/sdb1.
# Run this on srv1
sudo mkdir -p /data/vol1
# Run this on srv2
sudo mkdir -p /data/vol2
Далі виконайте таку команду для монтування /dev/sdb1 у каталог /data/vol1, потім перевірте список змонтованих файлових систем і новий каталог /data/vol1/brick0.
# Run this on srv1
sudo mount /dev/sdb1 /data/vol1
sudo df -h
sudo mkdir -p /data/vol1/brick0
Повторіть команду на сервері srv2 таким чином:
# Run this on srv2
sudo mount /dev/sdb1 /data/vol2
sudo df -h
sudo mkdir -p /data/vol2/brick0
Налаштування FQDN
У цьому розділі ви будете налаштовувати fqdn (повне доменне ім’я) для кожного сервера AlmaLinux, який буде використовуватися для створення кластера GlusterFS,
Виконайте таку команду для налаштування fqdn для кожного сервера. У цьому випадку сервер srv1 матиме fqdn srv1.hwdomain.lan, а сервер srv2 – fqdn srv2.hwdomain.lan.
sudo hostnamectl set-hostname srv1.hwdomain.lan
sudo hostnamectl set-hostname srv2.hwdomain.lan
Відкрийте файл /etc/hosts за допомогою такої команди редактора nano.
sudo nano /etc/hosts
Вставте таку конфігурацію і не забудьте змінити дані кожної IP-адреси.
192.168.10.41 srv1.hwdomain.lan srv1
192.168.10.42 srv2.hwdomain.lan srv2
Після завершення роботи збережіть файл і вийдіть із нього.
Далі виконайте таку команду для перевірки fqdn на кожному сервері та переконайтеся, що fqdn вказує на правильну IP-адресу.
sudo hostname -f
ping -c3 srv1.hwdomain.lan
ping -c3 srv2.hwdomain.lan
Встановлення GlusterFS
Тепер вам потрібно встановити пакет GlusterFS на всі ваші сервери AlmaLinux, а також додати службу GlusterFS у firewalld. Що стосується дистрибутива на базі RHEL, то пакети GlusterFS доступні в репозиторії CentOS SIG (SpecialInterestGroup).
Спочатку виконайте наведену нижче команду dnf, щоб додати репозиторій GlusterFS на свої сервери. При появі запиту введіть y і натисніть ENTER для підтвердження.
sudo dnf install centos-release-gluster9
Тепер виконайте наведену нижче команду для перевірки списку сховищ у вашій системі. У разі успіху ви побачите, що репозиторій GlusterFS додано.
sudo dnf repolist
Далі виконайте таку команду dnf для встановлення пакетів GlusterFS на кожен сервер. При появі запиту введіть y для підтвердження і натисніть ENTER.
sudo dnf install glusterfs glusterfs-libs glusterfs-server
Також введіть y ще раз, щоб додати GPG-ключ сховища GlusterFS.
Після встановлення GlusterFS виконайте наведену нижче команду systemctl для запуску та ввімкнення служби glusterfsd.
sudo systemctl enable glusterfsd.service
sudo systemctl start glusterfsd.service
Потім перевірте службу glusterfsd, щоб переконатися, що вона запущена.
sudo systemctl status glusterfsd.service
Якщо glusterfsd запущено, то на виході має з’явитися повідомлення active (працює).
Тепер виконайте наведену нижче команду firewall-cmd для додавання порту GlusterFS і перезавантажте firewalld для застосування змін.
sudo firewall-cmd --add-service=glusterfs --permanent
sudo firewall-cmd --reload
Перевірте список доступних служб на firewalld за допомогою такої команди. У разі успіху в списку служб firewalld має з’явитися служба glusterfs.
sudo firewall-cmd --list-all
Ініціалізація кластера GlusterFS
Після того як служба GlusterFS запущена і firewalld налаштований, необхідно ініціалізувати кластер GlusterFS.
На сервері srv1 виконайте наведену нижче команду gluster для ініціалізації кластера GlusterFS. При цьому не забудьте змінити srv2.hwdomain.lan на fqdn вашого другого сервера.
sudo gluster peer probe srv2.hwdomain.lan
Якщо ініціалізація пройшла успішно, має з’явитися повідомлення “peer probe success”.
Тепер виконайте наступну команду для перевірки стану кластера GlusterFS. Ви повинні побачити, що поточний кластер GlusterFS з учасником srv2.hwdomain.lan server.
sudo gluster peer status
Нарешті, перейдіть на сервер srv2.hwdomain.lan і виконайте наведену нижче команду gluster для перевірки стану кластера GlusterFS.
sudo gluster peer status
Якщо установка пройшла успішно, ви повинні побачити, що членом кластера GlusterFS є сервер srv1.hwdomain.lan.
На цьому встановлення кластера GlusterFS завершено. На наступному етапі буде створено том GlusterFS, який буде монтуватися клієнтськими машинами.
Створення тому GlusterFS
У наступному розділі буде створено том GLusterFS, який буде автоматично реплікувати дані між серверами в кластері GlusterFS.
Виконайте таку команду для створення нового тому GlusterFS testvol. Введіть y і натисніть ENTER для підтвердження.
sudo gluster volume create testvol replica 2 srv1.hwdomain.lan:/data/vol1/brick0 srv2.hwdomain.lan:/data/vol2/brick0
Після створення тому testvol виконайте наведену нижче команду для запуску тому testvol.
sudo gluster volume start testvol
Тепер перевірте стан тому GlusterFS за допомогою наступної команди. Ви маєте побачити том testvol із двома серверами GLusterFS srv1.hwdomain.lan і srv2.hwdomain.lan.
sudo gluster volume status
Нарешті, отримати детальну інформацію про том GlusterFS можна також за допомогою такої команди.
sudo gluster volume info
Монтування тому GlusterFS на клієнтській машині
Після створення тома GlusterFS наступним кроком буде монтування тома на клієнтській машині. Для цього необхідно встановити клієнтський пакет GlusterFS на клієнтські машини.
На клієнтській машині додайте репозиторій GlusterFS за допомогою команди dnf, наведеної нижче.
sudo dnf install centos-release-gluster9
Тепер виконайте наведену нижче команду dnf для встановлення пакета glusterfs-client.
sudo dnf install glusterfs-client
Встановивши glusterfs-client, можна змонтувати том GlusterFS.
Створіть резервну копію нового каталогу за допомогою наступної команди. Він буде використовуватися в якості цільового каталогу монтування тому GlusterFS.
sudo mkdir -p /backup
Тепер виконайте таку команду для монтування GlusterFS-тома testvol із сервера srv1.hwdomain.lan.
sudo mount.glusterfs srv1.hwdomain.lan:/testvol /backup
Перевірте список змонтованих файлових систем у системі за допомогою наведеної нижче команди df.
sudo df -h
Ви маєте побачити, що том testvol із GlusterFS-сервера srv1.hwdomain.lan змонтовано в цільовий каталог /backup.
Далі перейдіть до каталогу /backup і створіть нові тестові файли для забезпечення доступу на читання і запис. Крім того, створені файли будуть автоматично реплікуватися на кластер GlusterFS.
cd /backup
touch file{1..5}.md
ls
На сервері srv1 виконайте таку команду для перевірки списку файлів, доступних у каталозі /data/vol1/brick0.
ls /data/vol1/brick0
Якщо дані реплікуються, то ви маєте побачити нові файли, створені раніше.
Для сервера srv2 виконайте команду ls таким чином. Якщо реплікація пройшла успішно, ви маєте побачити нові файли, доступні і на сервері srv2.
ls /data/vol2/brick0
Висновок
Чудова робота! Ви успішно встановили GlusterFS на машини AlmaLinux і створили кластер GlusterFS із двох серверів. Ви також дізналися, як створювати розділи за допомогою командного рядка, створювати і керувати томом GlusterFS, а також монтувати том GlusterFS на клієнтській машині.
Тепер можна приступати до зберігання файлів на кластері GlusterFS, а дані будуть автоматично реплікуватися на кілька серверів.