Cluste How-to
Da Wizard linux team wiki.
←Older revision | Newer revision→
Questo tutorial ha lo scopo di mettere in piedi un sistema ad alta affidabilità.
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.

