Гид по технологиям

Настройка NAS с помощью GlusterFS

4 min read Хранилище Обновлено 03 Dec 2025
Настройка NAS с GlusterFS
Настройка NAS с GlusterFS

Что такое GlusterFS в одном предложении: GlusterFS агрегирует дисковое пространство нескольких серверов в единый глобальный namespace и предоставляет доступ по файловым протоколам.

Что нужно:

  • Сеть (рекомендуется Gigabit Ethernet)
  • GlusterFS (сервер и клиенты)
  • Linux-серверы или виртуальные машины

Основные понятия

GlusterFS — распределённая система хранения. Брик (brick) — каталог на сервере, используемый как хранилище для тома. Тома (volume) объединяют брики и экспортируются клиентам.

1. Подготовка сети

Лучше всего использовать Gigabit Ethernet и несколько серверов с отдельными дисками. Для изучения достаточно двух физических машин или двух виртуальных машин. Всегда назначайте серверам статические IP-адреса или используйте стабильные DNS-имена.

Важно

  • Разделите трафик кластера и клиентский трафик при возможности (две сети).
  • Проверьте прохождение ICMP и открытые порты между узлами.

2. Установка сервера

Во многих дистрибутивах GlusterFS доступен в репозиториях. Проверьте версию на сайте проекта и, при необходимости, обновите пакеты вручную. На Debian/Ubuntu установка сервера выглядит так:

sudo apt-get update
sudo apt-get install glusterfs-server

После установки запустите и включите службу:

sudo systemctl enable --now glusterd
sudo systemctl status glusterd

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

3. Переключение на статический IP и работа с томами

Откройте файл сетевых интерфейсов (пример для классических /etc/network/interfaces):

sudo nano /etc/network/interfaces

Замените запись динамического адреса на статический, например:

auto eth0
iface eth0 inet static
address 192.168.0.100
netmask 255.255.255.0
gateway 192.168.0.1
broadcast 192.168.0.255
network 192.168.0.0

Перезагрузите сеть или машину и проверьте доступность.

Создание тома

На одной из нод создайте директорию для брика и затем том:

sudo mkdir -p /data
sudo gluster volume create testvol 192.168.0.100:/data

Запустите том для использования:

sudo gluster volume start testvol

Остановка и удаление тома:

sudo gluster volume stop testvol
sudo gluster volume delete testvol

Пояснение: в этом примере “testvol” — имя тома, а “/data” на сервере рассматривается как brick.

Критерии приёмки

  • Том успешно создаётся без ошибок.
  • Том стартует и принимает подключения.
  • Данные записываются и читаются с клиента.

4. Монтирование тома локально

Создайте точку монтирования и смонтируйте том на клиенте:

sudo mkdir -p /mnt/gluster
sudo mount.glusterfs 192.168.0.100:/testvol /mnt/gluster

Проверьте запись:

echo "It works" | sudo tee /mnt/gluster/test.txt
cat /mnt/gluster/test.txt

Если всё работает, вы увидите содержимое файла.

Совет

  • Для автоматического монтирования добавьте запись в /etc/fstab или используйте systemd mount unit.

5. Экспорт через NFS

В более новых версиях GlusterFS присутствует NFS-клиент/серверная интеграция, но для работы NFS через Gluster может потребоваться портмап или пакет rpcbind на сервере.

Создайте точку монтирования для NFS-теста и смонтируйте:

sudo mkdir -p /mnt/nfstest
sudo mount -t nfs 192.168.0.100:/testvol /mnt/nfstest -o tcp,vers=3

Чтобы клиент монтировал NFS при загрузке, добавьте строку в /etc/fstab, например:

192.168.0.100:7997:/testvol /mnt/nfstest nfs defaults,_netdev 0 0

Примечание

  • Номер порта 7997 использован как пример. Уточняйте порт, если вы использовали нестандартную настройку NFS через Gluster.

Проверка пиров и добавление нод

Чтобы добавить новый сервер в Trusted Pool, выполните на управляющей ноде:

sudo gluster peer probe 192.168.0.101
sudo gluster peer status

Если предпочитаете имена, добавьте соответствующие строки в /etc/hosts на админ-машине:

192.168.0.101 node2.example.local node2

Когда GlusterFS не подходит

  • Нужна очень низкая задержка и высокая производительность на уровне блочного хранилища — лучше смотреть в сторону Ceph RBD или SAN.
  • Требуется POSIX-блокировка в полной мере для специализированных баз данных — в таких сценариях стоит рассмотреть другие решения.
  • Малый кластер (1 узел) — избыточно; проще использовать локальный диск или LVM.

Альтернативные подходы

  • Ceph — для блокового, объектного и файлового хранения с высокой масштабируемостью.
  • NFS/SMB с кластерными файловыми системами — проще, но менее масштабируемо.
  • Сетевые устройства хранения (NAS appliances) — готовые turnkey-решения.

Чек-листы по ролям

Инженер по установке:

  • Проверить доступность репозиториев и версий glusterd
  • Установить и запустить glusterd
  • Настроить статические IP и firewall

Администратор хранилища:

  • Создать и запустить тома
  • Настроить резервное копирование критичных данных
  • Мониторить состояние бриков и p2p-соединений

Операционный инженер:

  • Настроить автоматическое монтирование клиентов
  • Проверить производительность и задержки
  • Планировать capacity и добавление нод

Краткая методология развертывания

  1. Подготовьте сеть и одинаковые версии ПО на нодах.
  2. Назначьте статические IP или DNS-имена.
  3. Установите glusterd и убедитесь в его работе.
  4. Создайте брики и тома, стартуйте том.
  5. Смонтируйте на клиенте, протестируйте запись/чтение.
  6. Подключите дополнительные ноды и протестируйте отказоустойчивость.

Отладка и распространённые ошибки

  • Проверяйте логи: /var/log/glusterfs/ и systemd-journal.
  • Убедитесь, что на всех нодах совпадают версии пакетов.
  • Симптомы «Stale inode» или «Split-brain» требуют ручного вмешательства и восстановления из резервной копии.

Глоссарий

  • Том — логическая единица хранения в GlusterFS.
  • Брик — каталог на сервере, используемый как часть тома.
  • Peer — узел кластера GlusterFS.

Итог

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

Важное

Перед развёртыванием в продуктивной среде протестируйте операции записи/чтения и сделайте план резервного копирования.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Создать стикеры и стикерпак для Telegram
Telegram стикеры

Создать стикеры и стикерпак для Telegram

Как сменить значок приложения Reddit
Руководства

Как сменить значок приложения Reddit

Шаблон заметок о встрече в Google Docs
Google Docs

Шаблон заметок о встрече в Google Docs

Напоминания на Amazon Echo — как настроить
Инструкции

Напоминания на Amazon Echo — как настроить

Как починить клавиатуру ноутбука самостоятельно
Аппаратное обеспечение

Как починить клавиатуру ноутбука самостоятельно

Приватный режим в браузерах Android
Советы

Приватный режим в браузерах Android