La reducción de disco no funciona en invitados ESXi


11

EHLO a todos! Mi primera publicación en la red StackOverflow :)

Estamos ejecutando cierta infraestructura de ESXi 5.0 / vCenter para alojar principalmente sistemas invitados Debian 6 / amd64 con particiones ext3 y open-vm-toolscompilados desde el origen por el error 471784 de Debian .

Tengo un problema que se ve surgir en todo Internet, pero sin una respuesta concluyente dada en ningún lado.

Al intentar reducir un disco de aprovisionamiento delgado en modo persistente independiente, sin instantáneas, padres, clones, recibo el siguiente error:

root@linux64:~# vmware-toolbox-cmd disk list
Shrink disk is disabled for this virtual machine.

Shrinking is disabled for linked clones, parents of linked clones,
pre-allocated disks, snapshots, or due to other factors.
See the User's manual for more information.

(Por cierto, ¿cuáles son los "otros factores" y cuál de la tonelada de libros blancos y manuales técnicos es el manual del usuario? :)

Sé que puedo rellenar las particiones con ceros (de hecho, lo uso shred -fuzn0cuando borro archivos grandes), luego apago el invitado en cuestión y utilizo varios métodos como vmkfstoolsclonar o vMotioning discos en modo de aprovisionamiento delgado, etc., pero todos de ellos, o bien incurren en la penalidad de tiempo de inactividad por el rechazo del invitado, o dan como resultado un movimiento injustificado de datos entre almacenes de datos y / o hosts.


Y la respuesta es: No hay reducción en ESX / ESXi (a partir de la versión 5).

La documentación dice:

IMPORTANTE La reducción de discos no está permitida en las siguientes circunstancias:

  1. La máquina virtual está alojada en un servidor ESX / ESXi. El servidor ESX / ESXi puede reducir el tamaño de un disco virtual solo cuando se exporta una máquina virtual. Sin embargo, el espacio ocupado por el disco virtual en el servidor ESX / ESXi no cambia.

  2. La máquina virtual tiene un sistema operativo invitado Mac .

  3. Usted preasignados todo el espacio de disco para el disco virtual cuando lo creó.

  4. La máquina virtual contiene una instantánea .

  5. La máquina virtual es un clon vinculado o el padre de un clon vinculado.

  6. El disco virtual es un disco independiente en modo no persistente .

  7. El sistema de archivos es un sistema de archivos de registro en diario , como un sistema de archivos ext4, xfs o jfs .

No es de extrañar que es una opción para reducir el tamaño de VMware Workstation, pero no en el cliente vSphere conectado a una instancia o ESXi vCenter.


2
¿podría mostrar un valor de la clave isolated.tools.diskShrink.disable que se puede encontrar en el archivo vmx?
cikuraku

1
No estaba ahi. Agregar aislamiento.tools.diskShrink.disable = "false" no cambió nada.
NekojiruSou

Respuestas:


3

http://www.vmware.com/pdf/vmware-tools-cli.pdf Página 13:

No se permite la reducción de discos en las siguientes circunstancias:

La máquina virtual está alojada en un servidor ESX / ESXi. El servidor ESX / ESXi puede reducir el tamaño de un disco virtual solo cuando se exporta una máquina virtual. Sin embargo, el espacio ocupado por el disco virtual en el servidor ESX / ESXi no cambia.


Triste pero cierto ...
NekojiruSou

18

En realidad, hay una manera de reducir una VM en ESXi, aunque debe apagar la VM para ello. Así es cómo:

  1. Cero todo el espacio no utilizado dentro de la VM:

    dd if=/dev/zero bs=1048576 of=/zero ; sync ; rm /zero

  2. Haga lo mismo con otros puntos de montaje, particiones de intercambio, etc.

  3. Apaga la VM.

  4. SSH a ESXi y emita este comando:

    vmkfstools -K /vmfs/volumes/volumename/vmname/vmname.vmdk

Esto llevará algún tiempo ... vmkfstools "perfora agujeros" dentro de su VMDK, por ejemplo, desasigna todos los bloques que están llenos de ceros, reduciendo efectivamente su VMDK.


66
Para Windows, puede obtener una copia de Virtual Server 2005 , extraer el archivo Precompact.iso , contiene un programa Procompact.exe que pondrá a cero todo el ritmo del disco no utilizado en Windows.
Chris S

vmkfstools no funciona cuando la VM está en un almacenamiento NFS.
Sven 31415

0

La única forma de reducir un VMDK en vSphere ESXi sería exportar o migrar / Storage vMotion a otro almacén de datos. Hago esto mucho con servidores en vivo que pueden manejar una migración (no SQL o Exchange). Un administrador de servidor anterior creó todas las máquinas virtuales con discos Thick Provisioned. Migro las máquinas virtuales de un almacén de datos a otro y cambio el VMDK a un aprovisionamiento ligero.

También puede hacer vmkfstools si el servidor está fuera de línea.


-1

La reducción de discos es posible en ESXi.

  1. Encuentra el archivo grande y bórralos.

    find / -type f -size +50M

  2. Desfragmentar (no es necesario desmontar / volver a montar nada). Ignorar cualquier error. Algunos archivos como enlaces simbólicos y archivos de dispositivos no se pueden desfragmentar.

    sudo e4defrag /

  3. Rellene con cero todo el espacio no utilizado para que VMware sepa que realmente no se utiliza:

    dd if=/dev/zero of=wipefile bs=1M; sync; rm wipefile

  4. Ejecute la operación de reducción: si 4 falla, continúe con 5.

    sudo vmware-toolbox-cmd disk shrinkonly

  5. Reinicie el sistema Linux con la opción de prueba y edite la tabla de particiones con gparted. Reduzca el sistema de archivos raíz y elimine y mueva la partición de intercambio cerca de la partición raíz.

  6. SSH a ESXi y emita este comando:

    vmkfstools -K /vmfs/volumes/volumename/vmname/vmname.vmdk

  7. Necesitamos editar el archivo * .vmdk. Después de las letras RW, define el tamaño del disco virtual VMware (VMDK)

    * 40 GB = 40 * 1024 * 1024 * 1024/512 = 83886080 *

  8. Migrarlo a otro almacén de datos para reflejar el nuevo tamaño.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.