Csync2 : synchronisation de fichiers pour cluster

Boris HUISGEN
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