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. Не стесняйтесь задавать мне вопросы, если у вас есть какие-либо.
Get new posts in your inbox
No spam. Unsubscribe anytime.