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-tools
compilados 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 -fuzn0
cuando borro archivos grandes), luego apago el invitado en cuestión y utilizo varios métodos como vmkfstools
clonar 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:
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.
La máquina virtual tiene un sistema operativo invitado Mac .
Usted preasignados todo el espacio de disco para el disco virtual cuando lo creó.
La máquina virtual contiene una instantánea .
La máquina virtual es un clon vinculado o el padre de un clon vinculado.
El disco virtual es un disco independiente en modo no persistente .
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.
Respuestas:
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.
fuente
En realidad, hay una manera de reducir una VM en ESXi, aunque debe apagar la VM para ello. Así es cómo:
Cero todo el espacio no utilizado dentro de la VM:
dd if=/dev/zero bs=1048576 of=/zero ; sync ; rm /zero
Haga lo mismo con otros puntos de montaje, particiones de intercambio, etc.
Apaga la VM.
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.
fuente
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.
fuente
La reducción de discos es posible en ESXi.
Encuentra el archivo grande y bórralos.
find / -type f -size +50M
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 /
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
Ejecute la operación de reducción: si 4 falla, continúe con 5.
sudo vmware-toolbox-cmd disk shrinkonly
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.
SSH a ESXi y emita este comando:
vmkfstools -K /vmfs/volumes/volumename/vmname/vmname.vmdk
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 *
Migrarlo a otro almacén de datos para reflejar el nuevo tamaño.
fuente