Wie kann ich mein VMware-Image verkleinern?

Wie kann ich mein VMware-Image verkleinern?

Ich habe mit dem kostenlosen VMware Player ein Image eines Windows Server 2008-Systems erstellt und die maximale Festplattengröße auf 100 GB eingestellt. Dann habe ich diese Image-Dateien – damals 30 GB groß – an ein Server-Hosting-Unternehmen weitergegeben. Ein paar Wochen später habe ich sie um eine Kopie gebeten. Die Größe des Images sollte sich nicht wesentlich geändert haben, aber die Dateien, die ich zurückbekam, waren die vollen 100 GB groß.

Ich bin überhaupt kein VMware-Experte, daher habe ich zwei Fragen:

  1. Wie/warum haben sie die gesamte dynamische Festplatte erweitert?
  2. Gibt es eine Möglichkeit, dieses Bild auf die Größe zu verkleinern, die tatsächlich Daten enthält?

Ich habe den VMware-Konverter ausprobiert, aber er kann meine Image-Datei (vmdk) anscheinend nicht lesen. Er gibt nur einen allgemeinen Fehler aus.

Antwort1

Ich vermute, dass sie beim Erstellen der VM aus Ihrem Image die volle Größe der Images vorab zugewiesen haben (das kann zu einer besseren Leistung führen). Beim Exportieren haben Sie das vollständige Image erhalten.

Ich bezweifle, dass Sie die Images mit VMware Player verkleinern können. VMware Workstation wird mit vmware-vdiskmanager geliefert, der anscheinend von einer Festplatte mit fester Größe zu einer erweiterbaren Festplatte konvertieren kann, wodurch die Größe des Images verringert wird. Ich habe das nie ausprobiert und kann daher nicht sagen, wie gut es funktioniert.

Die Anleitung finden Sie hier:http://www.vmware.com/support/developer/vddk/vddk12_diskmanager.pdf

Antwort2

Ich weiß nichts über VMWare Player, aber VMWare Workstation wird mit dem Befehlszeilenprogramm vmware-vdiskmanager.exe geliefert. Sie finden es im Ordner C:\Programme\VMware\VMware Workstation.

Hier sind die Befehlszeilenoptionen:

    VMware Virtual Disk Manager - build 385536.
    Usage: vmware-vdiskmanager.exe OPTIONS <disk-name> | <mount-point>
    Offline disk manipulation utility
      Operations, only one may be specified at a time:
         -c                   : create disk.  Additional creation options must
                                be specified.  Only local virtual disks can be
                                created.
         -d                   : defragment the specified virtual disk. Only
                                local virtual disks may be defragmented.
         -k                   : shrink the specified virtual disk. Only local
                                virtual disks may be shrunk.
         -n <source-disk>     : rename the specified virtual disk; need to
                                specify destination disk-name. Only local virtual
                                disks may be renamed.
         -p                   : prepare the mounted virtual disk specified by
                                the mount point for shrinking.
         -r <source-disk>     : convert the specified disk; need to specify
                                destination disk-type.  For local destination disks
                                the disk type must be specified.
         -x <new-capacity>    : expand the disk to the specified capacity. Only
                                local virtual disks may be expanded.
         -R                   : check a sparse virtual disk for consistency and attempt
                                to repair any errors.
         -D                   : make disk deletable.  This should only be used on disks
                                that have been copied from another product.

      Other Options:
         -q                   : do not log messages

      Additional options for create and convert:
         -a <adapter>         : (for use with -c only) adapter type
                                (ide, buslogic, lsilogic). Pass lsilogic for other adapter types.
         -s <size>            : capacity of the virtual disk
         -t <disk-type>       : disk type id

      Options for remote disks:
         -h <hostname>        : hostname of remote server
         -u <username>        : username for remote server
         -f <filename>        : file containing password
         -P <port>            : optional TCP port number (default: 902)
         -S                   : specifies that the source disk is remote, by default
                                the remote options are assumed to refer to the
                                destination.
      Disk types:
          0                   : single growable virtual disk
          1                   : growable virtual disk split in 2GB files
          2                   : preallocated virtual disk
          3                   : preallocated virtual disk split in 2GB files
          4                   : preallocated ESX-type virtual disk
          5                   : compressed disk optimized for streaming
          6                   : thin provisioned virtual disk - ESX 3.x and above

         The capacity can be specified in sectors, KB, MB or GB.
         The acceptable ranges:
                               ide adapter : [1MB, 2040.0GB]
                               scsi adapter: [1MB, 2040.0GB]
            ex 1: vmware-vdiskmanager.exe -c -s 850MB -a ide -t 0 myIdeDisk.vmdk
            ex 2: vmware-vdiskmanager.exe -d myDisk.vmdk
            ex 3: vmware-vdiskmanager.exe -r sourceDisk.vmdk -t 0 destinationDisk.vmdk
            ex 4: vmware-vdiskmanager.exe -x 36GB myDisk.vmdk
            ex 5: vmware-vdiskmanager.exe -n sourceName.vmdk destinationName.vmdk
            ex 6: vmware-vdiskmanager.exe -r sourceDisk.vmdk -t 4 -h esx-name.mycompany.com \
                  -u username -f passwordfile "[storage1]/path/to/targetDisk.vmdk"
            ex 7: vmware-vdiskmanager.exe -k myDisk.vmdk
            ex 8: vmware-vdiskmanager.exe -p <mount-point>
                  (A virtual disk first needs to be mounted at <mount-point>)

Sie können eine kostenlose Testversion von VMWare Workstation erhalten.

Antwort3

Das Verkleinern einer virtuellen Festplatte erfolgt normalerweise in zwei Phasen:

  1. Abwischen. Dadurch werden ungenutzte Blöcke des Gastdateisystems auf Null gesetzt. Dies muss innerhalb des Gastes durchgeführt werden.
  2. Verdichten. Dadurch werden die auf Null gesetzten Blöcke der VMDK-Datei aus der Löschphase entfernt. Dies muss vom Gastgeber durchgeführt werden(obwohl es vom Gast ausgelöst werden kann).

Die Ausführung vmware-vdiskmanagerauf dem Host kann die Komprimierungsphase durchführen, jedoch nicht die Löschphase. Es gibt mehrere Möglichkeiten, das Löschen durchzuführen:

  • Ausführen vmware-toolbox-cmd disk shrink LOCATION. Klicken Sie auf „Ausführen“, vmware-toolbox-cmd help diskum weitere Informationen zu erhalten. ( vmware-toolbox-cmdWird VMwareToolboxCmdauf Windows-Gastsystemen so genannt.) Dadurch wird die Komprimierungsphase ausgelöst, wenn der Löschvorgang abgeschlossen ist.

  • Das vmshrinkProgramm aus demVM Back - Drittanbieter-Toolpaket. Dies kann eine gute Alternative für Gäste sein, für die VMware Tools nicht verfügbar ist. Dadurch wird auch die Komprimierungsphase ausgelöst, wenn das Löschen abgeschlossen ist.

  • ddSie könnten wahrscheinlich (oder etwas Gleichwertiges) im Gast verwenden , aber das bleibt dem Leser als Übung überlassen.

Es gibt auch einige Umstände, unter denen die Löschphase nicht erforderlich ist. Beispielsweise wenn der Gast den Inhalt von Dateien beim Löschen aus dem Dateisystem bereits auf Null gesetzt hat oder wenn es sich bei dem Gast um Windows handelt. In diesem Fall weiß VMware Workstation selbst, wie NTFS-Gastpartitionen überprüft werden, um festzustellen, welche Blöcke nicht verwendet werden.

verwandte Informationen