Buenos días esta semana he tenido que realizar un estudio de los vDisk de todas las máquinas virtuales que disponia de un cluster VMware y como son cientos de máquinas, era imposible realizarlo una a una, por ello he realizado un script en PorwerCli que saca la información que necesito para realizar dicho estudio, como lo veo bastante útil lo voy a compartir con ustedes.
Gracias al comando get-HardDisk podemos sacar información muy útil de los vDisk de las máquinas virtuales, en este caso me interesaba conocer:
- Datastore
- Nombre fichero vmdk
- Formato de almacenamiento (thin o thick)
- Tipo de disco (flak, rawVirtual, rawPhysical)
- Persistencia
- Capacidad en GB
Para realizarlo he recorrido todas las máquinas virtuales y he ido sacando estas propiedades de cada máquina virtual para luego exportar todos los datos a un csv. Tambien he tenido que realizar una pequeña operación para convertir la capacidad del disco en GB ya que la información orginal es mostrada en KB. El script es el siguiente:
$clusterName='NombreCluster' $VMs = Get-Cluster $clusterName | Get-VM * $Data = @() foreach ($VM in $VMs){ $VMDKs = $VM | get-HardDisk foreach ($VMDK in $VMDKs) { if ($VMDK -ne $null){ $CapacidadGB = $VMDK.CapacityKB/1024/1024 $CapacidadGB = [int]$CapacidadGB $linea = New-Object PSObject Add-Member -InputObject $linea -MemberType NoteProperty -Name 'Maquina Virtual' $VM.Name Add-Member -InputObject $linea -MemberType NoteProperty -Name 'Datastore' $VMDK.FileName.Split(']')[0].TrimStart('[') Add-Member -InputObject $linea -MemberType NoteProperty -Name 'VMDK' $VMDK.FileName.Split(']')[1].TrimStart('[') Add-Member -InputObject $linea -MemberType NoteProperty -Name 'Formato de Almacenamiento' $VMDK.StorageFormat Add-Member -InputObject $linea -MemberType NoteProperty -Name 'Tipo de disco' $VMDK.DiskType Add-Member -InputObject $linea -MemberType NoteProperty -Name 'Persistencia' $VMDK.Persistence Add-Member -InputObject $linea -MemberType NoteProperty -Name 'CapacidadGB' $CapacidadGB $Data += $linea } } } $Data | Sort-Object VMname,Datastore | Export-Csv -Path C:\listado.csv -NoTypeInformation
El resultado sería como el siguiente:
Espero que os pueda ser útil este script, tambien podeis consultar los script anteriores:
- Como detectar Máquinas Virtuales VMware con ISO montada con PowerCli
- Listar las máquinas virtuales con interfaces distintas a vmxnet3 en PowerCli
- Migrar vm de un esxi entre todos los nodos del cluster con PowerCli
- Listar IP por una subred especifica con powercli