Como posso reduzir minha imagem do VMware?

3

Eu criei uma imagem de um sistema Windows Server 2008 usando o VMware Player gratuito e defini o tamanho máximo do disco rígido para 100 GB. Eu então dei aqueles arquivos de imagem - 30GB na época - para uma empresa de hospedagem de servidores. Algumas semanas depois, pedi-lhes uma cópia deles de volta; a imagem não deve ter mudado muito em tamanho, mas os arquivos que recebi foram o tamanho total de 100 GB.

Eu não sou especialista em VMware, então tenho duas perguntas:

  1. Como / por que eles expandiram todo o disco dinâmico?
  2. Existe alguma maneira de reduzir a imagem até o tamanho que realmente contém dados?

Eu tentei o conversor do VMware, e parece que não consigo ler meu arquivo de imagem (vmdk); apenas produz um erro genérico.

    
por cc0 16.08.2011 / 07:48

3 respostas

3

Minha especulação é que, quando criaram a VM a partir de sua imagem, eles pré-alocaram o tamanho total das imagens (isso pode ter melhor desempenho). Quando eles foram exportados, você obteve a imagem completa.

Eu duvido que você possa reduzir as imagens com o VMware player. O VMware Workstation vem com o vmware-vdiskmanager que aparentemente pode converter de um disco de tamanho fixo para um disco expansível, reduzindo o tamanho da imagem. Eu nunca tentei isso, então não posso dizer como funciona bem.

O manual está aqui: link

    
por 16.08.2011 / 08:03
2

Eu não sei sobre o VMWare Player, mas o VMWare Workstation vem com o utilitário de linha de comando vmware-vdiskmanager.exe. Encontre-o na pasta C: \ Arquivos de Programas \ VMware \ VMware Workstation.

Aqui estão as opções da linha 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>)

Você pode obter uma avaliação gratuita do VMWare Workstation.

    
por 19.08.2011 / 17:13
0

Normalmente, há duas fases para encolher um disco virtual:

  1. Wiping. Isso zera os blocos não utilizados do sistema de arquivos convidado. Isso deve ser realizado dentro do convidado .
  2. Compactação. Isso remove os blocos zerados do arquivo .vmdk da fase de limpeza. Isso deve ser realizado pelo host (embora possa ser acionado pelo convidado).

A execução de vmware-vdiskmanager no host pode fazer a fase de compactação, mas não a fase de limpeza. Existem algumas maneiras de fazer a limpeza:

  • Execute vmware-toolbox-cmd disk shrink LOCATION . Execute vmware-toolbox-cmd help disk para mais informações. ( vmware-toolbox-cmd é nomeado VMwareToolboxCmd nos convidados do Windows.) Isso acionará o estágio de compactação quando a limpeza for concluída.

  • O programa vmshrink do pacote de ferramentas de terceiros da parte traseira da VM . Essa pode ser uma boa alternativa para convidados para os quais o VMware Tools não está disponível. Isso também acionará o estágio de compactação quando a limpeza for concluída.

  • Você provavelmente poderia usar dd (ou algo equivalente) no convidado, mas isso é deixado como um exercício para o leitor.

Existem também algumas circunstâncias em que a fase de limpeza não é necessária. Por exemplo, se o guest já tiver zerado o conteúdo dos arquivos ao excluí-los do sistema de arquivos ou se o guest for Windows, caso em que o VMware Workstation saberá por si próprio como inspecionar partições guest NTFS para determinar quais blocos não são utilizados .

    
por 07.04.2017 / 06:04