GlusterFS - распределённая файловая система

Материал из Викиадмин
Перейти к навигации Перейти к поиску

GlusterFS, на самом деле, очень легка в настройке и установке. К тому же документация на сайте, несмотря на отсутствие перевода, очень простая. Поставить и первоначально настроить не сложно даже начинающему сисадмину. Из минусов, конечно, упоминают FUSE и требовательность к сети, а так же занимаемое место (например, залив файл на 10МБ в свежесозданную систему, можно обнаружить, что место уменьшилось на 20МБ - в скратой директории находится копия файла). Из плюсов - нет необходимости держать отдельно сервер метаданных, а так же, при некоторых режимах, можно восстановить файлы просто копированием их разделов (bricks, кирпечей)

Установка

Для начала хотелось бы уточнить, что не рекомендуют делать эту систему на дисках, уже используемой ОС. А так же сервера должны друг друга видеть по именам, которые мы укажем. В моём примере это будет server1 и server2

  • установка пакетов на всех серверах:
yum -y install centos-release-gluster41
sed -i -e "s/enabled=1/enabled=0/g" /etc/yum.repos.d/CentOS-Gluster-4.0.repo
yum --enablerepo=centos-gluster40 -y install glusterfs-server glusterfs glusterfs-fuse
systemctl restart glusterd
systemctl enable glusterd

Это запустит сервер, отвечающий за оновной функционал распределённой файловой системы.

Если включен SeLinux:

setsebool -P nis_enabled on

И если включён FireWall

firewall-cmd --add-service=glusterfs --permanent
firewall-cmd --reload

Типы распределения

В этих случаях файлы остаются целиком и можно просто их скопировать

  • Distributed (распределённый) (аналог RAID0)
  • Replicated (реплицируемый) (аналогично RAID1)

Теперь уже файлы делятся на части и заливаются на все сервера. Чем интересно: скорость чтения/записи выше. Я думаю, интересно там, где не очень страшно потерять данные (места для обработки данных, типа видео, хранения торрентов и т.д.)

  • Striped (разделенный по частям)

Тут уже делим файл и распределяем

  • Distributed Striped (распределённый и разделенный по частям)

А в этом случае файлы будут распределяться случайно, но и зеркалится. То есть смысл этой связки, как и предыдущей, при от 4 серверах

  • Distributed Replicated (распределённый и реплицируемый)

Аналог с RAID не проглядывается? :)

Настройка реплики на 2 серверах

Но обоих серверах должна быть директория для этой ФС.

mkdir /gluster

На одном из серверов подключаем второй:

gluster peer probe

Смотрим статус:

gluster peer status 

Peer in Cluster скажет о том, что всё ок.

Теперь объединяем:

gluster volume create vol0 replica 2 transport tcp server1:/gluster server2:/gluster

Если дисков 3, то replica 3 и 3 сервер с папкой в конце. server1:/gluster - это и есть brick, кирпичек нашей системы.

Смотрим, всё ли ок:

gluster volume info

Эта команда покажет информацию по всем томам (volume)

Монтирование

Монтируем папку любого сервера:

mount -t glusterfs server1:/vol0 /mnt

И всё. df -h или du -sh покажут вам, что папка подключена и можно с ней работать.

Просто, не так ли?

Разумеется, если пытаться эту систему разнести в разные места и между ними не наладить хорошую связь, тормозить это дело может очень даже существенно, учитите это. Gluster требователен к каналу!


Как сделать, чтобы gluster-систему видели и другие компьюеры в сети в виде обычной папки

Тут всё просто: мы монтировали /mnt в распределённой системе, а его просто можно "расшарить" средствами SAMBA или NFS.

Производительность glusterfs

Источник

На этом сайте немного подсказано про производительность системы

performance.write-behind-window-size: 65535
performance.read-ahead: off
performance.cache-size: 1073741824
главная тут performance.read-ahead: off

Копировать бездумно не советую, а вот присмотреться к параметрам стоит

Ссылки