¿Cómo puedo reducir mi imagen de VMware?

¿Cómo puedo reducir mi imagen de VMware?

Creé una imagen de un sistema Windows Server 2008 usando el VMware Player gratuito y configuré el tamaño máximo del disco duro en 100 GB. Luego entregué esos archivos de imagen (30 GB en ese momento) a una empresa de alojamiento de servidores. Unas semanas más tarde les pedí que me devolvieran una copia; La imagen no debería haber cambiado mucho de tamaño, pero los archivos que recuperé tenían un tamaño completo de 100 GB.

No soy un experto en VMware en absoluto, así que tengo dos preguntas:

  1. ¿Cómo/por qué ampliaron todo el disco dinámico?
  2. ¿Hay alguna manera de poder reducir esta imagen al tamaño que realmente contiene datos?

Probé el convertidor de VMware y parece que no puede leer mi archivo de imagen (vmdk); simplemente genera un error genérico.

Respuesta1

Mi especulación es que cuando crearon la VM a partir de su imagen, preasignaron el tamaño completo de las imágenes (esto puede tener un mejor rendimiento). Cuando los exportaron obtuviste la imagen completa.

Dudo que puedas reducir las imágenes con el reproductor VMware. VMware Workstation viene con vmware-vdiskmanager que aparentemente puede convertir de un disco de tamaño fijo a un disco ampliable, reduciendo el tamaño de la imagen. Nunca he probado esto así que no puedo decir qué tan bien funciona.

El manual está aquí:http://www.vmware.com/support/developer/vddk/vddk12_diskmanager.pdf

Respuesta2

No conozco VMWare Player, pero VMWare Workstation viene con la utilidad de línea de comandos vmware-vdiskmanager.exe. Encuéntrelo en la carpeta C:\Program Files\VMware\VMware Workstation.

Aquí están las opciones de la línea de comando:

    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>)

Puede obtener una prueba gratuita de VMWare Workstation.

Respuesta3

Normalmente hay dos fases para reducir un disco virtual:

  1. Limpiando. Esto pone a cero los bloques no utilizados del sistema de archivos invitado. Esto debe realizarse dentro del huésped..
  2. Compactación. Esto elimina los bloques puestos a cero del archivo .vmdk de la fase de limpieza. Esto debe ser realizado por el anfitrión.(aunque puede ser activado por el huésped).

La ejecución vmware-vdiskmanageren el host puede realizar la fase de compactación pero no la fase de limpieza. Hay algunas formas de realizar la limpieza:

  • Correr vmware-toolbox-cmd disk shrink LOCATION. Corre vmware-toolbox-cmd help diskpara más información. ( vmware-toolbox-cmdse nombra VMwareToolboxCmden los invitados de Windows). Esto activará la etapa de compactación cuando se complete el borrado.

  • El vmshrinkprograma de laPaquete de herramientas de terceros VM Back. Esta puede ser una buena alternativa para invitados para los que VMware Tools no está disponible. Esto también activará la etapa de compactación cuando se complete el barrido.

  • Probablemente podrías usar dd(o algo equivalente) en el invitado, pero eso queda como ejercicio para el lector.

También hay algunas circunstancias en las que la fase de limpieza no es necesaria. Por ejemplo, si el invitado ya pone a cero el contenido de los archivos al eliminarlos del sistema de archivos, o si el invitado es Windows, en cuyo caso VMware Workstation sabe por sí solo cómo inspeccionar las particiones invitadas NTFS para determinar qué bloques no se utilizan. .

información relacionada