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
-
Instal·lació de Paquets Necessaris:
sudo apt-get update sudo apt-get install pacemaker corosync
-
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 }
- Editeu el fitxer de configuració de Corosync (
-
Inici del Servei:
sudo systemctl start corosync sudo systemctl start pacemaker
-
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
-
Instal·lació de HAProxy:
sudo apt-get update sudo apt-get install haproxy
-
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
- Editeu el fitxer de configuració de HAProxy (
-
Inici del Servei:
sudo systemctl start haproxy
Exercicis Pràctics
Exercici 1: Configuració d'un Clúster HA
- Configureu un clúster HA amb Pacemaker i Corosync en dos servidors.
- 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
- Configureu HAProxy per balancejar la càrrega entre dos servidors web.
- Proveu diferents algoritmes de balanceig (round-robin, least connections) i observeu el comportament.
Solucions
Solució a l'Exercici 1
- Seguiu els passos de la secció "Configuració d'un Clúster HA amb Pacemaker i Corosync".
- Verifiqueu que el recurs IP es mogui correctament en cas de fallada d'un servidor:
sudo crm_mon -1
Solució a l'Exercici 2
- Seguiu els passos de la secció "Configuració d'un Balancejador de Càrrega amb HAProxy".
- 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
- Què és Linux?
- Història de Linux
- Distribucions de Linux
- Instal·lant Linux
- Estructura del Sistema de Fitxers de Linux
Mòdul 2: Comandes Bàsiques de Linux
- Introducció a la Línia de Comandes
- Navegant pel Sistema de Fitxers
- Operacions amb Fitxers i Directoris
- Visualització i Edició de Fitxers
- Permisos i Propietat dels Fitxers
Mòdul 3: Habilitats Avançades de la Línia de Comandes
- Ús de Comodins i Expressions Regulars
- Piping i Redirecció
- Gestió de Processos
- Programació de Tasques amb Cron
- Comandes de Xarxa
Mòdul 4: Scripting de Shell
- Introducció al Scripting de Shell
- Variables i Tipus de Dades
- Estructures de Control
- Funcions i Biblioteques
- Depuració i Gestió d'Errors
Mòdul 5: Administració del Sistema
- Gestió d'Usuaris i Grups
- Gestió de Discs
- Gestió de Paquets
- Monitorització del Sistema i Optimització del Rendiment
- Còpia de Seguretat i Restauració
Mòdul 6: Xarxes i Seguretat
- Configuració de Xarxa
- Tallafocs i Seguretat
- SSH i Accés Remot
- Sistemes de Detecció d'Intrusions
- Assegurant Sistemes Linux
Mòdul 7: Temes Avançats
- Virtualització amb Linux
- Contenidors de Linux i Docker
- Automatització amb Ansible
- Optimització del Nucli de Linux
- Alta Disponibilitat i Balanceig de Càrrega