Quick start

Перед установкой beegfs необходимо обновить пакеты установленные в системе:

sudo yum update

Убедитесь, что ваш дистрибутив Linux поддерживается данной файловой системой, на момент написания этого гайда актуальны следующие дистрибутивы:

Red Hat Linux и его деревативы (CentOS, Fedora) версии 6, 7, 8.

Suse Linux и его деревативы(OpenSUSE) версии 12.

Debian GNU Linux и его деревативы (Ubuntu, *buntu) версии 8, 9, 10.

Актуальную информацию можно узнать на WIKI проекта, по ссылке:

https://www.beegfs.io/wiki/DownloadInstallationPackages

После проверки на совместимость с вашим дистрибутивом необходимо добавить репозиторий проекта в дистрибутив:

 http://www.beegfs.io/release/

И еще раз выполнить:

sudo yum update

Для корректной работы файловой системы требуется синхронизация времени на всех узлах кластера (NTP server).

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

Непосредственно установка и первоначальная настройка BeeGFS:

Начинать установку следует с mgmt сервиса — это сервис управления файловой системы.

yum install beegfs-mgmtd

Далее инициализациия новой конфигурации:

/opt/beegfs/sbin/beegfs-setup-mgmtd -p /MGMT_FOLDER

После инициализаци необходимо редактировать первоначальную конфигурацию mgmt сервиса:

vim /etc/beegfs/beegfs-mgmt.conf

storeMgmtdDirectory      = /data/mgmt/# Директория в которой mgmt сервис хранит данные о файловой системе
storeAllowFirstRunInit   = false #Разрешает инициализацию директории хранения mgmt, нужно для первого запуска.
sysAllowNewServers       = true #Разрешить добавление новых серверверов. Отключить после завершения сборки ФС
sysAllowNewTargets       = true #Разрешить добавление новых таргетов. Отключить после завершения сборки ФС
connAuthFile                           = #Путь к файлу аутентицикации, если предусмотрен secret.key
connBacklogTCP                         = 128 #Количество допустимых TCP соединений
connInterfacesFile                     = /etc/beegfs/con.conf #Путь к файлу с разрешенными сетевыми интерфейсами
connMgmtdPortTCP                       = 1111 #Порт для работы mgmt TCP
connMgmtdPortUDP                       = 1111 #Порт для работы mgmt UDP
connNetFilterFile                      = #Путь к файлу содержащему подсети исходящих адресов 
connPortShift                          = 0 #Смещение для всех использумыех портов
logType                                = logfile            
logLevel                               = 2
logNoDate                              = false
logNumLines                            = 50000
logNumRotatedFiles                     = 5
logStdFile                             = /var/log/beegfs-mgmtd.log
#Секция квотирования файловой системы
​quotaQueryGIDFile                      =
quotaQueryGIDRange                     =
quotaQueryUIDFile                      =
quotaQueryUIDRange                     =
quotaQueryType                         = system
quotaQueryWithSystemUsersGroups        = false
quotaUpdateIntervalMin                 = 10​
runDaemonized                          = true               #Тип запуска (демон)
sysTargetOfflineTimeoutSecs            = 180                #Время потери таргета
tuneClientAutoRemoveMins               = 30             #Таймер удаления таргета из файловой системы (совсем) минуты
tuneNumWorkers                         = 10 #Количество воркеров обслуживающих файловую систему


Не забудьте создать файл /etc/beegfs/con.conf содержищий название интерфейса с которым планируется работа файловой системы. Так же удостоверьтесь, что при инсталляции вы используете вакантные порты операционной сиситемы - всего понадобиться 5 портов для сервисов файловой системы: mgmt, storage,meta,helper, client.

После редактирования конфигурационного файла можно запустить сервис:

systemctl start beegfs-mgmtd.service

Затем проверить состояние сервиса:

systemctl status beegfs-mgmtd.service

Если что то пошло не так, нужно изучить файл логов, расположенный тут:

/var/log/beegfs-mgmt.log

После успешного запуска службы и проверки ее статуса необходимо отредактировать systemd unit этой службы:

vim /usr/lib/systemd/system/beegfs-mgmt.service

В секции [Service] необходимо добавить строку для предотвращения возможных ошибок при запуске сервиса.

ExecStartPre=/usr/bin/sleep 10

Далее, установка beegfs-storage service
Установка пакета:

yum install beegfs-storage libbeegfs-ib

Инициализация новой конфигурации:

/opt/beegfs/sbin/beegfs-setup-storage -p /storage_directory -s 1 -i 101 -m NODE

В данном случае параметр -s это ID сервиса.А параметр -i это пользовательский ID. Для работы сервисов имеет значение ID сервиса (-s). ID представляет собой уникальный идентификатор сервиса. Это число в диапазоне 1-65636, должно быть уникальным в своем классе (metadata, storage, client). NODE - это имя управляющей ноды ip/hostaname.

После инициализаци необходимо редактировать первоначальную конфигурацию storage сервиса:

/etc/beegfs/beegfs-storage.conf

sysMgmtdHost = 172.26.2.65 #Адрес хоста, на котором расположен сервис mgmt

storeStorageDirectory = ,/data/stor/ #Директория в которой хранятся данные storage сервиса, запятая нужна

storeAllowFirstRunInit = false #Разрешение на инициализацию новой директории хранения storage target

connAuthFile = #Путь к файлу аутентицикации, если предусмотрен secret.key

connBacklogTCP = 128 #Количество допустимых TCP соединений

connInterfacesFile = /etc/beegfs/con.conf #Путь к файлу с разрешенными сетевыми интерфейсами

connMaxInternodeNum = 12

connMgmtdPortTCP = 1111 #Порт для работы mgmt TCP

connMgmtdPortUDP = 1111 #Порт для работы mgmt UDP

connStoragePortTCP = 1112 #Порт для работы storage TCP

connStoragePortUDP = 1112 #Порт для работы storage UDP

connPortShift = 0 #Смещение для всех использумыех портов

Убедитесь что каталог, указанный в кофигурационном файле как storage target существует и доступен. Так же проверьте наличие файла описывающего разрешенные сетевые интерфейсы.

После редактирования конфигурационного файла можно запустить сервис

systemctl start beegfs-storage.service

Затем проверить состояние сервиса

systemctl status beegfs-storage.service

Если что то пошло не так, нужно изучить файл логов, расположенный тут:

/var/log/beegfs-storage.log

После успешного запуска службы и проверки ее статуса необходимо отредактировать systemd unit этой службы:

vim /usr/lib/systemd/system/beegfs-storage.service

В секции [Service] необходимо добавить строку для предотвращения возможных ошибок при запуске сервиса.

ExecStartPre=/usr/bin/sleep 15

Далее, установка beegfs-meta service
Установка пакета:

yum install beegfs-meta libbeegfs-ib

Инициализация новой конфигурации:

/opt/beegfs/sbin/beegfs-setup-meta -p /meta_directory -s 1 -m NODE

После инициализаци необходимо редактировать первоначальную конфигурацию meta сервиса:

vim /etc/beegfs/beegfs-meta.conf

sysMgmtdHost = 172.26.2.65 #Адрес хоста, на котором расположен сервис mgmt

storeStorageDirectory = /data/meta/ #Директория в которой хранятся данные storage сервиса,без запятой

storeAllowFirstRunInit = false #Разрешение на инициализацию новой директории хранения meta target

connAuthFile = #Путь к файлу аутентицикации, если предусмотрен secret.key

connBacklogTCP = 128 #Количество допустимых TCP соединений

connInterfacesFile = /etc/beegfs/con.conf #Путь к файлу с разрешенными сетевыми интерфейсами

connMaxInternodeNum = 12

connMetaPortTCP = 1113 #Порт для работы meta сервиса TCP

connMetaPortUDP = 1113 #Порт для работы meta сервиса UDP

connMgmtdPortTCP = 1111 #Порт для работы mgmt TCP

connMgmtdPortUDP = 1111 #Порт для работы mgmt UDP

connPortShift = 0 #Смещение для всех использумыех портов

Убедитесь что каталог, указанный в кофигурационном файле как meta target существует и доступен. Так же проверьте наличие файла описывающего разрешенные сетевые интерфейсы.
После редактирования конфигурационного файла можно запустить сервис

systemctl start beegfs-meta.service

Затем проверить состояние сервиса

systemctl status beegfs-meta.service

Если что то пошло не так, нужно изучить файл логов, расположенный тут:

/var/log/beegfs-meta.log

После успешного запуска службы и проверки ее статуса необходимо отредактировать systemd unit этой службы:

vim /usr/lib/systemd/system/beegfs-meta.service

В секции [Service] необходимо добавить строку для предотвращения возможных ошибок при запуске сервиса.

ExecStartPre=/usr/bin/sleep 15

Далее, установка beegfs-helper, beegfs-client service

Установка пакетов:

yum install beegfs-client beegfs-helperd beegfs-utils

Сборка клиента. Необходимо изменить конфигурацию файла сборки клиента:

/etc/beegfs/beegfs-client-autobuild.conf

Возможны следующие варианты:

buildArgs=-j8

Если вы не ипользуете IB

buildArgs=-j8 BEEGFS_OPENTK_IBVERBS=1

Если вы используете IB и хотите собрать клиент с библиотекой 
libbeegfs-ib

buildArgs=-j8 BEEGFS_OPENTK_IBVERBS=1 OFED_INCLUDE_PATH=/usr/src/openib/include

Если вы используете IB и установили драйавра OFED от меланокса.

Не используйте драйвер OFED версии 4.5 и выше! Они не совместимы с клиентом beegfs!

После редактирования файла сборки, нужно запустить процесс сборки:

/etc/init.d/beegfs-client rebuild

Инициализация клиента:

/opt/beegfs/sbin/beegfs-setup-client -m NODE

NODE - Имя управляющей ноды ip/hostaname.

После инициализаци необходимо редактировать первоначальную конфигурацию client сервиса:

/etc/beegfs/beegfs-client.conf

sysMgmtdHost = 172.26.2.65 #Адрес хоста, на котором расположен сервис mgmt

connAuthFile = #Путь к файлу аутентицикации, если предусмотрен secret.key

connClientPortUDP = 1115 #Порт для работы client сервиса UDP

connHelperdPortTCP = 1114 #Порт для работы client сервиса TCP

connMgmtdPortTCP = 1111 #Порт для работы mgmt TCP

connMgmtdPortUDP = 1111 #Порт для работы mgmt UDP

connPortShift = 0 #Смещение для всех использумыех портов

Необходимо отредактировать файл:

vim /etc/beegfs/beegfs-mounts.conf

Здесь указывается в какой точке монтировать файловую систему и конфиг файл клента через пробел:

/MOUNT_DIRECTORY /etc/beegfs/beegfs-client.conf

Далее, редактирование конфигурации beegfs-helper:

vim /etc/beegfs/beegfs-helper.conf

Основные настройки:

connAuthFile = #Путь к файлу аутентицикации, если предусмотрен secret.key

connHelperdPortTCP = 1114 #Порт для работы helper сервиса TCP

connPortShift = 0 #Смещение для всех использумыех портов

После конфигурирования этих служб запускаем сервисы. Helper:

systemctl start beegfs-helperd.service

systemctl status beegfs-helperd.service

Client:

systemctl start beegfs-client.service

systemctl status beegfs-client.service

После успешного запуска служб и проверки их статуса необходимо отредактировать systemd unit этих служб:

vim /usr/lib/systemd/system/beegfs-helper.service

vim /usr/lib/systemd/system/beegfs-client.service

В секции [Service] необходимо добавить строку для предотвращения возможных ошибок при запуске сервиса.

ExecStartPre=/usr/bin/sleep 20

Все службы пишут логи:

/var/log/beegfs-* (mgmt/storage/meta/helper/client)

Если все службы были коректно конфигурированы и успешно запущены, можно убедится, что файловая система была смонтирована:

df -h