Cloud privado con Microsoft Hyper-V

6 noviembre 2018
Josep Ma Solanes 0

Esta entrada muestra como crear un cloud privado on-premise con alta disponibilidad basado en dos nodos de virtualización Microsoft Hyper-V.

El alojamiento de las máquinas virtuales va a cargo de una carpeta compartida en un servidor SMB3, evitando el uso de unidades de disco de bloque FC o iSCSI (SAN). Para eso, se utiliza un servidor Microsoft Windows Server que comparte las siguientes carpetas a tal efecto y donde se han establecido los permisos de control total para las cuentas de equipo de los nodos del clúster:

  • Witness, para ubicar la parte de testimonio compartido para mantener el clúster operativo en caso de caída de uno  de los nodos.
  • Hyper-V, para alojar las máquinas virtuales compartidas dentro del clúster de alta disponibilidad.

En esta entrada, el montaje del clúster de alta disponibilidad de Microsoft Hyper-V se hace dentro de un entorno de dominio de Active Directory, por lo que es necesario disponer de un controlador de Active Directory a tal efecto.

Instalación nodos Microsoft Hyper-V

Para la instalación de los nodos de virtualización se utiliza la edición de Microsoft Windows Server Hyper-V, gratuita y que podéis descargar desde este enlace. Fijaos que la licencia es ilimitada, para siempre, pero es necesario el registro para la descarga.

O bien utilizar una versión licenciada, en este caso, al actualizar las ediciones de servidores habrá que renovar la licencia del mismo y ya sabemos que no siempre es así. Digamos que quedaríamos un poco atados al nivel funcional de la edición que tengamos. En cambio la otra permite actualizarse sin tener que renovar la licencia.

De todas formas, recomiendo la versión core para reducir la superfície de ataque sobre los propios hipervisores.

Manos a la obra y arrancamos el servidor con el medio de instalación del sistema operativo base, normalmente, pulsando cualquier tecla al iniciar.

Seleccionar el idioma de instalación, la configuración regional y la disposición del teclado, según corresponda a cada zona. Pulsar el botón Siguiente para continuar.

Hacer clic en el botón Instalar para proceder a la instalación del nuevo sistema operativo.

Aceptar los términos de la licencia marcando el checkbox correspondiente y haciendo clic en el botón Siguiente para continuar.

Seleccionar instalación Personalizada.

Asegurar que no hay ninguna partición en los discos. En caso de existir alguna partición, la recomendación es borrarlas todas, seleccionando cada una de ellas y haciendo clic en el botón Borrar hasta que sólo quede la unidad sin espacio asignado.

Seleccionar la unidad sin espacio asignado y hacer clic en el botón Siguiente para continuar.

Esperar a que se complete la instalación del sistema operativo. Una vez reiniciado ya se nos pide desbloquear el sistema operativo. Pulsar Control+Alt+Del para continuar.

Como que todavía no se había establecido una contraseña para el administrador local, ahora es el momento de hacerlo. Seleccionar OK y pulsar Intro para continuar.

Introducir la contraseña, dos veces, para el administrador local de la máquina. Para cambiar de campo, utilizar la tecla TABULADOR, para aceptar los cambios pulsar la tecla INTRO.

Confirmar el cambio de contraseña. Seleccionar OK y pulsar INTRO para continuar.

Se inicia una consola de sistema y arranca el menú para la edición core. Recordad que para volver a acceder a este menú desde la consola de sistema tenéis que ejecutar el comando:

sconfig

Asegurar las actualizaciones del sistema operativo. Opción 6 y pulsar la tecla A para descargar y instalar todas las actualizaciones pendientes.

Habilitar el rol y características de Hyper-V necesarias para poder alojar las máquinas virtuales. Salir a la consola de sistema (14) y ejecutar la consola de Powershell con el comando:

powershell

Revisar los roles y características que dispone el sistema operativo con el comando:

get-windowsfeature

En la edición Microsoft Windows Server Hyper-V, el rol de virtualización (Hyper-V) ya está habilitado por defecto, pero no es el caso del módulo de PowerShell para poder administrar el Hyper-V (por si las moscas) o la característica de clúster de alta disponibilidad. Para habilitarlas, ejecutar:

Herramientas de administración PowerShell de Hyper-V:

install-windowsfeature Hyper-V-PowerShell

Característica de clúster de conmutación por error y las herramientas de administración relacionadas:

install-windowsfeature Failover-Clustering
get-windowsfeature RSAT-Clustering* | install-windowsfeature

Preparar el sistema operativo como imagen maestra.

Como que se tiene que instalar el mismo sistema en otro equipo, aprovechamos para hacer la imagen maestra del mismo.

Salir a la consola del sistema, opción 14, y vamos a ejecutar un SYSPREP. Cambiar al directorio donde hay el sysprep:

cd \windows\system32\sysprep

Ejecutar el comando para cerrar la máquina.

En el comando utilizo el modo de máquina virtual (/mode:vm) porque estoy instalando el sistema operativo en una máquina virtual. En un entorno en producción, en que el nodo de virtualización es la máquina física, se obvia este modificador.

sysprep /generalize /oobe /shutdown /mode:vm

Con la máquina cerrada, ya se puede clonar el sistema operativo a los equipos que haga falta para que actuen como nodos de virtualización Hyper-V.

Arrancando los nuevos nodos para virtualización, hay que volver a establecer la contraseña de administrador local y establecer la configuración personalizada de cada uno de ellos:

  • nombre del equipo
  • configuración IP
  • unión al dominio de Active Directory

Se puede utilizar el menú sconfig para facilitar esta configuración a mano o bien, para automatizarla con la PowerShell para cada nodo:

Establecer el nombre del nodo:

rename-computer srvHV01

Añadir la dirección IP estática IPv4 a la interfaz Ethernet así como la puerta de enlace:

get-NetIpInterface -InterfaceAlias Ethernet* -AddressFamily IPv4 | New-NetIpAddress -IPAddress 192.168.1.213 -PrefixLength 24 -DefaultGateway 192.168.1.1

Configurar la resolución de DNS a la misma interfaz anterior:

get-NetIpInterface -InterfaceAlias Ethernet -AddressFamily IPv4 | select InterfaceIndex | Set-DnsClientServerAddress -ServerAddresses 192.168.1.211

Añadir el equipo al dominio, si se puede hacer seguido, al reiniciar ya se cambiará el nombre de ambos sitios, el equipo y el Active Directory:

add-computer -DomainName jmsolanes.local -Credential (get-credential -UserName jmsolanes\administrator -message "Administrador")

Reiniciar el equipo:

shutdown /r /t 0

Repetir la configuración para el segundo nodo de virtualización:

rename-computer srvHV02
get-NetIpInterface -InterfaceAlias Ethernet* -AddressFamily IPv4 | New-NetIpAddress -IPAddress 192.168.1.214 -PrefixLength 24 -DefaultGateway 192.168.1.1
get-NetIpInterface -InterfaceAlias Ethernet -AddressFamily IPv4 | select InterfaceIndex | Set-DnsClientServerAddress -ServerAddresses 192.168.1.211
add-computer -DomainName jmsolanes.local -Credential (get-credential -UserName jmsolanes\administrator -message "Administrador")
shutdown /r /t 0

Creación del clúster de alta disponibilidad para Hyper-V

Con los dos nodos en el dominio se procede a la creación del clúster de alta disponibilidad para Microsoft Hyper-V.

Iniciar con una cuenta de administrador del dominio con permisos para poder crear el clúster de alta disponibilidad en el Active Directory.

Como no, desde la consola Powershell de uno de los nodos, hay que ejecutar el siguiente comando para crear el clúster con los parámetros siguientes:

  • Name. Nombre del clúster para el Hyper-V
  • Node. Servidores que formarán el clúster. En caso de añadir múltiples servidores hay que separarlos con una ,
  • StaticAddress. Dirección IP que tendrá el clúster para Hyper-V y desde el que debe resolver correctamente el nombre del mismo.
  • NoStorage. Como que no disponemos de discos de block (tradicional) compartido, la intención es utilizar un recurso de red compartido. Indicar al equipo que obvie el almacenamiento.
  • Force. Para forzar a crear el clúster.
  • Verbose. Que muestre en pantalla el detalle de la creación del clúster.
new-cluster -name hyperv -node srvHV01.jmsolanes.local, srvHV02.jmsolanes.local -StaticAddress 192.168.1.215 -NoStorage -Force -Verbose

Si todo va bien, como es de esperar, se crea el nuevo clúster de alta disponibilidad con los dos nodos.

Podemos pasar a administrar el nuevo clúster desde una consola de administración remota o con el Windows Admin Center y dejar los nodos tranquilitos.

Desde el administrador del servidor, menú Herramientas y hacer clic en Administrador del clúster de alta disponibilidad.

En el propio administrador del clúster de alta disponibilidad, al no residir en el servidor desde el que estamos conectados, hay que conectarse al clúster de la red. Botón derecho sobre el Administrador del Clúster de Alta Disponibilidad y hacer clic en Conectar al Clúster.

Escribir el nombre del clúster con el FQDN: hyperv.jmsolanes.local o bien hacer clic en el botón Navegar para visualizar los clústeres dados de alta en el Active Directory. Seleccionar el que corresponda y hacer clic en el botón OKOK, para cargarlo.

Se carga el clúster con toda la configuración pertinente.

Al disponer sólo de dos nodos de virtualización Hyper-V en el clúster de alta disponibilidad, añadimos el tercero de forma virtual mediante un disco de Testigo (Witness o Quorum). Botón derecho sobre el nombre del clúster, en el menú seleccionar Más Acciones y hacer clic en Configuración del Quorum.

Se inicia el asistente para la configuración del testigo del clúster de alta disponibilidad. Se puede marcar el checkbox para que no vuelva a salir más. Hacer clic en el botón Siguiente para continuar.

Seleccionar las opciones avanzadas de configuración del Quorum y hacer clic en el botón Siguiente para continuar.

Seleccionar todos los nodos para que puedan votar para desempatar en caso de caída y hacer clic en el botón Siguiente para continuar.

Seleccionar la opción Configurar un archivo compartido de testigo a fin de indicar que el testigo es una carpeta compartida en la red y hacer clic en el botón Siguiente para continuar.

Indicar la ruta de red compartida donde guardar el archivo de Witness y hacer clic en el botón Siguiente para continuar. ¡Tenéis que asegurar que el servidor y cuenta de clúster tenga acceso a este recurso compartido!

Resumen de la configuración. Hacer clic en el botón Siguiente para continuar.

Configuración realizada correctamente. Hacer clic en el botón Finalizar para cerrar el asistente.

Configuración almacenamiento máquinas virtuales Hyper-V por red

Con las opciones básicas del clúster de alta disponibilidad Hyper-V configuradas, ¿se pueden crear máquinas virtuales? Seguramente no. ¿Por que? Pues porque se tiene que delegar los permisos a los nodos de virtualización Microsoft Hyper-V para poder acceder remotamente al almacenamiento.

Abrir la consola de Usuarios y Equipos del Active Directory con permisos de administrador del dominio. (Se puede localizar desde el Administrador del Servidor, Herramientas, Usuarios y Equipos de Active Directory).

Asegurar que hay las características avanzadas de la consola habilitadas. Desde el menú Ver, asegurar el checkbox en Características avanzadas.

Localizar las cuentas de equipo de los nodos de virtualización. En esta entrada: srvHV01 y srvHV02. Botón derecho en uno de los equipos y hacer clic en Propiedades.

Hacer clic en la pestaña Delegación.

Seleccionar Confiar en este equipo para la delegación sólo de servicios concretos. Seleccionar Utilizar cualquier protocolo de autenticación y hacer clic en el botón Añadir para añadir el tipo de servicio CIFS asociado al equipo al que se tiene que conectar.

Hacer clic en el botón Usuarios o Equipos y seleccionar la cuenta del equipo que comparte los datos (la que tiene las carpetas donde se alojarán las máquinas virtuales). Al hacerlo, aparecen los servicios disponibles, seleccionar el CIFS y hacer clic en el botón OK.

Aceptar las modificaciones de las propiedades del equipo. Hacer clic en el botón OK para cerrar.

Repetir el mismo proceso en todos los nodos de virtualización Hyper-V.

Rutas por defecto de los nodos de virtualización Microsoft Hyper-V

Antes de empezar a cargar las máquinas virtuales es aconsejable modificar las rutas por defecto donde se crean estas y los discos asociados. El objetivo es que todos los nodos accedan a la misma carpeta compartida de red para poder balancear las máquinas en cualquier nodo.

Estas modificaciones se hacen en el propio nodo de virtualización Hyper-V, mediante la consola de administración de Hyper-V. Desde el Administrador del Servidor, menú HerramientasAdministración Hyper-V.

Añadir los nodos de virtualización Hyper-V que se han creado en la consola. Botón derecho en Administración Hyper-V y hacer clic en conectar a servidor.

Indicar el nombre del nodo de virtualización Hyper-V. Repetir el proceso para todos los nodos.

Seleccionar el primer nodo de virtualización y, en el menú de acciones de la derecha, hacer clic en Configuración Hyper-V.

En la ubicación de los discos virtuales, seleccionar la ruta de red que corresponda. En mi caso: \\srvdc19.jmsolanes.local\hyperv\Virtual Hard Disks\

Del menú de la izquierda, seleccionar Virtual Machines y repetir el proceso para la carpeta de configuración de máquinas virtuales.

Hacer clic en el botón OK para aceptar las modificaciones de configuración del nodo de virtualización y repetir el proceso para el resto de nodos.

 

Creación y gestión de máquinas virtuales Hyper-V en alta disponibilidad

Desde el Administrador del Servidor, menú HerramientasAdministración del Clúster de conmutación por error. Conectarse al clúster de Hyper-V, como se ha hecho anteriormente.

En el clúster, desplegar las carpetas y seleccionar la opción Roles. Botón derecho, seleccionar Máquinas Virtuales y hacer clic en Crear Nueva Máquina Virtual.

Seleccionar el nodo donde crear la nueva máquina virtual y hacer clic en el botón OK. Eso no quiere decir que sólo se ejecutará en este nodo, la máquina se puede cambiar de uno al otro cuando se necesite, pero se necesita un nodo por el que empezar.

Se inicia el asistente para crear una nueva máquina virtual. Se puede desmarcar el checkbox para que no vuelva a dar este aviso. Hacer clic en el botón Siguiente para continuar.

Indicar el nombre de la máquina virtual. Fijarse que la ubicación por defecto donde se guardará la nueva máquina virtual ya es la ruta de red que queremos. Hacer clic en el botón Siguiente para continuar.

Seleccionar la generación de la máquina virtual según corresponda. En este caso la Generación 2. Hacer clic en el botón Siguiente para continuar.

Indicar la cantidad de memoria RAM disponible para la máquina virtual y si esta será dinámica (marcando el checkbox) o estática. Hacer clic en el botón Siguiente para continuar.

Seleccionar la conexión de red, al no haber creado conmutadores virtuales no se puede conectar. Proceded según consideréis oportuno. Hacer clic en el botón  Siguiente para continuar.

Seleccionar Crear un nuevo disco duro. Indicar el nombre del disco, la ubicación (por defecto ya se crea en la ruta compartida de archivos) y el tamaño. Hacer clic en el botón Siguiente  para continuar.

Seleccionar instalar el sistema operativo ahora o más tarde. Seleccionad según consideréis y hacer clic en el botón Siguiente para continuar.

Resumen final de la creación de la máquina virtual nueva. Hacer clic en el botón Finalizar para proceder a su creación.

Perfecto, ya tenemos una nueva máquina virtual y configurada con alta disponibilidad. Hacer clic en el botón Finalizar para cerrar el asistente.

Ya podemos arrancar la nueva máquina virtual y a jugar… Botón derecho sobre la máquina virtual, en el menú, seleccionar Iniciar.

Para visualizar la consola de la máquina virtual, botón derecho y seleccionar Conectar.

Con la máquina encendida, se puede mover de un nodo de virtualización Hyper-V al otro. Botón derecho sobre la máquina virtual, seleccionar Mover. Aparecen dos opciones:

  • Migración en Vivo. Sin parar la máquina virtual ni dejar de dar servicio pasa de un nodo al otro.
  • Migración Rápida. En el proceso de cambio de un nodo al otro, la máquina se pausa, se mueve y se vuelve a encender. Por lo que hay una pérdida en el servicio.

A continuación hay que indicar a que nodo se envía:

  • Mejor nodo posible. El sistema escoge el nodo donde enviar la máquina virtual.
  • Seleccionar el nodo. Nos permite seleccionar a que nodo, concreto, se envía la máquina virtual.

El sistema migra la máquina virtual en caliente.

La máquina continúa encendida en el otro nodo.

 

¿Te ha gustado el artículo? Lo puedes compartir en las redes sociales. También puedes dejar tu opinión, comentario o sugerencia. ¡Gracias!

Similar Posts by The Author:

 

Deixar un comentari

Recorda que no es contestaran preguntes personals, només d´interés comú que ens enriqueixin a tots.
La teva adreça de correu electrònic no serà publicada. Els camps obligatoris estan indicats.

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.