Установка и настройка csync2

Csync2 предназначен для синхронизации файлов(нодов) между серверами. Перенос файлов можно настроить по приоритетам или по последней модификации. Csync2 не проверяет изменения в самом файле.

Установку необходимо проводить на всех серверах расположенных в связке. Установить можно из репозитория. Для debian\ubuntu:

# apt-get install csync2 sqlite rsync –y

centos:

# yum install csync2 rsync librsync-devel xinetd sqlite2

После установки необходимо с генерировать ключи:

# csync2 -k /etc/csync2/csync2.nod.key

Не забываем скопировать их на все сервера. Генерировать ключи необходимо на одном сервере(любом), но необходимо его перенести на все остальные что будут участвовать в синхронизации.

Создаем конфигурационный файл (/etc/csync2/csync2.cfg) на всех серверах.

group nod { #название группы синхронизации nod
  #список всех серверов которые будут участвовать в синхронизации
  host server1 server2;
  # путь до ключа
  key /etc/csync2/csync2.nod.key;
  # папка которую будем синхронизировать
  include /var/share;
  # папки исключенные из синхронизации
  exclude /var/share/cache;
  exclude /var/share/temp;
  # условия синхронизации younger - самый новый тот и оставляет
  auto younger;
}

Csync2 состоит из 2х частей, сервера и клиента (сервер - принимает, клиент - отправляет). Для автоматического запуска в серверной части необходимо за комментировать в файле /etc/xinetd.d/csync2 строку "disable = yes" и перезапустить сервис xinetd и разрешить его запуск при загрузке системы:

# service xinetd restart
# chkconfig xinetd on

На Debian заместо xinetd стоит inetd. поэтому перегружаем таким образом:

# /etc/init.d/openbsd-inetd restart

Все можно пробовать перенос данных. Инструкция по ключам и запускам я описал здесь(). Не стал мешать настройки и использование Csync2. Да и еще Csync2 использует 30865 порт и его необходимо открыть для нашего сервера. Можно добавить пару строк в файл /etc/sysconfig/iptables

-A INPUT -s 10.10.10.1 -d 10.10.10.2 -p tcp -m tcp --dport 30865 -j ACCEPT
-A INPUT -s 10.10.10.2 -d 10.10.10.2 -p tcp -m tcp --dport 30865 -j ACCEPT
-A INPUT -p tcp --dport 30865 -j DROP

Поясню немного. Первая строка разрешаем запрос от первого сервера ко второму, вторая разрешаем внутренний запрос во втором сервере(на всякий случай), третья запрещает всем остальным. Примерна такие же строки должны быть на первом сервере, эти строки взяты со второго нода.