GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo configurar un clúster de Linux con 2 nodos en RedHat y CentOS

En una configuración de clúster de Linux en espera activa, todos los servicios críticos, incluido IP, el sistema de archivos se conmutarán por error de un nodo a otro nodo en el clúster.

Este tutorial explica en detalle cómo crear y configurar un clúster RedHat de dos nodos mediante utilidades de línea de comandos.

Los siguientes son los pasos de alto nivel involucrados en la configuración del clúster de Linux en Redhat o CentOS:

  • Instalar e iniciar el servicio de clúster RICCI
  • Crear clúster en nodo activo
  • Agregar un nodo al clúster
  • Agregar vallado al clúster
  • Configurar dominio de conmutación por error
  • Añadir recursos al clúster
  • Configuración de clúster de sincronización entre nodos
  • Iniciar el clúster
  • Verifique la conmutación por error cerrando un nodo activo

1. Paquetes de clúster necesarios

Primero asegúrese de que estén instalados los siguientes paquetes de clúster. Si no tiene estos paquetes, instálelos usando el 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. Inicie el servicio RICCI y asigne una contraseña

A continuación, inicie el servicio ricci en ambos nodos.

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

También debe asignar una contraseña para RICCI en ambos nodos.

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

Además, si está ejecutando el firewall de iptables, tenga en cuenta que debe tener reglas de firewall adecuadas en ambos nodos para poder comunicarse entre sí.

3. Crear clúster en nodo activo

Desde el nodo activo, ejecute el siguiente comando para crear un nuevo clúster.

El siguiente comando creará el archivo de configuración del clúster /etc/cluster/cluster.conf. Si el archivo ya existe, reemplazará el cluster.conf existente con el cluster.conf recién creado.

[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

También tenga en cuenta que estamos ejecutando estos comandos solo desde un nodo del clúster y aún no estamos listos para propagar los cambios al otro nodo del clúster.

4. Archivo simple cluster.conf inicial

Después de crear el clúster, el archivo cluster.conf tendrá el siguiente aspecto:

[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. Agregar un nodo al clúster

Una vez que se crea el clúster, debemos agregar los nodos participantes al clúster mediante el comando ccs como se muestra a continuación.

Primero, agregue el primer nodo rh1 al clúster como se muestra a continuación.

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

A continuación, agregue el segundo nodo rh2 al clúster como se muestra a continuación.

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

Una vez que se crean los nodos, puede usar el siguiente comando para ver todos los nodos disponibles en el clúster. Esto también mostrará la identificación del nodo correspondiente.

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

6. Archivo cluster.conf después de agregar nodos

Esto anterior también agregará los nodos al archivo cluster.conf como se muestra a continuación.

[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. Agregar cercado al clúster

La cerca es la desconexión de un nodo del almacenamiento compartido. El cercado corta la E/S del almacenamiento compartido, lo que garantiza la integridad de los datos.

Un dispositivo de valla es un dispositivo de hardware que se puede usar para aislar un nodo del almacenamiento compartido.

Esto se puede lograr de varias maneras:apagar el nodo a través de un interruptor de alimentación remoto, deshabilitar un puerto de interruptor Fibre Channel o revocar las reservas SCSI 3 de un host.

Un agente de valla es un programa de software que se conecta a un dispositivo de valla para pedirle que corte el acceso al almacenamiento compartido de un nodo (apagando el nodo o eliminando el acceso al almacenamiento compartido por otros medios).

Ejecute el siguiente comando para habilitar el cercado.

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

A continuación, agregue un dispositivo de cerca. Hay diferentes tipos de dispositivos de esgrima disponibles. Si está usando una máquina virtual para construir un clúster, use el dispositivo fence_virt como se muestra a continuación.

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

A continuación, agregue el método de cercado. Después de crear el dispositivo de cercado, debe crear el método de cercado y agregar los hosts al método de cercado.

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

Finalmente, asocie el dispositivo de valla al método creado anteriormente como se muestra a continuación:

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

8. Archivo cluster.conf después de la esgrima

Su cluster.conf se verá como se muestra a continuación después de que se agreguen los dispositivos de cercado y los métodos.

[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. Tipos de dominio de conmutación por error

Un dominio de conmutación por error es un subconjunto ordenado de miembros del clúster al que se puede vincular un grupo de recursos o un servicio.

Los siguientes son los diferentes tipos de dominios de conmutación por error:

  • Dominio de conmutación por error restringido:los grupos de recursos o servicios vinculados al dominio solo pueden ejecutarse en miembros del clúster que también son miembros del dominio de conmutación por error. Si no hay miembros del dominio de conmutación por error disponibles, el grupo de recursos o el servicio se colocan en estado detenido.
  • Dominio de conmutación por error sin restricciones:los grupos de recursos vinculados a este dominio pueden ejecutarse en todos los miembros del clúster, pero se ejecutarán en un miembro del dominio siempre que haya uno disponible. Esto significa que si un grupo de recursos se ejecuta fuera del dominio y el miembro del dominio se conecta en línea, el grupo de recursos o
  • el servicio migrará a ese miembro del clúster.
  • Dominio ordenado:a los nodos del dominio ordenado se les asigna un nivel de prioridad del 1 al 100. Prioridad 1 siendo la más alta y 100 siendo la más baja. Un nodo con la prioridad más alta ejecutará el grupo de recursos. Si el recurso se estaba ejecutando en el nodo 2, migrará al nodo 1 cuando esté en línea.
  • Dominio desordenado:los miembros del dominio no tienen ningún orden de preferencia. Cualquier miembro puede ejecutarse en el grupo de recursos. El grupo de recursos siempre migrará a miembros de su dominio de conmutación por error siempre que sea posible.

10. Agregar un dominio de Filover

Para agregar un dominio de conmutación por error, ejecute el siguiente comando. En este ejemplo, creé un dominio llamado "webserverdomain",

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

Una vez que se crea el dominio de conmutación por error, agregue ambos nodos al dominio de conmutación por error como se muestra a continuación:

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

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

Puede ver todos los nodos en el dominio de conmutación por error con el siguiente comando.

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

11. Agregar recursos al clúster

Ahora es el momento de agregar recursos. Esto indica los servicios que también deben realizar la conmutación por error junto con la ip y el sistema de archivos cuando falla un nodo. Por ejemplo, el servidor web Apache puede ser parte de la conmutación por error en Redhat Linux Cluster.

Cuando esté listo para agregar recursos, hay 2 formas de hacerlo.

Puede agregar recursos globales o agregar un recurso directamente al grupo de recursos o servicio.

La ventaja de agregarlo como recurso global es que si desea agregar el recurso a más de un grupo de servicios, simplemente puede hacer referencia al recurso global en su servicio o grupo de recursos.

En este ejemplo, agregamos el sistema de archivos en un almacenamiento compartido como recurso global y lo mencionamos en el servicio.

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

Para agregar un servicio al clúster, cree un servicio y agregue el recurso al servicio.

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

Ahora agregue las siguientes líneas en cluster.conf para agregar las referencias de recursos al servicio. En este ejemplo, también agregamos una IP de conmutación por error a nuestro servicio.

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

En la segunda parte de este tutorial (mañana), explicaremos cómo sincronizar las configuraciones en varios nodos en un clúster y cómo verificar el escenario de conmutación por error en una configuración de clúster.


Linux
  1. Cómo configurar la virtualización en Redhat Linux

  2. Cómo configurar LVM en Linux / CentOS / Redhat

  3. Cómo configurar el repositorio YUM en Linux/Centos/Redhat | YUM en Linux/Centos/Redhat

  4. Cómo instalar y configurar docker en Rocky Linux/Centos 8

  5. Cómo instalar y configurar Ansible en Rocky Linux/CentOS 8

Cómo instalar y configurar OpenLiteSpeed ​​con PHP 7 en CentOS 7

Cómo instalar y configurar un Docker Swarm Cluster en CentOS 8

Cómo instalar y configurar Denyhost en Centos 7 Linux

Cómo instalar y configurar GlusterFS en CentOS 7/CentOS 8

Cómo instalar y configurar el servidor web Caddy con PHP en Rocky Linux 8

Cómo cambiar el nombre de host y la dirección IP en CentOS / RedHat Linux