Собственно, о чем текст? Как часто наши ожидания расходятся с суровой реальностью? Поэтому, поступив в лучший технический вуз страны на факультет информационной безопасности, я рассчитывал на увлекательное обучение, веселую студенческую жизнь и, конечно же, интересную практику.
Однако вместо того, чтобы разгадывать коды (привет Алан) и открывать криптексы (добрый вечер, Роберт), мне пришлось настроить облако Nextcloud на нескольких серверах, объединенных в кластер.
И это оказалось интересно! — Так что же в этом сложного? - подумал ты.
Действительно, проблема очень и очень тривиальная.
Однако, когда я искал в Интернете информацию по этой проблеме, мне не удалось найти руководство, которое объединило бы все части установки.
Поэтому, чтобы сэкономить время подобных чайников сетевого администрирования, я, с вашего разрешения, пишу эту статью.
Итак, что мы получаем в итоге — небольшое облако Nextcloud на базе мастер-сервера (да-да, конечно нам нужен прокси.
И несколько мастер-серверов.
А еще навык.
Если вы все это ждете, я извините.
), несколько (в данном случае 2) серверов, играющих роль консолидированного отказоустойчивого хранилища БД.
Такое милое облачко для такой маленькой компании.
Пойдем
Первоначальные условия
Прежде всего, мы должны подготовить оборудование (в моем случае VirtualBox, в котором созданы три машины).Мастер - 192.168.0.105 Сервер1 — 192.168.0.108 Сервер2 — 192.168.0.109 1. Операционная система – Ubuntu Server 16.04. Параметры машины особой роли не играют — для развертывания нашего небольшого облака достаточно мощности среднего (очень среднего) компьютера.
Завышенные параметры виртуальных машин могут сыграть с вами злую шутку — когда я показывал практику на университетском компьютере с четырьмя гигабайтами оперативной памяти, запуск третьей машины приводил к сбою компьютера.
Хотя, может быть, в этом виновата другая кастомная Unix-система, установленная на нем? 2. Рабочая сеть.
Если вы, как и я, используете VirtualBox, то советую в настройках сети в качестве типа подключения указать «Сетевой мост».
Таким образом, вы можете пропинговать сервер в коробке как с основной системы, так и с других машин.
3. Хороший плейлист (по желанию) После энного часа танцев с бубном в поисках оптимального решения (может я еще в процессе) стало совсем невыносимо.
Настройка кластера
Чтобы получить отказоустойчивое хранилище, состоящее из нескольких серверов, нам понадобится кластер.Я выбрал Гластер, потому что мог найти отличный мана на русском(!!) языке.
Начнем с установки.
Откройте консоль нашего сервера и введите следующее:
Затем подключитесь к репозиторию:sudo apt-get install python-software-properties
sudo add-apt-repository ppa:gluster/glusterfs-3.8
sudo apt-get update
И наконец устанавливаем:
sudo apt-get install glusterfs-server
Те же действия выполняем на втором (n-м) сервере.
Совет! (для начинающих, для "чайников) Когда я впервые столкнулся с настройкой серверов в ВМ, меня неприятно удивило отсутствие общего буфера между гостевой и основной ОС (хотя это было ожидаемо).
Поэтому для связи с машинами я использовал Путти .
Загрузите и запустите putti.exe. Перед использованием не забудьте установить openssh-сервер на машины, которые мы будем использовать: sudo apt-get install openssh-server
Думаю, этот же клиент можно использовать и при общении с реальными машинами.
А может, лучше поесть? Итак, Гластер установлен.
Теперь давайте создадим соединение.
Но сначала давайте узнаем IP-адреса наших серверов: ifconfig
Теперь создадим его, написав с первого сервера следующее (после входа в систему под root): gluster peer probe 192.168.0.109
коллегиальное исследование: успех.
Отлично, теперь у нас в кластере 2 сервера.
Проделываем эту операцию столько раз, сколько хотим объединить серверы в кластер, меняя только IP-адрес сервера.
Хранилище, которое мы создаем с помощью Glusterfs, имеет несколько типов хранения контента (подробнее по ссылке выше).
Нас интересует реплицируемость — контент зеркалируется на все серверы кластера.
Пока нам негде хранить данные, поэтому создадим папки на наших серверах:
во-первых: mkdir /mnt/server1
и на втором: mkdir /mnt/server2
Заключительная часть кластера — создание хранилища: gluster volume create nextcloud replica 2 transport tcp 192.168.0.108:/mnt/server1 192.168.0.109:/mnt/server2 force
где nextcloud — имя нашего хранилища, а 2 — количество серверов в кластере.
Не забывайте про слово Force в конце — можно получить ошибку и долго недоумевать, что не так?
Запустим: gluster volume start nextcloud
Работа с кластером практически завершена.
Остальное после установки облака.
Установка следующего облака
Для этого нам понадобится наш мастер-сервер.Войдите в систему как root и наслаждайтесь.
Для установки вы можете использовать этот статья.
Доходим до Шага 5. Останавливаемся.
Скачать архив с облаком: cd ~
wget --no-check-certificate https://download.nextcloud.com/server/releases/nextcloud-11.0.0.tar.bz2
sudo tar -C /var/www -xvjf ~/nextcloud-11.0.0.tar.bz2
rm ~/nextcloud-11.0.0.tar.bz2
Создадим пару папок: sudo mkdir /var/www/nextcloud/data
sudo mkdir /var/www/nextcloud/assets
Самый ответственный момент. Вспомним про наш кластер и подключим его к мастер-серверу: mount.glusterfs 192.168.0.108:/nextcloud /var/www/nextcloud/data/
Теперь все файлы, попадающие в наше облако, будут копироваться на все серверы.
Завершаем установку, следуя советам из статьи.
Каков результат?
Итак, что мы получили? Вы получаете небольшое облако, отказоустойчивое к падению серверов, хранящих данные — попробуйте специально уронить один из них — мастер немного подумает и все снова заработает. При восстановлении аварийного сервера данные на нем будут автоматически обновлены.Конечно, узким местом является главный сервер.
Наличие нескольких мастеров, работающих с одной базой данных, управляемых, например, Галерой, и прокси-сервера, отвечающего за распределение трафика между ними, значительно повысило бы отказоустойчивость системы (хотя ее таковой сейчас вряд ли можно назвать).
Может быть, в следующей статье? Если вы дочитали до этого места, то вы герой — большое спасибо за внимание.
Для приятного сообщества писать одно удовольствие.
Теги: #linux #облака #Администрирование серверов #Облачные вычисления #чайники
-
Энигматис: Призраки Мэйпл-Крик
19 Oct, 24 -
Решение Проблемы Importscripts() В Opera
19 Oct, 24 -
Опыт Продаж В Сфере It-Рекрутинга
19 Oct, 24 -
Подкаст Имени Аосиниайо №3. О Трезвости
19 Oct, 24 -
Toshiba Показала Umpc На Топливных Элементах
19 Oct, 24