La tecnología de discos de diferenciación en Hyper-V fue presentada por Microsoft hace bastante tiempo (en la versión Hyper-V para Windows Server 2008 si no me equivoco). Los discos diferenciales se utilizan para crear instantáneas (puntos de control) y son ampliamente utilizados por varios sistemas de copia de seguridad de máquinas virtuales. Al crear una instantánea o realizar una copia de seguridad, el estado actual de la máquina virtual se guarda en un archivo VHD y todos los cambios se escriben en otro disco de diferenciación.

Diferenciar discos en Hyper-V

Otra oportunidad interesante de diferenciar discos es crear una imagen básica del sistema operativo (archivo VHD) con todas las configuraciones y el software necesarios. Luego, con esta imagen, puede implementar rápidamente varias máquinas virtuales que usan el VHD de la imagen base y escribir todos los cambios en sus propios discos virtuales. Por tanto, se consiguen importantes ahorros de espacio en disco. El siguiente ejemplo muestra que el uso de discos diferenciales para 4 VM basados ​​en una sola imagen de vhd requerirá solo 40 GB de espacio en disco, y con el modelo de implementación tradicional para las mismas máquinas, necesitará 150 GB. La diferencia es bastante significativa, especialmente para unidades SSD rápidas y costosas.

Un disco de diferenciación de Hyper-V es uno de los tipos de discos virtuales admitidos. Sin embargo, a diferencia del VHD común, está rígidamente unido a otro disco principal El disco diferencial es un disco secundario y no contiene la versión completa de los datos en el disco de la VM, solo los cambios que la VM realizó durante su operación, es decir, este es el datos que lo diferencian del padre.

La imagen VHD principal (plantilla) permanece intacta y todas las máquinas virtuales secundarias creadas en la base de ella escriben los cambios en sus propios discos de diferenciación. El tamaño de un disco de diferenciación es bastante pequeño (su tamaño máximo no puede exceder el tamaño del disco principal).

Creación de una imagen de VHD de referencia

Puede crear un archivo VHD de referencia mediante la GUI de Hyper-V Manager o PowerShell. PowerShell es mucho más rápido.

Consejo. El módulo Hyper-V para Windows PowerShell debe estar instalado para usar los siguientes cmdlets:

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-Management-PowerShell

Cree un nuevo archivo VHDX.

new-vhd -path  f:vmsvhdWinSrv2016Base.vhdx -SizeBytes 50GB –Dynamic

Cree una nueva máquina virtual basada en ella:

new-vm -Name TemplateVM –Path f:vmsvhd -VHDPath f:vmsvhdWinSrv2016Base.vhdx | `
set-vmmemory -DynamicMemoryEnabled $true -MaximumBytes 2GB -MinimumBytes 512MB -StartupBytes 1GB

Monte el archivo ISO con la imagen del sistema operativo deseado:

add-vmdvddrive -VMName TemplateVM -Path d:WindowsServer2016DC.ISO

Una vez que haya creado la nueva máquina virtual, debe instalar un sistema operativo en ella. Este sistema operativo debe estar configurado adecuadamente (instalar controladores, actualizaciones y cambiar la configuración del sistema). Luego, generalice el sistema operativo para una mayor implementación utilizando Sysprep.

cd %SystemRoot%System32Sysprep
sysprep /generalize /oobe /shutdown

Por lo tanto, obtenemos una imagen de VM de referencia.

Ahora puede eliminar la propia máquina virtual (¡después de guardar su archivo VHDX!). Para evitar cambiar accidentalmente este archivo vhd, que puede bloquear todas las VM secundarias, conviértalo en ReadOnly:

Set-ItemProperty f:vmsvhdWinSrv2016Base.vhdx -Name IsReadOnly -Value $true

Creación de discos y máquinas virtuales de diferenciación en Hyper-V

Ahora puede crear varios archivos VHDx dependientes (secundarios):

New-VHD -ParentPath: f:vmsvhdWinSrv2016Base.vhdx  -Path f:vmsvhdWin2016-diff1.vhdx -Differencing
New-VHD -ParentPath: f:vmsvhdWinSrv2016Base.vhdx -Path f:vmsvhdWin2016-diff2.vhdx –Differencing

Creación de discos diferenciadores con Powershell

Al crear un disco de diferenciación utilizando la interfaz gráfica de Hyper-V Manager, seleccione VHDX-> Diferenciando como formato de disco, especifique su nombre y la ruta al disco principal.

Con estos archivos VHDx, cree dos máquinas virtuales Hyper-V:

New-VM -Name "Win2016-diff1" -Generation 2 -MemoryStartupBytes 1GB -VHDPath f:vmsvhdWin2016-diff1.vhdx  -SwitchName "External Network"
New-VM -Name "Win2016-diff2" -Generation 2 -MemoryStartupBytes 1GB -VHDPath f:vmsvhdWin2016-diff2.vhdx  -SwitchName "External Network"

Iniciarlos:

Start-VM Win2016-diff*

Fusionar discos de diferenciación en Hyper-V

En la versión de Windows 2008 R2 Hyper-V o superior, fue posible fusionar discos de diferenciación con el principal (u otro disco) sin detener la máquina virtual. Hay un cmdlet para hacerlo: Fusionar-VHD o una opción separada en el menú Editar del disco virtual en Hyper-V Manager.

Set-ItemProperty f:vmsvhdWinSrv2016Base.vhdx -Name IsReadOnly -Value $false
$Merge = @{
Path = ‘f:vmsvhdWin2016-diff2.vhdx'
DestinationPath="f:vmsvhdWin2016.vhdx"
}
Merge-VHD @Merge

Para reducir la carga del subsistema de disco mediante el acceso múltiple a un archivo vhd principal desde todas las máquinas virtuales, se recomienda colocarlo en discos rápidos. Para evitar que este archivo se convierta en el punto de falla común, piense en las estrategias de respaldo para él.

Recomendado para ti