Хранение данных · 2 min read · Feb 05, 2026

Стрипинг на четырех узлах хранения с GlusterFS на CentOS 5.4

Этот учебник показывает, как выполнить стрипинг данных (сегментация логически последовательных данных, таких как один файл, так что сегменты могут быть назначены нескольким физическим устройствам по круговому принципу и, таким образом, записаны одновременно) на четырех отдельных серверах хранения (работающих на CentOS 5.4) с помощью GlusterFS. Клиентская система (также CentOS 5.4) сможет получить доступ к хранилищу так, как если бы это была локальная файловая система. 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

| [...] 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 [...] |

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

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

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

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

yum groupinstall 'Development Tools'
yum groupinstall 'Development Libraries'
yum install libibverbs-devel fuse-devel

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

cd /tmp  
wget http://ftp.gluster.com/pub/gluster/glusterfs/2.0/LATEST/glusterfs-2.0.9.tar.gz  
tar xvfz glusterfs-2.0.9.tar.gz  
cd glusterfs-2.0.9  
./configure

В конце команды ./configure вы должны увидеть что-то вроде этого:

[...]  
GlusterFS configure summary  
===========================  
FUSE client        : yes  
Infiniband verbs   : yes  
epoll IO multiplex : yes  
Berkeley-DB        : yes  
libglusterfsclient : yes  
argp-standalone    : no  
  
[root@server1 glusterfs-2.0.9]#
make && make install  
ldconfig

Проверьте версию GlusterFS после этого (должна быть 2.0.9):

glusterfs --version
[root@server1 glusterfs-2.0.9]# glusterfs --version  
glusterfs 2.0.9 built on Mar 1 2010 15:34:50  
Repository revision: v2.0.9  
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 glusterfs-2.0.9]#

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

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).

После этого мы создаем следующую символическую ссылку…

ln -s /usr/local/sbin/glusterfsd /sbin/glusterfsd

… а затем создаем ссылки на запуск системы для сервера GlusterFS и запускаем его:

chkconfig --levels 35 glusterfsd on  
/etc/init.d/glusterfsd start
Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.