Отказоустойчивость:
Синхронизация файлов#
Данная статья описывает настройку lsyncd для синхронизации файлов между основным и резервным серверами.
На основном сервере необходимо создать пользователя, который будет отправлять файлы на резервный сервер.
Создайте группу для пользователя
rider:Создайте пользователя
rider:Задайте произвольный пароль для пользователя
rider, сохраните его:На резервном сервере также требуется создать пользователя, который будет отправлять файлы на основной сервер.
Создайте группу для пользователя
rider:Создайте пользователя
rider:Задайте произвольный пароль для пользователя
rider, сохраните его:На основном сервере необходимо настроить доступ пользователя к резервному серверу.
На основном сервере выполните команду от лица пользователя
rider:Следующей командой сгенерируйте ключ доступа, оставив passphrase пустым:
Скопируйте публичный ключ с основного сервера на резервный (потребуется пароль, созданный с помощью команды
passwd riderна резервном сервере).
Для этого выполните на основном сервере:На резервном сервере также требуется настроить доступ пользователя к основному серверу:
На резервном сервере выполните команду от лица пользователя
rider:Следующей командой сгенерируйте ключ доступа, оставив passphrase пустым:
Скопируйте публичный ключ с резервного сервера на основной (потребуется пароль, созданный с помощью команды
passwd riderна основном сервере).
Для этого на резервном сервере выполните:Затем на основном и резервном серверах следует выйти из-под пользователя
rider:После этого на основном и резервном серверах установите приложение
lsyncd, которое следит за появлением новых файлов и отправляет их на другой сервер.На обоих серверах выполните команды для установки lsyncd:
В некоторых дистрибутивах
lsyncdавтоматически запускается сразу после установки — на обоих серверах остановите его следующей командой:Теперь требуется настроить
lsyncd:На обоих серверах создайте директорию, в которой будут располагаться логи
lsyncd:На обоих серверах создайте директорию, куда будут добавляться временные файлы при копировании на сервер:
На обоих серверах создайте директорию, в которой будет располагаться конфигурация
lsyncd:На обоих серверах создайте файл конфигурации:
Предупреждение
Для дальнейшей настройки понадобится файл
configs/global.yaml, который был создан ранее в разделе «Конфигурация портов и доменов приложения»Получите значение поля
root_mount_pathвашего приложения — оно понадобится для заполнения конфигурационного файла дляlsyncd:В шаблон ниже подставьте свои значения, затем добавьте содержимое в конфигурационный файл
/etc/lsyncd/lsyncd.conf.luaс помощью любого текстового редактора, и сохраните изменения:Примечание
Обратите внимание, что при настройке на основном сервере в конфигурационном файле необходимо указывать IP-адрес резервного сервера.
И наоборот: если конфигурация настраивается на резервном — в конфигурационном файле необходимо указать IP-адрес основного сервера.
Для поляtargetdirукажите директории сервера, на который отправляются файлы.Действия выше также необходимо выполнить на резервном сервере.
Для того чтобы
riderсохранял файлы с тем же владельцем и группой — выполните на обоих серверах следующие действия:Откройте файл для настройки:
Добавьте строку в файл и сохраните изменения:
Для синхронизации большого количества файлов необходимо увеличить лимит наблюдения за ядром
inotify.Для этого на обоих серверах нужно создать файл настройки ядра
/etc/sysctl.d/10-max_user_watches.conf:Добавьте строку в файл и сохраните изменения:
На обоих серверах примените новую настройку:
Настройте ротацию логов для
lsyncdна основном и резервном серверах.Установите
logrotate, если ранее ещё не был установлен:Создайте конфигурационный файл для ротации логов
lsyncd:Откройте
/etc/logrotate.d/lsyncdлюбым удобным текстовым редактором и добавьте в него следующее содержимое:Запустите
logrotate:Запустите
lsyncdна основном сервере:Внимание
lsyncd рекомендуется запускать только на текущем активном сервере, чтобы избежать рассинхронизации в обмене файлами.
Проверьте, что всё настроено успешно. Проверьте статус
lsyncdна наличие ошибок:Проверьте логи
lsyncdна наличие ошибок:Для проверки работы синхронизации на основном сервере создайте файл в папке, куда установлено приложение
<значение поля root_mount_path>/files/:И проверьте на резервном сервере, что созданный файл появился в той же папке:
Примечание