Mueva VMware ESXi VM a un nuevo almacén de datos: conserve el aprovisionamiento delgado

27

Estoy buscando una buena solución para un problema de entorno VMware ESXi donde no hay vCenter disponible.

¿Cuál es la mejor manera de mover una VM de un almacén de datos a otro en un único host ESXi, mientras se mantiene el aprovisionamiento delgado de VMDK?

Este es un servidor independiente que se ha ampliado con otra unidad de disco / almacén de datos. Me gustaría mover los datos contenidos en la matriz anterior a la nueva.

Editar: el tamaño del almacén de datos de destino es en realidad más pequeño que el de origen. No tengo suficiente espacio para copiar el archivo grueso.

ewwhite
fuente
¿Realmente crees que es aconsejable mover una VM a un almacén de datos que es demasiado pequeño para caber? ¿Qué sucede con algún proceso deshonesto en el que VM decide utilizar todo el espacio de almacenamiento?
Zoredache
En general, no ... pero este es un caso especial. La VM no crecerá.
ewwhite
Si la máquina virtual no crece, no hay razón para mantener su aprovisionamiento delgado.
Jim B
¿Qué versión de ESXi?
Jed Daniels
Esto es ESXi 5.
ewwhite

Respuestas:

21

También puede usar Archivo -> Exportar -> Exportar plantilla OVF

y luego importarlo. La última vez que lo probé, creo que esto conserva el formato vmdk. No estoy tan seguro ahora, ya que ha pasado bastante tiempo.

johnshen64
fuente
3
Asumiendo la versión 4.1 o posterior, se le pedirá que use thin o thick cuando se importe.
Jed Daniels
2
¡Lo tienes! La exportación de OVF a un archivo escaso de compresión fue rápida e indolora. Me dieron una opción de aprovisionamiento delgado o grueso al importar, y la importación fue rápida; 5 minutos para una máquina virtual de 72 GB (se usan 8 GB).
ewwhite
3
FWIW, también puedes hacer esto desde una línea de comando usando ovftool.
Jed Daniels
28

Acabo de encontrar una manera de hacer esto yo mismo. Aquí hay una guía, con suerte, fácil de seguir sobre cómo mover su VM a un nuevo almacén de datos mientras se preserva el aprovisionamiento delgado durante la transferencia (lo que también reduce los tiempos de transferencia):

Guía paso a paso usando vmkfstools en la CLI

  1. Apagar VM
  2. (Opcional) Consolide las instantáneas si es necesario.
  3. Eliminar VM del inventario de vCenter
    • Haga clic derecho en VM y haga clic en "Eliminar del inventario" ingrese la descripción de la imagen aquí
  4. Habilite SSH en la máquina ESXi
    • En el cliente vSphere, vaya a: Configuración -> Perfil de seguridad -> Propiedades (junto a Servicios) -> SSH (en la lista) -> Opciones -> Iniciar
  5. Inicie sesión a través de SSH como root
  6. Prepare un directorio en el almacén de datos de destino.
    • mkdir "/vmfs/volumes/destination_datastore/Some VM"
  7. Clonar los archivos .vmdk usando aprovisionamiento delgado
    • vmkfstools -i "/vmfs/volumes/source_datastore/Some VM/Some VM.vmdk" -d thin "/vmfs/volumes/destination_datastore/Some VM/Some VM.vmdk"
  8. Copie los archivos restantes (evitando sobrescribir los archivos .vmdk)
    • find "/vmfs/volumes/source_datastore/Some VM" -maxdepth 1 -type f | grep -v ".vmdk" | while read file; do cp "$file" "/vmfs/volumes/destination_datastore/Some VM"; done
  9. Si no consolidó las instantáneas en el paso 2, es posible que haya archivos .vmdk delta de instantáneas, también debemos copiarlos (esto puede llevar algo de tiempo):
    • find "/vmfs/volumes/source_datastore/Some VM" -maxdepth 1 -type f | grep [0123456789][0123456789][0123456789][0123456789][0123456789][0123456789] | grep ".vmdk" | while read file; do cp "$file" "/vmfs/volumes/destination_datastore/Some VM"; done
  10. Una vez que haya terminado de clonar y copiar todos los archivos necesarios, agregue la VM del nuevo almacén de datos nuevamente al inventario
    • En el cliente vSphere, vaya a: Configuración-> Almacenamiento-> Explorador de datos , haga clic con el botón derecho en el almacén de datos de destino al que movió su VM y haga clic en "Examinar almacén de datos". ingrese la descripción de la imagen aquí
  11. Busque su VM y haga clic derecho en el archivo .vmx , luego haga clic en "Agregar al inventario" ingrese la descripción de la imagen aquí
  12. Inicie la VM para ver si funciona, cuando se le pregunte si la copió o movió, solo responda que la copió. (No estoy seguro de lo que esto significa, pero creo que tiene que ver al menos con el cambio de la dirección MAC de la vNIC). ingrese la descripción de la imagen aquí
  13. Si la VM arranca bien, puede eliminar la VM del antiguo almacén de datos.
    • rm -rf "/vmfs/volumes/source_datastore/Some VM"

Nota: Solo probado con ESXi 5

Ilustraciones descaradamente copiadas de este blog .

ohaal
fuente
1
Esto debería funcionar, pero incluso proporcionar información sobre cómo mover una VM con instantáneas es una tontería. Indique a las personas que eliminen todas las instantáneas antes de intentar un movimiento como este.
pauska
2
¡La publicación de @ ohaal anterior, en esxi 5.5 u1, tuvo que cambiar el -print0 a -print y funcionó de maravilla! PD. Lo votaría pero no hay representante.
icereval 01 de
2
@ohaal verificado para trabajar en ESXi 6.7. ¡Gracias!
Ed of the Mountain
¿Hay alguna razón para copiar sobre cualquier otro archivo aparte de .vmdk y .vmx? Si no existe, puede cambiar la findlínea a simple cp.
Agustín Lado
8

Mira esta respuesta . La misma lógica se aplica en su situación, a saber, esta cita:

Se llama "Convertidor", pero en realidad debería llamarse "Transportador de datos de SO de uso múltiple" Sin embargo, no sale tan bien de la lengua.

La única diferencia es que los hosts de origen y destino serán los mismos, pero los almacenes de datos serán diferentes. Esto significa que los archivos irán del host ESXi a la máquina del convertidor y luego de regreso al host. Sería bueno si Converter fuera "inteligente" y supiera que es el mismo host. Desafortunadamente, eso cuesta dinero.

PRUEBA: La conversión de la VM generará una nueva dirección MAC para cualquier adaptador de red. La mayoría de los sistemas operativos invitados interpretan esto como un nuevo dispositivo.

Joel E Salas
fuente
1
Un excelente punto sobre las direcciones MAC.
JamesBarnett
3

En realidad, simplemente cree la carpeta en el destino de destino, luego copie los archivos en la carpeta desde el origen y se mantendrá delgada. Si copia la carpeta, se convertirá de delgada a gruesa.

Vidar
fuente
2
Esto es incorrecto. verificado usando du -h .Thin se volvió grueso cuando se copió a una carpeta ya creada en el mismo almacén de datos. cp C* ../newdir
Rowan Hawkins el
0

Copiaría el archivo y luego lo convertiría a thin a través de vmkfstools.

Jim B
fuente
El tamaño del almacén de datos de destino es en realidad más pequeño que el de origen. No tengo suficiente espacio para copiar el archivo grueso.
ewwhite
En ese caso, copiar y reconvertir no funcionará, pero también puede usar vmkfstools para clonarlo directamente en el destino. Esto también reducirá el tiempo necesario para transferirlo, ya que no transfiere los GB adicionales de ceros. Mi respuesta contiene detalles sobre cómo hacerlo.
2013