HotSync

Avvertimento

Il moduflo HotSync è da considerarsi una release beta. Pertanto è opportuno provarla in ambienti di test prima di procedere in produzione.

HotSync mira a ridurre i tempi di inattività in caso di problemi, sincronizzando il NethServer con un altro sistema gemello, che verrà attivato manualmente in caso di guasto del server master.

Normalmente, quando si verifica un problema hardware, il tempo necessario per ripristinare il servizio è:

  1. riparazione/approvvigionamento nuovo server: da 4h a 2 giorni
  2. installazione sistema operativo: 30 minuti
  3. ripristino backup: da 10 minuti a 8 ore

In sintesi, gli utenti possono ricominciare a lavorare con i dati della notte precedente al guasto dopo alcune ore/giorni. Utilizzando hotsync, il tempo per le fasi 1 e 3 è praticamente 0, per la fase 2 è ridotto a 5 minuti (tempo per attivare il server di riserva). Gli utenti possono ricominciare a lavorare in pochi minuti, utilizzando i dati di alcuni minuti prima del crash.

Per impostazione predefinita, tutti i dati inclusi nel backup vengono sincronizzati ogni 15 minuti. Anche i database MariaDB sono sincronizzati, a meno che la sincronizzazione dei database non sia disabilitata. Le applicazioni che utilizzano PostgreSQL sono sincronizzate (Mattermost, Webtop5) a meno che la sincronizzazione dei database non sia disabilitata.

Terminologia

  • MASTER è il sistema di produzione SLAVE è il server di riserva
  • SLAVE è acceso, con un indirizzo IP diverso da MASTER
  • Ogni 15 minuti, MASTER esegue un backup su SLAVE
  • Un’e-mail viene inviata a root (admin se è installato il server di posta)

Installazione

Per installare nethserver-hotsync su MASTER e SLAVE, esegure dalla riga di comando:

yum install nethserver-hotsync

Configurazione

Master

[[email protected]]# config setprop rsyncd password <PASSWORD>
[[email protected]]# config setprop hotsync role master
[[email protected]]# config setprop hotsync SlaveHost <SLAVE_IP>
[[email protected]]# signal-event nethserver-hotsync-save

Slave

[[email protected]]# config setprop rsyncd password <PASSWORD>
[[email protected]]# config setprop hotsync role slave
[[email protected]]# config setprop hotsync MasterHost <MASTER_IP>
[[email protected]]# signal-event nethserver-hotsync-save

La <PASSWORD> deve essere la stessa sul master e sullo slave.

Se mysql o postgresql sono installati, saranno sincronizzati per impostazione predefinita. Per disabilitare la sincronizzazione dei database

[[email protected]]# config setprop hotsync databases disabled
[[email protected]]# signal-event nethserver-hotsync-save

Abilitazione/Disabilitazione

Hotsync è abilitato di default. Per disabilitarlo:

[[email protected]]# config setprop hotsync status disabled
[[email protected]]# signal-event nethserver-hotsync-save

e per riabilitarlo:

[[email protected]]# config setprop hotsync status enabled
[[email protected]]# signal-event nethserver-hotsync-save

Ripristino: promuovere lo SLAVE in produzione

La seguente procedura mette in produzione lo SLAVE in caso di arrewsto anomalo del master.

  1. spegnere il MASTER

  2. se lo SLAVE deve funzionare come gateway di rete, collegarlo al router/modem con un cavo di rete

  3. sullo SLAVE, se si è connessi tramite una console ssh, lanciare il comando screen, per fare in modo che la sessione sopravviva in caso di interruzioni di rete:

  4. lanciare sullo SLAVE il seguente comando e leggere attentamente l’output generato

    [[email protected]]# hotsync-promote
    
  5. spostarsi nella pagina Rete del Server Manager e riassegnare i ruoli alle interfacce di rete secondo necessità

  6. lanciare il comando

    [[email protected]]# /sbin/e-smith/signal-event post-restore-data
    
  7. aggiorna il sistema alla versione più recente dei pacchetti

    [[email protected]]# yum clean all && yum -y update
    
  8. se sul MASTER era configurato un backup su USB, collegare il disco di backup allo SLAVE

Pacchetti supportati

  • nethserver-nextcloud
  • nethserver-mysql
  • nethserver-dnsmasq
  • nethserver-squidguard
  • nethserver-pulledpork
  • nethserver-antivirus
  • nethserver-samba-audit
  • nethserver-freepbx > 14.0.3
  • nethserver-webtop5 (lo stato di z-push non è sincronizzato)
  • nethserver-collectd
  • nethserver-cups
  • nethserver-dc
  • nethserver-letsencrypt
  • nethserver-nextcloud
  • nethserver-sssd
  • nethserver-directory
  • nethserver-ibays
  • nethserver-mail-server