Introducció

En aquest tema, explorarem els conceptes d'alta disponibilitat i balanceig de càrrega en sistemes Linux. Aquests conceptes són essencials per garantir que els serveis crítics estiguin sempre disponibles i que les càrregues de treball es distribueixin de manera eficient entre diversos servidors.

Conceptes Clau

Alta Disponibilitat (HA)

  • Definició: L'alta disponibilitat es refereix a la capacitat d'un sistema per continuar operant durant un període prolongat de temps, fins i tot en cas de fallades de components.
  • Objectiu: Minimitzar el temps d'inactivitat i assegurar que els serveis estiguin disponibles el màxim temps possible.
  • Components:
    • Clúster HA: Un grup de servidors que treballen junts per proporcionar alta disponibilitat.
    • Failover: El procés de transferir automàticament la càrrega de treball d'un servidor fallit a un altre servidor en el clúster.

Balanceig de Càrrega

  • Definició: El balanceig de càrrega és la distribució de càrregues de treball entre diversos servidors per optimitzar l'ús dels recursos, maximitzar el rendiment i evitar la sobrecàrrega d'un sol servidor.
  • Objectiu: Assegurar que cap servidor estigui sobrecarregat i que els recursos es facin servir de manera eficient.
  • Components:
    • Balancejador de Càrrega: Un dispositiu o programari que distribueix les sol·licituds entrants entre diversos servidors.
    • Algoritmes de Balanceig: Mètodes utilitzats per determinar com es distribueixen les sol·licituds (per exemple, round-robin, least connections, IP hash).

Implementació Pràctica

Configuració d'un Clúster HA amb Pacemaker i Corosync

  1. Instal·lació de Paquets Necessaris:

    sudo apt-get update
    sudo apt-get install pacemaker corosync
    
  2. Configuració de Corosync:

    • Editeu el fitxer de configuració de Corosync (/etc/corosync/corosync.conf):
    sudo nano /etc/corosync/corosync.conf
    
    • Exemple de configuració:
    totem {
        version: 2
        secauth: on
        cluster_name: mycluster
        transport: udpu
    }
    
    nodelist {
        node {
            ring0_addr: node1
            nodeid: 1
        }
        node {
            ring0_addr: node2
            nodeid: 2
        }
    }
    
    quorum {
        provider: corosync_votequorum
    }
    
  3. Inici del Servei:

    sudo systemctl start corosync
    sudo systemctl start pacemaker
    
  4. Creació de Recursos i Conjunts de Recursos:

    • Exemple de creació d'un recurs IP:
    sudo crm configure primitive myIP ocf:heartbeat:IPaddr2 params ip=192.168.1.100 cidr_netmask=24 op monitor interval=30s
    

Configuració d'un Balancejador de Càrrega amb HAProxy

  1. Instal·lació de HAProxy:

    sudo apt-get update
    sudo apt-get install haproxy
    
  2. Configuració de HAProxy:

    • Editeu el fitxer de configuració de HAProxy (/etc/haproxy/haproxy.cfg):
    sudo nano /etc/haproxy/haproxy.cfg
    
    • Exemple de configuració:
    global
        log /dev/log local0
        log /dev/log local1 notice
        chroot /var/lib/haproxy
        stats socket /run/haproxy/admin.sock mode 660 level admin
        stats timeout 30s
        user haproxy
        group haproxy
        daemon
    
    defaults
        log global
        mode http
        option httplog
        option dontlognull
        timeout connect 5000
        timeout client  50000
        timeout server  50000
    
    frontend http_front
        bind *:80
        stats uri /haproxy?stats
        default_backend http_back
    
    backend http_back
        balance roundrobin
        server server1 192.168.1.101:80 check
        server server2 192.168.1.102:80 check
    
  3. Inici del Servei:

    sudo systemctl start haproxy
    

Exercicis Pràctics

Exercici 1: Configuració d'un Clúster HA

  1. Configureu un clúster HA amb Pacemaker i Corosync en dos servidors.
  2. Creeu un recurs IP que es mogui automàticament en cas de fallada d'un dels servidors.

Exercici 2: Configuració d'un Balancejador de Càrrega

  1. Configureu HAProxy per balancejar la càrrega entre dos servidors web.
  2. Proveu diferents algoritmes de balanceig (round-robin, least connections) i observeu el comportament.

Solucions

Solució a l'Exercici 1

  1. Seguiu els passos de la secció "Configuració d'un Clúster HA amb Pacemaker i Corosync".
  2. Verifiqueu que el recurs IP es mogui correctament en cas de fallada d'un servidor:
    sudo crm_mon -1
    

Solució a l'Exercici 2

  1. Seguiu els passos de la secció "Configuració d'un Balancejador de Càrrega amb HAProxy".
  2. Editeu el fitxer de configuració de HAProxy per provar diferents algoritmes:
    backend http_back
        balance leastconn
        server server1 192.168.1.101:80 check
        server server2 192.168.1.102:80 check
    

Resum

En aquest tema, hem après sobre els conceptes d'alta disponibilitat i balanceig de càrrega, així com la seva implementació pràctica utilitzant Pacemaker, Corosync i HAProxy. Aquests coneixements són essencials per garantir que els serveis crítics estiguin sempre disponibles i que les càrregues de treball es distribueixin de manera eficient.

Domini de Linux: De Principiant a Avançat

Mòdul 1: Introducció a Linux

Mòdul 2: Comandes Bàsiques de Linux

Mòdul 3: Habilitats Avançades de la Línia de Comandes

Mòdul 4: Scripting de Shell

Mòdul 5: Administració del Sistema

Mòdul 6: Xarxes i Seguretat

Mòdul 7: Temes Avançats

Mòdul 8: Projectes Pràctics

© Copyright 2024. Tots els drets reservats