Creación de una infraestructura IT tolerante a fallos. Parte 2. Instalación y configuración del clúster oVirt 4.3

Este artículo es una continuación del anterior – «Creación de infraestructura de TI tolerante a fallos. Parte 1: preparación para el despliegue del clúster oVirt 4.3».

Aquí se abordará el proceso de instalación básica y configuración del clúster oVirt 4.3, para el alojamiento de máquinas virtuales de alta disponibilidad, teniendo en cuenta que todos los pasos previos de preparación de la infraestructura ya se han realizado anteriormente.

Introducción

El objetivo principal del artículo no es tanto proporcionar un manual paso a paso tipo «Siguiente -> Sí -> Finalizar» sino mostrar algunas particularidades durante su instalación y configuración. El proceso de despliegue de su clúster puede no coincidir siempre con lo descrito aquí, debido a las particularidades de la infraestructura y el entorno, pero los principios generales serán los mismos.

Desde un punto de vista subjetivo, oVirt 4.3 por su funcionalidad, se parece a VMware vSphere versión 5.x, pero, por supuesto, tiene sus propias particularidades de configuración y funcionamiento.

Para aquellos interesados, todas las diferencias entre RHEV (también conocido como oVirt) y VMware vSphere se pueden encontrar en Internet, por ejemplo, aquí, pero aun así, ocasionalmente señalaré algunas de sus diferencias o similitudes a lo largo del artículo.

Me gustaría comparar brevemente el trabajo con redes para las máquinas virtuales. En oVirt se implementa un principio de gestión de redes para máquinas virtuales (en adelante, VM) similar al de VMware vSphere:

  • a través del puente estándar de Linux (en VMware — Standard vSwitch), que opera en los hosts de virtualización;
  • a través de Open vSwitch (OVS) (en VMware — Distributed vSwitch) – que es un conmutador virtual distribuido que consta de dos componentes principales: un servidor central OVN y controladores OVN en los hosts gestionados.

Es importante señalar que, debido a la simplicidad de su implementación, el artículo describirá la configuración de redes en oVirt para VM utilizando el puente estándar de Linux, que es la opción predeterminada al utilizar el hipervisor KVM.

En este sentido, hay algunas reglas básicas sobre el trabajo con la red en el clúster que es mejor no violar:

  • Todas las configuraciones de red en los hosts antes de añadirlos a oVirt deben ser idénticas, excepto las direcciones IP.
  • Después de que un host sea gestionado por oVirt, no se recomienda realizar cambios manuales en la configuración de la red sin una completa seguridad en sus acciones, ya que el agente de oVirt simplemente revertirá los cambios a los anteriores, después de reiniciar el host o el agente.
  • La adición de una nueva red para la VM, al igual que su gestión, debe realizarse solo desde la consola de administración de oVirt.

Otra observación importante — para un entorno muy crítico (sensible a pérdidas económicas), se recomendaría utilizar soporte de pago y usar Red Hat Virtualization 4.3. Durante la operación del clúster de oVirt, pueden surgir algunos momentos en los que sería preferible obtener ayuda calificada lo antes posible, en lugar de resolverlos por uno mismo.

Y por último, se recomienda antes de desplegar el clúster de oVirt, familiarizarse con documentación oficial, para estar al tanto al menos de los conceptos y definiciones básicas, de lo contrario, leer el artículo será un poco difícil.

Los documentos fundamentales para entender el artículo y los principios de operación del clúster de oVirt son los siguientes:

El volumen no es muy grande, en una o dos horas se pueden dominar los principios básicos, y para quienes gustan de los detalles se recomienda leer Documentación del Producto para Red Hat Virtualization 4.3 — RHEV y oVirt son en esencia lo mismo.

Así que, si todas las configuraciones básicas en los hosts, conmutadores y almacenamiento están realizadas, pasamos directamente al despliegue de oVirt.

Parte 2. Instalación y configuración del clúster oVirt 4.3

Para facilitar la orientación, aquí están los principales apartados de este artículo que deben ser realizados en orden:

  1. Instalación del servidor de administración oVirt
  2. Creación de un nuevo centro de datos
  3. Creación de un nuevo clúster
  4. Instalación de hosts adicionales en un entorno auto-alojado
  5. Creación de una área de almacenamiento o Dominios de Almacenamiento
  6. Creación y configuración de redes para máquinas virtuales
  7. Creación de una imagen de instalación para desplegar una máquina virtual
  8. Creación de una máquina virtual

Instalación del servidor de administración oVirt

El servidor de administración de oVirt es el componente más importante de la infraestructura de oVirt, en forma de máquina virtual, host o dispositivo virtual que gestiona toda la infraestructura de oVirt.

Sus análogos cercanos en el mundo de la virtualización son:

  • VMware vSphere — vCenter Server
  • Microsoft Hyper-V — System Center Virtual Machine Manager (VMM).

Para instalar el servidor de administración de oVirt, tenemos dos opciones:

Opción 1
Desplegar el servidor en forma de una VM especializada o un host.

Esta opción funciona bien, pero con la condición de que esa VM opere independientemente del clúster, es decir, no se ejecute en ningún host del clúster como una máquina virtual común bajo KVM.

¿Por qué no se puede desplegar esta VM en los hosts del clúster?

Al principio del proceso de despliegue del servidor de gestión oVirt, nos enfrentamos a un dilema: necesitamos instalar la VM de gestión, pero en realidad aún no existe el clúster, así que, ¿qué se puede inventar al respecto? Correcto: instalar KVM en el futuro nodo del clúster, luego crear una máquina virtual en él, por ejemplo, con un sistema operativo CentOS y desplegar el motor oVirt en ella. Esto suele hacerse por razones de control total sobre dicha VM, pero es una intención errónea, ya que en ese caso, en el futuro, surgirán problemas con esta VM de gestión.

  • no se podrá migrar en la consola de oVirt entre hosts (nodos) del clúster;
  • al migrar utilizando KVM a través de virsh migrate, esta VM no estará disponible para gestionar desde la consola de oVirt.
  • no se podrá poner los hosts del clúster en Modo de mantenimiento (maintenance mode), si se migra esta VM de un host a otro utilizando virsh migrate.

Así que hagan todo según las reglas: utilicen para el servidor de gestión de oVirt o un host separado, o una VM independiente ejecutándose en él, o mejor aún, hagan como se indica en la segunda opción.

Opción 2
Instalación del oVirt Engine Appliance en el host que está gestionando.

Este es el enfoque que se discutirá a continuación, como el más correcto y adecuado en nuestro caso.
Los requisitos para tal VM se describen a continuación, solo añadiré que se recomienda tener al menos dos hosts en la infraestructura, donde pueda ejecutarse la VM de gestión, para hacerla tolerante a fallos. Aquí me gustaría añadir que, como mencioné en los comentarios de un artículo anterior, no he logrado obtener splitbrain en un clúster de oVirt con dos hosts, con la posibilidad de lanzar la VM de hosted-engine en ellos.

Instalación del oVirt Engine Appliance en el primer host del clúster

Enlace a la documentación oficial — Guía del Motor Auto-Alojado de oVirt, capítulo «Desplegando el Motor Auto-Gestionado Usando la Línea de Comandos»

El documento detalla los requisitos previos que deben cumplirse antes de desplegar la VM de hosted-engine, así como el proceso de instalación en detalle, por lo que no tiene mucho sentido repetirlo textualmente, así que nos enfocaremos en algunos detalles importantes.

  • Antes de comenzar cualquier acción, asegúrate de activar el soporte de virtualización en la configuración del BIOS del host.
  • Instalamos en el host el paquete para el instalador de hosted-engine:

yum -y install http://resources.ovirt.org/pub/yum-repo/ovirt-release43.rpm 
yum -y install epel-release
yum install screen ovirt-hosted-engine-setup

  • Iniciamos en el host el proceso de implementación de oVirt Hosted Engine en screen (salir con Ctrl-A + D, cerrar con Ctrl-D):

screen
hosted-engine --deploy

Si lo deseas, puedes iniciar la instalación con un archivo de respuestas preparado previamente:

hosted-engine --deploy --config-append=/var/lib/ovirt-hosted-engine-setup/answers/answers-ohe.conf

  • Durante la implementación de hosted-engine, indicamos todos los parámetros necesarios:

- nombre del clúster
- cantidad de vCPU y vRAM (se recomienda 4 vCPU y 16 GB)
- contraseñas
- tipo de almacenamiento para la VM de hosted engine - en nuestro caso FC
- número LUN para la instalación de hosted engine
- dónde estará ubicada la base de datos para el hosted engine - recomiendo elegir Local por simplicidad (es una base de datos PostgreSQL que funciona dentro de esta VM)
y otros parámetros. 

  • Para instalar una VM de alta disponibilidad con hosted engine, previamente creamos un LUN especial con el número 4 y tamaño de 150 GB en el almacenamiento, que luego fue presentado a los hosts del clúster - ver en artículo anterior.

Anteriormente también comprobamos su visibilidad en los hosts:

multipath -ll
…
3600a098000e4b4b3000003c95d171065 dm-3 DELL    , MD38xxf
size=150G features='3 queue_if_no_path pg_init_retries 50' hwhandler='1 rdac' wp=rw
|-+- policy='service-time 0' prio=14 status=active
| `- 15:0:0:4  sdc 8:32  active ready running
`-+- policy='service-time 0' prio=9 status=enabled
  `- 18:0:0:4  sdj 8:144 active ready running

  • El proceso de implementación de hosted-engine no presenta complicaciones; al final debemos recibir un mensaje similar al siguiente:

[ INFO  ] Generando archivo de respuestas '/var/lib/ovirt-hosted-engine-setup/answers/answers-20191129131846.conf'
[ INFO  ] Generando archivo de respuestas '/etc/ovirt-hosted-engine/answers.conf'
[ INFO  ] Etapa: Pre-terminación
[ INFO  ] Etapa: Terminación
[ INFO  ] Hosted Engine implementado exitosamente

Verificamos la disponibilidad de los servicios de oVirt en el host:

Creación de una infraestructura IT tolerante a fallos. Parte 2. Instalación y configuración del clúster oVirt 4.3

Si todo se hizo correctamente, al finalizar la instalación, accedemos con un navegador web a https://ovirt_hostname/ovirt-engine desde la computadora del administrador, y hacemos clic en [Portal de Administración].

Captura de pantalla del ‘Portal de Administración’

Creación de una infraestructura IT tolerante a fallos. Parte 2. Instalación y configuración del clúster oVirt 4.3

Ingresando el nombre de usuario y contraseña (establecidos durante el proceso de instalación) en la ventana como en la captura de pantalla, accedemos al panel de control de Open Virtualization Manager, donde podemos realizar todas las acciones con la infraestructura virtual:

  1. agregar centro de datos
  2. agregar y configurar clústeres
  3. agregar hosts y gestionarlos
  4. agregar dominios de almacenamiento o Storage Domains para los discos de máquinas virtuales
  5. agregar y configurar redes para máquinas virtuales
  6. agregar máquinas virtuales, imágenes de instalación, plantillas de VM y gestionarlas

Creación de una infraestructura IT tolerante a fallos. Parte 2. Instalación y configuración del clúster oVirt 4.3

Todas estas acciones se tratarán a continuación, algunas de manera general, otras con más detalle y matices.
Pero primero recomendaría leer este suplemento, que seguramente será útil para muchos.

Suplemento

1) En principio, si es necesario, no hay nada que impida instalar de antemano el hipervisor KVM en los nodos del clúster, utilizando los paquetes libvirt y qemu-kvm (o qemu-kvm-ev) de la versión deseada, aunque al desplegar un nodo del clúster oVirt, puede hacerlo automáticamente.

Pero si libvirt y qemu-kvm se instalaron versiones no tan recientes, se puede obtener el siguiente error durante el despliegue del hosted engine:

error: configuración no soportada: característica de CPU desconocida: md-clear

Es decir, es necesario tener una versión actualizada libvirt con protección contra MDS, que soporte dicha política:

<feature policy='require' name='md-clear'/>

Instalamos libvirt v.4.5.0-10.el7_6.12, con soporte para md-clear:

yum-config-manager --disable mirror.centos.org_centos-7_7_virt_x86_64_libvirt-latest_

yum install centos-release-qemu-ev
yum update
yum install qemu-kvm qemu-img virt-manager libvirt libvirt-python libvirt-client virt-install virt-viewer libguestfs libguestfs-tools dejavu-lgc-sans-fonts virt-top libvirt libvirt-python libvirt-client

systemctl enable libvirtd
systemctl restart libvirtd && systemctl status libvirtd

Verificamos la existencia de soporte para 'md-clear':

virsh domcapabilities kvm | grep require

Después de esto, se puede continuar con la instalación del hosted engine.

2) En oVirt 4.3, la presencia y el uso del firewall firewalld es un requisito obligatorio.

Si durante el despliegue de la VM para el hosted engine obtenemos el siguiente error:

[ ERROR ] fatal: [localhost]: FAILED! => {"changed": false, "msg": "firewalld es requerido para estar habilitado y activo para desplegar correctamente hosted-engine. Por favor, verifica, corrige si es necesario y vuelve a desplegar.
"}
[ ERROR ] Falló en la ejecución de la etapa 'Cierre': Falló en la ejecución de ansible-playbook
[https://bugzilla.redhat.com/show_bug.cgi?id=1608467

Entonces es necesario deshabilitar otro firewall (si está en uso), e instalar y activar firewalld:

yum install firewalld
systemctl enable firewalld
systemctl start firewalld

firewall-cmd --state
firewall-cmd --get-default-zone
firewall-cmd --get-active-zones
firewall-cmd --get-zones

Posteriormente, al instalar el agente ovirt en un nuevo host para el clúster, configurará automáticamente los puertos requeridos en firewalld automáticamente.

3) Reinicio del host con la VM en funcionamiento que tiene el hosted engine.

Como de costumbre, enlace 1 y enlace 2 a los documentos guía.

Toda la gestión de la VM con hosted engine se realiza ÚNICAMENTE mediante el comando hosted-engine en el host donde está funcionando, sobre virsh hay que olvidarse, así como de que se puede conectar a esta VM por SSH y ejecutar el comando "shutdown».

Procedimiento para pasar la VM a modo de mantenimiento:

hosted-engine --set-maintenance --mode=global

hosted-engine --vm-status
!! El clúster está en modo de MANTENIMIENTO GLOBAL !!
--== Estado del host host1.test.local (id: 1) ==--
conf_on_shared_storage             : True
Estado actualizado                 : True
Nombre de host                      : host1.test.local
ID del host                         : 1
Estado del motor                    : {"health": "good", "vm": "up", "detail": "Up"}
Puntuación                           : 3400
detenido                            : False
Mantenimiento local                 : False
crc32                               : dee1a774
timestamp_local_conf               : 1821
Timestamp del host                  : 1821
Metadatos adicionales (válidos en timestamp):
        metadata_parse_version=1
        metadata_feature_version=1
        timestamp=1821 (Sat Nov 29 14:25:19 2019)
        host-id=1
        score=3400
        vm_conf_refresh_time=1821 (Sat Nov 29 14:25:19 2019)
        conf_on_shared_storage=True
        maintenance=False
        state=GlobalMaintenance
        stopped=False

hosted-engine --vm-shutdown

Reiniciamos el host con el agente de hosted engine y hacemos lo que necesitamos.

Después del reinicio, verificamos el estado de la VM con hosted engine:

hosted-engine --vm-status

Si nuestra VM con hosted-engine no arranca y si vemos errores similares en el log del servicio:

Error en el log del servicio:

journalctl -u ovirt-ha-agent
...
Jun 29 14:34:44 host1 journal: ovirt-ha-agent ovirt_hosted_engine_ha.agent.hosted_engine.HostedEngine ERROR Falló al iniciar los monitores necesarios
Jun 29 14:34:44 host1 journal: ovirt-ha-agent ovirt_hosted_engine_ha.agent.agent.Agent ERROR Traza (llamada más reciente al principio):#012  Archivo "\/usr\/lib\/python2.7\/site-packages\/ovirt_hosted_engine_ha\/agent\/agent.py", línea 131, en _run_agent#012    return action(he)#012  Archivo "\/usr\/lib\/python2.7\/site-packages\/ovirt_hosted_engine_ha\/agent\/agent.py", línea 55, en action_proper#012    return he.start_monitoring()#012  Archivo "\/usr\/lib\/python2.7\/site-packages\/ovirt_hosted_engine_ha\/agent\/hosted_engine.py", línea 413, en start_monitoring#012    self._initialize_broker()#012  Archivo "\/usr\/lib\/python2.7\/site-packages\/ovirt_hosted_engine_ha\/agent\/hosted_engine.py", línea 537, en _initialize_broker#012    m.get('options', {}))#012  Archivo "\/usr\/lib\/python2.7\/site-packages\/ovirt_hosted_engine_ha\/lib\/brokerlink.py", línea 86, en start_monitor#012    ).format(t=type, o=options, e=e)#012RequestError: brokerlink - no se pudo iniciar el monitor a través de ovirt-ha-broker: [Errno 2] No existe el archivo o directorio, [monitor: 'ping', options: {'addr': '172.20.32.32'}]
Jun 29 14:34:44 host1 journal: ovirt-ha-agent ovirt_hosted_engine_ha.agent.agent.Agent ERROR Intentando reiniciar el agente

Entonces conectamos el almacenamiento y reiniciamos el agente:

hosted-engine --connect-storage
systemctl restart ovirt-ha-agent
systemctl status ovirt-ha-agent

hosted-engine --vm-start
hosted-engine --vm-status

Después de iniciar la VM con hosted-engine, la sacamos del modo de mantenimiento:

Procedimiento para salir de la VM del modo de mantenimiento:

hosted-engine --check-liveliness
hosted-engine --set-maintenance --mode=none
hosted-engine --vm-status

--== Host host1.test.local (id: 1) status ==--

conf_on_shared_storage             : True
Status up-to-date                  : True
Hostname                           : host1.test.local
Host ID                            : 1
Engine status                      : {"health": "good", "vm": "up", "detail": "Up"}
Score                              : 3400
stopped                            : False
Local maintenance                  : False
crc32                              : 6d1eb25f
local_conf_timestamp               : 6222296
Host timestamp                     : 6222296
Extra metadata (valid at timestamp):
        metadata_parse_version=1
        metadata_feature_version=1
        timestamp=6222296 (Fri Jan 17 11:40:43 2020)
        host-id=1
        score=3400
        vm_conf_refresh_time=6222296 (Fri Jan 17 11:40:43 2020)
        conf_on_shared_storage=True
        maintenance=False
        state=EngineUp
        stopped=False

4) Eliminación del hosted engine y todo lo relacionado con él.

A veces es necesario eliminar correctamente un hosted engine que fue instalado previamente — enlace en el documento de referencia.

Simplemente ejecutamos el comando en el host:

/usr/sbin/ovirt-hosted-engine-cleanup

Luego eliminamos los paquetes innecesarios, haciendo una copia de seguridad de algunos archivos de configuración si es necesario:

yum autoremove ovirt* qemu* virt* libvirt* libguestfs 

Creación de un nuevo centro de datos

Documentación de referencia — oVirt Administration Guide. Capítulo 4: Centros de Datos

Primero, definamos qué es un centro de datos (cita de la ayuda) — es una entidad lógica que define un conjunto de recursos utilizados en un entorno específico.

Un centro de datos es una especie de contenedor que consiste en:

  • recursos lógicos en forma de clústeres y hosts
  • recursos de red del clúster en forma de redes lógicas y adaptadores físicos en los hosts,
  • recursos de almacenamiento (para discos de VM, plantillas, imágenes) en forma de dominios de almacenamiento (Storage Domains).

Un centro de datos puede incluir varios clústeres compuestos de múltiples hosts con máquinas virtuales que operan en ellos; también puede tener varios dominios de almacenamiento asociados a él.
Puede haber múltiples centros de datos, que operan de forma independiente entre sí. En oVirt existe una separación de privilegios por roles y se pueden configurar permisos de manera individual, tanto a nivel de centro de datos como en sus elementos lógicos individuales.

El centro de datos, o los centros de datos si hay varios, se gestionan desde una única consola administrativa o portal.

Para crear un centro de datos, accedemos al portal administrativo y creamos un nuevo centro de datos:
Cómputo >> Centros de Datos >> Nuevo

Dado que estamos utilizando almacenamiento compartido en SAN, el tipo de almacenamiento (Storage Type) debe ser Compartido:

Captura de pantalla con el asistente para crear un centro de datos

Creación de una infraestructura IT tolerante a fallos. Parte 2. Instalación y configuración del clúster oVirt 4.3

Al instalar una máquina virtual con hosted-engine, se crea por defecto un centro de datos - Datacenter1, y luego, si es necesario, se puede cambiar el tipo de almacenamiento (Storage Type) a otro.

Crear un centro de datos no es una tarea complicada, sin demasiados matices, y todas las acciones adicionales relacionadas están descritas en la documentación. Solo señalar que los hosts individuales que tienen solo almacenamiento local (disco) para VM no podrán ser añadidos a un centro de datos con Storage Type — Shared, y por lo tanto, se necesita crear un centro de datos separado para ellos; es decir, cada host individual con almacenamiento local necesita su propio centro de datos.

Creación de un nuevo clúster

Enlace a la documentación — oVirt Administration Guide. Capítulo 5: Clusters

Sin demasiados detalles, clúster – es una agrupación lógica de hosts que tienen un área de almacenamiento común (en forma de discos compartidos en un SAN, como en nuestro caso). También es deseable que los hosts en el clúster sean idénticos en hardware y tengan el mismo tipo de procesador (Intel o AMD). Lo mejor es que los servidores en el clúster sean completamente idénticos.

El clúster forma parte del centro de datos (con un tipo de almacenamiento específico — Local o Compartido), y todos los hosts deben pertenecer necesariamente a algún clúster, dependiendo de si tienen almacenamiento compartido o no.

Al instalar una máquina virtual con hosted-engine en un host, se crea por defecto un centro de datos — Datacenter1, junto con el clúster - Cluster1, y posteriormente se pueden configurar sus parámetros, habilitar opciones adicionales, añadir hosts, etc.

Como de costumbre, para obtener detalles sobre todas las configuraciones del clúster, es recomendable consultar la documentación oficial. En cuanto a algunas características de la configuración del clúster, solo añadiré que al crearlo, solo es necesario configurar los parámetros básicos en la pestaña General.

Destacaré los parámetros más importantes:

  • Tipo de procesador — se elige en función de los procesadores instalados en los hosts del clúster, de su fabricante y de cuál es el procesador más antiguo en los hosts, para, en función de esto, utilizar todas las instrucciones de procesador disponibles en el clúster.
  • Tipo de switch – en nuestro clúster solo se utiliza Linux bridge, por lo que lo elegimos.
  • Tipo de firewall – aquí todo es claro, es firewalld, que debe estar habilitado y configurado en los hosts.

Captura de pantalla con los parámetros del clúster

Creación de una infraestructura IT tolerante a fallos. Parte 2. Instalación y configuración del clúster oVirt 4.3

Instalación de hosts adicionales en un entorno autoalojado

Enlace en la documentación.

Los hosts adicionales para el entorno autoalojado se añaden de la misma manera que un host normal, realizando un paso adicional para desplegar una VM con el motor hospedado — Elija la acción de despliegue del motor hospedado >> Desplegar. Dado que el host adicional también debe tener un LUN presentado para la VM con el motor hospedado, esto significa que este host puede utilizarse si es necesario para alojar una VM con el motor hospedado.
Por motivos de alta disponibilidad, se recomienda tener al menos dos hosts donde se pueda alojar una VM con el motor hospedado.

En el host adicional, desactivamos iptables (si está habilitado) y habilitamos firewalld

systemctl stop iptables
systemctl disable iptables

systemctl enable firewalld
systemctl start firewalld

Instalamos la versión requerida de KVM (si es necesario):

yum-config-manager --disable mirror.centos.org_centos-7_7_virt_x86_64_libvirt-latest_

yum install centos-release-qemu-ev
yum update
yum install qemu-kvm qemu-img virt-manager libvirt libvirt-python libvirt-client virt-install virt-viewer libguestfs libguestfs-tools dejavu-lgc-sans-fonts virt-top libvirt libvirt-python libvirt-client

systemctl enable libvirtd
systemctl restart libvirtd && systemctl status libvirtd

virsh domcapabilities kvm | grep md-clear

Instalamos los repositorios necesarios y el instalador del motor hospedado:

yum -y install http://resources.ovirt.org/pub/yum-repo/ovirt-release43.rpm
yum -y install epel-release
yum update
yum install screen ovirt-hosted-engine-setup

A continuación, pasamos a la consola Open Virtualization Manager, agregamos un nuevo host y seguimos paso a paso como se indica en la documentación.

Como resultado, después de agregar el host adicional, deberíamos obtener una imagen en la consola administrativa similar a la del screenshot.

Captura de pantalla del portal administrativo — hosts

Creación de una infraestructura IT tolerante a fallos. Parte 2. Instalación y configuración del clúster oVirt 4.3

El host en el que la VM con el motor hospedado está activa actualmente tiene una corona dorada y la inscripción «Ejecutando la VM del motor hospedado», el host en el que esta VM puede ser iniciada si es necesario tiene la inscripción «Puede ejecutar la VM del motor hospedado».

En caso de falla del host en el que «Ejecutando la VM del motor hospedado», se reiniciará automáticamente en el segundo host. También esta VM puede ser migrada del host activo al de respaldo para su mantenimiento.

Configuración de Energía / fencing en los hosts oVirt

Enlaces a la documentación:

Aunque puede parecer que la adición y configuración del host se han completado, no es del todo así.
Para el funcionamiento normal de los hosts y para identificar/solucionar fallos con alguno de ellos, es necesaria la configuración de Gestión de Energía / fencing.

Fencing, o el cercado es el proceso de exclusión temporal de un host defectuoso o fallido del clúster, durante el cual se reinician los servicios de oVirt en él o el propio host.

Todos los detalles sobre las definiciones y parámetros de Power Management / fencing están como de costumbre en la documentación, solo proporcionaré un ejemplo de cómo configurar este importante parámetro en relación con los servidores Dell R640 con iDRAC 9.

  1. Accedemos al portal administrativo, hacemos clic en Cómputo >> Hosts seleccionamos el host.
  2. Hacemos clic en Edit.
  3. Hacemos clic en la pestaña Power Management.
  4. Marcamos la casilla junto a la opción Enable Power Management.
  5. Marcamos la casilla junto a la opción Integración de Kdump, para que el host no entre en modo de cercado (fencing) durante la grabación de un volcado de núcleo de emergencia.

Nota.

Después de habilitar la integración de Kdump en un host en funcionamiento, debe reinstalarse de acuerdo con el procedimiento en la Guía de Administración de oVirt -> Capítulo 7: Hosts -> Reinstalando Hosts.

  1. Opcionalmente, podemos marcar la casilla Disable policy control of power management, si no queremos que la gestión de energía del host esté controlada por la política de programación (Scheduling Policy) del clúster.
  2. Hacemos clic en el botón (+), para agregar un nuevo dispositivo de gestión de energía, se abrirá una ventana de edición de propiedades del agente.
    Para iDRAC9, completamos los campos:
    • Address – dirección de iDRAC9
    • User Name / Password – respectivamente, el nombre de usuario y la contraseña para acceder a iDRAC9
    • Tipo — drac5
    • marcar Secure
    • agregar las siguientes opciones: cmd_prompt=>,login_timeout=30

Captura de pantalla con los parámetros de ‘Power Management’ en las propiedades del host

Creación de una infraestructura IT tolerante a fallos. Parte 2. Instalación y configuración del clúster oVirt 4.3

Creación de una área de almacenamiento o Dominios de Almacenamiento

Enlace a la documentación - Guía de Administración de oVirt, Capítulo 8: Almacenamiento.

Dominio de Almacenamiento, o dominio de almacenamiento, es un lugar centralizado para almacenar discos de máquinas virtuales, imágenes de instalación, plantillas y snapshots.

Los dominios de almacenamiento pueden conectarse al centro de datos utilizando diversos protocolos, sistemas de archivos distribuidos y de red.

oVirt tiene tres tipos de dominios de almacenamiento:

  • Dominio de Datos – para almacenar todos los datos relacionados con las máquinas virtuales (discos, plantillas). El Dominio de Datos no puede dividirse entre diferentes centros de datos.
  • Dominio ISO (tipo de dominio de almacenamiento obsoleto) – para almacenar imágenes de instalación del sistema operativo. El Dominio ISO puede dividirse entre diferentes centros de datos.
  • Dominio de Exportación (tipo de dominio de almacenamiento obsoleto) – para almacenamiento temporal de imágenes que se mueven entre centros de datos.

En nuestro caso particular, el dominio de almacenamiento de tipo Dominio de Datos utiliza el Protocolo Fibre Channel (FCP) para conectarse a los LUN en el almacenamiento de datos.

Desde la perspectiva de oVirt, al utilizar almacenamiento (FC o iSCSI), cada disco virtual, instantánea o plantilla es un disco lógico.
Los dispositivos de bloque se agrupan en un todo (en los hosts del clúster) usando el Volume Group y luego se separan mediante LVM en volúmenes lógicos que se utilizan como discos virtuales para las VMs.

Todos estos grupos y muchos volúmenes LVM se pueden ver en el host del clúster mediante los comandos vgs y lvs. Naturalmente, todas las acciones con estos discos deben realizarse solo desde la consola de oVirt, excepto en casos especiales.

Los discos virtuales para VMs pueden ser de dos tipos: QCOW2 o RAW. Los discos pueden ser "delgados" o "gruesos". Las instantáneas siempre se crean como "delgadas".

". La forma de gestionar los dominios de almacenamiento, o áreas de almacenamiento, que se acceden a través de FC, es bastante lógica: para cada disco virtual de la VM hay un volumen lógico separado, que solo es accesible para un host. En caso de conexiones a través de FC, oVirt utiliza algo parecido a LVM clúster.

Las máquinas virtuales ubicadas en una misma área de almacenamiento se pueden migrar entre hosts que pertenecen al mismo clúster.

Como se puede ver en la descripción, un clúster en oVirt, al igual que un clúster en VMware vSphere o en Hyper-V, en esencia significa lo mismo: es una agrupación lógica de hosts, preferiblemente iguales en términos de hardware, y que tienen un almacenamiento común para los discos de las máquinas virtuales.

Pasemos directamente a la creación de un área de almacenamiento para datos (discos de VMs), ya que sin ella el centro de datos no se inicializará.
Recuerdo que todos los LUN presentados a los hosts del clúster en el almacenamiento deben ser visibles mediante el comando "multipath -ll».

Según la documentación", vamos al portal y accedemos a Almacenamiento >> Dominios -> Nuevo Dominio y seguimos las instrucciones de la sección "Agregando almacenamiento FCP".

Después de iniciar el asistente, llenamos los campos requeridos:

  • Nombre — definimos el nombre del clúster
  • Función del Dominio — Datos
  • Tipo de Almacenamiento — Fibre Channel
  • Host a Utilizar — elegimos el host donde está disponible el LUN requerido

En la lista de LUN seleccionamos el que necesitamos, hacemos clic en Agregar y luego OK. Si es necesario, se pueden ajustar los parámetros adicionales del área de almacenamiento haciendo clic en Parámetros Avanzados.

Captura de pantalla del asistente para agregar "dominio de almacenamiento"

Creación de una infraestructura IT tolerante a fallos. Parte 2. Instalación y configuración del clúster oVirt 4.3

Según los resultados del asistente, deberíamos obtener una nueva área de almacenamiento, y nuestro centro de datos debería cambiar a estado ACTIVO, o inicializado:

Capturas de pantalla del centro de datos y de las áreas de almacenamiento en él:

Creación de una infraestructura IT tolerante a fallos. Parte 2. Instalación y configuración del clúster oVirt 4.3

Creación de una infraestructura IT tolerante a fallos. Parte 2. Instalación y configuración del clúster oVirt 4.3

Creación y configuración de redes para máquinas virtuales

Enlace a la documentación - Guía de Administración de oVirt, Capítulo 6: Redes Lógicas

Las Redes, o networks, sirven para agrupar redes lógicas utilizadas en la infraestructura virtual oVirt.

Para la interacción del adaptador de red en una máquina virtual con el adaptador físico en el host, se utilizan interfaces lógicas del tipo Linux bridge.

Para agrupar y separar el tráfico entre redes, se configuran VLAN en los switches.

Al crear una red lógica para máquinas virtuales en oVirt, se debe asignar obligatoriamente un identificador que corresponda al número de VLAN en el switch, para que las VMs puedan comunicarse entre sí, incluso si están en diferentes nodos del clúster.

Los ajustes previos de los adaptadores de red en los hosts para conectar las máquinas virtuales deben haberse realizado en artículo anterior – se configuró la interfaz lógica bond1, posteriormente, todos los ajustes de red deben realizarse únicamente a través del portal administrativo de oVirt.

Después de crear la VM con hosted-engine, además de la creación automática del centro de datos y del clúster, también se creó automáticamente una red lógica para gestionar nuestro clúster – ovritmgmt, a la que se conectó esta VM.

Si es necesario, se pueden ver los ajustes de la red lógica ovritmgmt y corregirlos, pero hay que tener cuidado de no perder el control de la infraestructura oVirt.

Ajustes de la red lógica ovritmgmt

Creación de una infraestructura IT tolerante a fallos. Parte 2. Instalación y configuración del clúster oVirt 4.3

Para crear una nueva red lógica para VMs normales, en el portal administrativo vamos a Red >> Redes >> Nuevo, y en la pestaña General agregamos una red con el identificador VLAN necesario, y marcamos la casilla junto a «Red de VM», lo que significa que se puede usar para asignarse a la VM.

Captura de pantalla de la nueva red lógica VLAN32

Creación de una infraestructura IT tolerante a fallos. Parte 2. Instalación y configuración del clúster oVirt 4.3

En la pestaña Clúster, conectamos esta red a nuestro clúster Cluster1.

Después de esto, vamos a Cómputo >> Hosts, accediendo uno a uno a cada host, en la pestaña Interfaces de red, y ejecutamos el asistente Configurar redes de hosts, para vincular la nueva red lógica a los hosts.

Captura de pantalla del asistente «Configurar redes de hosts»

Creación de una infraestructura IT tolerante a fallos. Parte 2. Instalación y configuración del clúster oVirt 4.3

El agente oVirt realizará automáticamente todos los ajustes de red necesarios en el host: creará la VLAN y el BRIDGE.

Ejemplo de archivos de configuración para nuevas redes en el host:

cat ifcfg-bond1
# Generado por VDSM versión 4.30.17.1
DEVICE=bond1
BONDING_OPTS='mode=1 miimon=100'
MACADDR=00:50:56:82:57:52
ONBOOT=yes
MTU=1500
DEFROUTE=no
NM_CONTROLLED=no
IPV6INIT=no

cat ifcfg-bond1.432
# Generado por VDSM versión 4.30.17.1
DEVICE=bond1.432
VLAN=yes
BRIDGE=ovirtvm-vlan432
ONBOOT=yes
MTU=1500
DEFROUTE=no
NM_CONTROLLED=no
IPV6INIT=no

cat ifcfg-ovirtvm-vlan432
# Generado por VDSM versión 4.30.17.1
DEVICE=ovirtvm-vlan432
TYPE=Bridge
DELAY=0
STP=off
ONBOOT=yes
MTU=1500
DEFROUTE=no
NM_CONTROLLED=no
IPV6INIT=no

Reitero que en el host del clúster NO ES NECESARIO crear manualmente interfaces de red ifcfg-bond1.432 y ifcfg-ovirtvm-vlan432.

Después de añadir la red lógica y verificar la conexión entre el host y la VM con el hosted engine, se puede utilizar en la máquina virtual.

Creación de una imagen de instalación para desplegar una máquina virtual

Enlace a la documentación - Guía de Administración de oVirt, Capítulo 8: Almacenamiento, sección Subiendo Imágenes a un Dominio de Almacenamiento de Datos.

Sin la imagen de instalación del sistema operativo, no será posible instalar la máquina virtual, aunque esto, por supuesto, no es un problema si en la red se establecen, por ejemplo, Cobbler con imágenes creadas previamente.

En nuestro caso, no hay tal posibilidad, así que tendremos que importar esta imagen en oVirt. Anteriormente, para esto se requería crear un ISO Domain, pero en la nueva versión de oVirt ha sido considerado obsoleto, por lo que ahora se pueden subir imágenes directamente al dominio de almacenamiento desde el portal de administración.

En el portal de administración vamos a Almacenamiento >> Discos >> Upload >> Iniciar
Añadimos nuestra imagen del sistema operativo en forma de archivo ISO, completamos todos los campos en el formulario y hacemos clic en el botón "Probar conexión".

Captura de pantalla del asistente para agregar la imagen de instalación

Creación de una infraestructura IT tolerante a fallos. Parte 2. Instalación y configuración del clúster oVirt 4.3

Si recibimos un error de este tipo:

Unable to upload image to disk d6d8fd10-c1e0-4f2d-af15-90f8e636dadc due to a network error. Ensure that ovirt-imageio-proxy service is installed and configured and that ovirt-engine's CA certificate is registered as a trusted CA in the browser. The certificate can be fetched from https://ovirt.test.local/ovirt-engine/services/pki-resource?resource=ca-certificate&format=X509-PEM-CA

Es necesario agregar el certificado oVirt en «Autoridades de Certificación Raíz Confiables» en la estación de administración donde intentamos cargar la imagen.

Después de agregar el certificado a las Autoridades de Certificación Raíz Confiables, otra vez hacemos clic en "Probar conexión", deberíamos recibir:

La conexión con ovirt-imageio-proxy fue exitosa.

Al realizar la acción de agregar el certificado, se puede intentar de nuevo cargar la imagen ISO en el Dominio de Almacenamiento.

En principio, se puede hacer un Dominio de Almacenamiento separado con tipo Datos, para almacenar imágenes y plantillas separadas de los discos de la VM, o incluso guardarlas en el Dominio de Almacenamiento para el hosted engine, pero eso ya queda a criterio del administrador.

Captura de pantalla con imágenes ISO en el Dominio de Almacenamiento para el hosted engine

Creación de una infraestructura IT tolerante a fallos. Parte 2. Instalación y configuración del clúster oVirt 4.3

Creación de una máquina virtual

Enlace a la documentación:
Guía de Gestión de Máquinas Virtuales de oVirt –> Capítulo 2: Instalación de Máquinas Virtuales Linux
Recursos para Clientes de Consola

Después de cargar la imagen de instalación del sistema operativo en oVirt, se puede proceder directamente a la creación de la máquina virtual. Se ha realizado mucho trabajo, pero ya estamos en la etapa final, el motivo por el cual se hizo todo esto: obtener una infraestructura tolerante a fallos para el alojamiento de máquinas virtuales de alta disponibilidad. Y todo esto es completamente gratuito: no se ha gastado ni un centavo en la adquisición de licencias de software.

Para crear una máquina virtual con CentOS 7, debe cargarse la imagen de instalación del sistema operativo.

Ingresamos al portal administrativo, vamos a Cómputo >> Máquinas Virtuales, y lanzamos el asistente de creación de VM. Llenamos todos los parámetros y campos, y hacemos clic en OK. Es muy sencillo si se sigue la documentación.

A modo de ejemplo, daré las configuraciones básicas y adicionales de una VM de alta disponibilidad, con un disco creado, conectada a la red y con arranque desde la imagen de instalación:

Capturas de pantalla de las configuraciones de la VM de alta disponibilidad

Creación de una infraestructura IT tolerante a fallos. Parte 2. Instalación y configuración del clúster oVirt 4.3

Creación de una infraestructura IT tolerante a fallos. Parte 2. Instalación y configuración del clúster oVirt 4.3

Creación de una infraestructura IT tolerante a fallos. Parte 2. Instalación y configuración del clúster oVirt 4.3

Creación de una infraestructura IT tolerante a fallos. Parte 2. Instalación y configuración del clúster oVirt 4.3

Creación de una infraestructura IT tolerante a fallos. Parte 2. Instalación y configuración del clúster oVirt 4.3

Después de terminar con el asistente, lo cerramos, iniciamos la nueva VM e instalamos el sistema operativo en ella.
Para esto, accedemos a la consola de esta VM a través del portal administrativo:

Captura de pantalla de la configuración del portal administrativo para conectarse a la consola de la VM

Creación de una infraestructura IT tolerante a fallos. Parte 2. Instalación y configuración del clúster oVirt 4.3

Para conectarse a la consola de la VM, primero hay que configurar la consola en las propiedades de la máquina virtual.

Captura de pantalla de las configuraciones de la VM, pestaña "Consola"

Creación de una infraestructura IT tolerante a fallos. Parte 2. Instalación y configuración del clúster oVirt 4.3

Para conectarse a la consola de la VM se puede usar, por ejemplo, Visor de Máquina Virtual.

Para conectarse a la consola de la VM directamente en la ventana del navegador, la configuración de conexión a través de la consola debe ser la siguiente:

Creación de una infraestructura IT tolerante a fallos. Parte 2. Instalación y configuración del clúster oVirt 4.3

Después de instalar el sistema operativo en la VM, es recomendable instalar el agente de invitado de oVirt:

yum -y install epel-release
yum install -y ovirt-guest-agent-common
systemctl enable ovirt-guest-agent.service && systemctl restart ovirt-guest-agent.service
systemctl status ovirt-guest-agent.service

Así, como resultado de nuestras acciones, la VM creada será de alta disponibilidad, es decir, en caso de falla del nodo del clúster en el que se está ejecutando, oVirt la reiniciará automáticamente en el segundo nodo. También se puede migrar esta VM entre los hosts del clúster para su mantenimiento o para otros fines.

Conclusión

Espero que este artículo haya logrado transmitir que oVirt es una herramienta perfectamente normal para gestionar infraestructura virtual, que no es tan difícil de desplegar; lo principal es seguir ciertas reglas y requisitos descritos tanto en el artículo como en la documentación.

Debido al gran volumen del artículo, no fue posible incluir muchas cosas, como la ejecución paso a paso de varios asistentes con todas las explicaciones detalladas y capturas de pantalla, largas salidas de ciertos comandos, etc. En realidad, para eso se necesitaría escribir un libro entero, lo cual no tiene mucho sentido, debido a las nuevas versiones de software que siguen apareciendo con innovaciones y cambios. Lo más importante es entender el principio de cómo funciona todo junto y obtener un algoritmo general de acciones para crear una plataforma de gestión de máquinas virtuales que sea tolerante a fallos.

Aunque hemos creado la infraestructura virtual, ahora necesitamos enseñarles a interactuar tanto entre sus elementos individuales: hosts, máquinas virtuales, redes internas, como con el mundo exterior.

Este proceso es una de las tareas principales de un administrador de sistemas o redes, que se desarrollará en el siguiente artículo: sobre el uso de enrutadores virtuales VyOS en la infraestructura tolerante a fallos de nuestra empresa (como ya habrás adivinado, funcionarán como máquinas virtuales en nuestro clúster oVirt).

Fuente: habr.com

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster