Samba4 + GlusterFS

от автора

    Многие уже сталкивались с такой штукой как 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 имейте ввиду, производительность такого хранилища в любом случае снизится. В моем же случае я пока поставил на паузу данный проект.

Разработчики обещают в новой версии 3.5 поднять производительность, остается только ждать…

ссылка на оригинал статьи http://habrahabr.ru/post/216461/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *