37.5 Configurazione del cluster

Per registrare ciascun nodo come membro del cluster, è necessario configurare il software del cluster. Nell'ambito di questa configurazione, per garantire la coerenza del cluster è inoltre possibile impostare risorse di fencing e STONITH (Shoot The Other Node In The Head).

IMPORTANTE:Nella procedura descritta in questa sezione vengono utilizzati i comandi rcopenais e openais, compatibili soltanto con SLES 11 SP4. Per SLES 12 SP2 e versioni successive, utilizzare il comando systemctl pacemaker.service.

Ad esempio, nel caso del comando /etc/rc.d/openais start, utilizzare il comando systemctl start pacemaker.service.

Per la configurazione del cluster, utilizzare la procedura seguente:

Per questa soluzione è necessario utilizzare indirizzi IP privati per le comunicazioni all'interno del cluster e la modalità unicast per evitare di richiedere un indirizzo multicast all'amministratore di rete. Inoltre, è necessario utilizzare una destinazione iSCSI configurata nella stessa macchina virtuale SLES in cui risiede la memorizzazione condivisa e che funge da dispositivo SBD (Split Brain Detection) per il fencing.

Configurazione di SBD

  1. Eseguire la connessione a storage03 e avviare una sessione della console. Per creare un file vuoto delle dimensioni desiderate, eseguire il comando seguente:

    dd if=/dev/zero of=/sbd count=<dimensione file> bs=<dimensione bit>

    Ad esempio, per creare un file di 1 MB contenente gli zeri copiati dallo pseudo dispositivo /dev/zero, eseguire il comando seguente:

    dd if=/dev/zero of=/sbd count=1024 bs=1024
  2. Eseguire YaST dalla riga di comando o l'interfaccia grafica: /sbin/yast

  3. Selezionare Servizi di rete > Destinazione iSCSI.

  4. Fare clic su Destinazioni e selezionare la destinazione esistente.

  5. Selezionare Modifica. L'interfaccia utente visualizzerà un elenco di LUN (unità) disponibili.

  6. Selezionare Aggiungi per aggiungere un nuovo LUN.

  7. Non modificare il numero 2 dei LUN. Spostarsi nella finestra di dialogo Percorso e selezionare il file /sbd che è stato creato.

  8. Non modificare le impostazioni di default delle altre opzioni, selezionare OK e successivamente Avanti, quindi fare nuovamente clic su Avanti per selezionare le opzioni di autenticazione di default.

  9. Per uscire dalla configurazione, fare clic su Fine. Se necessario, riavviare il servizio. Uscire da YaST.

NOTA:per eseguire le operazioni seguenti è necessario che ciascun nodo del cluster sia in grado di risolvere il nome host di tutti gli altri nodi del cluster (in caso contrario il servizio di sincronizzazione file csync2 non potrà essere eseguito). Se il DNS non è stato configurato o non è disponibile, aggiungere le voci per ciascun host nel file /etc/hosts in cui sono elencati gli indirizzi IP e i relativi nomi host (come segnalato dal comando hostname). Verificare inoltre di non aver assegnato un nome host a un indirizzo IP di loopback.

Eseguire la procedura seguente per esporre una destinazione iSCSI per il dispositivo SBD nel server all'indirizzo IP 10.0.0.3 (storage03).

Configurazione del nodo

Eseguire la connessione a un nodo del cluster (node01) e aprire una finestra della console:

  1. Esegui YaST.

  2. Aprire Servizi di rete > Iniziatore iSCSI.

  3. Selezionare Destinazioni connesse e successivamente la destinazione iSCSI precedentemente configurata.

  4. Selezionare l'opzione Logout per eseguire il logout dalla destinazione.

  5. Passare alla scheda Discovered Targets (Destinazioni rilevate), selezionare la destinazione e ripetere il login per aggiornare l'elenco dei dispositivi (lasciare l'opzione di avvio impostata su Automatic (Automatico) e deselezionare No Authentication (Nessuna autenticazione)).

  6. Selezionare OK e uscire dallo strumento per l'iniziatore iSCSI.

  7. Aprire Sistema > Partizionatore e individuare il dispositivo SBD definito come 1MB IET-VIRTUAL-DISK. Comparirà nell'elenco come /dev/sdd o simile. Annotare la voce usata.

  8. Uscire da YaST.

  9. Eseguire il comando ls -l /dev/disk/by-id/ e annotare l'ID del dispositivo collegato al nome del dispositivo precedentemente individuato.

  10. (Condizionale) Eseguire uno dei comandi seguenti:

    • Se si utilizza SLES 11 SP4:

      sleha-init

    • Se si utilizza SLES 12 SP1 o versione successiva:

      ha-cluster-init

  11. Quando viene richiesto l'indirizzo di rete per l'associazione, specificare l'indirizzo IP esterno della NIC (172.16.0.1).

  12. Accettare l'indirizzo multicast e la porta di default. La sostituzione verrà effettuata successivamente.

  13. Immettere y per abilitare SBD, quindi specificare /dev/disk/by-id/<id dispositivo>, in cui <id dispositivo> è l'ID del dispositivo precedentemente individuato (per completare automaticamente il percorso utilizzare il tasto Tab).

  14. (Condizionale) Durante l'operazione seguente immettere N quando richiesto:

    Do you wish to configure an administration IP? [y/N]

    Per configurare un indirizzo IP di amministrazione, specificare l'indirizzo IP virtuale durante le operazioni descritte in Configurazione delle risorse.

  15. Completare la procedura guidata e verificare che non vengano segnalati errori.

  16. Avviare YaST.

  17. Selezionare Elevata disponibilità > Cluster (o solo Cluster in alcuni sistemi).

  18. Nella casella sulla sinistra, verificare che l'opzione Canali di comunicazione sia selezionata.

  19. Spostarsi con il tasto TAB sulla prima riga della configurazione e modificare udp impostando udpu (in questo modo si disabilita la modalità multicast e si seleziona quella unicast).

  20. Selezionare Aggiungi l'indirizzo di un membro e specificare il nodo (172.16.0.1), quindi ripetere l'operazione e aggiungere gli altri nodi del cluster (172.16.0.2).

  21. Per completare la configurazione, selezionare Fine.

  22. Uscire da YaST.

  23. Eseguire il comando /etc/rc.d/openais per riavviare i servizi del cluster con il nuovo protocollo di sincronizzazione.

Eseguire la connessione a ciascun nodo aggiuntivo (node02) e aprire una finestra della console:

  1. Esegui YaST.

  2. Aprire Servizi di rete > Iniziatore iSCSI.

  3. Selezionare Destinazioni connesse e successivamente la destinazione iSCSI precedentemente configurata.

  4. Selezionare l'opzione Logout per eseguire il logout dalla destinazione.

  5. Passare alla scheda Discovered Targets (Destinazioni rilevate), selezionare la destinazione e ripetere il login per aggiornare l'elenco dei dispositivi (lasciare l'opzione di avvio impostata su Automatic (Automatico) e deselezionare No Authentication (Nessuna autenticazione)).

  6. Selezionare OK e uscire dallo strumento per l'iniziatore iSCSI.

  7. (Condizionale) Eseguire uno dei comandi seguenti:

    • Se si utilizza SLES 11 SP4:

      sleha-join

    • Se si utilizza SLES 12 SP1 o versione successiva:

      ha-cluster-join

  8. Immettere l'indirizzo IP del primo nodo del cluster.

(Condizionale) Se il cluster non si avvia correttamente, eseguire le operazioni seguenti:

  1. Eseguire il comando crm status per verificare se i nodi sono stati uniti. Se l'unione non è stata eseguita, riavviare tutti i nodi del cluster.

  2. Copiare manualmente il file /etc/corosync/corosync.conf da node01 a node02 o eseguire csync2 -x -v in node01, oppure configurare manualmente il cluster in node02 mediante YaST.

  3. (Condizionale) Se il comando csync2 -x -v eseguito al passaggio 1 non ha sincronizzato tutti i file, effettuare le operazioni seguenti:

    1. Cancellare il database csync2 nella directory /var/lib/csync2 in tutti i nodi.

    2. In tutti i nodi, aggiornare il database csync2 affinché corrisponda al file system, ma senza contrassegnare nulla come elemento da sincronizzare con altri server:

      csync2 -cIr /

    3. Nel nodo attivo, eseguire le operazioni seguenti:

      1. Trovare tutte le differenze tra i nodi attivi e passivi, quindi contrassegnare tali differenze per la sincronizzazione:

        csync2 -TUXI

      2. Reimpostare il database per forzare il nodo attivo a ignorare eventuali conflitti:

        csync2 -fr /

      3. Avviare la sincronizzazione con tutti gli altri nodi:

        csync2 -xr /

    4. In tutti i nodi, verificare che tutti i file siano sincronizzati:

      csync2 -T

      Con questo comando vengono elencati solo i file che non sono sincronizzati.

  4. Eseguire il comando seguente in node02:

    Per SLES 11 SP4:

    /etc/rc.d/openais start

    Per SLES 12 SP1 e versione successiva:

    systemctl start pacemaker.service

    (Condizionale) Se il servizio xinetd non aggiunge correttamente il nuovo servizio csync2, lo script non funzionerà correttamente. Il servizio xinetd è necessario affinché l'altro nodo possa eseguire la sincronizzazione dei file di configurazione del cluster fino a questo nodo. Se si rilevano errori del tipo csync2 run failed, potrebbe essersi verificato questo problema.

    Per risolvere il problema, eseguire il comando kill -HUP `cat /var/run/xinetd.init.pid e avviare nuovamente lo script sleha-join.

  5. Eseguire crm_mon in ciascun nodo per verificare che il cluster funzioni correttamente. Per verificare il cluster è inoltre possibile utilizzare la console Web 'hawk'. Il nome di login di default è hacluster e la password linux.

(Condizionale) A seconda dell'ambiente dell'utente, eseguire le operazioni seguenti per modificare ulteriori parametri:

  1. Affinché un errore in un solo nodo di un cluster comprendente due nodi non interrompa improvvisamente tutto il cluster, impostare l'opzione globale no-quorum-policy su ignore:

    crm configure property no-quorum-policy=ignore

    NOTA:se nel cluster sono presenti più di due nodi, non impostare questa opzione.

  2. Affinché la gestione delle risorse ne consenta l'esecuzione e lo spostamento, impostare l'opzione globale del cluster default-resource-stickiness su 1:

    crm configure property default-resource-stickiness=1.