PowerShell – Hyper-V: Tareas básicas

El módulo de Hyper-V para Windows PowerShell en Windows Server 2012 incluye más de 160 cmdlets para automatizar las tareas de administración de Hyper-V.

A continuación se presentan algunas operaciones básicas que realizamos con frecuencia con Hyper-V y como se podrían recrear por medio de PowerShell.

El uso de estos comandos es el punto de partida, sabiendo que se puede construir una serie de secuencias de comandos complejas utilizando varios cmdlets en diferentes escenarios.

Habilitar rol de Hyper-V

Lo primero que podemos verificar es si esta instalado el rol, para ello:

Get-WindowsFeature Hyper-V*

Y habilitamos el rol de la siguiente manera:

Install-WindowsFeature –Name Hyper-V –Restart –IncludeAllSubFeature –IncludeManagementTools

Nota: Este comando reiniciará el servidor, se recomienda guardar los datos antes de ejecutarlo.

Crear una Maquina Virtual

Lo primero que pensamos cuando hablamos de automatizar tareas en Hyper-V es crear maquinas virtuales.

Vamos a ver que tan facil es crear uan VM desde PowerShell, con el siguiente comando:

New-VM [[-Name] \] \[[-MemoryStartupBytes\] ] -NewVHDPath -NewVHDSizeBytes \[-AsJob\] \[-BootDevice \] \[-ComputerName <String[]> \] \[-Path \] \[-SwitchName \] \[ \]

Aca tenemos un ejemplo para crear una VM :

New-VM -Name Server01 –MemoryStartupBytes 1GB -NewVHDPath c:Server01.vhd -NewVHDSizeBytes 60GB

De la misma manera podemos crear un Switch Virtual mediante una sola línea de codigo, con el siguiente comando:

New-VMSwitch [-Name] -NetAdapterName [-AllowManagementOS \] \[-ComputerName <String[\]> ] \[-EnableIov \] \[-MinimumBandwidthMode \] \[-Notes \] \[ \]

Este sería un ejemplo para crear un Switch Virtual:

New-VMSwitch –Name VSWITCH -NetAdapterName “Ethernet 2”

Hyper-V Live Migration:

La migración en vivo con Hyper-V es posible con o sin storage, del mismo modo que si se encuentra en un clúster o no. Se pueden especificar direcciones IP para utilizar exclusivamente en la migración, como tambien se pueden establecer varias migraciones de maquinas virtuales al mismo tiempo permitiendo una mayor flexibilidad.

Para habilitar Live Migration, simplemente debemos ejecutar:

Enable-VMMigration

Para iniciar una migracion de una VM, debemos de ejecutar este comando:

Move-VM [-Name] [-DestinationHost] [-AsJob\] \[-ComputerName <String[\]> ] \[-DestinationStoragePath \] \[-IncludeStorage\] \[-Passthru\] \[-ResourcePoolName \] \[-RetainVhdCopiesOnSource\] \[-SmartPagingFilePath \] \[-SnapshotFilePath \] \[-Vhds <Hashtable[\]> ] \[-VirtualMachinePath \] \[-Confirm\] \[-WhatIf\] \[ \]

Un ejemplo de uso:

Move-VM –Name Server01 –DestinationHost Host01 –DestinationStoragePath ‘C:VMS’

Además, dependiendo del ancho de banda, se pueden realizar múltiples migraciones en vivo. Esto puede ser controlado ajustando la cantidad de migraciones utilizando la siguiente linea de PowerShell:

Set-VMHost –MaximumVirtualMachineMigrations [number]

Saludos.

Comments