Сервер хранения · 3 min read · Feb 11, 2026

Создание автономного сервера хранения, подобного NFS, с GlusterFS 3.2.x на Debian Wheezy

Этот учебник показывает, как настроить автономный сервер хранения на Debian Wheezy. Вместо NFS я буду использовать GlusterFS. Клиентская система сможет получить доступ к хранилищу так, как если бы это была локальная файловая система. GlusterFS — это кластерная файловая система, способная масштабироваться до нескольких пета-байт. Она агрегирует различные блоки хранения через Infiniband RDMA или TCP/IP в одну большую параллельную сетевую файловую систему. Блоки хранения могут быть выполнены на любом стандартном оборудовании, таком как серверы x86_64 с SATA-II RAID и Infiniband HBA.

Я не даю никаких гарантий, что это сработает для вас!

1 Предварительная заметка

В этом учебнике я использую две системы, сервер и клиент:

  • server1.example.com: IP-адрес 192.168.0.100 (сервер)
  • client1.example.com: IP-адрес 192.168.0.101 (клиент)

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

vi /etc/hosts

| 127.0.0.1 localhost.localdomain localhost 192.168.0.100 server1.example.com server1 192.168.0.101 client1.example.com client1 # Следующие строки желательны для хостов, поддерживающих IPv6 ::1 localhost ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters |

(Также возможно использовать IP-адреса вместо имен хостов в следующей настройке. Если вы предпочитаете использовать IP-адреса, вам не нужно беспокоиться о том, могут ли быть разрешены имена хостов или нет.)

2 Настройка сервера GlusterFS

server1.example.com:

GlusterFS доступен как пакет для Debian Wheezy, поэтому мы можем установить его следующим образом:

apt-get install glusterfs-server

Команда

glusterfsd --version

должна теперь показать версию GlusterFS, которую вы только что установили (в данном случае 3.2.7):

root@server1:~# glusterfsd –version
glusterfs 3.2.7 built on Nov 12 2012 19:30:08
Repository revision: git://git.gluster.com/glusterfs.git
Copyright (c) 2006-2011 Gluster Inc. http://www.gluster.com
GlusterFS поставляется БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ.
Вы можете перераспределять копии GlusterFS на условиях GNU General Public License.
root@server1:~#

Если вы используете брандмауэр, убедитесь, что TCP порты 111, 24007, 24008, 24009-(24009 + количество блоков по всем томам) открыты на server1.example.com.

Далее мы создаем общий ресурс с именем testvol на localhost (= server1) в директории /data (это будет создано, если оно не существует):

gluster volume create testvol server1.example.com:/data

root@server1:~# gluster volume create testvol server1.example.com:/data
Создание тома testvol прошло успешно. Пожалуйста, запустите том, чтобы получить доступ к данным.
root@server1:~#

Запустите том:

gluster volume start testvol

Возможно, что вышеуказанная команда сообщит вам, что действие не было успешным:

root@server1:~# gluster volume start testvol
Запуск тома testvol не удался
root@server1:~#

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

gluster volume info
root@server1:~# gluster volume info

Имя тома: testvol
Тип: Распределенный
Статус: Запущен
Количество блоков: 1
Тип транспорта: tcp
Блоки:
Brick1: server1.example.com:/data
root@server1:~#

Если он сообщает вам, что том запущен, все в порядке, в противном случае просто запустите его снова.

По умолчанию все клиенты могут подключаться к тому. Если вы хотите предоставить доступ только client1.example.com (= 192.168.0.101), выполните:

gluster volume set testvol auth.allow 192.168.0.101

Пожалуйста, обратите внимание, что возможно использовать подстановочные знаки для IP-адресов (например, 192.168.*) и что вы можете указать несколько IP-адресов, разделенных запятой (например, 192.168.0.101,192.168.0.102).

Информация о томе теперь должна показывать обновленный статус:

gluster volume info
root@server1:~# gluster volume info

Имя тома: testvol
Тип: Распределенный
Статус: Запущен
Количество блоков: 1
Тип транспорта: tcp
Блоки:
Brick1: server1.example.com:/data
Переконфигурированные параметры:
auth.allow: 192.168.0.101
root@server1:~#

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

client1.example.com:

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

apt-get install glusterfs-client

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

mkdir /mnt/glusterfs

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

mount.glusterfs server1.example.com:/testvol /mnt/glusterfs

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

mount

root@client1:~# mount
sysfs на /sys тип sysfs (rw,nosuid,nodev,noexec,relatime)
proc на /proc тип proc (rw,nosuid,nodev,noexec,relatime)
udev на /dev тип devtmpfs (rw,relatime,size=10240k,nr_inodes=126813,mode=755)
devpts на /dev/pts тип devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
tmpfs на /run тип tmpfs (rw,nosuid,noexec,relatime,size=102704k,mode=755)
/dev/mapper/server1-root на / тип ext4 (rw,relatime,errors=remount-ro,user_xattr,barrier=1,data=ordered)
tmpfs на /run/lock тип tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k)
tmpfs на /run/shm тип tmpfs (rw,nosuid,nodev,noexec,relatime,size=205400k)
/dev/sda1 на /boot тип ext2 (rw,relatime,errors=continue)
rpc_pipefs на /var/lib/nfs/rpc_pipefs тип rpc_pipefs (rw,relatime)
server1.example.com:/testvol на /mnt/glusterfs тип fuse.glusterfs (rw,relatime,user_id=0,group_id=0,default_permissions,allow_other,max_read=131072)
fusectl на /sys/fs/fuse/connections тип fusectl (rw,relatime)
root@client1:~#

… и…

df -h

root@client1:~# df -h
Файловая система                    Размер  Использовано Доступно Использовано% Смонтировано на
rootfs                         29G  1.2G   26G   5% /
udev                           10M     0   10M   0% /dev
tmpfs                         101M  240K  101M   1% /run
/dev/mapper/server1-root       29G  1.2G   26G   5% /
tmpfs                         5.0M     0  5.0M   0% /run/lock
tmpfs                         201M     0  201M   0% /run/shm
/dev/sda1                     228M   18M  199M   9% /boot
server1.example.com:/testvol   29G  1.2G   26G   5% /mnt/glusterfs
root@client1:~#

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

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

vi /etc/fstab  

| [...] server1.example.com:/testvol /mnt/glusterfs glusterfs defaults,_netdev 0 0 |

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

reboot

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

df -h

… и…

mount

4 Ссылки

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.