A.4 Installazione e configurazione

In questa sezione è illustrata la procedura di installazione e configurazione di Sentinel in un ambiente ad alta disponibilità. In ciascun passaggio viene descritto l'approccio generale, seguito da una configurazione dimostrativa che illustra i dettagli di una soluzione cluster esemplificativa. È possibile utilizzare opzioni e tecnologie diverse da quelle indicate in questo documento, a condizione che vengano rispettati i vincoli riportati nella Sezione A.2, Supportabilità.

Nello schema seguente è rappresentata un'architettura ad alta disponibilità attiva-passiva:

A.4.1 Configurazione iniziale

Configurare l'hardware di computer, rete e memorizzazione, i sistemi operativi, gli account utente e altre risorse di base del sistema in funzione dei requisiti specificati per Sentinel e di quelli locali del cliente. Sottoporre i sistemi a prova per verificare che funzionino correttamente e siano stabili.

  • Come best practice, si suggerisce di sincronizzare l'orario di tutti i nodi del cluster, utilizzando NTP o una tecnologia simile.

  • Il cluster dovrà essere in grado di risolvere correttamente i nomi host. Potrebbe essere utile, come best practice, immettere tutti i nomi host interni del cluster nel file /etc/hosts, al fine di garantire la continuità del cluster in caso di errore DNS. Se uno o più nodi del cluster non sono in grado di risolvere gli altri nodi in base al nome, la configurazione del cluster descritta in questa sezione avrà esito negativo.

  • Le caratteristiche di CPU, RAM e spazio su disco di ciascun nodo del cluster devono essere conformi ai requisiti di sistema indicati nel Sezione 5.0, Requisiti di sistema e basati sulla frequenza eventi prevista.

  • Le caratteristiche di spazio su disco e I/O per i nodi di memorizzazione devono essere conformi ai requisiti di sistema indicati nel Sezione 5.0, Requisiti di sistema e basati sulla frequenza eventi prevista e sulle policy di conservazione dei dati per la memorizzazione locale e/o in rete.

  • Se si desidera configurare i firewall del sistema operativo affinché limitino l'accesso a Sentinel e al cluster, vedere il Sezione 7.0, Porte utilizzate, in cui sono riportati i dettagli relativi alle porte che devono essere disponibili a seconda della configurazione locale e delle origini che invieranno i dati degli eventi.

Questa soluzione esemplificativa utilizza la configurazione seguente:

  • Due macchine virtuali SUSE Linux 11 SP2 come nodi cluster

    • Il programma di installazione del sistema operativo non richiede l'istallazione di X Windows, ma potrebbe essere necessaria se si desidera configurare l'interfaccia grafica utente. È possibile impostare gli script di avvio affinché vengano eseguiti senza X (runlevel 3), che potrà quindi essere avviato solo quando necessario.

    • I nodi utilizzeranno due NIC, una per l'accesso esterno e una per le comunicazioni iSCSI.

    • Configurare le NIC esterne con indirizzi IP che consentano l'accesso in remoto mediante il protocollo SSH o simili. In questo esempio sono stati utilizzati gli indirizzi 172.16.0.1 (node01) e 172.16.0.2 (node02).

    • Ciascun nodo deve disporre di uno spazio su disco sufficiente per il sistema operativo, i file binari e di configurazione di Sentinel, il software del cluster, i file temporanei e così via. Vedere i requisiti di sistema di SUSE Linux e SLE HAE, nonché i requisiti dell'applicazione Sentinel.

  • Una macchina virtuale SUSE Linux 11 SP2 configurata con destinazioni iSCSI per la memorizzazione condivisa

    • Il programma di installazione del sistema operativo non richiede l'istallazione di X Windows, ma potrebbe essere necessaria se si desidera configurare l'interfaccia grafica utente. È possibile impostare gli script di avvio affinché vengano eseguiti senza X (runlevel 3), che potrà quindi essere avviato solo quando necessario.

    • Il sistema utilizzerà due NIC, una per l'accesso esterno e una per le comunicazioni iSCSI.

    • Configurare la NIC esterna con un indirizzo IP che consenta l'accesso remoto mediante il protocollo SSH o simili. In questo esempio è stato utilizzato l'indirizzo 172.16.0.3 (storage03).

    • Il sistema deve disporre di uno spazio sufficiente su disco per il sistema operativo, i file temporanei, un volume di grande dimensioni per la memorizzazione condivisa dei dati di Sentinel e uno spazio limitato per una partizione SBD. Vedere i requisiti di sistema di SUSE Linux, nonché i requisiti per la memorizzazione dei dati degli eventi di Sentinel. Nella soluzione esemplificativa tutti i dati (locali, di rete, SBD) verranno collocati in un solo disco, ma negli ambienti di produzione è possibile allocarli in nodi diversi.

NOTA:per le comunicazioni all'interno di un cluster di produzione è possibile utilizzare IP interni non instradabili in NIC separate (possibilmente un paio per la ridondanza).

A.4.2 Configurazione della memorizzazione condivisa

Configurare la memorizzazione condivisa e verificare che sia possibile montarla in ciascun nodo del cluster. Se si utilizza Fibre Channel e un SAN, potrebbero essere necessari collegamenti fisici e altre configurazioni. La memorizzazione condivisa verrà utilizzata per il database e i dati degli eventi di Sentinel; deve quindi essere di dimensioni appropriate per le esigenze dell'ambiente del cliente sulla base della frequenza eventi prevista e delle policy di conservazione dei dati.

Un'implementazione tipica potrebbe includere un SAN veloce collegato mediante Fibre Channel a tutti i nodi del cluster e un RAID di grande capacità per la memorizzazione dei dati locali degli eventi. Per la memorizzazione in rete più lenta si potrebbe utilizzare un nodo NAS o iSCSI separato. Se il nodo del cluster consente di montare la memorizzazione locale come dispositivo di blocco normale, è possibile utilizzarlo per la soluzione. La memorizzazione in rete può essere montata anche come dispositivo di blocco, oppure può essere un volume NFS o CIFS.

NOTA:è necessario configurare la memorizzazione condivisa ed eseguire una prova montandola in ciascun nodo del cluster, anche se il montaggio vero e proprio della memorizzazione verrà gestito dalla procedura di configurazione del cluster.

Per la soluzione esemplificativa si utilizzeranno destinazioni iSCSI residenti in una macchina virtuale SUSE Linux:

La soluzione esemplificativa utilizzerà destinazioni iSCSI configurate in una macchina virtuale SUSE Linux. La macchina virtuale è storage03 come elencato in Configurazione iniziale. È possibile creare dispositivi iSCSI utilizzando qualsiasi file o dispositivo di blocco; tuttavia, per ragioni di semplicità, in questo caso è stato utilizzato un file creato a tale scopo.

Eseguire la connessione a storage03 e avviare una sessione della console. Per creare un file vuoto delle dimensioni desiderate per la memorizzazione locale di Sentinel, utilizzare il comando dd:

dd if=/dev/zero of=/localdata count=10240000 bs=1024

In questo caso è stato creato un file di 10 GB contenente degli zeri (copiato dal pseudo-dispositivo dev/zero). Per dettagli sulle opzioni della riga di comando, vedere le informazioni o la pagina del manuale relativa al comando dd. Ad esempio, è possibile creare "dischi"di dimensioni diverse. Le destinazioni iSCSI trattano questo file come se fosse un disco ma, naturalmente, si può utilizzare anche un disco vero e proprio.

Per creare un file per la memorizzazione in rete, ripetere la procedura:

dd if=/dev/zero of=/networkdata count=10240000 bs=1024

In questo esempio sono stati utilizzati due file ("dischi") delle stesse dimensioni e con le medesime caratteristiche prestazionali. Per l'installazione in un ambiente di produzione, la memorizzazione locale può essere collocata in un SAN veloce, mentre quella in rete in un volume iSCSI, NFS o CIFS più lento.

Configurare i file come destinazioni iSCSI:

  1. Eseguire YaST dalla riga di comando (o utilizzare l'interfaccia grafica utente): /sbin/yast

  2. Selezionare Dispositivi di rete > Impostazioni di rete.

  3. Verificare che la scheda Panoramica sia selezionata.

  4. Selezionare la NIC secondaria nell'elenco visualizzato e spostarsi con il tasto TAB su Modifica, quindi premere Invio.

  5. Nella scheda Indirizzo, assegnare l'indirizzo IP statico 10.0.0.3, che sarà l'IP per le comunicazioni iSCSI interne.

  6. Fare clic su Avanti e successivamente su OK.

  7. Nella schermata principale, selezionare Servizi di rete > Destinazione iSCSI.

  8. Se richiesto, installare il software necessario iscsitarget RPM) dal supporto di SUSE Linux 11 SP2.

  9. Fare clic su Servizio e selezionare l'opzione In avvio affinché il servizio venga avviato quando si avvia il sistema operativo.

  10. Fare clic su Globale e selezionare Nessuna autenticazione perché il Resource Agent OCF attuale per iSCSI non supporta l'autenticazione.

  11. Fare clic su Destinazioni e successivamente su Aggiungi per aggiungere una nuova destinazione.

    La destinazione iSCSI genererà automaticamente un ID e visualizzerà un elenco vuoto di LUN (unità) disponibili.

  12. Fare clic su Aggiungi per aggiungere un nuovo LUN.

  13. Non modificare il numero 0 dei LUN, spostarsi nella finestra di dialogo Percorso (in Tipo=fileio) e selezionare il file /localdata precedentemente creato. Se per la memorizzazione si utilizza un disco dedicato, specificare un dispositivo di blocco, ad esempio /dev/sdc.

  14. Ripetere i passaggi 12 e13, ma questa volta aggiungere LUN 1 e /networkdata.

  15. Non modificare i valori di default delle altre opzioni. Fare clic su OK e successivamente su Avanti.

  16. Fare nuovamente clic su Avanti per selezionare le opzioni di autenticazione di default e successivamente su Fine per uscire dalla configurazione. Se richiesto, accettare il riavvio di iSCSI.

  17. Uscire da YaST.

Nella procedura precedente sono illustrate due destinazioni iSCSI nel server all'indirizzo IP 10.0.0.3. Verificare in ciascun nodo del cluster che sia possibile montare il dispositivo di memorizzazione condivisa per i dati locali. È inoltre necessario formattare (una volta) i dispositivi:

  1. Eseguire la connessione a un nodo del cluster (node01) e avviare YaST.

  2. Selezionare Dispositivi di rete > Impostazioni di rete.

  3. Verificare che la scheda Panoramica sia selezionata.

  4. Selezionare la NIC secondaria nell'elenco visualizzato e spostarsi con il tasto TAB su Modifica, quindi premere Invio.

  5. Fare clic su Indirizzo e assegnare l'indirizzo IP statico 10.0.0.1, che sarà l'IP utilizzato per le comunicazioni iSCSI interne.

  6. Fare clic su Avanti e successivamente su OK.

  7. Fare clic su Servizi di rete > Iniziatore iSCSI.

  8. Se richiesto, installare il software necessario (open-iscsi RPM) dal supporto di SUSE Linux 11 SP2.

  9. Fare clic su Servizio e selezionare In avvio affinché il servizio iSCSI venga avviato in fase di avvio.

  10. Fare clic su Destinazioni rilevate e selezionare Rilevazione.

  11. Specificare l'indirizzo IP iSCSI (10.0.0.3), selezionare Nessuna autenticazione e fare clic su Avanti.

  12. Selezionare la destinazione iSCSI rilevata con indirizzo IP 10.0.0.3 e successivamente Login.

  13. Passare alla modalità automatica nel menu a discesa Avvio e selezionare Nessuna autenticazione, quindi fare clic su Avanti.

  14. Passare alla scheda Destinazioni connesse per verificare la connessione alla destinazione.

  15. Uscire dalla configurazione. Eseguendo questa procedura le destinazioni iSCSI vengono montate come dispositivi di blocco nel nodo del cluster.

  16. Nel menu principale di YaST, selezionare Sistema > Partizionatore.

  17. In Vista sistema dovrebbero apparire nell'elenco i nuovi dischi rigidi (ad esempio /dev/sdb e /dev/sdc); saranno di tipo IET-VIRTUAL-DISK. Spostarsi con il tasto TAB sulla prima voce dell'elenco (che dovrebbe essere la memorizzazione locale), selezionare il disco e premere Invio.

  18. Selezionare Aggiungi per aggiungere una nuova partizione nel disco vuoto. Formattare il disco come partizione ext3 primaria, ma non montarlo. Verificare che l'opzione Non montare la partizione sia selezionata.

  19. Selezionare Avanti e, dopo aver verificato le modifiche che verranno apportate, fare clic su Fine. Presumendo che si crei una sola partizione di grandi dimensioni in questo LUN iSCSI, è necessario terminare la configurazione con un disco /dev/sdb1 o simile formattato (di seguito definito /dev/<SHARED1>).

  20. Tornare a Partizionatore e ripetere la procedura di creazione delle partizioni/formattazione (passaggi da 16 a 19) per /dev/sdc o qualsiasi altro dispositivo di blocco utilizzato per la memorizzazione in rete. Si dovrebbe così ottenere una partizione /dev/sdc1 o un disco formattato simile (di seguito definito /dev/<NETWORK1>).

  21. Uscire da YaST.

  22. Infine, creare un punto di montaggio e provare il montaggio della partizione locale come descritto di seguito (il nome esatto del dispositivo potrebbe variare a seconda dell'implementazione specifica):

    # mkdir /var/opt/novell
    # mount /dev/<SHARED1> /var/opt/novell
    
  23. Deve essere possibile creare dei file nella nuova partizione e vederli nell'ubicazione in cui la partizione stata montata.

    Per eseguire lo smontaggio:

    # umount /var/opt/novell
    

Ripetere i passaggi da 1 a 15 della procedura precedente per verificare che la memorizzazione condivisa locale possa essere montata in ciascun nodo del cluster. Sostituire l'IP del nodo indicato al passaggio 5 con un diverso IP (ad esempio node02 > 10.0.0.2).

A.4.3 Installazione di Sentinel

Per installare Sentinel è possibile utilizzare due metodi: installazione di tutti i componenti nella memorizzazione condivisa (utilizzando l'opzione --location per ridirigere l'installazione di Sentinel nell'ubicazione in cui è stata montata la memorizzazione condivisa) oppure collocazione dei soli dati variabili dell'applicazione nella memorizzazione condivisa.

Per questa soluzione esemplificativa è stato scelto il secondo approccio, cioè l'installazione di Sentinel in ciascun nodo del cluster che può ospitarlo. La prima volta che si installa Sentinel è necessario eseguire un'installazione completa che includa i file binari dell'applicazione, i file di configurazione e tutti gli archivi dei dati. Le installazioni successive negli altri nodi del cluster includeranno soltanto l'installazione dell'applicazione, presupponendo che i dati di Sentinel saranno disponibili successivamente (ad esempio dopo il montaggio della memorizzazione condivisa).

Soluzione esemplificativa:

Sentinel verrà installato in ciascun nodo del cluster, mentre nella memorizzazione condivisa verranno memorizzati solo i dati variabili dell'applicazione. In questo modo i file binari dell'applicazione e di configurazione vengono memorizzati in ubicazioni standard, che permettono di verificare gli RPM e anche di supportare l'applicazione a caldo delle patch in alcuni scenari.

Installazione nel primo nodo

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

  2. Effettuare il download del programma di installazione di Sentinel (file tar.gz) e memorizzarlo in /tmp nel nodo del cluster.

  3. Eseguire i seguenti comandi:

    mount /dev/<SHARED1> /var/opt/novell
    
    cd /tmp
    
    tar -xvzf sentinel_server*.tar.gz
    
    cd sentinel_server*
    
    ./install-sentinel --record-unattended=/tmp/install.props
    
  1. Eseguire l'installazione standard configurando il prodotto secondo necessità. Il programma di installazione installerà i file binari, i file di configurazione e i database, oltre ad impostare i nomi utente, le password e le porte di rete.

  2. Avviare Sentinel e provare le funzioni di base. Per accedere al prodotto è possibile utilizzare l'IP standard esterno del nodo cluster.

  3. Chiudere Sentinel e smontare la memorizzazione condivisa:

    rcsentinel stop
    
    umount /var/opt/novell
    

    Con questa operazione si rimuovono gli script di avvio automatico, affinché il cluster possa gestire il prodotto.

    cd /
    
    insserv -r sentinel
    

Installazione in nodi successivi

Ripetere l'istallazione negli altri nodi:

Il programma di installazione iniziale di Sentinel crea un account utente a disposizione del prodotto, che utilizza l'ID utente successivo disponibile al momento dell'istallazione. Le installazioni successive in modalità automatica avverranno tentando di utilizzare il medesimo ID utente per la creazione degli account, ma esiste la possibilità che si generino conflitti (se i nodi del cluster non sono identici al momento dell'istallazione). Si consiglia di eseguire una delle operazioni seguenti:

  • Sincronizzare il database degli account utente in tutti i nodi del cluster (manualmente, tramite LDAP o simili), verificando che la sincronizzazione venga eseguita prima delle installazioni successive. In questo caso il programma di installazione rileverà la presenza dell'account utente e utilizzerà quello esistente.

  • Monitorare il risultato delle installazioni successive in modalità automatica; se non è possibile creare l'account utente con lo stesso ID utente verrà generato un avviso.

  1. Eseguire la connessione a ciascun nodo aggiuntivo (node02) del cluster e aprire una finestra della console.

  2. Eseguire le operazioni seguenti:

    cd /tmp
    
    scp root@node01:/tmp/sentinel_server*.tar.gz
    
    scp root@node01:/tmp/install.props
    
    tar -xvzf sentinel_server*.tar.gz
    
    ./install-sentinel --no-start --cluster-node --unattended=/tmp/install.props
    
    cd /
    
    insserv -r sentinel
    

Al termine della procedura Sentinel dovrebbe essere installato in tutti i nodi, ma è probabile che funzioni correttamente soltanto nel primo nodo fino a quando non verrà eseguita la sincronizzazione di varie chiavi durante la configurazione delle risorse del cluster.

A.4.4 Installazione del cluster

Installare il software del cluster in ciascun nodo e registrare questi ultimi in Cluster Manager. Le procedure per eseguire questa operazione variano a seconda dell'implementazione del cluster, ma al termine del processo tutti i nodi del cluster devono apparire nella console di gestione.

Per questa soluzione esemplificativa si installerà SUSE Linux High Availability Extension, a cui verranno sovrapposti i Resource Agent specifici di Sentinel:

Se per il monitoraggio di Sentinel non si utilizza il Resource Agent OCF, si dovrà probabilmente sviluppare una soluzione di monitoraggio analoga per l'ambiente cluster locale. Il Resource Agent OCF di Sentinel è un semplice script di shell che esegue una vasta gamma di controlli per verificare che Sentinel funzioni correttamente. Se si desidera sviluppare una soluzione personalizzata, utilizzare Resource Agent come esempio (Resource Agent è memorizzato in sentinel-ha.rpm all'interno del pacchetto di download di Sentinel).

Esistono varie possibilità per eseguire la configurazione di un cluster SLE HAE, ma in questo esempio si utilizzeranno opzioni volte alla semplicità. La prima operazione da eseguire è l'installazione del software principale di SLE HAE; la procedura è descritta dettagliatamente nella documentazione di SLE HAE. Per informazioni sull'installazione dei componenti aggiuntivi di SLES, vedere la Guida per la distribuzione.

È necessario installare SLE HAE in tutti i nodi del cluster, node01 e node02 in questo esempio. Il componente aggiuntivo installerà il software principale per la gestione del cluster e le comunicazioni, nonché vari Resource Agent utilizzati per monitorare le risorse del cluster.

Dopo l'installazione del software del cluster, è necessario installare un ulteriore RPM per rendere disponibili i Resource Agent del cluster specifici di Sentinel. RPM è disponibile in novell-Sentinel-ha-7.1*.rpm nel download normale di Sentinel, che è stato decompresso per installare il prodotto.

Copiare il file novell-Sentinel-ha-7.1*.rpm nella directory /tmp di ciascun nodo del cluster, quindi:

cd /tmp
rpm -i novell-Sentinel-ha-7.1*.rpm

A.4.5 Configurazione del cluster

Per registrare ciascun nodo come membro del cluster, è necessario configurare il software del cluster. Durante questa configurazione è possibile impostare anche le risorse di fencing e STONITH, al fine di garantire la coerenza del cluster.

Per la soluzione esemplificativa si utilizza la configurazione più semplice senza ridondanza aggiuntiva o altre funzioni avanzate. Inoltre, si è scelto di utilizzare un indirizzo unicast (invece dell'indirizzo multicast preferibile), in quanto richiede una minore interazione con gli amministratori di rete ed è sufficiente per eseguire una prova. Infine, viene configurata una semplice risorsa di fencing basata su SBD.

Soluzione esemplificativa:

Si utilizzeranno 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. La soluzione utilizzerà inoltre una destinazione iSCSI configurata nella stessa macchina virtuale SUSE Linux in cui risiede la memorizzazione condivisa e che funge da dispositivo SBD per il fencing. Come nel caso precedente, è possibile creare dispositivi iSCSI utilizzando qualsiasi file o dispositivo di blocco; tuttavia, per ragioni di semplicità, in questo caso è stato utilizzato un file creato a tale scopo.

La procedura di configurazione seguente è molto simile a quella illustrata in Configurazione della memorizzazione condivisa:

Configurazione di SBD

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

dd if=/dev/zero of=/sbd count=1024 bs=1024

In questo caso è stato creato un file di 1 MB contenente degli zeri (copiato dal pseudo dispositivo /dev/zero).

Configurare il file come destinazione iSCSI:

  1. Eseguire YaST dalla riga di comando (o utilizzare l'interfaccia grafica utente): /sbin/yast

  2. Selezionare Servizi di rete > Destinazione iSCSI.

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

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

  5. Selezionare Aggiungi per aggiungere un nuovo LUN.

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

  7. 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.

  8. 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 IP e i relativi nomi host (come segnalato dal comando hostname).

Questa procedura dovrebbe 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 Destinazioni rilevate, selezionare la destinazione e ripetere il login per aggiornare l'elenco dei dispositivi (lasciare l'opzione di avvio automatico e 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. Eseguire il comando sleha-init.

  11. Quando viene richiesto l'indirizzo di rete per l'associazione, specificare l'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 il percorso utilizzare il tasto TAB).

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

  15. Avviare YaST.

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

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

  18. 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).

  19. 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).

  20. Per completare la configurazione, selezionare Fine.

  21. Uscire da YaST.

  22. 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. Eseguire il comando seguente: sleha-join.

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

In alcuni casi la comunicazione con il cluster non viene inizializzata correttamente. Se il cluster non si avvia (il servizio openais non viene avviato):

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

  • Eseguire il comando /etc/rc.d/openais start in node02.

In alcuni casi lo script potrebbe non essere completato perché il servizio xinetd non aggiunge correttamente il nuovo servizio csync2. Tale servizio è 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 risolverlo, eseguire: kill -HUP `cat /var/run/xinetd.init.pid e avviare nuovamente lo script sleha-join.

A questo punto dovrebbe essere possibile eseguire il comando crm_mon in ciascun nodo del cluster e verificare che il cluster funzioni correttamente. In alternativa è possibile utilizzare la console Web Hawk (le credenziali di default per il login sono 'hacluster / linux').

In questo esempio sono presenti altri due parametri che devono essere regolati; la loro applicazione al cluster di produzione del cliente dipende dalla configurazione specifica:

  1. Impostare l'opzione globale del cluster no-quorum-policy su ignore. Questa impostazione viene effettuata perché il cluster dell'esempio include due soli nodi e, pertanto, un eventuale errore in un nodo non consentirebbe di raggiungere il quorum e chiuderebbe l'intero cluster: crm configure property no-quorum-policy=ignore

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

  2. Impostare l'opzione globale del cluster default-resource-stickiness su 1. In questo modo il gestore delle risorse le lascerà in esecuzione nell'ubicazione in cui si trovano invece di spostarle: crm configure property default-resource-stickiness=1.

A.4.6 Configurazione delle risorse

Come anticipato per l'installazione del cluster, questa soluzione include un Resource Agent di tipo OCF che monitora i servizi principali in SLE HAE e, se lo si desidera, è possibile creare delle alternative personalizzate. Il software dipende anche da numerose altre risorse per cui vengono forniti di default alcuni Resource Agent inclusi in SLE HAE. Se non si desidera utilizzare SLE HAE, le risorse aggiuntive seguenti dovranno essere monitorate utilizzando un'altra tecnologia:

  • Una risorsa del file system corrispondente alla memorizzazione condivisa utilizzata dal software.

  • Una risorsa con indirizzo IP corrispondente all'IP virtuale utilizzato per l'accesso ai servizi.

  • Il database Postgres utilizzato dal software per memorizzare i metadati di configurazione e degli eventi.

Esistono anche ulteriori risorse aggiuntive, come ad esempio MongoDB utilizzato per la funzione Security Intelligence e il bus dei messaggi ActiveMQ. Per il momento esse vengono monitorate nell'ambito dei servizi principali.

Soluzione esemplificativa

Si utilizzeranno versioni semplici delle risorse necessarie, come ad esempio il Resource Agent del file system. È possibile utilizzare anche risorse cluster più sofisticate, quali cLVM, cioè una versione del file system con volume logico.

La soluzione esemplificativa include uno script crm che facilita la configurazione del cluster. Tale script recupera le variabili necessarie per la configurazione dal file per l'installazione in modalità automatica generato durante l'installazione di Sentinel. Se non è stato generato il file di configurazione o se si desidera cambiare la configurazione delle risorse, è possibile modificare lo script secondo necessità.

Eseguire la connessione al nodo originale in cui è stato installato Sentinel (deve essere il nodo in cui è stata eseguita l'istallazione completa) ed eseguire le operazioni seguenti (<SHARED1> è il volume condiviso creato precedentemente):

mount /dev/<SHARED1> /var/opt/novell
cd /usr/lib/ocf/resource.d/novell
./install-resources.sh

Potrebbero verificarsi dei problemi noti relativi alle nuove risorse che compaiono nel cluster; in questo caso eseguire /etc/rc.d/openais restart in node02.

Lo script install-resources.sh richiederà un paio di valori, più precisamente l'IP virtuale che si desidera venga utilizzato per l'accesso a Sentinel e il nome del dispositivo usato per la memorizzazione condivisa, quindi creerà automaticamente le risorse di cluster necessarie. Si noti che per l'esecuzione dello script il volume condiviso deve già essere stato montato e il file dell'istallazione in modalità automatica (/tmp/install.props) creato durante l'installazione di Sentinel deve essere presente. Non è necessario eseguire questo script in altri nodi oltre a quello installato per primo, in quanto tutti i file relativi alla configurazione verranno sincronizzati automaticamente con gli altri nodi.

Se l'ambiente del cliente è diverso da quello di questa soluzione esemplificativa, è possibile modificare il file resources.cli (nella stessa directory) e cambiare le definizioni originarie dalla stessa ubicazione. Ad esempio, la soluzione esemplificativa utilizza una semplice risorsa file system, ma è possibile utilizzare anche una risorsa cLVM maggiormente capace di riconoscere il cluster.

Dopo aver eseguito lo script di shell, è possibile inviare un comando di stato crm e il risultato dovrebbe essere analogo a quello riportato di seguito:

crm status
Last updated: Thu Jul 26 16:34:34 2012
Last change: Thu Jul 26 16:28:52 2012 by hacluster via crmd on node01
Stack: openais
Current DC: node01 - partition with quorum
Version: 1.1.6-b988976485d15cb702c9307df55512d323831a5e
2 Nodes configured, 2 expected votes
5 Resources configured.
Online: [ node01, node02 ]
stonith-sbd    (stonith:external/sbd):    Started node01
 Resource Group: sentinelgrp
     sentinelip    (ocf::heartbeat:IPaddr2):    Started node01
     sentinelfs    (ocf::heartbeat:Filesystem):    Started node01
     sentineldb    (ocf::novell:pgsql):    Started node01
     sentinelserver    (ocf::novell:sentinel):    Started node01

A questo punto è necessario configurare nel cluster le risorse per Sentinel. È possibile analizzare come vengono configurate e raggruppate nello strumento di gestione del cluster, ad esempio eseguendo un comando di stato crm.

A.4.7 Configurazione della memorizzazione in rete

L'ultima operazione di questa procedura riguarda la configurazione della memorizzazione in rete, affinché Sentinel possa eseguire la migrazione delle partizioni degli eventi in dispositivi di memorizzazione meno costosi. Questa operazione è facoltativa e, in effetti, la memorizzazione in rete non deve essere configurata per l'alta disponibilità così come il resto del sistema. È possibile utilizzare una directory qualsiasi (montata o meno da un SAN) o un volume NFS o CIFS.

Fare clic su Memorizzazione nella barra superiore dei menu, selezionare Configurazione e successivamente uno dei pulsanti di scelta di Memorizzazione in rete corrispondente a un dispositivo non configurato.

Soluzione esemplificativa

Si utilizzerà una semplice destinazione iSCSI come ubicazione di rete per la memorizzazione condivisa, praticamente con la stessa configurazione della memorizzazione locale. Nelle implementazioni di produzione è probabile che le tecnologie di memorizzazione utilizzate siano di tipo diverso.

Per configurare la memorizzazione in rete affinché Sentinel possa utilizzarla, eseguire la procedura seguente:

NOTA:poiché in questa soluzione esemplificativa si utilizza una destinazione iSCSI, la destinazione verrà montata come directory da utilizzare come memorizzazione in rete. Sarà pertanto necessario configurare il dispositivo montato come risorsa del file system, in modo analogo al file system per la memorizzazione locale. Questo elemento non è stato configurato automaticamente con lo script di installazione delle risorse, poiché esistono altre varianti possibili. La configurazione verrà quindi eseguita manualmente.

  1. Riesaminare i passaggi precedenti per stabilire quale partizione sia stata creata per l'uso come memorizzazione in rete (/dev/<NETWORK1> o qualcosa del tipo /dev/sdc1). Se necessario, creare una directory vuota in cui sia possibile montare la partizione (ad esempio /var/opt/netdata).

  2. Configurare il file system di rete come risorsa cluster utilizzando l'interfaccia utente Web o eseguendo il comando:

    crm configure primitive sentinelnetfs ocf:heartbeat:Filesystem params device="/dev/<NETWORK1>" directory="<PATH>" fstype="ext3" op monitor interval=60s
    

    in cui /dev/<NETWORK1> è la partizione creata come descritto nella precedente sezione Configurazione della memorizzazione condivisa e <PATH> è una directory locale in cui può essere montata.

  3. Aggiungere la nuova risorsa al gruppo di risorse gestite:

     crm resource stop sentinelgrp
     crm configure delete sentinelgrp
     crm configure group sentinelgrp sentinelip sentinelfs sentinelnetfs sentineldb sentinelserver
     crm resource start sentinelgrp
    
  4. È possibile eseguire la connessione al nodo in cui risiedono le risorse (utilizzare il comando di stato crm o Hawk) e verificare che la memorizzazione in rete sia montata correttamente (utilizzare il comando mount).

  5. Eseguire il login all'interfaccia Web di Sentinel.

  6. Selezionare Memorizzazione e successivamente Configurazione, quindi selezionare in Memorizzazione in rete il dispositivo SAN (montato localmente) non configurato.

  7. Digitare il percorso in cui è stata montata la memorizzazione in rete, ad esempio /var/opt/netdata.

La soluzione esemplificativa utilizza versioni semplici delle risorse necessarie, quali ad esempio il semplice Resource Agent del file system; i clienti possono scegliere anche risorse di cluster più sofisticate, come ad esempio cLVM (una versione del file system con volume logico).