Хранилище · 3 min read · Feb 06, 2026

Высокодоступное хранилище с GlusterFS на Mandriva 2010.0 - Автоматическая репликация файлов между двумя серверами хранения - Страница 2

3 Настройка клиента GlusterFS

client1.example.com:

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

urpmi glusterfs-client glusterfs-server

Затем создаем следующую директорию:

mkdir /mnt/glusterfs

Далее создаем файл /etc/glusterfs/glusterfs.vol:

vi /etc/glusterfs/glusterfs.vol

| volume remote1 type protocol/client option transport-type tcp option remote-host server1.example.com option remote-subvolume brick end-volume volume remote2 type protocol/client option transport-type tcp option remote-host server2.example.com option remote-subvolume brick end-volume volume replicate type cluster/replicate subvolumes remote1 remote2 end-volume volume writebehind type performance/write-behind option window-size 1MB subvolumes replicate end-volume volume cache type performance/io-cache option cache-size 512MB subvolumes writebehind end-volume |

Убедитесь, что вы используете правильные имена хостов серверов или IP-адреса в строках option remote-host!

Вот и все! Теперь мы можем смонтировать файловую систему GlusterFS в /mnt/glusterfs с одной из следующих двух команд:

glusterfs -f /etc/glusterfs/glusterfs.vol /mnt/glusterfs

или

mount -t glusterfs /etc/glusterfs/glusterfs.vol /mnt/glusterfs

Теперь вы должны увидеть новую общую папку в выводах команды…

mount
[root@client1 administrator]# mount  
/dev/sda1 on / type ext4 (rw,relatime)  
none on /proc type proc (rw)  
/dev/sda6 on /home type ext4 (rw,relatime)  
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)  
rpc_pipefs on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)  
nfsd on /proc/fs/nfsd type nfsd (rw)  
/etc/glusterfs/glusterfs.vol on /mnt/glusterfs type fuse.glusterfs (rw,allow_other,default_permissions,max_read=131072)  
[root@client1 administrator]#

… и…

df -h
[root@client1 administrator]# df -h  
Filesystem            Size  Used Avail Use% Mounted on  
/dev/sda1              12G  1.5G  9.8G  13% /  
/dev/sda6              16G  172M   16G   2% /home  
/etc/glusterfs/glusterfs.vol  
                       29G  1.7G   26G   6% /mnt/glusterfs  
[root@client1 administrator]#

( server1.example.com и server2.example.com имеют по 29 ГБ пространства для файловой системы GlusterFS, но поскольку данные зеркалируются, клиент не видит 58 ГБ (2 x 29 ГБ), а только 29 ГБ.)

Вместо того чтобы монтировать общую папку GlusterFS вручную на клиенте, вы можете изменить /etc/fstab, чтобы общая папка монтировалась автоматически при загрузке клиента.

Откройте /etc/fstab и добавьте следующую строку:

vi /etc/fstab

| [...] /etc/glusterfs/glusterfs.vol /mnt/glusterfs glusterfs defaults 0 0 |

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

reboot

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

df -h

… и…

mount

4 Тестирование

Теперь давайте создадим несколько тестовых файлов на общей папке GlusterFS:

client1.example.com:

touch /mnt/glusterfs/test1  
touch /mnt/glusterfs/test2

Теперь давайте проверим директорию /data/export на server1.example.com и server2.example.com. Файлы test1 и test2 должны присутствовать на каждом узле:

server1.example.com/server2.example.com:

ls -l /data/export
[root@server1 administrator]# ls -l /data/export  
total 0  
-rw-r--r-- 1 root root 0 2009-12-18 15:37 test1  
-rw-r--r-- 1 root root 0 2009-12-18 15:37 test2  
[root@server1 administrator]#

Теперь мы выключаем server1.example.com и добавляем/удаляем некоторые файлы на общей папке GlusterFS на client1.example.com.

server1.example.com:

shutdown -h now

client1.example.com:

touch /mnt/glusterfs/test3  
touch /mnt/glusterfs/test4  
rm -f /mnt/glusterfs/test2

Изменения должны быть видны в директории /data/export на server2.example.com:

server2.example.com:

ls -l /data/export
[root@server2 administrator]# ls -l /data/export  
total 0  
-rw-r--r-- 1 root root 0 2009-12-18 15:37 test1  
-rw-r--r-- 1 root root 0 2009-12-18 15:39 test3  
-rw-r--r-- 1 root root 0 2009-12-18 15:39 test4  
[root@server2 administrator]#

Давайте снова загрузим server1.example.com и посмотрим на директорию /data/export:

server1.example.com:

ls -l /data/export
[root@server1 administrator]# ls -l /data/export  
total 0  
-rw-r--r-- 1 root root 0 2009-12-18 15:37 test1  
-rw-r--r-- 1 root root 0 2009-12-18 15:37 test2  
[root@server1 administrator]#

Как видите, server1.example.com не заметил изменений, которые произошли, пока он был выключен. Это легко исправить, все, что нам нужно сделать, это вызвать команду чтения на общей папке GlusterFS на client1.example.com, например:

client1.example.com:

ls -l /mnt/glusterfs/
[root@client1 administrator]# ls -l /mnt/glusterfs/  
total 0  
-rw-r--r-- 1 root root 0 2009-12-18 15:37 test1  
-rw-r--r-- 1 root root 0 2009-12-18 15:39 test3  
-rw-r--r-- 1 root root 0 2009-12-18 15:39 test4  
[root@client1 administrator]#

Теперь посмотрите на директорию /data/export на server1.example.com снова, и вы должны увидеть, что изменения были реплицированы на этот узел:

server1.example.com:

ls -l /data/export
[root@server1 administrator]# ls -l /data/export  
total 0  
-rw-r--r-- 1 root root 0 2009-12-18 15:37 test1  
-rw-r--r-- 1 root root 0 2009-12-18 15:39 test3  
-rw-r--r-- 1 root root 0 2009-12-18 15:39 test4  
[root@server1 administrator]#

5 Ссылки

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.