Clustering High Availability

Con le istanze Oracle Linux in esecuzione su Oracle Cloud Infrastructure (OCI), puoi creare cluster ad alta disponibilità (HA) che offrono un accesso continuo ad applicazioni e servizi in esecuzione su più nodi. Il clustering HA riduce al minimo i tempi di inattività e fornisce un servizio continuo in caso di guasto dei componenti del sistema.

Puoi creare cluster HA con istanze OCI installando e utilizzando Pacemaker, un Resource Manager ad alta disponibilità open source e Corosync, un motore di cluster open source. Per ulteriori informazioni sul clustering HA e sulle tecnologie Pacemaker e Corosync, vedere le seguenti fonti:

Requisito

Prima di iniziare, configurare un dispositivo di storage condiviso in modo che sia accessibile da tutti i nodi desiderati nel cluster HA. È necessario un dispositivo di storage condiviso per il servizio cluster e la messaggistica dell'applicazione e per la scherma SBD del cluster. Per ulteriori informazioni sull'impostazione di un dispositivo di memorizzazione condivisa, vedere le origini riportate di seguito.

Impostazione del clustering High Availability con le istanze OCI

Per impostare il clustering High Availability con le istanze OCI:

  1. Installare il software Pacemaker
  2. Creare un cluster HA
  3. Configura scherma

Installazione di Pacemaker

Per creare un cluster High Availability (HA) con le istanze di Oracle Cloud Infrastructure (OCI), è necessario prima installare i pacchetti Pacemaker e Corosync su ogni istanza o nodo desiderato nel cluster. È quindi possibile configurare ogni nodo cluster e assicurarsi che il servizio Pacemaker venga avviato e eseguito automaticamente su ogni nodo in fase di avvio.

Nota

L'istanza, il nodo e il nodo cluster OCI vengono utilizzati in modo intercambiabile con il clustering HA per OCI.

Procedura ottimale

Per ogni istanza OCI desiderata nel cluster, aprire una finestra di terminale e connettersi all'istanza.

Ad esempio, se si desidera che due istanze OCI siano nodi nel cluster, aprire due finestre di terminale e connettersi a ciascuna istanza utilizzando ssh:
ssh instance-IP-address

Avere una finestra di terminale aperta per ogni nodo impedisce la necessità di eseguire ripetutamente il login e il logout dai nodi durante la configurazione del cluster HA.

Installazione di Pacemaker e Corosync

Per installare i pacchetti Pacemaker e Corosync e configurare i nodi del cluster HA:

  1. Completare i prerequisiti in Clustering ad alta disponibilità.
  2. Abilita il repository sul server yum Oracle Linux in cui risiedono i pacchetti Pacemaker e Corosync.

    Oracle Linux 10:
    sudo dnf config-manager --enable ol10_addons

    Oracle Linux 9:

    sudo dnf config-manager --enable ol9_addons

    Oracle Linux 8:

    sudo dnf config-manager --enable ol8_addons
  3. In ogni nodo, installare la shell del comando Pacemaker pcs, i pacchetti software e tutti gli agenti di risorse e recinzione disponibili:

    sudo dnf install pcs pacemaker resource-agents fence-agents-sbd
  4. Configurare il firewall in modo che i componenti del servizio possano comunicare attraverso la rete:

    sudo firewall-cmd --permanent --add-service=high-availability
    sudo firewall-cmd --add-service=high-availability
  5. In ogni nodo, impostare una password per l'utente hacluster:

    sudo passwd hacluster
    Suggerimento

    Impostare la stessa password su ogni nodo per evitare problemi di autorizzazione durante l'esecuzione dei comandi pcs su nodi diversi all'interno dello stesso cluster.

  6. Su ogni nodo, impostare il servizio pcsd per l'esecuzione e l'avvio al boot:

    sudo systemctl enable --now pcsd.service
  7. Creare un cluster HA utilizzando i nodi configurati. Vedere Creazione di un cluster HA.

Creazione di un cluster HA

Con il software Pacemaker e Corosync, puoi creare un cluster HA (High Availability) con istanze Linux in esecuzione su Oracle Cloud Infrastructure (OCI).

Per creare un cluster HA:

  1. Installare i pacchetti software Pacemaker e Corosync su ogni nodo che si desidera nel cluster. Vedere Installazione di Pacemaker.
  2. Da uno dei nodi, autenticare lo strumento di configurazione del cluster pcs per l'utente hacluster di ogni nodo del cluster.

    Ad esempio, se si desidera che due nodi costituiscano il cluster HA, eseguire il comando seguente da uno dei nodi del cluster:

    sudo pcs host auth node1 node2 -u hacluster

    Sostituire node1 e node2 con i nomi host risolvibili dei nodi che devono formare il cluster.

    In alternativa, se i nomi host non sono risolvibili, specificare l'indirizzo IP per ciascun nodo come mostrato nell'esempio riportato di seguito.

    sudo pcs host auth node1 addr=192.0.2.1 node2 addr=192.0.2.2 -u hacluster

    Sostituire 192.0.2.1 e 192.0.2.2 con l'indirizzo IP di ciascuno dei rispettivi host nel cluster.

  3. Quando richiesto, immettere la password definita per l'utente hacluster durante l'installazione e la configurazione del software Pacemaker su ciascun nodo.

  4. Creare il cluster HA utilizzando il comando pcs cluster setup e specificando quanto segue:

    • Il nome del cluster.
    • Il nome host e l'indirizzo IP di ogni nodo desiderato nel cluster

    Ad esempio, per creare un cluster HA con due nodi:

    sudo pcs cluster setup cluster-name node1 addr=192.0.2.1 node2 addr=192.0.2.2

    Sostituire 192.0.2.1 e 192.0.2.2 con l'indirizzo IP di ciascuno dei rispettivi host nel cluster.

  5. Da uno dei nodi, avviare il cluster su tutti i nodi:

    sudo pcs cluster start --all
  6. Facoltativamente, è possibile abilitare l'avvio di questi servizi al momento del boot in modo che, se un nodo viene riavviato, ricongiunga automaticamente il cluster. A tale scopo, eseguire il comando seguente su uno dei nodi:

    sudo pcs cluster enable --all
    Nota

    Alcuni utenti preferiscono non abilitare questi servizi in modo che un errore del nodo con conseguente riavvio completo del sistema possa essere debuggato correttamente prima di ricongiungersi al cluster.

  7. Configurare il scherma SBD per il cluster HA appena creato. Vedere Configurazione del scherma.

Configurazione del recinto

La recinzione del dispositivo a blocchi STONITH (SBD) funziona con il software Pacemaker per proteggere i dati quando un nodo in un cluster ad alta disponibilità (HA) non risponde. Il scherma impedisce ai nodi attivi nel cluster HA di accedere ai dati sul nodo che non risponde finché il software Pacemaker non disconosce il nodo che non risponde.

La configurazione di scherma SBD è l'ultimo passo del completamento dell'impostazione di un cluster HA con le istanze OCI. Per informazioni sulla creazione di un cluster HA, vedere Creazione di un cluster HA.

Nota

Per creare cluster HA con istanze OCI, è necessario utilizzare solo il meccanismo di scherma del cluster SBD. Altri meccanismi di recinzione cluster attualmente non sono supportati in questo ambiente.

Configurazione del scherma SBD per un cluster HA

Per configurare il scherma SBD per un cluster HA:

  1. Da uno dei nodi del cluster, abilitare stonith (Shoot The Other Node In The Head), una tecnica di scherma che viene utilizzata come parte della strategia di scherma SBD.

    sudo pcs property set stonith-enabled=true
  2. Da uno dei nodi, arrestare il cluster:

    sudo pcs cluster stop --all
  3. In ogni nodo, installare e configurare il daemon SBD:

    sudo dnf install sbd
  4. Su ogni nodo, abilitare il servizio systemd sbd:

    sudo systemctl enable sbd
    Nota

    Quando l'opzione è abilitata, il servizio systemd sbd si avvia e si arresta automaticamente come dipendenza del servizio Pacemaker. Ciò significa che non è necessario eseguire il servizio sbd in modo indipendente e non è possibile avviare o arrestare manualmente il servizio. Se si tenta di avviarlo o arrestarlo manualmente, lo stato del servizio rimane invariato e viene visualizzato un messaggio di errore che indica che il servizio è dipendente.
  5. In ogni nodo modificare il file /etc/sysconfig/sbd e impostare il parametro SBD_DEVICE per identificare il dispositivo di memorizzazione condivisa. Utilizzare un percorso del dispositivo persistente, ad esempio un collegamento all'interno del sistema /dev/disk/by-id/directory, per eseguire questa operazione.

    Ad esempio, se il dispositivo di memorizzazione condivisa è disponibile in /dev/disk/by-id/wwn-0XY3acy9d40afd88083ACR90, assicurarsi che il file /etc/sysconfig/sbd in ciascun nodo contenga la riga seguente:

    SBD_DEVICE="/dev/disk/by-id/wwn-0XY3acy9d40afd88083ACR90"

    Per informazioni sui dispositivi di memorizzazione condivisa, vedere i collegamenti forniti nella sezione Prerequisito.

  6. Continuare a modificare il file /etc/sysconfig/sbd su ciascun nodo impostando il dispositivo Watchdog su /dev/null:
    SBD_WATCHDOG_DEV=/dev/null
  7. Da uno dei nodi, crea il layout di messaggistica SBD sul dispositivo di storage condiviso e conferma che è in funzione.

    Ad esempio, per impostare e verificare la messaggistica sul dispositivo di memorizzazione condivisa all'indirizzo /dev/disk/by-id/wwn-0XY3acy9d40afd88083ACR90:

    sudo sbd -d /dev/disk/by-id/wwn-0XY3acy9d40afd88083ACR90 create 
    sudo sbd -d /dev/disk/by-id/wwn-0XY3acy9d40afd88083ACR90 list
  8. Da uno dei nodi, avviare il cluster e configurare l'agente di scherma fence_sbd per il dispositivo di storage condiviso.

    Ad esempio, per avviare il cluster e configurare il dispositivo di memorizzazione condivisa all'indirizzo /dev/disk/by-id/wwn-0XY3acy9d40afd88083ACR90:

    sudo pcs cluster start --all 
    sudo pcs stonith create sbd_fencing fence_sbd devices=/dev/disk/by-id/wwn-0XY3acy9d40afd88083ACR90
  9. Per verificare che la configurazione di stonith sia stata impostata correttamente, eseguire i seguenti comandi:

    sudo pcs stonith config
    sudo pcs cluster verify --full
  10. Per controllare lo stato della configurazione stonith, eseguire il comando seguente:

    sudo pcs stonith
  11. Per controllare lo stato del cluster, eseguire il comando seguente:

    sudo pcs status