Как мне сжать образ VMware?

Как мне сжать образ VMware?

Я создал образ системы Windows Server 2008 с помощью бесплатного VMware Player и установил максимальный размер жесткого диска в 100 ГБ. Затем я отдал эти файлы образов — на тот момент 30 ГБ — компании, предоставляющей услуги хостинга серверов. Несколько недель спустя я попросил их вернуть мне копию; образ не должен был сильно измениться в размере, но файлы, которые я получил обратно, были размером в 100 ГБ.

Я совсем не эксперт по VMware, поэтому у меня два вопроса:

  1. Как/зачем они расширили весь динамический диск?
  2. Есть ли способ уменьшить это изображение до размера, который действительно содержит данные?

Я попробовал конвертер VMware, но он, похоже, не может прочитать мой файл образа (vmdk); он просто выдает общую ошибку.

решение1

Я предполагаю, что когда они создавали виртуальную машину из вашего образа, они предварительно выделили полный размер образов (это может иметь лучшую производительность). Когда они их экспортировали, вы получили полный образ.

Сомневаюсь, что можно сжать образы с помощью VMware player. VMware Workstation поставляется с vmware-vdiskmanager, который, по-видимому, может преобразовывать фиксированный размер диска в расширяемый, уменьшая размер образа. Я никогда не пробовал это, поэтому не могу сказать, насколько хорошо это работает.

Руководство здесь:http://www.vmware.com/support/developer/vddk/vddk12_diskmanager.pdf

решение2

Я не знаю о VMWare Player, но VMWare Workstation поставляется с утилитой командной строки vmware-vdiskmanager.exe. Найдите ее в папке C:\Program Files\VMware\VMware Workstation.

Вот параметры командной строки:

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

Вы можете получить бесплатную пробную версию VMWare Workstation.

решение3

Обычно сжатие виртуального диска происходит в два этапа:

  1. Вытирание. Это обнуляет неиспользуемые блоки гостевой файловой системы. Это должно быть выполнено в гостевой.
  2. Уплотнение. Это удаляет обнуленные блоки файла .vmdk из фазы очистки. Это должно быть выполнено хостом.(хотя это может быть вызвано гостем).

Запуск vmware-vdiskmanagerна хосте может выполнить фазу уплотнения, но не фазу очистки. Есть несколько способов выполнить очистку:

  • Запустите vmware-toolbox-cmd disk shrink LOCATION. Запустите vmware-toolbox-cmd help diskдля получения дополнительной информации. ( vmware-toolbox-cmdназывается VMwareToolboxCmdв гостевых системах Windows.) Это запустит этап сжатия после завершения очистки.

  • Программа vmshrinkотПакет инструментов сторонних разработчиков VM Back. Это может быть хорошей альтернативой для гостей, для которых VMware Tools недоступен. Это также запустит стадию уплотнения после завершения очистки.

  • Вероятно, вы могли бы использовать dd(или что-то эквивалентное) в гостевой строке, но это оставлено в качестве упражнения для читателя.

Существуют также некоторые обстоятельства, когда фаза очистки не является необходимой. Например, если гость уже обнулил содержимое файлов при их удалении из файловой системы или если гость — это Windows, в этом случае VMware Workstation самостоятельно знает, как проверять гостевые разделы NTFS, чтобы определить, какие блоки не используются.

Связанный контент