Полная репликация сайта между двумя QNAP Turbo NAS

Довольно частой задачей является репликация готового сайта между двумя серверами. Это позволяет упрочить отказоустойчивость в случае непредвиденных осложнений в работе одного из серверов, и сохранить при этом доступ к самому сайту.
 
Рассмотрим пример. У нас запущен проект MediaWiki на QNAP Turbo NAS TS-451, а также у нас есть другая модель QNAP TS-119. В нашем примере: проект MediaWiki работает и доступен с сервера расположенного на TS-451, а накопитель TS-119 будет выступать резервным хранилищем.
Нам необходимо настроить репликацию базы MySQL между этими устройствами и обеспечить регулярное обновление папок с данными wiki (фото, видео, файлами хранения) между хранилищами.
Таким образом, на TS-119 в любой момент времени будет находиться точная копия сайта с TS-451!
 
1. Необходимые инструменты для работы.
2. Настройка репликации базы данных MySQL между хранилищами.
    2.1 Настройка головного сервера.
    2.2 Настройка подчиненного сервера.
    2.3 Первичный экспорт базы данных.
3. Настройка репликации папок между хранилищами.
4. Полезные ссылки.
 
1. Необходимые инструменты для работы.
 
В ходе настройки нам понадобятся следующие программные продукты:
  1. Настроенный сайт, на базе MySQL (в нашем примере MediaWiki). С готовой таблицей MySQL.
  2. Установленный на обоих NAS пакет phpMyAdmin из App Center QNAP
  3. Установленная на обоих NAS MediaWiki (конфигурация на TS-119 не важна) из App Center QNAP
  4. Утилита WinSCP (для Windows) или ее аналог Transmit (для Mac ОS X) для доступа к структуре папок и файлов QNAP
  5. Текстовый редактор Notepad (Блокнот) из пакета Windows или аналогичный.
Перед настройкой настоятельно рекомендуем проверить наличие всех необходимых компонентов.
 
2. Настройка репликации базы данных MySQL между хранилищами.
 
Итак, для решения данной задачи мы разделим роли наших серверов на Master (головной) и Slave (подчиненный).
  1. QNAP TS-451 – используется в качестве головного сервера. На нем развернута и запущена MediaWiki, базу которой нам необходимо реплицировать на другое устройство.
  2. QNAP TS-119 – используется в качестве подчиненного сервера для резервирования данных.
 
2.1 Настройка головного сервера.
 
Итак, начнем настройку. Открываем веб-конфигуратор TS-451 и запускаем phpMyAdmin.
  1. Откройте закладку Репликация (1). В пункте Репликация головного сервера нажмите Настройка (2).
 
Наша база называется QNAP_Wiki_Support. Выберите Игнорировать все базы данных, кроме отмеченных (1). Отметьте нужную базу (2) и скопируйте текст появившийся ниже (3) в буфер обмена. Внимание! Не закрывайте это окно!
 
Откройте структуру папок и файлов вашего NAS, используя WinSCP или Transmit.
Откройте папку /share/имя_тома/.qpkg/qmysql/mysql/
Откройте файл my.cnf, используя Блокнот.
 
Найдите раздел [mysqld] и добавьте туда строки из буфера обмена из предыдущего скриншота.
Сохраните файл.
 
Теперь сервер MySQL следует перезагрузить. Просто включите и выключите его в меню Панель управления > Серверы приложений > Сервер MySQL.
Снимите галочку > нажмите Применить > Поставьте галочку > нажмите Применить. Или перезагрузите весь NAS целиком.
 
Снова возвращаемся в phpMyAdmin на закладку Репликация. Мы видим, что сервер обозначен как Головной. Нажмите Добавить подчиненного пользователя репликации.
 
Теперь нужно создать пользователя для репликации.
Внимание! Данный пользователь входит в состав базы пользователей MySQL! Это не пользователь QNAP или сайта. Это пользователь именно MySQL!
Укажите имя пользователя. Мы назовем его в честь удаленного NAS, на который производится репликация - TS119. Введите IP-адрес удаленного NAS (наш TS-119 имеет IP-адрес - 192.168.1.36). Придумайте пароль, введите его подтверждение. Нажмите ОK.
 
На следующем экране просто нажмите Да внизу экрана. После этого MySQL создаст пользователя с правами для репликации. Мы можем увидеть его в закладке Пользователи.
 
2.2. Настройка подчиненного сервера.
 
Теперь перейдем к настройкам TS-119. Для наглядности на скриншоте мы отметили, что открыли его настройку в новых вкладках в том же браузере, в котором настраивали предыдущий NAS.
Откройте phpMyAdmin на TS-119, зайдите в меню Репликация (1) и нажмите Настройка (2).
 
Введите логин и пароль пользователя, которого мы создали на головном сервере. В нашем примере это был пользователь с именем TS119. Укажите имя хоста головного сервера (наш TS-451 имеет IP-адрес - 192.168.1.35). Укажите порт MySQL, в нашем примере мы используем порт по умолчанию (3306).
Обратите внимание на подчеркнутую строчку. Скопируйте ее в буфер обмена.
Внимание! Не закрывайте это окно и переходите к следующему шагу.
 
Откройте структуру каталогов TS-119 в WinSCP, как мы это делали ранее с головным сервером.
Зайдите в папку /share/имя_тома/.qpkg/qmysql/mysql/
Откройте файл my.cnf, используя Блокнот.
Найдите раздел [mysqld] и добавьте туда строку из буфера обмена с server-id.
Добавьте строчку replicate-do-db = имя базы данных MySQL.
 
После этого вернитесь в веб-конфигуратор, где мы настраивали подчиненный сервер и нажмите ОK.
Если серверы нашли друг друга, то мы увидим следующее сообщение:"Replication started successfully". Однако это означает только связь между серверами. Наша настройка еще не окончена.
 
Зайдите в меню Пользователь. Откройте свойства нашего пользователя TS119 и проверьте галочки, как на скриншоте, установите недостающие. Нажмите ОK.
 
Репликация настроена, однако она не может начаться, пока база с именем QNAP_Wiki_Support отсутствует на подчиненном сервере. Сам сервер создать ее не может. Поэтому в первый раз мы ее вручную импортируем с головного сервера.
 
2.3 Первичный экспорт базы данных.
 
Итак, для импорта базы вновь откроем phpMyAdmin на головном сервере, коим является TS-451.
Откройте закладку Экспорт. Выберите необходимую базу и установите все галочки, как это сделано на скриншоте. Нажмите ОK.
 
Сервер предложит нам сохранить базу в файле localhost.sql на наш компьютер. Соглашаемся.
 
Теперь открываем phpMyAdmin на подчиненном сервере, которым является TS-119.
Откройте закладку Импорт. Нажмите Обзор и выберите сохраненный с головного сервера файл localhost.sql. Нажмите ОK.
 
Выберите сохраненный с головного сервера файл localhost.sql. Нажмите ОK.
 
Нажмите ОK на странице импорта.
После этого на нашем подчиненном сервере появится база QNAP_Wiki_Suport.
Перезагрузите MySQL на обоих серверах NAS, или сами хранилища целиком.
После перезагрузке откройте phpMyAdmin на подчиненном сервере > закладку Репликация > нажмите на пункт Смотрите таблицу состояния подчиненного сервера.
 
Таблица должна иметь следующий вид и не содержать ошибок (красные строчки):
 
В состоянии базы данных должно быть следующее обозначение (см. скриншот):
 
Теперь база MySQL реплицирована. Любое изменение базы на нашем головном TS-451 будет передаваться на TS-119. Таким образом, наша база дынных на двух накопителях всегда будет идентичной.
Однако мы сделали только половину дела. Нам также необходимо перенести всю мультимедиа, составляющую нашей MediaWiki: фотографии, аудио и видеозаписи, прикрепленные файлы с дистрибутивами. Для этого мы используем репликацию Rsync с сервера на сервер.
 
3. Настройка репликации папок между хранилищами.
 
Сначала включим Rsync сервер на QNAP TS-119, куда будет копироваться база.
Откройте Панель управления > Резервное копирование > Сервер резервирования > Сервер Rsync.
Укажите логин и пароль для подключения, установите галочки и нажмите Применить.
Внимание! Пользователю с указанным логином и паролем должны быть даны права RW на те папки в накопителе, в которые будет производиться репликация. Данный пользователь должен быть заведен непосредственно на этом накопителе (в нашем примере TS-119). О назначении прав смотреть здесь.
 
Переходим к нашему головному QNAP TS-451.
Откройте Панель управления > Резервное копирование > Репликация > C сервера на сервер > Создать задание по репликации.
 
Укажите Имя задания и нажмите Параметры. На следующем скриншоте мы рассмотрим какие нужно указать Параметры. В этом меню укажите исходный каталог на головном сервере и целевой каталог на подчиненном. MediaWiki хранит все свои файлы в каталоге /Web/mediawiki.
 
Укажите IP-адрес подчиненного сервера. Имя пользователя и пароль, который указывали на подчиненном сервере в настройках выше. Нажмите Тест для проверки. Нажмите Применить.
 
Начнется процесс резервного копирования.
 
После удачной репликации, с обоих серверов будут доступны идентичные версии MediaWiki. При этом все обновления на головном будут реплицироваться на подчиненный.
 
4. Полезные ссылки.
 
 

 

KB-4606

Была ли эта статья полезной?
Пользователи, считающие этот материал полезным: 0 из 0