Сервер хранения · 4 min read · Feb 09, 2026
Создание автономного сервера хранения, похожего на NFS, с GlusterFS 3.0.x на Debian Squeeze
Этот учебник показывает, как настроить автономный сервер хранения на Debian Squeeze. Вместо 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 Squeeze, поэтому мы можем установить его следующим образом:
apt-get install glusterfs-serverКоманда
glusterfs --versionдолжна теперь показать версию GlusterFS, которую вы только что установили (в данном случае 3.0.5):
root@server1:~# glusterfs --version
glusterfs 3.0.5 built on Jul 13 2010 16:44:21
Repository revision: v3.0.5
Copyright (c) 2006-2009 Gluster Inc.
GlusterFS comes with ABSOLUTELY NO WARRANTY.
You may redistribute copies of GlusterFS under the terms of the GNU General Public License.
root@server1:~# Затем мы создаем несколько директорий:
mkdir /data/
mkdir /data/export
mkdir /data/export-nsТеперь мы создаем файл конфигурации сервера GlusterFS /etc/glusterfs/glusterfsd.vol (сначала мы создаем резервную копию оригинального файла /etc/glusterfs/glusterfsd.vol), который определяет, какая директория будет экспортирована (/data/export) и какой клиент может подключаться (192.168.0.101 = client1.example.com):
cp /etc/glusterfs/glusterfsd.vol /etc/glusterfs/glusterfsd.vol_orig
cat /dev/null > /etc/glusterfs/glusterfsd.vol
vi /etc/glusterfs/glusterfsd.vol| volume posix type storage/posix option directory /data/export end-volume volume locks type features/locks option mandatory-locks on subvolumes posix end-volume volume brick type performance/io-threads option thread-count 8 subvolumes locks end-volume volume server type protocol/server option transport-type tcp option auth.addr.brick.allow 192.168.0.101 # Отредактируйте и добавьте список разрешенных клиентов через запятую subvolumes brick end-volume |
Обратите внимание, что возможно использовать подстановочные знаки для IP-адресов (например, 192.168.*) и что вы можете указать несколько IP-адресов, разделенных запятой (например, 192.168.0.101,192.168.0.102).
После этого мы запускаем сервер GlusterFS:
/etc/init.d/glusterfs-server start3 Настройка клиента GlusterFS
client1.example.com:
На клиенте мы можем установить клиент GlusterFS следующим образом:
apt-get install glusterfs-clientЗатем мы создаем следующую директорию:
mkdir /mnt/glusterfsЗатем мы создаем файл /etc/glusterfs/glusterfs.vol (сначала мы создаем резервную копию оригинального файла /etc/glusterfs/glusterfs.vol):
cp /etc/glusterfs/glusterfs.vol /etc/glusterfs/glusterfs.vol_orig
cat /dev/null > /etc/glusterfs/glusterfs.vol
vi /etc/glusterfs/glusterfs.vol| volume remote type protocol/client option transport-type tcp option remote-host server1.example.com # может быть IP или имя хоста option remote-subvolume brick end-volume volume writebehind type performance/write-behind option window-size 4MB subvolumes remote 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Теперь вы должны увидеть новую общую папку в выводах…
mountroot@client1:~# mount
/dev/sda1 on / type ext3 (rw,errors=remount-ro)
tmpfs on /lib/init/rw type tmpfs (rw,nosuid,mode=0755)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
udev on /dev type tmpfs (rw,mode=0755)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=620)
fusectl on /sys/fs/fuse/connections type fusectl (rw)
/etc/glusterfs/glusterfs.vol on /mnt/glusterfs type fuse.glusterfs (rw,allow_other,default_permissions,max_read=131072)
root@client1:~#… и…
df -hroot@client1:~# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 29G 778M 27G 3% /
tmpfs 249M 0 249M 0% /lib/init/rw
udev 244M 100K 244M 1% /dev
tmpfs 249M 0 249M 0% /dev/shm
/etc/glusterfs/glusterfs.vol
29G 1.2G 27G 5% /mnt/glusterfs
root@client1:~#Вместо того чтобы монтировать общую папку GlusterFS вручную на клиенте, вы можете изменить /etc/fstab, чтобы общая папка монтировалась автоматически при загрузке клиента.
Откройте /etc/fstab и добавьте следующую строку:
vi /etc/fstab| [...] /etc/glusterfs/glusterfs.vol /mnt/glusterfs glusterfs defaults,_netdev 0 0 |
Чтобы проверить, работает ли ваш измененный /etc/fstab, перезагрузите клиент:
rebootПосле перезагрузки вы должны найти общую папку в выводах…
df -h… и…
mountЕсли изменение /etc/fstab не помогает, отмените ваше изменение в /etc/fstab и добавьте эту строку в /etc/rc.local вместо этого (перед строкой exit 0):
vi /etc/rc.local| [...] /bin/mount -t glusterfs /etc/glusterfs/glusterfs.vol /mnt/glusterfs [...] |
Это гарантирует, что общая папка будет смонтирована после того, как сеть будет запущена.
4 Ссылки
- GlusterFS: http://www.gluster.org/
- Debian: http://www.debian.org/
Get new posts in your inbox
No spam. Unsubscribe anytime.