Хранилище · 4 min read · Jan 19, 2026
Высокодоступное хранилище с GlusterFS на Ubuntu 18.04 LTS

Glusterfs — это масштабируемая сетевая файловая система, способная масштабироваться до нескольких петабайт и обрабатывать тысячи клиентов. Это открытая и распределенная файловая система, которая объединяет ресурсы дискового хранилища с нескольких серверов в одно пространство имен. Она подходит для задач, требующих интенсивного использования данных, таких как облачное хранилище и потоковая передача медиа данных.
В этом руководстве я покажу, как настроить сервер высокодоступного хранилища с GlusterFS на Ubuntu 18.04 LTS (Bionic Beaver). Мы будем использовать 3 сервера Ubuntu, 1 сервер в качестве клиента и 2 других в качестве хранилища. Каждый сервер хранения будет зеркалом другого, и файлы будут реплицироваться на обоих серверах хранения.
Предварительные условия
- 3 сервера Ubuntu 18.04 - 10.0.15.10 - gfs01
- 10.0.15.11 - gfs02
- 10.0.15.12 - client01
- Права root
Что мы будем делать?
- Предварительная установка GlusterFS
- Установка сервера GlusterFS
- Настройка серверов GlusterFS
- Настройка клиента GlusterFS
- Тестирование репликации/зеркалирования
Шаг 1 - Предварительная установка GlusterFS
Первый шаг, который нам нужно сделать перед установкой glusterfs на все серверы, — это настроить файл hosts и добавить репозиторий GlusterFS на каждый сервер.
Настройка файла hosts
Войдите на каждый сервер и получите доступ root с помощью команды ‘sudo su’, затем отредактируйте файл ‘/etc/hosts’.
vim /etc/hostsВставьте конфигурацию hosts ниже.
10.0.15.10 gfs01
10.0.15.11 gfs02
10.0.15.12 client01Сохраните и выйдите.
Теперь выполните ping для каждого сервера, используя имя хоста, как показано ниже.
ping -c 3 gfs01
ping -c 3 gfs02
ping -c 3 client01Каждое имя хоста будет разрешаться в IP-адрес каждого сервера.

Добавить репозиторий GlusterFS
Установите пакет software-properties-common в систему.
sudo apt install software-properties-common -yДобавьте ключ и репозиторий glusterfs, выполнив команды ниже.
wget -O- https://download.gluster.org/pub/gluster/glusterfs/3.12/rsa.pub | apt-key add -
sudo add-apt-repository ppa:gluster/glusterfs-3.12Команда обновит все репозитории. И мы уже добавили репозиторий glusterfs на все системы.

Шаг 2 - Установка сервера GlusterFS
На этом шаге мы установим сервер glusterfs на серверах ‘gfs01’ и ‘gfs02’.
Установите glusterfs-server с помощью команды apt.
sudo apt install glusterfs-server -yТеперь запустите службу glusterd и включите ее, чтобы она запускалась каждый раз при загрузке системы.
sudo systemctl start glusterd
sudo systemctl enable glusterdСервер Glusterfs теперь работает на серверах ‘gfs01’ и ‘gfs02’.
Проверьте статус служб и установленную версию программного обеспечения.
systemctl status glusterd
glusterfsd --version
Шаг 3 - Настройка серверов GlusterFS
Службы Glusterd теперь работают, и следующий шаг, который мы сделаем, — это настроить эти серверы, создав доверительный пул хранения и создав распределенный том glusterfs.
Создание доверительного пула хранения
С сервера ‘gfs01’ нам нужно добавить сервер ‘gfs02’ в пул хранения glusterfs.
Выполните команду ниже.
gluster peer probe gfs02Теперь мы увидим результат ‘peer probe: success’, и мы добавили сервер ‘gfs02’ в доверительный пул хранения.
Проверьте статус пула хранения и список, используя команды ниже.
gluster peer status
gluster pool listИ вы увидите, что сервер ‘gfs02’ подключен к кластеру пиров, и он в списке пула.

Настройка распределенного тома GlusterFS
После создания доверительного пула хранения мы создадим новый распределенный том glusterfs. Мы создадим новый том glusterfs на основе системного каталога.
Примечание:
- Для производственного сервера рекомендуется создавать том glusterfs, используя другой раздел, а не используя системный каталог.
Создайте новый каталог ‘/glusterfs/distributed’ на каждом из серверов ‘gfs01’ и ‘gfs02’.
mkdir -p /glusterfs/distributedИ с сервера ‘gfs01’ создайте распределенный том glusterfs с именем ‘vol01’ с 2 репликами ‘gfs01’ и ‘gfs02’.
gluster volume create vol01 replica 2 transport tcp \
gfs01:/glusterfs/distributed \
gfs02:/glusterfs/distributed \
forceТеперь мы создали распределенный том ‘vol01’ - запустите ‘vol01’ и проверьте информацию о томе.
gluster volume start vol01
gluster volume info vol01И вот результат.

На этом этапе мы создали том ‘vol01’ с типом ‘Replicate’ и 2 кирпичами на серверах ‘gfs01’ и ‘gfs02’. Все данные будут автоматически распределяться на каждый сервер-реплику, и мы готовы смонтировать том.
Ниже информация о томе ‘vol01’ с сервера ‘gfs02’.

Шаг 4 - Настройка клиента GlusterFS
На этом шаге мы смонтируем том glusterfs ‘vol01’ на клиенте Ubuntu, и нам нужно установить glusterfs-client на сервер клиента.
Установите glusterfs-client в систему Ubuntu с помощью команды apt.
sudo apt install glusterfs-client -yТеперь создайте новый каталог ‘/mnt/glusterfs’, когда установка glusterfs-client завершена.
mkdir -p /mnt/glusterfsИ смонтируйте распределенный том glusterfs ‘vol01’ в каталог ‘/mnt/glusterfs’.
sudo mount -t glusterfs gfs01:/vol01 /mnt/glusterfsТеперь проверьте доступный том в системе.
df -h /mnt/glusterfsИ мы получим смонтированный том glusterfs в каталоге ‘/mnt/glusterfs’.

Дополнительно:
Чтобы смонтировать glusterfs постоянно на системе клиента Ubuntu, мы можем добавить том в ‘/etc/fstab’.
Отредактируйте файл конфигурации ‘/etc/fstab’.
vim /etc/fstabИ вставьте конфигурацию ниже.
gfs01:/vol01 /mnt/glusterfs glusterfs defaults,_netdev 0 0Сохраните и выйдите.
Теперь перезагрузите сервер, и когда он будет онлайн, мы получим автоматически смонтированный том glusterfs ‘vol01’ через fstab.
Шаг 5 - Тестирование репликации/зеркалирования
На этом шаге мы протестируем зеркалирование данных на каждом узле сервера.
Смонтируйте том glusterfs ‘vol01’ на каждом из серверов glusterfs.
На сервере ‘gfs01’.
mount -t glusterfs gfs01:/vol01 /mntНа сервере ‘gfs02’.
mount -t glusterfs gfs02:/vol01 /mntТеперь вернитесь к клиенту Ubuntu и перейдите в каталог ‘/mnt/glusterfs’.
cd /mnt/glusterfsСоздайте несколько файлов с помощью команды touch.
touch file01 file02 file03
Теперь проверьте на каждом - ‘gfs01’ и ‘gfs02’ - сервере, и мы получим все файлы, которые мы создали с клиентской машины.
cd /mnt/
ls -lahВот результат с сервера ‘gfs01’.

А вот результат с сервера ‘gfs02’.

Все файлы, которые мы создали с клиентской машины, будут распределены на все узлы серверов тома glusterfs.
Get new posts in your inbox
No spam. Unsubscribe anytime.