Hyper-V
Introducción a la virtualización en Hyper-V
1. Introducción
La virtualización es una tecnología que se remonta a los años 70 y consiste en simular componentes de hardware en software. Hoy se puede virtualizar cualquier cosa: servidores, estaciones de trabajo cliente, dispositivos de red y almacenamiento.
Cabe señalar que la virtualización masiva de puestos de trabajo cliente se conoce como VDI (Virtual Desktop Infrastructure). Es un tema que no se tratará en este libro, que se centra en la virtualización de servidores.
La capa de software que permite la virtualización se denomina hipervisor. Existen dos tipos de hipervisor:
-
Tipo 1: el hipervisor forma parte del sistema operativo de la máquina real y habla directamente con el hardware. Hyper-V es un hipervisor de tipo 1 porque forma parte del sistema.
-
Tipo 2: el hipervisor es una aplicación que se instala sobre el sistema operativo de la máquina real. El sistema operativo actúa entonces como enlace entre el hardware y el hipervisor.
En todos los casos, la máquina real que aloja las máquinas virtuales se denomina host y las máquinas virtuales, invitados.
Hay varias formas de virtualizar y, en el contexto de la virtualización de servidores, hay dos categorías principales: cuando el hipervisor hace creer al sistema invitado que está en hardware real y cuando el sistema invitado sabe que está virtualizado y se modifica para hablar con el hipervisor.
Cuando el sistema no se modifica y no es consciente de que está virtualizado, se habla de virtualización o virtualización total o completa. Cuando el sistema se modifica para comunicarse con el hipervisor y, por tanto, es consciente de que está virtualizado, se denomina paravirtualización.
En la categoría de virtualización total aún existen varios tipos de virtualización....
Trabajo práctico Hyper-V

Las operaciones descritas en este capítulo utilizan una máquina Windows 10 para la administración remota. Tendremos dos servidores Windows Server ejecutando Hyper-V, uno en modo Core sin la GUI, HV-SERV1 y otro en instalación completa con la GUI, HV-SERV2. Por último, tendremos un controlador de dominio que también proporcionará DHCP para las máquinas invitadas.
Todas las máquinas están en el dominio y añadidas a los servidores gestionados desde los RSAT de la máquina Windows 10.
Las máquinas deben tener acceso a Internet, por ejemplo, utilizando una red puente (bridge) o NAT, en su hipervisor. El direccionamiento IP se debe adaptar en consecuencia. También puede utilizar un servidor adicional, si su máquina real lo soporta, con el papel de router como ya hemos visto en este libro.
No olvide activar la configuración del procesador para la virtualización anidada en sus máquinas virtuales. Esto ocurre a nivel del procesador de sus máquinas y la ubicación varía dependiendo del hipervisor que instale. Sin esta configuración, el rol Hyper-V no se podrá instalar en sus máquinas virtuales.
Para instalar RSAT en un equipo cliente Windows y desplegar un servidor en modo Core sin interfaz gráfica, consulte el capítulo introductorio de este libro, sección Despliegue...
Instalación del rol Hyper-V
1. Instalación con PowerShell
El servidor HV-SERV1 es un servidor sin interfaz gráfica en modo Core, que es la recomendación de Microsoft. A continuación, el rol se debe instalar mediante PowerShell.
Haga clic con el botón derecho del ratón en el servidor Core en el administrador de servidores del equipo Windows 10 y seleccione Windows PowerShell.
El comando Get-WindowsFeature -name *Hyper-V* especifica todos los roles y servicios de rol Hyper-V que se pueden instalar.

El siguiente comando instala el rol Hyper-V y Management Tools. Será necesario reiniciar el sistema.
Install-WindowsFeature -Name Hyper-V -IncludeManagementTools -restart

Una vez reiniciado el servidor Core, el administrador de servidores indicará que el rol se ha instalado correctamente.
2. Instalación en modo gráfico
La instalación en modo gráfico se realiza a través del administrador de servidores de Windows 10.
Vaya al menú Manage, luego añada roles y funciones y seleccione el servidor HV-SERV2.

Vaya a las páginas de instalación y marque el rol Hyper-V.

A continuación, el sistema preguntará qué tarjeta de red utilizar para las máquinas virtuales. Seleccione la tarjeta de red para la máquina.

A continuación, el instalador le preguntará si desea autorizar la migración...
Configuración de servidores Hyper-V
1. Grupo de administradores Hyper-V
Cuando se instala el rol Hyper-V en un servidor, el sistema crea un grupo local Hyper-V Administrators. Por defecto, no contiene miembros. Por defecto, no contiene ningún miembro.
Se puede utilizar para dar a un técnico permisos sobre Hyper-V sin darle acceso al resto de la infraestructura. Si desea que este técnico tenga permisos en todos los servidores Hyper-V, debe hacerlo miembro de este grupo localmente en cada servidor.
Utilice PowerShell para realizar esta acción, con un usuario previamente creado en Active Directory.
2. Habilitación de la virtualización anidada
La virtualización anidada (nested virtualisation) es la capacidad de crear máquinas virtuales dentro de máquinas virtuales. Es una técnica utilizada habitualmente en la nube y en centros de datos, infraestructuras VDI y entornos de prueba.
Esta operación sólo se puede realizar mediante PowerShell. La máquina virtual para la que queremos habilitar la virtualización anidada debe estar apagada.
Los requisitos mínimos para la virtualización anidada difieren en función del tipo de procesador de la máquina física:
Para procesadores Intel
-
Tecnología VT-x y EPT
-
Windows Server 2016 o posterior
-
Configuración de la máquina virtual 8 o posterior
Para procesadores AMD
-
Procesador EPYC/ryzen...
Configurar una máquina virtual
1. Configuración de la memoria
Si vamos a los parámetros de una máquina virtual, podemos ver su configuración de memoria. Aquí se ven los ajustes para la máquina core1:
a. Memoria de arranque
La primera sección muestra la cantidad de memoria asignada a la máquina cuando se creó. Esto se conoce como memoria de arranque. Si la asignación de memoria dinámica no está habilitada, entonces el servidor Hyper-V siempre asignará esta cantidad de memoria a la máquina. Este valor se puede cambiar con la máquina virtual encendida, si la memoria dinámica está deshabilitada, para máquinas Windows. Se requiere Windows 10 y posterior y Windows Server 2016 y posterior.
Si la memoria dinámica está activada, la memoria de arranque será la cantidad asignada al encender la máquina y evolucionará posteriormente.
b. Memoria dinámica
Si se habilita la asignación dinámica de memoria, bien cuando se crea la máquina como hemos hecho nosotros o bien después de crearla yendo a este menú y marcando la opción Enable dynamic memory, entonces la máquina podrá tener más memoria que el valor de arranque cuando lo necesite y consumir menos memoria cuando tenga poca actividad.
Puede especificar una cantidad mínima y máxima de RAM.
Establezca la RAM mínima para la máquina core1 en 512 MB y la RAM máxima en 2048 MB.
El siguiente ajuste es la memoria intermedia. Su valor es un porcentaje de la memoria utilizada por la máquina virtual. Es una cantidad de memoria reservada para la máquina en caso de un pico repentino de consumo de RAM. Para las máquinas Windows, también se utiliza como caché cuando el servidor tiene suficiente memoria disponible. Establezca el búfer de core1 al 10%.
c. Peso de la memoria
Esta configuración se utiliza para determinar la prioridad de esta máquina virtual, en relación con las demás máquinas alojadas en el servidor. Cuanto mayor sea la configuración, mayor será la prioridad de esta máquina en relación con las demás. Una máquina virtual que es crítica para el funcionamiento de la infraestructura debe tener una prioridad más alta...
Gestión de máquinas virtuales
1. Exportar e importar máquinas virtuales
Es posible exportar una máquina virtual e importarla al mismo servidor o a un servidor diferente, ya sea para hacer una copia adicional de la máquina virtual o para sustituirla.
a. Exportar máquinas virtuales
Vamos a exportar la máquina core1 y colocar esta exportación en una carpeta creada previamente en HV-SERV2.
Haga clic con el botón derecho del ratón en la máquina virtual en Hyper-V Manager y seleccione Export en el menú desplegable.
Elija el destino de la exportación. Se trata del recurso compartido creado previamente en el volumen ReFS. Haga clic en Export.
En el servidor HV-SERV2, la máquina ha sido exportada:
b. Importar máquinas virtuales
En la consola de gestión Hyper-V, haga clic con el botón derecho del ratón en el servidor HV-SERV2 y seleccione Import Virtual Machine.
Sáltese la primera pantalla y, en la segunda, introduzca la ruta a la carpeta de exportación de la máquina core1.
A continuación, el sistema le pedirá que elija la máquina virtual.
En el siguiente paso, elija el método de importación:
Register the virtual machine in-place : esta opción se debe utilizar si desea restaurar una máquina y las carpetas y archivos ya se encuentran en la ubicación deseada. La máquina conserva su ID. Los archivos exportados se convierten entonces en los archivos de la máquina.
Restore the virtual machine: utilice esta opción si desea conservar el ID de la máquina, pero copiar los archivos, sin tocar los archivos originales.
Copy the virtual machine: esta opción permite crear una nueva máquina con un nuevo ID a partir de la exportación, con un nuevo ID.
Elija copiar la máquina virtual para crear una nueva.
Después viene la elección de la ubicación de la máquina. Estas son las ubicaciones de servidor por defecto que utilizará.
Después de los archivos, se solicita la ubicación del disco duro de la máquina virtual. Una vez más, elija la ubicación predeterminada que se ha establecido en el servidor.
A continuación, aparece la pantalla de resumen. Haga clic en Finish. Los archivos se copiarán...
Gestión de discos de máquinas virtuales
1. Añadir y configurar discos virtuales
a. Añadir un nuevo disco
Para añadir un disco a una máquina virtual, vaya a los parámetros de la máquina y al controlador SCSI. Seleccione Hard Drive y haga clic en Add.
En el siguiente menú, elija las controladoras SCSI si hay varias y la ubicación del disco en la controladora. Es posible poner hasta 64 elementos por controladora SCSI.
También sería posible escanear el servidor en busca de discos VHDX existentes.
Haga clic en New.
Se lanza un asistente, ignore la primera página. A continuación, existe la opción de crear un disco de tamaño fijo o de asignación dinámica. También hay una opción para hacer un disco de diferenciación, del que hablaremos más adelante. Elija un disco dinámico.
A continuación, tiene que dar un nombre al disco y seleccionar una ubicación.
A continuación, debe especificar el tamaño del disco. Tenga en cuenta las opciones para copiar el contenido de un disco existente a su nuevo disco. Ya sea desde un disco en la máquina real o desde cualquier otro archivo VHDX en el servidor.
A continuación, aparece la pantalla de resumen, haga clic en Finish.
De vuelta en los parámetros de la máquina virtual, haga clic en Apply.
El disco que hemos añadido está en blanco y habrá que formatearlo en la máquina virtual.
b. Modificar un disco
Es posible modificar el disco duro de una máquina virtual después de haberla creado.
Apague la máquina virtual, ya que la única forma de realizar cambios en caliente es ampliar el disco duro.
De vuelta en los parámetros de la máquina, seleccione el disco y haga clic en Edit.
En la página siguiente, tienes tres opciones:
-
Compact: reducir el tamaño de un disco.
-
Convert: para cambiar el formato del disco a VHDX o VHD, creando un nuevo disco y copiando el contenido en él.
-
Expand: para aumentar el tamaño del disco duro. La única opción que se puede intercambiar en caliente.
Selecciona Expand.
Aumente la capacidad del disco a 200 GB.
Por último, confirme...
Gestión de redes en Hyper-V
1. Switch virtual
a. Aspectos generales
Hyper-V utiliza switchs virtuales para conectar las máquinas virtuales a la red. Existen tres tipos de switchs y funcionan en el nivel 2 del modelo OSI. Los switchs Hyper-V tienen un número ilimitado de puertos, por lo que se les puede conectar un número ilimitado de máquinas virtuales.
Switch externo: este tipo de switch permite a las máquinas virtuales comunicarse entre sí, con el servidor real y con la red física. Es el tipo de switch predeterminado que se crea al instalar Hyper-V. Solo puede haber un switch externo conectado a una tarjeta de red física.
Switch interno: con este tipo de switch, las máquinas virtuales se pueden comunicar entre sí y con la máquina real, pero no con la red física. Este tipo de switch se puede configurar para realizar NAT con la red física.
Switch privado: con un switch privado, las máquinas virtuales sólo se pueden comunicar entre sí. Se puede utilizar para crear una red backend y se conectará a una máquina virtual que actuará como router y se conectará a otro switch que será un switch externo.
Tenga en cuenta que es posible cambiar el tipo de un interruptor después de haberlo creado.
b. Vinculación de un switch externo a la tarjeta de red física
Cuando se crea un switch externo, se creará un adaptador de red al que se conectará la tarjeta de red física.
El adaptador físico de la tarjeta de red tiene su configuración deshabilitada y se añade una nueva configuración para enlazarlo con el adaptador del switch. Podemos ver en la siguiente captura de pantalla que la configuración IP de la tarjeta de red está deshabilitada y que se ha añadido una línea para vincular este adaptador al adaptador del switch.
Si nos fijamos en la configuración del adaptador del switch, sí que tiene activada la configuración IP.
Si te fijas en estas configuraciones IP, son idénticas a las de la tarjeta de red física.
Es importante entender que la tarjeta de red física pasa a través del adaptador del switch para acceder a la red real. Este comportamiento es idéntico en todas las versiones de Windows en las que Hyper-V está activado y se utilizan switchs externos. Si desea cambiar...
Réplica de Hyper-V
La réplica de Hyper-V es una función que crea una réplica de una máquina virtual en otro servidor. Esta característica debe estar activada y configurada en los servidores Hyper-V afectados.
Es posible hacer dos réplicas de la máquina original en otros dos servidores. Por lo tanto, podríamos tener una réplica de la primera réplica. La primera máquina, la original, se llama "primaria". La réplica se llama "secundaria" y la réplica de la réplica se llama "réplica extendida".
Las réplicas están apagadas, pero se actualizan con los cambios realizados en la máquina principal. Estos cambios se almacenan en puntos de restauración, y es posible tener hasta 24 puntos de restauración por máquina.
En caso de fallo, será necesario intervenir manualmente para bascular a la réplica. Es posible programar conmutaciones por error automáticas en caso de mantenimiento del servidor o de la máquina virtual original. Por último, será necesario realizar la operación en sentido inverso para devolver las máquinas virtuales a su estado inicial una vez resueltos los problemas.
1. Configuración de servidores para la réplica de Hyper-V
Desde el equipo de gestión de Windows 10, vaya a la configuración de Hyper-V para el servidor HV-SERV1 y, a continuación, a la sección Replication Configuration.
Marque la opción Enable this computer as a Replica server.
Para la autenticación, seleccione Usar Kerberos (HTTP) en el puerto 80.
A continuación, en la sección Authorization and storage, seleccione Allow replication...
Contenedores y Docker
Para desplegar contenedores en Windows Server 2022, es necesario tener instalado el rol Hyper-V y añadido el servicio de rol "contenedores". Esto le permitirá instalar Docker y crear contenedores Windows de forma sencilla. Los contenedores basados en sistemas Linux no se podrán ejecutar en Windows Server.
Tenga en cuenta que es probable que el procedimiento para instalar Docker en Windows Server cambie con bastante frecuencia.
Desde la máquina de administración, despliegue la funcionalidad Containers en HV-SERV2. Reinicie la máquina después de la instalación.

A continuación, conéctese a HV-SERV2 mediante PowerShell e introduzca el siguiente comando:
Install-Module DockerMsftProvider -Force
Se le pedirá que confirme que desea instalar NuGet.
Necesita descargar un script de instalación de Docker desde GitHub.
Invoke-WebRequest -UseBasicParsing "https://raw.githubusercontent.com/
microsoft/Windows-Containers/Main/helpful_tools/Install-DockerCE/
install-docker-ce.ps1" -o install-docker-ce.ps1
A continuación, ejecute el script con el siguiente comando:
./install-docker-ce.ps1
El resultado es el siguiente:

Docker está instalado, reinicie la máquina.
Vuelva a conectar PowerShell a HV-SERV2 y pruebe Docker con el siguiente comando:
docker --version
El comando debería dar un resultado...