364.1 - HA de Hardware y Recursos
Introduccion
La alta disponibilidad a nivel de nodo unico se centra en maximizar la fiabilidad del hardware y software de un servidor individual, sin depender de un cluster.
Hardware Redundante
Memoria ECC (Error-Correcting Code)
La memoria ECC detecta y corrige errores de un bit, y detecta errores de dos bits:
- Deteccion: Identifica bits erroneos en la memoria
- Correccion: Repara automaticamente errores de un solo bit
- Registro: Los errores se registran en logs del sistema
# Ver errores de memoria ECC
edac-util -s # Estado EDAC
edac-util -r # Informe de errores
# Via sysfs
ls /sys/devices/system/edac/mc/
cat /sys/devices/system/edac/mc/mc0/ce_count # Errores corregidos
cat /sys/devices/system/edac/mc/mc0/ue_count # Errores no corregidosPara el examen: ECC es esencial en servidores. Los errores corregidos (CE) son normales en pequeñas cantidades. Los errores no corregidos (UE) son criticos.
Hot-Swap (Intercambio en Caliente)
Componentes que pueden reemplazarse sin apagar el servidor:
| Componente | Hot-Swap |
|---|---|
| Discos duros (SAS/SATA en bahias) | Si, comun |
| Fuentes de alimentacion redundantes | Si, comun |
| Ventiladores | Si, en servidores enterprise |
| Modulos de memoria | Raro (hot-add mas comun) |
| CPUs | Raro (solo mainframes) |
| Tarjetas PCIe | Con soporte hotplug |
Fuentes de Alimentacion Redundantes (PSU)
- Configuracion N+1 o N+N
- Si falla una PSU, las demas mantienen el sistema
- Alertas via IPMI/BMC cuando una PSU falla
Watchdog Timers
Un watchdog timer es un temporizador de hardware o software que reinicia el sistema si detecta que no responde.
Funcionamiento
Aplicacion → escribe en /dev/watchdog periodicamente
↓
Si no escribe en el tiempo configurado (timeout)
↓
El watchdog reinicia el sistema
Modulos de Watchdog
| Modulo | Tipo | Descripcion |
|---|---|---|
softdog | Software | Watchdog por software (kernel) |
iTCO_wdt | Hardware | Intel TCO watchdog (chipset Intel) |
hpwdt | Hardware | HP watchdog |
ipmi_watchdog | Hardware | Watchdog via IPMI |
Configuracion
# Cargar modulo
modprobe softdog
# El watchdog crea /dev/watchdog
ls -la /dev/watchdog
# Escribir para mantener vivo (desde aplicacion o daemon)
echo "V" > /dev/watchdog # "V" = Magic close (desactiva watchdog)
# Configurar timeout (via sysfs)
cat /sys/class/watchdog/watchdog0/timeout
# Usando systemd watchdog
# /etc/systemd/system.conf
RuntimeWatchdogSec=30 # Reinicia si systemd no responde en 30s
ShutdownWatchdogSec=10min # Timeout para apagadoWatchdog con SBD (Pacemaker)
# SBD usa watchdog como mecanismo de fencing
# /etc/sysconfig/sbd
SBD_WATCHDOG_DEV="/dev/watchdog"
SBD_WATCHDOG_TIMEOUT=5
# El watchdog asegura que un nodo se reinicie si SBD lo ordenaPara el examen: El watchdog es fundamental para SBD en clusters Pacemaker. Si el nodo no puede hacer fencing de si mismo, el watchdog lo reinicia forzosamente.
UPS y NUT (Network UPS Tools)
NUT - Arquitectura
┌──────────┐ USB/Serial/SNMP ┌──────────┐
│ upsd │ ←────────────────────→ │ UPS │
│ (driver) │ └──────────┘
└─────┬─────┘
│
┌─────┴─────┐
│ upsd │ (servidor de datos NUT)
└─────┬─────┘
│
┌─────┴──────┐ ┌──────────┐
│ upsmon │ │ upsmon │ (clientes que monitorizan)
│ (master) │ │ (slave) │
└────────────┘ └──────────┘
Archivos de Configuracion NUT
nut.conf
# /etc/nut/nut.conf
# Modo de operacion
MODE=standalone # standalone, netserver, netclient, none| Modo | Descripcion |
|---|---|
standalone | UPS conectado localmente, sin compartir |
netserver | UPS local, comparte con otros via red |
netclient | Monitoriza UPS remoto via red |
none | NUT deshabilitado |
ups.conf
# /etc/nut/ups.conf
[mi_ups]
driver = usbhid-ups # Driver del UPS
port = auto # Puerto (auto para USB)
desc = "UPS de servidor"
pollinterval = 15 # Intervalo de polling (segundos)upsd.conf
# /etc/nut/upsd.conf
LISTEN 0.0.0.0 3493 # Escuchar en todas las interfaces
MAXAGE 15 # Edad maxima de datos (segundos)upsd.users
# /etc/nut/upsd.users
[admin]
password = secreto
actions = SET FSD
instcmds = ALL
[monitor]
password = monitor_pass
upsmon masterupsmon.conf
# /etc/nut/upsmon.conf
MONITOR mi_ups@localhost 1 monitor monitor_pass master
# MONITOR ups_name@host powervalue user password type
MINSUPPLIES 1 # Minimo de UPS funcionales
SHUTDOWNCMD "/sbin/shutdown -h +0"
POLLFREQ 5 # Frecuencia de polling (seg)
POLLFREQALERT 2 # Frecuencia en alerta
HOSTSYNC 15 # Tiempo de espera para slaves
DEADTIME 15 # Tiempo para considerar UPS muerto
FINALDELAY 5 # Espera antes de shutdown final
NOTIFYCMD /usr/sbin/upssched
NOTIFYFLAG ONLINE SYSLOG+EXEC
NOTIFYFLAG ONBATT SYSLOG+EXEC
NOTIFYFLAG LOWBATT SYSLOG+EXEC
NOTIFYFLAG FSD SYSLOG+EXECComandos NUT
# Iniciar driver
upsdrvctl start
# Estado del UPS
upsc mi_ups@localhost
# Comandos al UPS
upscmd mi_ups@localhost test.battery.start # Test de bateria
upscmd -l mi_ups@localhost # Listar comandos
# Modificar variables
upsrw mi_ups@localhost # Listar variables RW
upsrw -s battery.charge.low=20 mi_ups@localhost
# Forzar shutdown
upsmon -c fsd # Forced ShutDownPara el examen: Conoce los archivos
nut.conf,ups.conf,upsmon.confyupsd.users. El modonetserverpermite compartir el UPS con otros servidores.
IPMI/BMC
IPMI (Intelligent Platform Management Interface) y BMC (Baseboard Management Controller) permiten la gestion remota del hardware del servidor, incluso cuando esta apagado.
Capacidades
- Encender/apagar/reiniciar el servidor remotamente
- Monitorizar sensores (temperatura, voltaje, ventiladores)
- Acceso a consola remota (Serial over LAN)
- Gestion independiente del SO (funciona con servidor apagado)
ipmitool
# Ver informacion del BMC
ipmitool mc info
# Configurar red del BMC
ipmitool lan set 1 ipaddr 192.168.1.200
ipmitool lan set 1 netmask 255.255.255.0
ipmitool lan set 1 defgw ipaddr 192.168.1.1
# Ver configuracion de red
ipmitool lan print 1
# Control de energia
ipmitool power status
ipmitool power on
ipmitool power off
ipmitool power cycle # Apagar y encender
ipmitool power reset # Reset
# Control remoto (via LAN)
ipmitool -I lanplus -H 192.168.1.200 -U admin -P password power status
# Sensores
ipmitool sensor list
ipmitool sdr list # Sensor Data Repository
# Event Log
ipmitool sel list # System Event Log
ipmitool sel clear
# Consola serial (SOL)
ipmitool -I lanplus -H 192.168.1.200 -U admin -P password sol activatePara el examen: IPMI se usa como dispositivo de fencing (
fence_ipmilan) en clusters Pacemaker.ipmitooles la herramienta principal para interactuar con el BMC.
Trampas del examen
Errores comunes y distinciones criticas que LPI suele evaluar en este subtema:
- ECC: errores corregidos (CE) vs no corregidos (UE) — los CE son normales en pequeñas cantidades y se corrigen automaticamente; los UE son criticos y pueden causar crashes o corrupcion. El examen puede preguntar cuando reemplazar la memoria: cuando los UE aparecen o los CE crecen rapidamente
- Watchdog: softdog vs hardware watchdog —
softdoges un watchdog por software del kernel (menos fiable, depende del kernel); los watchdog de hardware (iTCO_wdt, ipmi_watchdog) funcionan independientemente del SO. Para SBD en clusters, se prefiere hardware watchdog porque funciona incluso si el kernel se cuelga - IPMI funciona con el servidor apagado — el BMC tiene su propia alimentacion y red. Puede encender, apagar y acceder a la consola del servidor incluso cuando el SO no esta funcionando. El examen puede preguntar como acceder a un servidor que no responde al SO: la respuesta es IPMI/BMC
- NUT: master vs slave — el nodo
masteres el que controla el UPS y decide el shutdown; losslaveson nodos alimentados por el mismo UPS que se apagan antes que el master. El master espera a que todos los slaves se apaguen antes de ordenar al UPS que corte la energia - NUT modos: standalone vs netserver vs netclient —
standalonees un UPS local sin compartir;netservercomparte la info del UPS con otros servidores via red;netclientse conecta a un netserver remoto. Si multiples servidores comparten un UPS, el conectado fisicamente usanetservery los demasnetclient - upsc vs upsrw vs upscmd —
upsclee variables (solo lectura);upsrwlee y escribe variables configurables;upscmdenvia comandos al UPS (test.battery, shutdown). Confundir las herramientas es error comun - ipmitool power cycle vs power reset —
power cycleapaga y espera un momento antes de encender;power resethace un hard reset inmediato. Para fencing en clusters se suele usarpower offopower cycle, nopower reset, porque necesitas garantizar que el nodo se detenga completamente - fence_ipmilan es el agente STONITH para IPMI — en Pacemaker, el dispositivo de fencing para servidores con IPMI es
fence_ipmilan(conlanplus=1para IPMI v2.0). El examen puede preguntar que agente STONITH usar para un servidor fisico con BMC - RuntimeWatchdogSec en systemd — configurar
RuntimeWatchdogSec=30en/etc/systemd/system.confhace que systemd reinicie el sistema si no puede alimentar el watchdog en 30 segundos. Es una forma simple de proteger contra congelamientos del sistema sin cluster - Hot-swap no es hot-add — hot-swap permite reemplazar un componente sin apagar (quitar y poner); hot-add permite añadir un componente nuevo sin apagar pero no necesariamente quitar el existente. La memoria suele soportar hot-add pero no hot-swap