GlusterFS · 6 min read · Nov 30, 2025

Как установить и настроить GlusterFS на Ubuntu 22.04

GlusterFS — это бесплатное, с открытым исходным кодом программное обеспечение для распределенного хранения данных, разработанное компанией Gluster Inc, а затем Redhat. Оно предоставляет интерфейсы для объектного, блочного и файлового хранения и используется для высоконагруженных задач, таких как облачное хранилище, CDN и потоковая передача медиа. Оно может масштабироваться по модульному принципу для хранения нескольких петабайт данных. Поддерживает множество протоколов, таких как NFS, SMB, CIFS, HTTP и FTP. Оно идеально подходит для различных случаев использования, требующих обработки больших объемов данных.

В этом руководстве мы научимся настраивать реплицированный том GlusterFS на Ubuntu 22.04.

Требования

  • Два сервера с установленной Ubuntu 22.04 и 2 ГБ внешнего жесткого диска на каждом.
  • Статический IP-адрес 192.168.10.10 настроен на node1, а 192.168.10.11 настроен на node2.
  • Пароль root настроен на обоих серверах.

Начало работы

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

apt-get update -y  
apt-get upgrade -y

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

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

nano /etc/hosts

Добавьте следующие строки:

192.168.10.10 node1
192.168.10.11 node2

Сохраните и закройте файл, когда закончите.

Установка сервера GlusterFS

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

apt-get install glusterfs-server -y

После установки пакета GlusterFS запустите службу GlusterFS и включите ее автозагрузку при запуске с помощью следующей команды:

systemctl start glusterd  
systemctl enable glusterd

Вы также можете проверить статус службы GlusterFS с помощью следующей команды:

systemctl status glusterd

Вы должны увидеть следующий вывод:

? glusterd.service - GlusterFS, сервер кластерной файловой системы
     Loaded: loaded (/lib/systemd/system/glusterd.service; disabled; vendor preset: enabled)
     Active: active (running) since Sat 2022-11-05 04:10:13 UTC; 7s ago
       Docs: man:glusterd(8)
    Process: 92014 ExecStart=/usr/sbin/glusterd -p /var/run/glusterd.pid --log-level $LOG_LEVEL $GLUSTERD_OPTIONS (code=exited, status=0/SUCC>
   Main PID: 92015 (glusterd)
      Tasks: 9 (limit: 4579)
     Memory: 7.1M
        CPU: 2.260s
     CGroup: /system.slice/glusterd.service
             ??92015 /usr/sbin/glusterd -p /var/run/glusterd.pid --log-level INFO

Nov 05 04:10:11 ubuntu2204 systemd[1]: Starting GlusterFS, a clustered file-system server...
Nov 05 04:10:13 ubuntu2204 systemd[1]: Started GlusterFS, a clustered file-system server.

После завершения вы можете перейти к следующему шагу.

Создание хранилища GlusterFS

Чтобы создать хранилище GlusterFS, вам потребуется внешний жесткий диск на обоих серверах. Вам также нужно будет создать раздел на внешнем жестком диске (/dev/sdb) на обоих серверах.

Чтобы создать новый раздел на /dev/sdb, выполните следующую команду:

fdisk /dev/sdb

Вы должны увидеть следующий вывод:

Welcome to fdisk (util-linux 2.31.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table.
Created a new DOS disklabel with disk identifier 0x06091fe8.

Command (m for help): n
Partition type
   p   primary (0 primary, 0 extended, 4 free)
   e   extended (container for logical partitions)
Select (default p): p
Partition number (1-4, default 1): 
First sector (2048-4194303, default 2048): 
Last sector, +sectors or +size{K,M,G,T,P} (2048-4194303, default 4194303): 

Created a new partition 1 of type 'Linux' and of size 2 GiB.

Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.

Далее отформатируйте раздел с помощью следующей команды:

mkfs.xfs /dev/sdb1

Вы должны увидеть следующий вывод:

meta-data=/dev/sdb1              isize=512    agcount=4, agsize=131008 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=0, rmapbt=0, reflink=0
data     =                       bsize=4096   blocks=524032, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

Далее создайте каталог для хранилища GlusterFS на обоих серверах с помощью следующей команды:

mkdir /glustervolume

Далее смонтируйте диск /dev/sdb1 в каталог /glustervolume.

mount.xfs /dev/sdb1 /glustervolume

Далее отредактируйте файл /etc/fstab и сделайте монтирование постоянным при перезагрузке:

nano /etc/fstab

Добавьте следующую строку:

/dev/sdb1 /glustervolume xfs defaults 0 0

Сохраните и закройте файл, затем выполните следующую команду, чтобы применить изменения:

mount -a

Теперь вы можете проверить смонтированный каталог с помощью следующей команды:

df -h

Вы должны увидеть следующий вывод:

Filesystem      Size  Used Avail Use% Mounted on
tmpfs           393M  1.1M  392M   1% /run
/dev/sda2        79G  8.6G   67G  12% /
tmpfs           2.0G     0  2.0G   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           393M  4.0K  393M   1% /run/user/0
/dev/sdb1       2.0G   35M  2.0G   2% /glustervolume

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

Сначала вам нужно будет создать доверенный пул хранения, добавив node2 к node1. Для этого выполните следующую команду на node1:

gluster peer probe node2

Вы можете проверить добавленный пул хранения с помощью следующей команды:

gluster pool list

Вы должны получить следующий вывод:

UUID                    Hostname    State
52245177-ce2e-4217-8da5-2ee7a33dcf46    node2       Connected 
b6da6e83-b1ea-46de-8904-1c5345b1c229    localhost   Connected 

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

mkdir /glustervolume/vol1

Далее создайте том с именем vol1 с двумя репликами:

gluster volume create vol1 replica 2 node1:/glustervolume/vol1 node2:/glustervolume/vol1

Далее запустите том с помощью следующей команды:

gluster volume start vol1

Вы можете проверить статус созданного тома с помощью следующей команды:

gluster volume status

Вы должны получить следующий вывод:

Status of volume: vol1
Gluster process                             TCP Port  RDMA Port  Online  Pid
------------------------------------------------------------------------------
Brick node1:/glustervolume/vol1               49152     0          Y       7198 
Brick node2:/glustervolume/vol1               49152     0          Y       13214
Self-heal Daemon on localhost               N/A       N/A        Y       6121 
Self-heal Daemon on node2                   N/A       N/A        Y       12768
 
Task Status of Volume vol1
------------------------------------------------------------------------------
There are no active volume tasks

Теперь вы можете проверить информацию о созданном томе с помощью следующей команды:

gluster volume info vol1

Вы должны получить следующий вывод:

Volume Name: vol1
Type: Replicate
Volume ID: a1023sd6d-81rt-12a2-bc4e-a4gd156c5331
Status: Started
Snapshot Count: 0
Number of Bricks: 1 x 2 = 2
Transport-type: tcp
Bricks:
Brick1: node1:/glustervolume/vol1
Brick2: node2:/glustervolume/vol1
Options Reconfigured:
transport.address-family: inet
nfs.disable: on
performance.client-io-threads: off

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

nano /etc/fstab

Добавьте следующую строку:

localhost:/vol1 /opt glusterfs defaults,_netdev 0 0

Сохраните и закройте файл, когда закончите. Затем выполните следующую команду, чтобы применить изменения:

mount -a

Тестирование репликации

Ваш сервер GlusterFS теперь установлен и настроен. Теперь пришло время протестировать репликацию между обоими узлами.

Сначала создайте два файла на node1:

touch /opt/test1 /opt/test2

Теперь перейдите на node2 и выполните следующую команду:

ls -l /opt/

Вы должны увидеть те же файлы, которые вы создали на node1:

total 0
-rw-r--r-- 1 root root 0 Nov  7 13:42 file1
-rw-r--r-- 1 root root 0 Nov  7 13:42 file2

Теперь остановите службу GlusterFS на node2 с помощью следующей команды:

service glusterd stop

Далее перейдите на node1 и проверьте статус пира:

gluster peer status

Вы должны увидеть, что node2 отключен:

Number of Peers: 1

Hostname: node2
Uuid: a134f146-1220-3avd-d3f6-1c2554a87sa1
State: Peer in Cluster (Disconnected)

Вы также можете проверить статус тома с помощью следующей команды:

gluster volume status

Вы должны увидеть следующий вывод:

Status of volume: vol1
Gluster process                             TCP Port  RDMA Port  Online  Pid
------------------------------------------------------------------------------
Brick node1:/glustervolume/vol1               49152     0          Y       7987 
Self-heal Daemon on localhost               N/A       N/A        Y       8010 
 
Task Status of Volume vol1
------------------------------------------------------------------------------
There are no active volume tasks

Далее создайте еще два файла на node1:

touch /opt/test3 /opt/test4

Теперь перейдите на node2 и запустите службу GlusterFS с помощью следующей команды:

service glusterd start

Теперь проверьте каталог /opt на node2:

ls -l /opt/

Вы должны увидеть, что все файлы с node1 были реплицированы и теперь доступны.

total 0
-rw-r--r-- 1 root root 0 Nov  7 13:42 test1
-rw-r--r-- 1 root root 0 Nov  7 13:42 test2
-rw-r--r-- 1 root root 0 Nov  7 13:44 test3
-rw-r--r-- 1 root root 0 Nov  7 13:44 test4

Заключение

Поздравляем! Вы успешно установили и настроили сервер Glusterfs с репликацией на двух узлах на сервере Ubuntu 22.04. Для получения дополнительной информации прочитайте страницу документации GlusterFS. Не стесняйтесь задавать мне вопросы, если у вас есть какие-либо.

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.