Настройка репликации с помощью lsync


Для репликации даных между серверам ине всегда есть смысл пользоваться функционалом NFS. Если Вам нужно что бы на нескольких серверах было одинаковое содержимое двух каталогов, тогда можно воспользоваться lsync.

Я рассмотрю репликацию файлов на примере папок DNS сервера Bind.

Нужно что бы первый/главный сервер мог соединяться со вторым/зависмым сервером без пароля. Для этого воспользуемся ключами для ssh:

ssh-keygen

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

Сам файл authorized_keys2 нужно скопировать на удаленные сервер и положить в папку /root/.ssh.

Устанавливаем все нужное:

yum -y install lua lua-devel pkgconfig gcc asciidoc lsyncd

Ставим lsync на автозагрузку:

chkconfig lsyncd on

Логи синхронизации буду расти не по дням а по часам, поэтому нужно их периодически архивировать. Для этого cоздадим файл /etc/logrotate.d/lsyncd со следующим содержанием:

/var/log/lsyncd/*log {
        rotate daily
        missingok
        notifempty
       	compress
        sharedscripts
        postrotate
        if [ -f /var/lock/lsyncd ]; then
            /sbin/service lsyncd restart > /dev/null 2>/dev/null || true
        fi
	endscript

}

Теперь редактируем файл конфигурации и настраиваем синхронизацию:

sync {
   default.rsyncssh,
   host="ip_второго_сервера",
   source="/var/named/",
   targetdir="/var/named/",
   rsync = {
	compress = true,
        group = true,
        owner = true,
        rsh = "/usr/bin/ssh -p 22 -o StrictHostKeyChecking=no"
   }
}

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

Для этого добавьте следующую строку в секцию sync:

statusInterval = 20

Так же можно включить дополнительные опции rsync.

После перезапуска демона lsyncd проверьте содержимое каталога /var/named/ на втором сервере.

Share Button
(Visited 1 217 times, 1 visits today)

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Лимит времени истёк. Пожалуйста, перезагрузите CAPTCHA.