Con questo how to creeremo un mini cluster di 4 macchine che condividono una partizione, magari esposta da una macchina che fa da storage.
Perchè non NFS? perchè nfs va bene per condividere una cartella in una rete, che è ben differente da utilizzare un file system dedicato al clustering.
Con OCFS i nodi del cluster hanno accesso pieno alla partizione, come se fosse una partizione interna del disco, qualunque macchina può leggere/scrivere nella partizione senza doversi preoccupare che magari un altro nodo sta facendo la stessa cosa; ed ovviamente qualsiasi cambiamento all’interno della partizione, verrà visto in real time da tutti i nodi del cluster.
OCFS è l’acronicmo di Oracle Cluster File System, come è facile immaginare è un file system scritto e mantenuto da oracle, e distribuito liberamente sotto licenza GPL.
Per l’esempio attuale terremo come riferimento, per l’appunto, 4 macchine:
S1: 192.168.1.1
S2: 192.168.1.2
S3: 192.168.1.3
S4: 192.168.1.4
De seguito verranno spiegate tutte le singole operazioni, che sono da ripetersi su tutti i nodi, salvo diversamente specificato, partiamo con l’installazione.
#~: apt-get install ocfs2-tools
Installeremo cosi due demoni gestibili via init scripts, o2cb che si occupa di parsare il file di configurazione del cluster e effettuare il join al cluster stesso, e ocfs2 che si occupa di parsare il file fstab e montare in automatico le partizioni ocfs2.
Adesso dobbiamo preparare la partizione che ci interessa, nel mio caso specifico ho usato una partizione esposta da uno storage via iSCSI, pertanto una volta loggato al volume ed individuato il dispositivo visto dalla macchina (/dev/sdb nel mio caso) si da:
#~: mkfs.ocfs2 -b 4k -N 10 -L "Cluster OCFS" /dev/sdb
Questo comando ovviamente, è da eseguire solo su un solo nodo del cluster. Le opzioni usate indicano rispettivamente: la dimensione dei blocchi della partizione, il numero di nodi che parteciperanno al cluster e un etichetta da appendere alla partizione. Infine è da aggiungere su /etc/fstab:
/dev/sdb /punto/di/mount ocfs2 defaults,auto,_netdev 0 0
Finito il partizionamento dobbiamo passare alla configurazione vera e propria del cluster ocfs, innanzitutto dobbiamo abilitare il demone o2cb perchè di default su debian è disabilitato.
#~: vi /etc/default/o2cb
e dentro controllare che le seguenti voci siano come descritte:
O2CB_ENABLED=true
O2CB_BOOTCLUSTER=nomecluster
O2CB_HEARTBEAT_THRESHOLD=31
O2CB_IDLE_TIMEOUT_MS=30000
O2CB_KEEPALIVE_DELAY_MS=2000
O2CB_RECONNECT_DELAY_MS=200
I parametri che ci interessano sono i primi due, il primo naturalmente serve ad attivare il demone, il secondo definisce il nome del cluster ocfs.
Il prossimo file da creare è /etc/ocfs2/cluster.conf il cui contenuto deve essere:
node:
ip_port = 7777
ip_address = 192.168.1.1
number = 0
name = S1
cluster = nomeclusternode:
ip_port = 7777
ip_address = 192.168.1.2
number = 1
name = S2
cluster = nomeclusternode:
ip_port = 7777
ip_address = 192.168.1.3
number = 2
name = S3
cluster = nomeclusternode:
ip_port = 7777
ip_address = 192.168.1.4
number = 3
name = S4
cluster = nomeclustercluster:
node_count = 4
name = nomecluster
Il file è molto semplice ed intuitivo, contiene i dati realtivi a tutti i nodi del cluster, e deve essere uguale in ogni nodo che deve parteciparvi.
Cosi com’è la configurazione di ocfs2 è completata, riavviando prima o2cb e dopo ocfs2 i nodi joinano il cluster, peccato che al reboot mi sono ritrovato la macchina freezata con un bel kernel panic! la causa del kernel panic è open-iscsi che su debian oltre che buggato è gestito proprio male; per risolvere il problema dobbiamo rimuovere open-iscsi dai demoni di rc.d:[fn]Ovviamente questo vale per chi usa open-iscsi, chi usaaltri metodi non è afflitto da questo bug[/fn]
#~: update-rc.d -f open-iscsi remove
e gestire il demone in fase di re-boot tramite il file /etc/network/interfaces, aggiungendo queste righe appena dopo la definizione dell’interfaccia:
post-up echo "Waiting for network to come up before starting iSCSI#" && sleep 5
post-up /etc/init.d/open-iscsi start
post-up /etc/init.d/o2cb start
post-up /etc/init.d/ocfs2 start
pre-down /etc/init.d/ocfs2 stop
pre-down /etc/init.d/o2cb stop
pre-down /etc/init.d/open-iscsi stop
N.B. La procedura di start/stop dei demoni ocfs/o2cb non è messa li a caso, per evitare ulteriori lockup della macchina, i demoni vanno riavviati nel modo sopra descritto.
I problemi non sono finiti, in fase di reboot/shutdown infatti il nostro caro rc.d ha il vizio di killare tutte le connessioni prima di stoppare i demoni che ne fanno uso, tra i quali indovinate un pò, c’è proprio open-iscsi. Per risolvere il problema bisogna cambiare la priorità dello script "sendsigs":
mv /etc/rc6.d/S20sendsigs /etc/rc6.d/S39sendsigs
mv /etc/rc0.d/S20sendsigs /etc/rc0.d/S39sendsigs
fine della storia, adesso possiamo riavviare le macchine come meglio crediamo senza dover tremare di pajura.
|
|











Se non lo hai già fatto
Se non lo hai già fatto (non mi pare) dovresti segnalare il bug qui:
http://bugs.debian.org/cgi-bin/pkgreport.cgi?package=open-iscsi
e linkare questa paginae In questo modo dai una mano alla gente che riscontra il tuo stesso problema
Grazie per la segnalazione,
Grazie per la segnalazione, provvederò stasera
Vorrei sapere se esiste un
Vorrei sapere se esiste un percorso formativo per adattare le proprie esperienze da una piattaforma UNIX alla nuova piattaforma LINUX. casino online