Hola Comunidad;
Una de nuestras actividades como SysAdmin es la creación de maquinas virtuales, pero a veces estas actividades lo hacemos en conjunto con otros compañeros de trabajo y a alguno se le puede olvidar eliminar el VHD o VHDX de la Maquina Virtual asociada.
Hoy les vengo a compartir un Script de como poder encontrar estos Discos Virtuales Huérfanos en un Entorno de Cluster sobre Windows Server 2012 R2.
El creador de este Script es Bas Roovers – Onpremisys, el cual sirve para ejecutarse en entornos Cluster que comparten un mismo almacenamiento.
$clusterNodes = Get-ClusterNode | Select-Object Name -ExpandProperty Name if(!$clusterNodes){Throw "No nodes found, please run this script on one of the nodes."} Write-Host "The following nodes are part of the cluster: " $clusterNodes | ForEach-Object { Write-Host "- $($_.Name)" } Write-Host "" Write-Host "Fetch VHDs from nodes: " -NoNewline $ActiveVHDs = (Get-VM -ComputerName $clusterNodes | Get-VMHardDiskDrive | Select-Object -Property Path).Path Write-Host "V" -ForegroundColor Green Write-Host "" Write-Host "Fetch VHDs from storage: " -NoNewline $HyperVFileLocation = ("C:\ClusterStorage") $Dir = Get-ChildItem $HyperVFileLocation -Recurse -ErrorAction Ignore | Where-Object {$_.FullName -notmatch "\\Replica\\?" } $AllVHDs = ($Dir | Where-Object { $_.Extension -eq ".vhd" }).FullName + ($Dir | Where-Object { $_.Extension -eq ".vhdx" }).FullName Write-Host "V" -ForegroundColor Green Write-Host "" Write-Host "Compare VHDs of storage with nodes: " -NoNewline $orphanedVHDs = @() foreach($vhd in $AllVHDs){ if($vhd -notin $ActiveVHDs){ $orphanedVHDs += $vhd } } Write-Host "V" -ForegroundColor Green Write-Host "" if($orphanedVHDs){ Write-Host "List of orphaned VHDs:" $orphanedVHDs } else { Write-Host "Nice work, no orphaned VHDs found!" -ForegroundColor Green }
Lo que tenemos que hacer es abrir el PowerShell ISE en uno de los nodos que conforma nuestro Cluster, ejecutar el Script y esperar unos segundos (o minutos) dependiendo de la cantidad de maquinas virtuales que tengamos configurados.
Luego, nos mostrará los resultados el cual lo que mas nos interesa es la lista de VHD Huérfanos (2).
Con ello, podremos realizar nuestras actividades de mantenimiento de manera manual (borrar el VHD, realizar Backup, etc.) y luego lo podemos ejecutar nuevamente para verificar que ya se encuentra todo OK.
Muchas Gracias.