Csync2 : synchronisation de fichiers pour cluster

Boris HUISGEN October 22, 2012

administration h├ębergement linux ha csync2

Csync2 is a cluster synchronization tool. It can be used to keep files on multiple hosts in a cluster in sync. Csync2 can handle complex setups with much more than just 2 hosts, handle file deletions and can detect conflicts. It is expedient for HA-clusters, HPC-clusters, COWs and server farms.

Installation

root@node1:~# apt-get install csync2
root@node1:~# openssl genrsa -out csync2_ssl_key.pem 2048
root@node1:~# openssl req -new -x509 -days 365 -key csync2_ssl_key.pem -out csync2_ssl_cert.pem
root@node2:~# apt-get install csync2
root@node2:~# openssl genrsa -out csync2_ssl_key.pem 2048
root@node2:~# openssl req -new -x509 -days 365 -key csync2_ssl_key.pem -out csync2_ssl_cert.pem
root@node3:~# apt-get install csync2
root@node3:~# openssl genrsa -out csync2_ssl_key.pem 2048
root@node3:~# openssl req -new -x509 -days 365 -key csync2_ssl_key.pem -out csync2_ssl_cert.pem

Configuration

root@node1:~# more /etc/csync2.cfg

#nossl * *;

group web
{
    host node1;
    host node2;
    host node3;

    key /etc/csync2_web.key;

    include /etc/csync2.cfg;
    include /etc/nginx/sites-enabled/;
    include %wwwdir%;
    exclude %wwwdir%/.*/awstats/.*;
    exclude %wwwdir%/.*/logs/.*;
    exclude %wwwdir%/.*/tmp/.*;

    action
    {
        pattern /etc/nginx/sites-enabled/*;
        exec "/etc/init.d/nginx reload";
        logfile "/var/log/csync2/action.log";
        do-local;
    }

    #backup-directory /var/backups/csync2;
    #backup-generations 2;

    auto first;
}

prefix wwwdir
{
    on node1: /var/www;
    on node2: /var/www;
    on node3: /home/www;
}

root@node1:~# csync2 -k /etc/csync2_web.key
root@node1:~# scp /etc/csync2.cfg /etc/csync2_web.key node2:/etc node3:/etc

Lancement de la synchronisation

root@node1:~# csync2 -rxv
root@node1:~# csync2 -xv

See also

DRBD : configuration master/master + cluster filesystem OCFS2
Read more
Debian : configuration iSCSI en mode target et initiator
Read more
MySQL : script de sauvegarde par snapshot LVM
Read more