• csync2- synchronizacja plików w klastrze

    dodany przez Przemysław Sikora

    Często mówi się o klastrach wysoko-dostępnych (HA). Jest wiele takich rozwiązań, zarówno płatnych jak i bezpłatnych, prostych oraz skomplikowanych. Dzisiaj skupię się na niezwykle prostym, a zarazem skutecznym narzędziu, które dostępne jest nieodpłatnie. Mam na myśli csync-a w wersji 2. Zapewnia on zautomatyzowaną synchronizację plików pomiędzy serwerami z użyciem rsync-a.

    Do jego instalacji najlepiej użyć repozytorium “EPEL”. Zakładam, że jest ono skonfigurowane i idę dalej:

    yum install csync2

    Na jednym z komputerów w klastrze wydajemy poniższe polecenia:

    csync2 -k /etc/csync2/csync2.key
    openssl genrsa -out /etc/csync2/csync2_ssl_key.pem 2048
    openssl req -batch -new -key /etc/csync2/csync2_ssl_key.pem -out /etc/csync2/csync2_ssl_cert.csr
    openssl x509 -req -days 3600 -in /etc/csync2/csync2_ssl_cert.csr -signkey /etc/csync2/csync2_ssl_key.pem -out /etc/csync2/csync2_ssl_cert.pem

    założenia:
    – elementami klastra są: “srv1.domena.pl” i “srv2.domena.pl”
    – synchronizowane elementy: “/var/www/html/” i “/www/”

    Przystąpmy do edycji pliku “/etc/csync2/csync2.cfg”

    group centos-cluster
    {
    host srv1.domena.pl;
    host srv2.domena.pl;

    key /etc/csync2/csync2.key;

    include /var/www/html/;
    include /www/;
    exclude *~ .*;

    backup-directory /var/backups/csync2;
    backup-generations 3;
    auto none;
    }

    Następnie musimy przegrać plik konfiguracyjny oraz klucz i certyfikat na inne komputery. Najprościej zrobić to tak:

    scp /etc/csync2/* drugi.kom.pl:/etc/csync2

    Poniższe polecenia wykonujemy na wszystkich elementach “klastra”.

    vim "/etc/xinetd.d/csync2"

    Zawartość podanego pliku powinna być jak poniżej:

    service csync2
    {
    flags = REUSE
    socket_type = stream
    wait = no
    user = root
    group = root
    server = /usr/sbin/csync2
    server_args = -i
    port = 30865
    type = UNLISTED
    #log_on_failure += USERID
    disable = no
    only_from = 89.46.71.137 81.3.236.217 # IP serwerów w klastrze (własnego IP nie trzeba podawać)
    }

    /etc/init.d/xinetd start

    /sbin/chkconfig xinetd on

    Musimy zapewnić “swobodną” komunikację pomiędzy elementami klastra, np. poprzez umieszczenie kluczy publicznych ssh w plikach “authorized_keys” na serwerach w klastrze. Należy pamiętać o otwarciu portu dla ssh oraz tcp 30865 dla wszystkich elementów klastra.

    uruchomienie synchronizacji

    csync2 -xv

    Powyższe polecenie dobrze jest dodać do crona, podobnie jak “csync2 -M”, dzięki któremu możemy sprawdzić, czy pliki na wszystkich serwerach są identyczne.

    W razie wykrycia błędu synchronizacji, trzeba ręcznie wymusić na którym serwerze plik jet aktualny.
    chary srv1.domena.pl srv2.domena.pl /var/www/html/29-43.pdf

    W takim wypadku uznajemy np., że aktualny jest ten plik na pierwszym serwerze. Wydajemy na jego konsoli następujące polecenie:

    csync2 -f /var/www/owncloud/29-43.pdf

    W razie problemów, proszę pisać na forum, w komentarzach lub zajrzeć na man-a csync-a 2.

    man csync2

Dodaj komentarz

Warto odwiedzić
Valid XHTML 1.0 Transitional centos.com.pl- mapa strony