¡Acceso ilimitado 24/7 a todos nuestros libros y vídeos! Descubra la Biblioteca Online ENI. Pulse aquí
¡Acceso ilimitado 24/7 a todos nuestros libros y vídeos! Descubra la Biblioteca Online ENI. Pulse aquí
  1. Libros y videos
  2. Alta disponibilidad en Linux
  3. Infraestructuras y servicios básicos
Extrait - Alta disponibilidad en Linux De la infraestructura a la orquestación de servicios (Heartbeat, Docker, Ansible, Kubernetes…)
Extractos del libro
Alta disponibilidad en Linux De la infraestructura a la orquestación de servicios (Heartbeat, Docker, Ansible, Kubernetes…) Volver a la página de compra del libro

Infraestructuras y servicios básicos

¿Qué es la alta disponibilidad?

La alta disponibilidad reúne un conjunto de normas técnicas, funcionales y organizativas. Se define por una serie de elementos que se exponen a continuación.

1. Tolerancia a fallos

El ejemplo del capítulo Aplicación standalone, que es el tema principal de este libro, ha puesto de manifiesto una serie de problemas que se deben corregir.

Para que un servicio siga estando disponible, debe ser tolerante a fallos. Esto significa que, en caso de problemas de hardware o software, la aplicación y sus dependencias deben seguir siendo accesibles, hasta el límite de lo razonable: si apaga todo, es obvio que nada funcionará. Pero si apaga unos cuantos servidores, si pierde unos cuantos servicios, si corta unos cuantos cables de red, si pierde una fuente de alimentación, ¿puede encontrar la manera de seguir trabajando?

2. Tasa de disponibilidad

Se dice que un sistema informático tiene alta disponibilidad (High Availability - HA) cuando presenta un alto índice de disponibilidad. Disponibilidad significa que el servicio se presta de forma adecuada.

Por lo general, se trata de un elemento contractual: un proveedor se compromete a ofrecer una disponibilidad del 99,9%, lo que significa que el servicio se debe prestar el 99,9% del tiempo durante un periodo determinado (año, mes, semana, día, etc.). A lo largo de un año, esto corresponde a menos de 9 horas de interrupción. El método utilizado para calcular la disponibilidad puede variar. Puede decidir, por ejemplo, no contar las interrupciones programadas o los microcortes (que duran menos de unos minutos o segundos).

He aquí una tabla con algunos valores máximos de indisponibilidad en función de la tasa de disponibilidad deseada:

Porcentaje

Día

Semana

Mes

Año

90

2 h 24 min

16 h 48 min

3 d

36 d 12 h

95

1 h 12 min

8 h 24 min

1 d 12 h

18 d 6 h

99

14 min 24 s

1 h 40 min 48 s

7 h 12 min

3 d 15 h 36 min

99,5

7 min 12 s

50 min 24 s

3 h 46 min

1 d 19 h 48 min

99,9

1 min 26 s

10 min 5 s

43 min 12 s

8 h 45 min 36 s

99,99

9 s

1 m

4 min 19 s

52 min 34 s

99,999

0,86 s

6 s

26 s

5 min 15 s

99,9999

0,086...

Infraestructura de alta disponibilidad

1. Ejemplo de arquitectura

Este diagrama muestra una arquitectura típica de alta disponibilidad para una infraestructura informática, diseñada para ser lo más tolerante posible a fallos.

images/cap2_pag6.png

Figura 1: Infraestructura de alta disponibilidad

El equipo es redundante:

  • dos servidores,

  • dos switchs de red,

  • dos unidades de carga compartida (LB1 y LB2),

  • dos inversores,

  • almacenamiento con tolerancia a fallos RAID.

Las conexiones en sí son redundantes:

  • Los repartidores y servidores tienen un enlace físico de red con los dos conmutadores.

  • Los servidores tienen un enlace físico directo adicional como parte de un heartbeat, por ejemplo.

  • Los servidores acceden al mismo almacenamiento redundante.

  • Los clientes acceden a los servicios a través de uno de los dos repartidores de carga.

  • Cada equipo tiene dos fuentes de alimentación separadas, conectadas a dos redes eléctricas independientes, al menos una de las cuales está conectada a un inversor o generador de reserva.

2. Características del hardware del servidor

En un datacenter, los servidores se instalan como blades en racks. Estos servidores tienen una serie de características especiales, en comparación con los ordenadores convencionales:

  • La presencia de un puerto de gestión remota, como el ILO (Integrated Lights Out) de HP, que permite gestionar el servidor a distancia, incluso cuando está apagado. En cierto modo, es una máquina dentro de otra máquina.

  • El uso de barras de memoria de tipo ECC (Error-Correcting Code), que permite la autocorrección de las corrupciones de datos de memoria más comunes y, de esta manera, disponer de tiempo para cambiarlos en caso de constatar un funcionamiento incorrecto.

  • Procesadores dedicados que, de hecho, suelen ser los mismos que en un PC convencional, pero a veces con una mejor gestión de la energía y un poco más de caché (básicamente hay poca o ninguna diferencia entre un Intel Core i y un Xeon).

  • Numerosos puertos de red, Ethernet y/o fibra, para conexión a múltiples redes y tolerancia a fallos.

  • Imponentes sistemas de refrigeración activa y pasiva, que permiten montar varias blades una encima de otra (pero con un peso muy elevado).

  • Dos fuentes de alimentación independientes, que proporcionan tolerancia a fallos en caso de pérdida de una de ellas...

Instalación básica

1. Red VirtualBox

En VirtualBox, tiene que crear una red privada de host.

 En la esquina superior izquierda, encima de la lista de máquinas virtuales, haga clic en Tools y, a continuación, en Network.

images/cap2_pag18.png

Figura 3: Creación de una red privada de host en VirtualBox

 Debe crear una red privada host en la sección Host-only Networks, llamada vboxnet0, en una subred 192.168.56.0/24. La dirección IP del host es 192.168.56.1. En el lado DHCP, las direcciones dinámicas no se utilizarán a menos que se olvide de configurar las interfaces durante la instalación. Deje libre el rango 192.168.56.2 a 192.168.56.99 para direcciones IP estáticas.

A la hora de configurar las máquinas virtuales, el punto más importante se refiere a las interfaces de red. A excepción de los dos servidores infra01 e infra02, todos los servidores tienen una sola interfaz de red. Configúrela con los siguientes parámetros:

  • Attached to: Host-only Adapter

  • Name: VirtualBox Host-Only Ethernet Adapter

infra01 e infra02 son diferentes. Están expuestos en la red del usuario (empresa, intranet, red de cajas), la primera interfaz está configurada de forma diferente:

  • Attached to: Bridged Adapter

  • Name: elija el adaptador de red principal para el host VirtualBox

Por último, para las simulaciones de exposición a Internet, estos dos servidores disponen de una tercera interfaz, completamente interna a las máquinas virtuales:

  • Attached to: Internal Network

  • Name: intnet

images/cap2_pag20.png

Figura 4: Configuración de las interfaces de las máquinas virtuales

2. Red Hyper-V

Hyper-V es el hipervisor predeterminado de Microsoft, disponible en las versiones Server, Windows 10 y 11. También es el hipervisor de la plataforma Azure Cloud. Para conocer los pasos de activación, consulte la página: https://support.microsoft.com/es-es/windows/habilitar-la-virtualizaci%C3%B3n-en-windows-c5578302-6e43-4b4b-a449-8ced115f58e1

 A continuación, inicie el Hyper-V Manager desde la lista de aplicaciones. Una vez iniciado, en la lista de la derecha, seleccione Virtual Switch Manager. Debe crear tres de ellos haciendo clic en New virtual network switch en la parte superior izquierda de la ventana:

  • Un conmutador External, que se vinculará a un adaptador físico de su máquina: la interfaz vinculada a este...

Agregados de red

1. Velocidad y tolerancia a fallos

Las conexiones de red de los servidores deben ser tolerantes a fallos. Linux permite agregar varias interfaces de red físicas en una única interfaz lógica creando un enlace lógico (bonding) entre varias interfaces de red (adaptadores). Si se pierde un enlace en una tarjeta, el tráfico se puede conmutar a otra.

El modo de funcionamiento de este agregado de interfaces depende de su configuración y abarca distintas posibilidades. El bonding permite:

  • ofrecer soluciones de reserva en caso de fallo de la interfaz física,

  • mejorar el rendimiento multiplicando el rendimiento por el número de tarjetas,

  • garantizar la calidad del servicio añadiendo tolerancia a los errores, con el flujo de una tarjeta controlando la otra,

  • conexiones del monitor.

En Linux existen dos métodos para gestionar agregados: mediante bonding, que es el método histórico gestionado por el núcleo y mediante teamd, que es el método que apareció con los núcleos 3.3, con un servicio (demonio) en el espacio de usuario. Es la versión histórica la que se presenta aquí, totalmente soportada en el conjunto de versiones de Ubuntu. Sin embargo, el principio sigue siendo el mismo, sea cual sea el método.

2. Consideraciones materiales

El uso de determinados modos de agregación requiere una configuración específica de los puertos de los switchs a los que están conectadas las interfaces del servidor, pero incluso un modelo básico permite el uso de determinados modos de funcionamiento. La configuración de los switchs gestionados es responsabilidad de los equipos de red y no se tratará en este libro. La descripción de los modos de funcionamiento indica cuándo se debe aplicar una configuración determinada.

3. Modos de funcionamiento

Un agregado define una interfaz de red lógica denominada maestro, en la que se configuran las distintas direcciones IP del servidor. Las interfaces de red que componen el agregado se denominan adaptadores o tarjetas esclavas. Existen varios modos de agregación:

  • Modo 0 o balance-rr (round-robin): los paquetes se transmiten alternativamente en cada una de las interfaces de red que componen el agregado, en orden circular, de la primera a la última. Este modo proporciona equilibrio de carga...

Servidor DNS

1. ¿Cómo resuelve Linux las direcciones?

Una de las muchas funciones de los servidores infra01 e infra02 es proporcionar un servicio de resolución de nombres de dominio a través de un DNS (Domain Name System). Linux tiene varias formas de asociar y resolver nombres de host y direcciones IP. Los comandos y herramientas estándar utilizan la función gethostbyname de la librería C estándar. Este es el resolvedor. El orden de búsqueda se define en /etc/nsswitch.conf:

hosts:          files dns 

Con esta línea, la función busca primero una coincidencia en el archivo /etc/hosts, y después con el servicio DNS. La ventaja de la primera solución es que es local y, por tanto, rápida, y no se ve afectada por la pérdida de otro servicio. La desventaja es también que es local. El contenido del archivo /etc/hosts se debe sincronizar con todos los servidores cada vez que se modifica. En grandes infraestructuras, esto es insostenible.

DNS resuelve este problema proporcionando un servicio de red jerárquico y distribuido de resolución de nombres: dado un nombre, devuelve la dirección correspondiente y viceversa (resolución inversa). Las ventajas son numerosas: ahora sólo hay un lugar donde actualizar las asociaciones y, según la configuración, si el servidor no encuentra el nombre, puede reenviar la petición a otro.

La desventaja es que, si se pierde el servicio de resolución, Linux ya no puede resolver direcciones, lo que conlleva la pérdida de muchos otros servicios. Una segunda desventaja es una posible latencia en la velocidad de resolución. En ambos casos, el problema se puede superar utilizando los siguientes elementos:

  • varios servidores DNS "primarios",

  • servidores DNS "secundarios",

  • una caché local.

Configurar un DNS primario y un DNS secundario es bastante sencillo y responde al objetivo de configurar un servicio de alta disponibilidad, dejando que sea el propio servicio DNS el que replique su información en uno o varios servidores secundarios.

2. DNS primarios y secundarios

No entraremos aquí en los detalles de configuración de un servidor DNS completo; nos centraremos en poner en marcha lo necesario para garantizar que la implementación del servicio cumple...