К основному контенту

Настройка GlusterFS

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

С помощью GlusterFS можно создать масштабированный, виртуальный пул, приспособленный для работы RAID через сеть интернет. с различными методами объединения пространства. В дополнение здесь есть возможности, которых нет в аппаратных решениях. В этой статье мы рассмотрим как выполняется настройка GlusterFS в Ubuntu и на что способна эта файловая система.

Содержание статьи: Как работает GlusterFS Установка GlusterFS Команда gluster Настройка Glusterfs Настройка шифрования GlusterFS Выводы Как работает GlusterFS

GlusterFS создает общий пул для хранения данных на основе нескольких сетевых устройств. Все это объединяется общим пространством имен, к которому есть доступ у всех пользователей. В качестве пользователей могут выступать как локальные программы, так и облачные сервисы.

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



Файловая система реализована в пространстве пользователя и для доступа к реальной файловой системе используется Fuse. Это позволяет работать с файловой системой более просто и прозрачно. Хотя существует библиотека libgfapi, которая дает прямой доступ к жесткому диску, позволяет более эффективно хранить образы виртуальных машин qemu.

Как уже говорилось GlusterFS позволяет объединять несколько сетевых устройств в одну файловую систему. Они могут связываться между собой с помощью TCP/IP или InfiniBand. Общее хранилище будет доступно с помощью клиента GlusterFS, по NFS или Samba.

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

Объем GlusterFS очень просто расширить, для этого достаточно добавить еще одно устройство. Установка GlusterFS

Все необходимые пакеты есть в официальных репозиториях большинства дистрибутивов. Например, для установки GlusterFS в Fedora достаточно выполнить:

sudo dnf install glusterfs glusterfs-cli glusterfs-server

А в Ubuntu:

sudo apt install glusterfs glusterfs-cli glusterfs-server

Дальше нам нужно запустить сервис и убедится, что он запущен и работает:

sudo systemctl start glusterd.service $ sudo systemctl status glusterd.service

Или:

sudo systemctl start glusterfs-server.service $ sudo systemctl status glusterfs-server.service Команда gluster

Для управления всеми возможностями Glusterfs используется утилита gluster. Для того чтобы вы могли лучше ориентироваться в ней мы рассмотрим ее синтаксис и использование. Синтаксис команды выглядит следующим образом:

$ gluster команда подкоманда параметры

Вот основные команды: volume - управление разделами; peer - управление подключенными машинами; snapshot - работа со снапшотами;

Рассмотрим синтаксис основных команд volume, с помощью которых будет выполняться настройка glusterfs: volume info - информация о томе; volume create - создать новый том на устройстве; volume delete - удалить том; volume start - запустить том; volume stop - временно остановить том; volume add-brick - добавить раздел к тому; volume remove-brick - удалить раздел из тома; volume replace-brick - заменить раздел на другой; volume rebalance - перебалансировать файлы.

Дальше рассмотрим команды peer, которые мы тоже сегодня будем использовать: peer probe - подключить новый компьютер к пулу; peer detach - отключить компьютер от пула; peer status - отобразить подключенные устройства.

Теперь вы знаете достаточно, чтобы продолжить работу с программой. И разобраться в возможных проблемах. Дальше мы рассмотрим как настроить Glusterfs для хранения данных. Настройка Glusterfs

Мы будем настраивать распределение данных GlusterFS между двумя системами, сервис должен быть установлен и настроен на обоих из них. На обоих компьютерах наши устройства хранения смонтированы в /storage. Перед тем как начать работать с Glusterfs, давайте добавим ip адреса наших серверов /etc/hosts, чтобы обращаться с ними было легче:

sudo vi /etc/hosts

192.168.51.1 gluster1 192.168.51.2 gluster2

Это необходимо сделать на обоих машинах. Дальше нам нужно создать пул. Неважно какую машину вы выберете для этого все будет работать одинаково. Мы будем использовать gluster1. Чтобы комьпютеры могли получить доступ друг к другу, нужно открыть несколько портов в брандмауэре:

firewall-cmd --zone=public --add-port=24007-24008/tcp --permanent $ firewall-cmd --zone=public --add-port=24009/tcp --permanent $ firewall-cmd --zone=public --add-service=nfs --add-service=samba --add-service=samba-client --permanent $ firewall-cmd --zone=public --add-port=111/tcp --add-port=139/tcp --add-port=445/tcp --add-port=965/tcp --add-port=2049/tcp --add-port=38465-38469/tcp --add-port=631/tcp --add-port=111/udp --add-port=963/udp --add-port=49152-49251/tcp --permanent $ firewall-cmd --reload

Для подключения машины gluster2 выполните команду:

sudo gluster peer probe gluster2

Локальная система автоматически добавляется к пулу, поэтому дополнительно ничего делать не нужно. С помощью следующей команды мы создадим хранилище с репликацией на двух подключенных системах:

sudo gluster volume create gv0 replica gluster1:/storage/brick1/gv0/ gluster2:/storage/brick1/gv0/

По умолчанию используется протокол TCP/IP для взаимодействия, но вы можете вручную указать InfiniBand. Если вы попытаетесь создать хранилище на корневом разделе, то у вас ничего не получиться, для его создания нужно добавить в конец команды опцию force. Далее смотрим информацию о созданном хранилище:

sudo gluster volume info gv0

Дальше можно запустить созданную группу:

sudo gluster volume start gv0

Существует несколько способов получить доступ к хранилищу GlusterFS. Работа через FUSE будет наиболее быстрой. Также можно использовать Samba или NFS. Кроме того, преимущество использование официального клиента, в том, что вы можете получить доступ к отдельным хранилищам. Для подключения Glusterfs с помощью официального инструмента используйте mount:

sudo mount -t glusterfs gluster1:/gv0 /mnt/glusterfs/

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

sudo gluster peer probe gluster3

sudo gluster volume add-brick replica 3 gv0 gluster3:/storage/brick1/gv0/

Естественно, что ip адрес узла gluster3 должен быть добавлен в файл /etc/hosts. Сначала мы добавляем его в список пиров, затем инициализируем на нем наш раздел. После выполнения команды наше хранилище будет состоять из трех устройств. Вы можете очень просто удалить один из разделов и открепить устройство:

sudo gluster volume remove-brick gv0 gluster3:/storage/brick1/gv0/ $ sudo gluster peer detach gluster3

Когда вы добавляете или удаляете разделы, необходимо пересортировать данные, система работала наиболее эффективно. Для этого выполните:

gluster volume rebalance gv0 start

Чтобы посмотреть статус балансировки используйте команду status:

gluster volume rebalance gv0 status Настройка шифрования GlusterFS

Если все узлы находятся в приватной сети, то это еще ничего, но если вы собираетесь применять GlusterFS через сеть, то желательно включить шифрование и аутентификацию по RSA ключу. По умолчанию никакая аутентификация не используется. Сначала создаем серитфикаты на каждом узле:

cd /etc/ssl/ $ sudo openssl genrsa -out glusterfs.key 2048 $ sudo openssl req -new -x509 -key glusterfs.key -subj "/CN=gluster1" -out glusterfs.pem

Скопируйте ключ gluster.key на другой сервер и создайте там на основе него сертификат, вместо gluster0 используйте имя своего хоста:

cd /etc/ssl/ $ sudo openssl req -new -x509 -key glusterfs.key -subj "/CN=gluster2" -out glusterfs.pem

Объедините содержимое обоих файлов pem и файле .ca и разместите его на всех серверах в папке /etc/ssl:

cat /etc/ssl/glusterfs.pem gluster2.pem > glusterfs.ca

Включите поддержку шифрования и перезапустите сервер:

sudo touch /var/lib/glusterd/secure-access $ sudo systemctl restart glusterd

Включите ssl на всех серверах и клиентах:

sudo gluster volume set gv0 auth.ssl-allow '*' $ gluster volume set gv0 server.ssl on

Теперь перезапустите группу томов:

 sudo gluster vol stop gv0 $ sudo gluster vol start gv0

Проверить работает ли ssl сейчас вы можете посмотрев лог файл:

grep -i ssl /var/log/glusterfs/gv0.log Выводы

В этой статье мы рассмотрели как выполняется настройка Glusterfs для хранения и репликации данных на нескольких серверах в сети. Этому может быть мало применений для домашних пользователей, но такая технология незаменима при обработке больших объемов данных в организациях. Жаль, что пока Glusterfs работает очень медленно, особенно с небольшими файлами и если узлов не много, а синхронизация будет выполняться через интернет, то целесообразнее использовать lsyncd.

Комментарии


Дистанционная компьтерная помощь, удаленная компьютерная помощь онлайн.

Популярные сообщения из этого блога

Лучшие плагины для OBS Studio

Open Broadcast Software или OBS - это свободное программное обеспечение с открытым исходным кодом для стриминга аудио и видео данных в сеть интернет. Программа полностью кроссплатформенная и может работать в Windows, Linux или MacOS. Это отличная альтернатива для таких программ, как Wirecast и XSplit. OBS использует для вещания стандартный протокол обмена сообщениями в реальном времени, а поэтому может транслировать данные в любой сервис, поддерживающий это, например, Yotube. Несмотря на широкие возможности OBS, программа поддерживает еще и множество плагинов. В этой статье мы рассмотрим лучшие плагины для OBS Studio, которые вы можете использовать. Содержание статьи: Лучшие плагины OBS Studio 1. Browser Source Plugin 2. Video Source Plugin 3. Simple Scene Switcher 4. DirectShow Audio Source 5. CLR Browser Source 6. OBS Remote 7. AMD Advanced Media Framework Encoder 8. Text Source Plugin Выводы Лучшие плагины OBS Studio Чтобы найти плагины OBS Studio для Video пользователям пр…

Лучшие аналоги Paint для Linux

Когда я работал в Windows, я часто использовал стандартную программу редактора изображений Windows - Paint. Не всегда нужен очень и многофункциональный инструмент вроде Photoshop или Gimp. Иногда, чтобы подправить ту или иную картинку, дорисовать на ней несколько фигур или вставить текст достаточно простого, легкого в освоении графического редактора вроде Paint. В Linux таких программ довольно много. В этой инструкции мы рассмотрим лучшие аналоги Paint для Linux. В этот список не будут включены такие программы, как Gimp и Krita, ведь это полнофункциональные графические редакторы, векторные редакторы, такие как Inkscape мы тоже рассматривать не будем. А теперь перейдем к списку. Содержание статьи: KolourPaint MyPaint Gnome Paint XPaint Pinta mtPaint GPaint Rassam-paint Выводы KolourPaint На первом месте в списке аналогов Piant для Linux будет KoloutPaint. Это стандартный графический редактор для окружения рабочего стола KDE. Он поддерживает множество форматов изображений PNG, J…

Подключение OneDrive в Linux

OneDrive (Ранее известный как SkyDrive) это популярное облачное хранилище файлов от Майкрософт. Сейчас OneDrive бесплатно предоставляет 7 гигабайт пространства новым пользователям. Как вы знаете OneDrive хорошо интегрирован с другими продуктами компании  Microsoft. В OneDrive Также есть официальный клиент который автоматически загружает ваши видео и фотографии с камеры в облако. Но к сожалению этот клиент недоступен для операционных систем семейства Linux. Но не все так плохо. Сообщество открытого программного обеспечения уже нашло решение. Это opedrive-d от Boilermaker. Запустившись как демон программа автоматически синхронизирует локальную папку с облаком OneDrive. Содержание статьи: Установка Onedrive-d в Linux Настройка Синхронизация локальной папки с OneDrive Установка Onedrive-d в Linux Несмотря на то что onedrive-d разрабатывается для Ubuntu/Debian, CentOs/Fedora/RHEL поддерживается тоже хорошо. Для установки достаточно набрать несколько команд: $ git clone https://gith…