Cluste How-to

Da Wizard linux team wiki.

Jump to: navigation, search

Questo tutorial ha lo scopo di mettere in piedi un sistema ad alta affidabilità.

Contents

I programmi necessari da installare

  • drbd che controlla chi dei due server comanda il servizio come primario e agisce nel caso di malfunzionamento
  • il modulo di drbd adatto al vostro kernel
  • heartbeat

Configurare Le partizioni

Configurare le partizioni che devono essere tenute in considerazione da drbd. Questo è possibile attraverso il file drdb.conf (nell'esempio utilizziamo la partizione di home)

resource home { <--nome della risorsa

 protocol C;
 incondegrcmd "echo '!DRBD! pri on incondegr'| wall ; sleep 60 ; halt ­f";

 startup {
  wfctimeout 200;
  degrwfctimeout 240;<-- tempo di time output per accordo tra i due server
 }

 disk {
  onioerror detach;
 }
 
 syncer {
  rate 100M; <-- velocità di sincronismo tra le due macchine
 group 1;
 }

 on server1.azienda.com {
 device /dev/drbd0; <-- device creato da drdb
 disk /dev/sda6; <-- device reale del disco del primo server
 address 192.168.100.10:7788; <-- indirizzo della scheda di rete interna tra i 2 PC
 metadisk internal;
 }
 
 on server2.azienda.com {
 device /dev/drbd0; <-- device creato da drdb
 disk /dev/sda6; <-- device reale del disco del secondo server server
 address 192.168.100.20:7788; <-- indirizzo della scheda di rete interna tra i 2 PC
 metadisk internal;
 }
} 

Aprire le porte del firewall

  • la 694 in UDP (serve sia a drbd che a heartbeat)
  • le porte specificate nella configurazione della rete interna (per il nostro esempio 7788)

Inserimento moduli del Kernel

ora inserite i moduli del kernel con

insmod drbd

Caricamento Moduli Kernel

caricateli con il comando

modprobe drbd

Umount di Home

umount /home

Commentare home

commentate sul primo e sul secondo server le righe relative a home (per il nostro esempio, ma se avete bisogno di sincronizzare altro tutti i punti di mount relativi)

Digitare...

digitate

drbdadm ­­dowhatIsay primary <nome della risorsa di cui il sever deve essere ilpimario>

se di tutto all (altrimenti lo si fa rispettando uno schema incrociata ovvero se server1 è primario di /home il server 02 sarà primario di /var/www ad esempio e l'altro diverrà secondario)

Inizializzazione Dispositivo

Ora inizializziamo il dispositivo facendo

mkfs.ext3 /dev/drbd0

Mount delle Partizioni

Montiamo la partizione con

mount /dev/drbd0 /home

Riavvio

Riavviamo il tutto e se abbiamo fatto tutto bene i due server inizieranno a sincronizzarsi

Verifiche

Verifichiamo con il comando

drbdadm cstate all

La risposta è SyncTarget sul primo e SyncSource

Statistiche Sincronizzazione

Facendo

cat /proc/drdb

otteniamo le statistiche della nostra sincronizzazione sul secondo

Aggiunte sul file hosts

Aggiungiamo nel file hosts (che di trova sotto /etc/) che al 192.168.100.20 rispondere il server2 sul primo server e al 192.168.100.10 il server1 sul secondo server

Creazione file di configurazione heartbeat

A questo punto si crea il file di configurazione di heartbeat chiamato ha.cf (da creare sotto /etc/ha.d/) che deve essere IDENTICO su entrambe le macchine

debugfile /var/log/hadebug
logfile /var/log/halog
logfacility local0
keepalive 2
deadtime 30
warntime 10
initdead 120
serial /dev/ttys0 <-- ridondanza attraverso cavo seriale
baud 19200
udpport 694 <-- porta di comunicazione di heartbeat
bcast eth0 eth1 <-- ridondanza attraverso due schede di rete
auto_failback on
node server1 <-- nome del primo server
node server2 <-- nome del secondo server
ping 192.168.111.1 <-- ping ad un indirizzo di rete aggiuntivo ESISTENTE
respawn hacluster /usr/lib/heartbeat/ipfail
apiauth ipfail uid=hacluster gid=haclient

Creazione del File haresources

Ccome ha.cf c'è necessità di creare un altro due file chiamati haresources (da creare sotto /etc/ha.d/) e authkeys riportati di seguito. In haresources , che deve essere uguale necessariamente su entrambe le macchine v

authkeys
auth 2
#1 crc
2 sha1 ultramonkey <-- qui vengono specificati il metodo di cryptazione e la password
#3 md5 Hello!
haresoures
server01.miodominio rbddisk::www Filesystem::/dev/drbd0::/var/www::ext3
apache::/etc/httpd/conf/httpd.conf 10.10.11.23 <-- ip comune ad entrambi i server

(NB: il file authkey deve essere identico per entrambe le macchine e deve avere 600 come permessi)

Commentare file fstab e mtab

Ora bisogna su entrambi i server commentare nei file, posti sotto etc, fstab e mtab le relative righe ovei punti di mount sono utilizzate dal cluster (nel nostro caso quelle dove si presenta la dicitura home)

Risoluzioni non funzionamento di HEARTBEAT

Architettura a 64 Bit

Può capitare che lanciando heartbeat da un errore di mancato caricamento di una libreria. Il problema è dovuto al fatto che sull'architettura a 64bit le librerie vengono cercate sotto /usr/lib64 e invece sono sotto /usr/lib/. La soluzione è quella di creare i link simbolici da /usr/lib/ a /usr/lib64/

Architettura di HEARTBEAT

Può capitare che le macchine sono entrambe in secondario e nessuan delle due prende iniziativa. Il problema può risiedere con buona probablità nel file di configurazione di haresources. Si puo' iniziare il debug mettendo nel file haresources la seguente stringa: server01.miodominio 10.10.11.23 e spegnere uno il secondario e vedere se prende l'indirizzo e poi riaccendere il primario per vedere se lo rilascia.

wizard linux team