Хранилище · 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 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 startGet new posts in your inbox
No spam. Unsubscribe anytime.