GNU/Linux >> Linux Esercitazione >  >> Linux

Come configurare il cluster Linux con 2 nodi su RedHat e CentOS

In una configurazione cluster Linux in standby attivo, tutti i servizi critici, inclusi IP, filesystem, eseguiranno il failover da un nodo a un altro nodo nel cluster.

Questo tutorial spiega in dettaglio come creare e configurare un cluster redhat a due nodi utilizzando le utilità della riga di comando.

Di seguito sono riportati i passaggi di alto livello coinvolti nella configurazione del cluster Linux su Redhat o CentOS:

  • Installa e avvia il servizio cluster RICCI
  • Crea cluster su nodo attivo
  • Aggiungi un nodo al cluster
  • Aggiungi recinzione al cluster
  • Configura dominio di failover
  • Aggiungi risorse al cluster
  • Sincronizza la configurazione del cluster tra i nodi
  • Avvia il cluster
  • Verifica il failover chiudendo un nodo attivo

1. Pacchetti cluster richiesti

Innanzitutto assicurati che i seguenti pacchetti di cluster siano installati. Se non hai questi pacchetti, installali usando il comando yum.

[root@rh1 ~]# rpm -qa | egrep -i "ricci|luci|cluster|ccs|cman"
modcluster-0.16.2-28.el6.x86_64
luci-0.26.0-48.el6.x86_64
ccs-0.16.2-69.el6.x86_64
ricci-0.16.2-69.el6.x86_64
cman-3.0.12.1-59.el6.x86_64
clusterlib-3.0.12.1-59.el6.x86_64

2. Avvia il servizio RICCI e Assegna Password

Successivamente, avvia ricci service su entrambi i nodi.

[root@rh1 ~]# service ricci start
Starting oddjobd:                                          [  OK  ]
generating SSL certificates...  done
Generating NSS database...  done
Starting ricci:                                            [  OK  ]

È inoltre necessario assegnare una password per il RICCI su entrambi i nodi.

[root@rh1 ~]# passwd ricci
Changing password for user ricci.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.

Inoltre, se stai eseguendo il firewall iptables, tieni presente che devi disporre di regole firewall appropriate su entrambi i nodi per poter parlare tra loro.

3. Crea cluster su nodo attivo

Dal nodo attivo, esegui il comando seguente per creare un nuovo cluster.

Il comando seguente creerà il file di configurazione del cluster /etc/cluster/cluster.conf. Se il file esiste già, sostituirà il cluster.conf esistente con il cluster.conf appena creato.

[root@rh1 ~]# ccs -h rh1.mydomain.net --createcluster mycluster
rh1.mydomain.net password:

[root@rh1 ~]# ls -l /etc/cluster/cluster.conf
-rw-r-----. 1 root root 188 Sep 26 17:40 /etc/cluster/cluster.conf

Tieni inoltre presente che stiamo eseguendo questi comandi solo da un nodo del cluster e non siamo ancora pronti per propagare le modifiche all'altro nodo del cluster.

4. File cluster.conf iniziale normale

Dopo aver creato il cluster, il file cluster.conf sarà simile al seguente:

[root@rh1 ~]# cat /etc/cluster/cluster.conf
<?xml version="1.0"?>
<cluster config_version="1" name="mycluster">
  <fence_daemon/>
  <clusternodes/>
  <cman/>
  <fencedevices/>
  <rm>
    <failoverdomains/>
    <resources/>
  </rm>
</cluster>

5. Aggiungi un nodo al cluster

Una volta creato il cluster, è necessario aggiungere i nodi partecipanti al cluster utilizzando il comando ccs come mostrato di seguito.

Innanzitutto, aggiungi il primo nodo rh1 al cluster come mostrato di seguito.

[root@rh1 ~]# ccs -h rh1.mydomain.net --addnode rh1.mydomain.net
Node rh1.mydomain.net added.

Quindi, aggiungi il secondo nodo rh2 al cluster come mostrato di seguito.

[root@rh1 ~]# ccs -h rh1.mydomain.net --addnode rh2.mydomain.net
Node rh2.mydomain.net added.

Una volta creati i nodi, puoi utilizzare il comando seguente per visualizzare tutti i nodi disponibili nel cluster. Questo visualizzerà anche l'ID del nodo corrispondente.

[root@rh1 ~]# ccs -h rh1 --lsnodes
rh1.mydomain.net: nodeid=1
rh2.mydomain.net: nodeid=2

6. file cluster.conf dopo l'aggiunta di nodi

Questo sopra aggiungerà anche i nodi al file cluster.conf come mostrato di seguito.

[root@rh1 ~]# cat /etc/cluster/cluster.conf
<?xml version="1.0"?>
<cluster config_version="3" name="mycluster">
  <fence_daemon/>
  <clusternodes>
    <clusternode name="rh1.mydomain.net" nodeid="1"/>
    <clusternode name="rh2.mydomain.net" nodeid="2"/>
  </clusternodes>
  <cman/>
  <fencedevices/>
  <rm>
    <failoverdomains/>
    <resources/>
  </rm>
</cluster>

7. Aggiungi la recinzione al cluster

La scherma è la disconnessione di un nodo dall'archiviazione condivisa. La scherma interrompe l'I/O dall'archiviazione condivisa, garantendo così l'integrità dei dati.

Un dispositivo di fencing è un dispositivo hardware che può essere utilizzato per escludere un nodo dall'archiviazione condivisa.

Questa operazione può essere eseguita in vari modi:spegnendo il nodo tramite un interruttore di alimentazione remoto, disabilitando una porta switch Fibre Channel o revocando le prenotazioni SCSI 3 di un host.

Un agente di fencing è un programma software che si connette a un dispositivo di fencing per chiedere al dispositivo di fencing di interrompere l'accesso alla memoria condivisa di un nodo (spegnendo il nodo o rimuovendo l'accesso alla memoria condivisa con altri mezzi).

Esegui il comando seguente per abilitare la scherma.

[root@rh1 ~]# ccs -h rh1 --setfencedaemon post_fail_delay=0
[root@rh1 ~]# ccs -h rh1 --setfencedaemon post_join_delay=25

Quindi, aggiungi un dispositivo di recinzione. Sono disponibili diversi tipi di dispositivi di scherma. Se stai utilizzando la macchina virtuale per creare un cluster, usa il dispositivo fence_virt come mostrato di seguito.

[root@rh1 ~]# ccs -h rh1 --addfencedev myfence agent=fence_virt

Quindi, aggiungi il metodo di scherma. Dopo aver creato il dispositivo di scherma, devi creare il metodo di scherma e aggiungere gli host al metodo di scherma.

[root@rh1 ~]# ccs -h rh1 --addmethod mthd1 rh1.mydomain.net
Method mthd1 added to rh1.mydomain.net.

[root@rh1 ~]# ccs -h rh1 --addmethod mthd1 rh2.mydomain.net
Method mthd1 added to rh2.mydomain.net.

Infine, associa il dispositivo di recinzione al metodo creato sopra come mostrato di seguito:

[root@rh1 ~]# ccs -h rh1 --addfenceinst myfence rh1.mydomain.net mthd1
[root@rh1 ~]# ccs -h rh1 --addfenceinst myfence rh2.mydomain.net mthd1

8. file cluster.conf dopo la scherma

Il tuo cluster.conf apparirà come sotto dopo che i dispositivi di scherma, i metodi sono stati aggiunti.

[root@rh1 ~]# cat /etc/cluster/cluster.conf
<?xml version="1.0"?>
<cluster config_version="10" name="mycluster">
  <fence_daemon post_join_delay="25"/>
  <clusternodes>
    <clusternode name="rh1.mydomain.net" nodeid="1">
      <fence>
        <method name="mthd1">
          <device name="myfence"/>
        </method>
      </fence>
    </clusternode>
    <clusternode name="rh2.mydomain.net" nodeid="2">
      <fence>
        <method name="mthd1">
          <device name="myfence"/>
        </method>
      </fence>
    </clusternode>
  </clusternodes>
  <cman/>
  <fencedevices>
    <fencedevice agent="fence_virt" name="myfence"/>
  </fencedevices>
  <rm>
    <failoverdomains/>
    <resources/>
  </rm>
</cluster>

9. Tipi di dominio di failover

Un dominio di failover è un sottoinsieme ordinato di membri del cluster a cui può essere associato un gruppo di risorse o un servizio.

Di seguito sono riportati i diversi tipi di domini di failover:

  • Dominio di failover limitato:i gruppi di risorse o il servizio associato al dominio possono essere eseguiti solo su membri del cluster che sono anche membri del dominio di failover. Se non sono disponibili membri del dominio di failover, il gruppo di risorse o il servizio viene messo in stato di arresto.
  • Dominio di failover illimitato:i gruppi di risorse associati a questo dominio possono essere eseguiti su tutti i membri del cluster, ma verranno eseguiti su un membro del dominio ogni volta che ne è disponibile uno. Ciò significa che se un gruppo di risorse è in esecuzione al di fuori del dominio e un membro del dominio passa online, il gruppo di risorse o
  • il servizio migrerà a quel membro del cluster.
  • Dominio ordinato:ai nodi nel dominio ordinato viene assegnato un livello di priorità compreso tra 1 e 100. La priorità 1 è la più alta e 100 è la più bassa. Un nodo con la priorità più alta eseguirà il gruppo di risorse. La risorsa, se era in esecuzione sul nodo 2, migrerà al nodo 1 quando sarà online.
  • Dominio non ordinato:i membri del dominio non hanno un ordine di preferenza. Qualsiasi membro può essere eseguito nel gruppo di risorse. Il gruppo di risorse eseguirà sempre la migrazione ai membri del loro dominio di failover quando possibile.

10. Aggiungi un dominio Filover

Per aggiungere un dominio di failover, eseguire il comando seguente. In questo esempio, ho creato un dominio denominato "webserverdomain",

[root@rh1 ~]# ccs -h rh1 --addfailoverdomain webserverdomain ordered

Una volta creato il dominio di failover, aggiungi entrambi i nodi al dominio di failover come mostrato di seguito:

[root@rh1 ~]# ccs -h rh1 --addfailoverdomainnode webserverdomain rh1.mydomain.net priority=1

[root@rh1 ~]# ccs -h rh1 --addfailoverdomainnode webserverdomain rh2.mydomain.net priority=2

Puoi visualizzare tutti i nodi nel dominio di failover utilizzando il comando seguente.

[root@rh1 ~]# ccs -h rh1 --lsfailoverdomain
webserverdomain: restricted=0, ordered=1, nofailback=0
  rh1.mydomain.net: 1
  rh2.mydomain.net: 2

11. Aggiungi risorse al cluster

Ora è il momento di aggiungere una risorsa. Questo indica i servizi che dovrebbero anche eseguire il failover insieme a IP e filesystem quando un nodo si guasta. Ad esempio, il server web Apache può essere parte del failover nel cluster Linux Redhat.

Quando sei pronto per aggiungere risorse, puoi farlo in 2 modi.

Puoi aggiungere come risorse globali o aggiungere una risorsa direttamente al gruppo di risorse o al servizio.

Il vantaggio di aggiungerla come risorsa globale è che se desideri aggiungere la risorsa a più di un gruppo di servizi, puoi semplicemente fare riferimento alla risorsa globale sul tuo servizio o gruppo di risorse.

In questo esempio, abbiamo aggiunto il filesystem su un archivio condiviso come risorsa globale e lo abbiamo referenziato sul servizio.

[root@rh1 ~]# ccs –h rh1 --addresource fs name=web_fs device=/dev/cluster_vg/vol01 mountpoint=/var/www fstype=ext4

Per aggiungere un servizio al cluster, crea un servizio e aggiungi la risorsa al servizio.

[root@rh1 ~]# ccs -h rh1 --addservice webservice1 domain=webserverdomain recovery=relocate autostart=1

Ora aggiungi le seguenti righe in cluster.conf per aggiungere i riferimenti alle risorse al servizio. In questo esempio, abbiamo anche aggiunto l'IP di failover al nostro servizio.

  <fs ref="web_fs"/>
  <ip address="192.168.1.12" monitor_link="yes" sleeptime="10"/>

Nella seconda parte di questo tutorial (domani), spiegheremo come sincronizzare le configurazioni su più nodi in un cluster e come verificare lo scenario di failover in una configurazione di cluster.


Linux
  1. Come configurare la virtualizzazione su Redhat Linux

  2. Come configurare LVM su Linux / CentOS / Redhat

  3. Come configurare il repository YUM in Linux/Centos/Redhat | YUM in Linux/Centos/Redhat

  4. Come installare e configurare la finestra mobile in Rocky Linux/Centos 8

  5. Come installare e configurare Mono su Rocky Linux 8 e CentOS 8

Come installare e configurare OpenLiteSpeed ​​con PHP 7 su CentOS 7

Come installare e configurare un cluster Docker Swarm su CentOS 8

Come installare e configurare Denyhost in Centos 7 Linux

Come installare e configurare GlusterFS su CentOS 7/CentOS 8

Come installare e configurare Caddy Web Server con PHP su Rocky Linux 8

Come modificare il nome host e l'indirizzo IP in CentOS / RedHat Linux