Lsyncd - сервис, который следит за изменениями в локальной директории, агрегирует их, и по прошествии определенного времени или по изменении файла, стартует rsync для их синхронизации.
Установка Lsyncd
Поскольку сервис работает через rsync, то подключение между серверами будем осуществлять по RSA ключам.
Генерируем ключи
Генерируем ключи на обоих серверах и переносим друг на друга.
ssh-keygen -t rsa (passphrase не указываем) |
Аналогичную процедуру производим на втором сервере, заменяя адрес первого сервера.
Установка
Установка lsyncd
yum install lsyncd lua lua-devel pkgconfig gcc asciidoc |
Конфигурация
Конфигурационный файл на языке Lua
settings { |
Конфиг проще сделать один раз и дальше разнести на все ноды, закоментировав лишний для каждого конкретного сервера блок.
Запускаем сервис
service lsyncd start |
P.S. Рекомендую отключить SElinux.
Настройка ядра
Поскольку Lsyncd работает в связке с Inotify, необходимо изменить параметры ядра, чтобы устранить проблемы в будущем.
У inotify есть три параметра (см. ls /proc/sys/fs/inotify/
):
max_queued_events
— максимальное число событий в очереди; default = 16384
;max_user_instances
— сколько инстансов inotify может запустить один пользователь; default = 128
;max_user_watches
— сколько файлов может отслеживать один пользователь; default = 8192
.
Копирование отдельных файлов
Для копирования отдельных файлов между серверам используем параметр _extra =
.
Конфигурационный файл для копирования файла /etc/hosts
между 3-мя серверами.
settings { |