GlusterFS · 2 min read · Feb 04, 2026

Стрипинг по четырем узлам хранения с GlusterFS на Debian Lenny

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

Пожалуйста, обратите внимание, что этот тип хранения не предоставляет никаких функций высокой доступности/устойчивости к сбоям, как это было бы в случае с реплицированным хранилищем.

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

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

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

  • server1.example.com: IP адрес 192.168.0.100 (сервер)
  • server2.example.com: IP адрес 192.168.0.101 (сервер)
  • server3.example.com: IP адрес 192.168.0.102 (сервер)
  • server4.example.com: IP адрес 192.168.0.103 (сервер)
  • client1.example.com: IP адрес 192.168.0.104 (клиент)

Все пять систем должны иметь возможность разрешать имена хостов других систем. Если это невозможно сделать через 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 server2.example.com server2 192.168.0.102 server3.example.com server3 192.168.0.103 server4.example.com server4 192.168.0.104 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 ff02::3 ip6-allhosts |

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

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

server1.example.com/server2.example.com/server3.example.com/server4.example.com:

GlusterFS недоступен в виде пакета Debian для Debian Lenny, поэтому нам нужно собрать его самостоятельно. Сначала мы устанавливаем необходимые пакеты:

aptitude install sshfs build-essential flex bison byacc libdb4.6 libdb4.6-dev

Затем мы загружаем последнюю версию GlusterFS с http://www.gluster.org/download.php и собираем его следующим образом:

cd /tmp  
wget http://ftp.gluster.com/pub/gluster/glusterfs/2.0/LATEST/glusterfs-2.0.1.tar.gz  
tar xvfz glusterfs-2.0.1.tar.gz  
cd glusterfs-2.0.1  
./configure --prefix=/usr > /dev/null
server1:/tmp/glusterfs-2.0.1# ./configure --prefix=/usr > /dev/null  
  
GlusterFS configure summary  
===========================  
FUSE client        : no  
Infiniband verbs   : no  
epoll IO multiplex : yes  
Berkeley-DB        : yes  
libglusterfsclient : yes  
mod_glusterfs      : no ()  
argp-standalone    : no  
  
server1:/tmp/glusterfs-2.0.1#
make && make install  
ldconfig

Команда

glusterfs --version

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

server1:/tmp/glusterfs-2.0.1# glusterfs --version  
glusterfs 2.0.1 built on May 29 2009 17:23:10  
Repository revision: 5c1d9108c1529a1155963cb1911f8870a674ab5b  
Copyright (c) 2006-2009 Z RESEARCH Inc.   
GlusterFS comes with ABSOLUTELY NO WARRANTY.  
You may redistribute copies of GlusterFS under the terms of the GNU General Public License.  
server1:/tmp/glusterfs-2.0.1#

Затем мы создаем несколько директорий:

mkdir /data/  
mkdir /data/export  
mkdir /data/export-ns  
mkdir /etc/glusterfs

Теперь мы создаем файл конфигурации сервера GlusterFS /etc/glusterfs/glusterfsd.vol, который определяет, какая директория будет экспортирована (/data/export) и какой клиент может подключаться (192.168.0.104 = client1.example.com):

vi /etc/glusterfs/glusterfsd.vol

| volume posix type storage/posix option directory /data/export end-volume volume locks type features/locks 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/server option auth.addr.brick.allow 192.168.0.104 subvolumes brick end-volume |

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

После этого мы создаем ссылки для автозагрузки для скрипта инициализации glusterfsd…

update-rc.d glusterfsd defaults

… и запускаем glusterfsd:

/etc/init.d/glusterfsd start
Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.