Revista Tecnología

Listar las propiedades de los vDisk de Máquinas Virtuales VMware con PowerCli

Publicado el 15 diciembre 2014 por Dbigcloud @dbigcloud

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:

 

listado vdisk por DBigCloud

 

Espero que os pueda ser útil este script, tambien podeis consultar los script anteriores:



Volver a la Portada de Logo Paperblog