Blog escrito por Samuel García, consultor de infraestructuras de Microsoft.
miércoles, 30 de junio de 2010
Incrementados los límites de VM soportadas en Hyper-V R2 cluster
Se han incrementado dichos límites y ahora está soportado por nodo de clúster hasta 384 máquinas por nodo ó 1000 VM´s en total en el clúster.
La referencia a ésto la encontraís en : http://technet.microsoft.com/en-us/library/ee405267(WS.10).aspx
Powershells para ESX 4.0 con Powercli
Y como uno es así... y barriendo un poco para casa, estoy rehaciendo scripts en powershell para Vsphere Powercli . Powercli es una Snapin adicional para nuestro Powershell que nos ayudará a conectarnos a los virtualcenter y a sus respectivos ESX y trabajar con ellos directamente, acciones contra los Appliances,etc,etc,etc.
Powercli añade un catálogo de cmdlets bastante curioso. El requisito que tendremos será tener una máquina con los puertos de escucha del Virtual Center abiertos (en mi caso 443), la powershell 1.0 y que ejecutemos powercli con un usuario que esté dado de alta en la administración de VMware. La otra forma sería instalar la powercli en cada uno de los virtualcenter y ya desde allí ejecutar en local los scripts. En micaso opté por la primera opción, puesto que no quiero dejar ningún software adicional en los appliance.
Para la descarga he necesitado me proporcionen credenciales de VMware en la web :-
Bueno, aquí os paso algunos cmdlets que he usado:
Para obtener datos del HW de los ESX
Get-VMHost Get-View ForEach-Object { $_.Summary.Hardware } Select-object Vendor, Model, MemorySize, CpuModel, CpuMhz, NumCpuPkgs, NumCpuCores, NumCpuThreads, NumNics, NumHBAs
Para obtener datos de los virtual Center:
pasamos la variable
$vcversion = get-view serviceinstance
y la usamos para pedirle versionados, nombres,etc.
$vcversion.content.about select Version, Build, FullName
Otras variables y sentencias que he usado para los datos del cluster:
$clusters = Get-Cluster Sort Name
$vmhosts = Get-VMHost -Location $cluster
$NumHosts = ($vmhosts Measure-Object).Count
$vmhosts Sort Name -Descending % { $server = $_ get-view; $server.Config.Product select { $server.Name }, Version, Build, FullName }
$vms = Get-VM -Location $cluster Where {$_.PowerState -eq "PoweredOn"}
Para los snapshots:
$snap = get-vm get-snapshot
$snap select vm, name,created,description
Más info en: http://blogs.vmware.com/vipowershell/2009/09/how-to-run-powercli-scripts-from-vcenter-alarms.html
y aquí todos los nuevos cmdlets: http://www.vmware.com/support/developer/windowstoolkit/wintk40u1/html/index.html
lunes, 21 de junio de 2010
Script para añadir discos passtrough a controladoras IDE y a controladoras SCSI
Como ya sabéis, con controladora SCSI y con Windows 2008 R2 este script nos ayudará a ampliar en CALIENTE el espacio en disco de nuestras máquinas. Sistemas como Linux deberán ser con controladora IDE. Para ejecutarlos, guarda el script desde las líneas discontínuas a un bloc de notas y guardalo con extensión .ps1
Un saludo.
PARA CONTROLADORA IDE
--------------------------------------------------------------------------------------
$HyperVGuest = "Demo-VM-Passtrough"
#DAMOS DE ALTA EL ESPACIO DE NOMBRE PARA EL SCRIPT#
#SE ESTABLECE EL ESPACIO DE NOBMRE ROOT\VIRTUALIZATION PARA LA VARIABLE HYPERVGUEST#
$VMManagementService = Get-WmiObject -class "Msvm_VirtualSystemManagementService" -namespace "root\virtualization"
$Vm = Get-WmiObject -Namespace "root\virtualization" -Query "Select * From Msvm_ComputerSystem Where ElementName='$HyperVGuest'"
# SE DEFINE QUÉ CONFIGURACIÓN DE MÁQUINA NOS INTERESA INVESTIGAR #
$VMSettingData = Get-WmiObject -Namespace "root\virtualization" -Query "Associators of {$Vm} Where ResultClass=Msvm_VirtualSystemSettingData AssocClass=Msvm_SettingsDefineState"
# SE DEFINE LA CONTROLADORA QUE QUEREMOS ESCOGER: IDE CONTROLLER#
$VmIdeController = (Get-WmiObject -Namespace "root\virtualization" -Query "Associators of {$VMSettingData} Where ResultClass=Msvm_ResourceAllocationSettingData AssocClass=Msvm_VirtualSystemSettingDataComponent" |`
where-object {$_.ResourceSubType -eq "Microsoft Emulated IDE Controller" -and $_.Address -eq 0})
# SE DEFINE LA LOCALIZACIÓN DEL DISCO #
$DiskAllocationSetting = Get-WmiObject -Namespace "root\virtualization" -Query "SELECT * FROM Msvm_AllocationCapabilities WHERE ResourceSubType = 'Microsoft Physical Disk Drive'"
$DefaultHardDisk = (Get-WmiObject -Namespace "root\virtualization" -Query "Associators of {$DiskAllocationSetting} Where ResultClass=Msvm_ResourceAllocationSettingData AssocClass=Msvm_SettingsDefineCapabilities" | `
where-object {$_.InstanceID -like "*Default"})
$Disk = Get-WmiObject -Namespace "root\virtualization" -Query "select * from Msvm_DiskDrive Where DriveNumber=2"
#$Disk = Get-WmiObject -Namespace "root\virtualization" -Query "select * from Msvm_DiskDrive Where ElementName Like '%Lun 200%'"
$DefaultHardDisk.Parent = $VmIdeController.__Path
$DefaultHardDisk.Address = 0
$DefaultHardDisk.HostResource = $Disk.__PATH
#AÑADE EL DISCO VIRTUAL#
$VMManagementService.AddVirtualSystemResources($VM, $DefaultHardDisk.PSBase.GetText(1)) | ProcessWMIJob $VMManagementService "AddVirtualSystemResources"
---------------------------------------------------------------------------------
PARA CONTROLADORA SCSI
--------------------------------------------------------------------------------------
$HyperVGuest = "Demo-VM-Passtrough"
#DAMOS DE ALTA EL ESPACIO DE NOMBRE PARA EL SCRIPT#
#SE ESTABLECE EL ESPACIO DE NOBMRE ROOT\VIRTUALIZATION PARA LA VARIABLE HYPERVGUEST#
$VMManagementService = Get-WmiObject -class "Msvm_VirtualSystemManagementService" -namespace "root\virtualization"
$Vm = Get-WmiObject -Namespace "root\virtualization" -Query "Select * From Msvm_ComputerSystem Where ElementName='$HyperVGuest'"
# SE DEFINE QUÉ CONFIGURACIÓN DE MÁQUINA NOS INTERESA INVESTIGAR #
$VMSettingData = Get-WmiObject -Namespace "root\virtualization" -Query "Associators of {$Vm} Where ResultClass=Msvm_VirtualSystemSettingData AssocClass=Msvm_SettingsDefineState"
# SE DEFINE LA CONTROLADORA QUE QUEREMOS ESCOGER: SCSI CONTROLLER#
$VmScsiController = (Get-WmiObject -Namespace "root\virtualization" -Query "Associators of {$VMSettingData} Where ResultClass=Msvm_ResourceAllocationSettingData AssocClass=Msvm_VirtualSystemSettingDataComponent" | `
where-object {$_.ElementName -eq "SCSI Controller"})
# SE DEFINE LA LOCALIZACIÓN DEL DISCO #
$DiskAllocationSetting = Get-WmiObject -Namespace "root\virtualization" -Query "SELECT * FROM Msvm_AllocationCapabilities WHERE ResourceSubType = 'Microsoft Physical Disk Drive'"
$DefaultHardDisk = (Get-WmiObject -Namespace "root\virtualization" -Query "Associators of {$DiskAllocationSetting} Where ResultClass=Msvm_ResourceAllocationSettingData AssocClass=Msvm_SettingsDefineCapabilities" | `
where-object {$_.InstanceID -like "*Default"}) $Disk = Get-WmiObject -Namespace "root\virtualization" -Query "select * from Msvm_DiskDrive Where DriveNumber=2"
#$Disk = Get-WmiObject -Namespace "root\virtualization" -Query "select * from Msvm_DiskDrive Where ElementName Like '%Lun 200%'"
$DefaultHardDisk.Parent = $VmScsiController.__Path
$DefaultHardDisk.Address = 0
$DefaultHardDisk.HostResource = $Disk.__PATH
#AÑADE EL DISCO VIRTUAL#
$VMManagementService.AddVirtualSystemResources($VM, $DefaultHardDisk.PSBase.GetText(1)) | ProcessWMIJob $VMManagementService "AddVirtualSystemResources"
Lista de todas las actualizaciones posibles para Hyper-V
El equipo de producto de Microsoft revisa estos dos enlaces asiduamente, donde están ubicadas todas las actualizaciones para Hyper-V tanto para Windows 2008 como para Windows 2008 R2.
Hyper-V Update List for Windows Server 2008: http://technet.microsoft.com/en-us/library/dd430893(WS.10).aspx
Hyper-V Update List for Windows Server 2008 R2: http://technet.microsoft.com/en-us/library/ff394763(WS.10).aspx
Os recomiendo tengáis las dos urls presentes en vuestros despliegues.
viernes, 4 de junio de 2010
Pregunta en relación con las copias de seguridad e Hyper-V
El miércoles pasado me hicieron una consulta sobre copia de seguridad en Hyper-V con DPM y creo que sería positivo compartirlo con vosotros.
La pregunta venía enfocada al artículo http://technet.microsoft.com/en-us/library/dd347838.aspx en la que indica la existencia de un escenario no soportado:
Unsupported Scenarios
DPM 2007 SP1 does not support the backup of virtual machines that do not have storage on the host. However, if you have at least one virtual hard disk (VHD) of the virtual machine on the local host, DPM protects the local VHD.
Aquí os dejo mi contestación y consideraciones. DPM 2007 y DPM 2010 realiza los backups de las máquinas virtuales a través de tecnología de snapshots con Volume Shadow Services (VSS). Como ya sabréis, existe la posibilidad de “mapear” discos físicos de hosts Hyper-V a máquinas virtuales, los famosos “Pass Through Disks”. Bien, pues DPM no “soporta” el Backup directo de dichos discos pass-trough. Recordemos que en el host el disco pass-trough está físicamente despresentado, por lo tanto el administrador de discos no tiene propiedad de él y DPM no puede realizar backup de algo que no es "visible".
¿Existe solución o alternativa? Si. A la máquina virtual se le instalaría el agente de Backup de DPM y se realizará el Backup de la unidad lógica como si de una máquina física se tratara.
Un saludo, Samuel García.