VHD/VHDX vDisk Datei komprimieren

Hyper-V & XenServer VHD vDisks wachsen mit der Zeit an, da nicht mehr benötigter Speicherplatz nicht automatisch freigegeben wird. Um die Datei wieder zu verkleinern, kann sie komprimiert werden.

diskpart
DISKPART> select vdisk file="<Path to vDisk>\<vDisk>.vhd/.vhdx"
DISKPART> attach vdisk readonly
DISKPART> compact vdisk
DISKPART> detach vdisk
DISKPART> exit
exit

1 Antwort

  1. GoaMetz sagt:

    Heho,

    … hier eine etwas aufgehübschte Version die im Grunde das Gleiche für alle heruntergefahrenen virtuellen Maschienen tut und über die Ergebnisse informiert.

    # Enumeriert VHDX aller ausgeschalteten virtuellen Maschinen und führt ein 'Optimize-VHD -Mode Full' durch
    $VMs = Get-VM
    $VMsArray = @()
    $VMs | ForEach-Object { $VMsArray += $_.Name }
    foreach($VMname in $VMsArray){
    # prüfe ob die VM läuft
    Write-Host
    if ((Get-VM -Name $VMname).State -eq "Off" -and (Get-VMCheckpoint -VMName $VMname) -eq $null) {
    # enumeriere alle zur VM gehörigen VHDX und wende Optimierungen an
    Write-Host " VM: $VMname " -NoNewLine -ForegroundColor Black -BackgroundColor Yellow
    Write-Host " "
    foreach ($Path in ((Get-VMHardDiskDrive $VMname).Path)) {
    Write-Host "bearbeite VHDX:" $Path
    $PathFileSize = (Get-VHD -Path $Path).FileSize/ 1GB
    $vorhergesamt += $PathFileSize; $vorher = $PathFileSize
    Write-Host "vorher: $([math]::truncate($($PathFileSize))) GB / " -NoNewLine -ForegroundColor Yellow
    Mount-VHD -Path $Path -NoDriveLetter -ReadOnly
    Optimize-VHD -Path $Path -Mode Full
    $PathFileSize = (Get-VHD -Path $Path).FileSize/ 1GB
    Write-Host "nacher: $([math]::truncate($($PathFileSize))) GB / " -NoNewLine -ForegroundColor Green
    Write-Host "gespart: $([math]::truncate($($vorher - $PathFileSize))) GB" -ForegroundColor Red
    $nachergesamt += $PathFileSize
    Dismount-VHD -Path $Path
    }
    } else { Write-Host " VM: $VMname " -NoNewLine -ForegroundColor Black -BackgroundColor Yellow
    Write-Host " -> " -NoNewLine
    Write-Host " übersprungen weil VM aktiv oder Prüfpunkte vorhanden " -NoNewLine -ForegroundColor DarkBlue -BackgroundColor Gray
    Write-Host " "
    Write-Host
    }
    }
    Write-Host
    Write-Host "Gesamtergebnis:" -ForegroundColor White
    Write-Host "---------------"
    Write-Host " vorher: $([math]::truncate($($vorhergesamt))) GB" -ForegroundColor Black -BackgroundColor Yellow
    Write-Host " nacher: $([math]::truncate($($nachergesamt))) GB" -ForegroundColor Black -BackgroundColor Green
    Write-Host " gespart: $([math]::truncate($($vorhergesamt - $nachergesamt))) GB" -ForegroundColor White -BackgroundColor DarkRed
    Write-Host "---------------"
    Write-Host

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.