Как стать автором
Обновить

Samba4 + GlusterFS

Время на прочтение3 мин
Количество просмотров16K
    Многие уже сталкивались с такой штукой как GlusterFS, кто-то же пока еще не в курсе дел, сегодня всех вас приглашаю познакомиться с этим проектом, а точнее с возможностью использования GlusterFS вкупе с Samba4 для построения распределённого, линейно масштабируемого файлового хранилища с защитой от сбоев.

    В этом материале будет рассмотрено несколько возможностей использования GlusterFS с Samba4, а так же анализ производительности каждого варианта.

Я использую SLES11 SP3, все примеры будут на базе него, но думаю в других дистрибутивах все делается примерно так же. GlusterFS можно загрузить с официального сайта проекта, есть уже скомпилированные сборки под все основные серверные дистрибутивы Linux.

        В примере используется GlusterFS 3.4.2 и Samba 4.1.6.

С samba4 не все так просто. Можно собрать samba4 самому, но тогда не забывайте при сборке собирать пакет с модулем vfs glusterfs. Я же пошел по более простому пути, а именно перекомпилял сборку от Sernet, т.к. в этом случае ненужно писать init скрипты, да и структура файлов samba сразу верная, не требуется при компилировании указывать скрипту что и куда положить. Сборку можно получить на портале Sernet после регистрации.

И так, нам нужно в конечном итоге получить samba4 с модулем vfs glusterfs, устанавливаем sernet-samba-4.1.6-7.src.rpm, правим spec файл sernet-samba-4.1.spec, в котором нужно сделать следующее:
Ищем строку
%define		vfs_modules_common	vfs_audit,vfs_cap,vfs_catia,vfs_cacheprime,vfs_expand_msdfs,vfs_extd_audit,vfs_fake_perms,vfs_netatalk,vfs_recycle,vfs_streams_depot,vfs_aio_fork
добавляем в конце
,vfs_glusterfs
Ищем столбец
CONF_OPTS="\
Добавляем в него
--enable-glusterfs \
Далее запускаем сборку rpm по нашему spec файлу
rpmbuild -bb sernet-samba-4.1.spec
На выходе получаем нужные нам rpm'ки sernet-samba, которые уже включают в себя нужный нам модуль.

Samba4 можно использовать с glusterfs в любой роли, будь то контроллер домена или же просто классический файловый сервер. Есть несколько путей использования этих двух продуктов в связке, при чем один путь из двух обладает почему-то гораздо большей популярностью, хотя и медленнее другого.

Я не буду рассматривать в этом материале пошаговый план создания хранилища glusterfs, до меня на хабре это уже делалось не раз, да и ничего сложного в этом процессе нет. Можно обратится к официальной инструкции или поискать материал на habrahabr. Будем считать локальный volume под названием samba4_volume у вас уже есть.

И так, вариант первый, самый простой, но и самый медленный, просто монтируем glusterfs volume допустим в /data и указываем в smb.conf шару на этот путь.
В файле /etc/fstab добавляем
localhost:/samba4_volume /data glusterfs defaults,_netdev 0 0
Как добавить шару в smb.conf думаю объяснять не нужно.
В этом случае кстати vfs модуль вам вообще не нужен, и то что описано в начале статьи можно не проделывать.

Вариант второй, более производительный.
Используем модуль vfs и подключаем volume напрямую к samba4.
Пример нужной нам части smb.conf
[data]
	comment = For samba export of volume  test
	vfs objects = glusterfs
	glusterfs:volfile_server = localhost
	glusterfs:volume = samba4_volume
	kernel share modes = no
	path = /
	read only = no
	guest ok = yes
Соответственно если у вас samba4 скомпилирована без этого модуля этот вариант работать не будет.

Пора проверить скорость работы каждого варианта. Вначале я проверял скорость копирования по сети на шару одного большого файла, потом проверил копирование папки windows (куча мелких файлов), в процентном соотношении разницы по скорости между разными вариантами я не заметил, поэтому решил не снимать скриншоты, устойчивая скорость при копировании одного большого файла более наглядна по моему мнению.

Для начала тестируем скорость работы напрямую с файловой системой ext4, без glusterfs.



Скорость около 50 Мб\с по гигабитной сети, вполне себе нормальный результат.

Проверяем скорость при использовании первого варианта. Volume glusterfs просто примонтирован через /etc/fstab



Скорость сразу обвалилась в два раза от эталона, ужасный в общем-то результат…

Проверим скорость при использовании модуля vfs



Скорость проседает в полтора раза от эталона.

На деле как мы видим проблема с производительность у GlusterFS на данный момент имеются в любом случае, если вы решите перевести свое корпоративное хранилище на GlusterFS имеющий одну или несколько нод с репликацией имейте ввиду, производительность такого хранилища в любом случае снизится. Да, скорость можно поднять, если добавить Striped ноды, но на это нужны железные ресурсы, которые не у всех есть. В моем же случае я хотел использовать репликацию на другой сервер для отказоустойчивости, видя положение дел я пока поставил на паузу данный проект.

Разработчики обещают в новой версии 3.5 поднять производительность, остается только ждать…
Теги:
Хабы:
+11
Комментарии7

Публикации

Истории

Ближайшие события

Weekend Offer в AliExpress
Дата20 – 21 апреля
Время10:00 – 20:00
Место
Онлайн
Конференция «Я.Железо»
Дата18 мая
Время14:00 – 23:59
Место
МоскваОнлайн