Script para Clonar VM no VMware ESXi com modo de disco thin
Recentemente precisei clonar uma máquina virtual que estava ocupando muito espaço em disco, porém a VM não tinha o disco virtual cheio.
Minha solução foi clonar a máquina virtual atual para uma nova máquina virtual, e para isso usei este script que faço uso constante dele.
Segue o script: (execute este por meio do SSH)
#!/bin/sh
if [ $# != 2 ]; then
echo "Uso: $(basename $0) <CAMINHO DE ORIGEM DA VM> <CAMINHO DE DESTINO>"
echo
echo " 1) Funciona somente com VM's com um unico .vmdk"
echo " 2) A VM deve estar Desligada"
echo " 3) Nao deve haver snapshots ativos da VM"
echo
echo "Exemplo: $(basename $0) /vmfs/volumes/datastore1/VM1 /vmfs/volumes/datastore2"
exit
fi
vmx_path=$(/bin/ls "$1"/*.vmx)
vmx=$(basename "$vmx_path")
name=$(grep displayName "$1/$vmx" | /bin/awk -F\" '{print $(NF-1)}')
vmxf=$(grep vmxf "$1/$vmx" | /bin/awk -F\" '{print $(NF-1)}')
nvram=$(grep nvram "$1/$vmx" | /bin/awk -F\" '{print $(NF-1)}')
vmdk=$(grep vmdk "$1/$vmx" | /bin/awk -F\" '{print $(NF-1)}')
echo "Iniciado a copia da VM '$name'"
vmdir=$(basename "$1")
destpath="$2/$vmdir"
echo "Caminho de Origem: $1"
echo "Caminho de Destino: $destpath"
echo "Criando o caminho de destino: '$destpath'"
/bin/mkdir -p "$destpath"
echo "Copiando os arquivos de configuracoes:"
echo "vmx: $vmx"
/bin/cp "$1/$vmx" "$destpath"
echo "vmxf: $vmxf"
/bin/cp "$1/$vmxf" "$destpath"
echo "nvram: $nvram"
/bin/cp "$1/$nvram" "$destpath"
echo "Copiando o Disco Virtual:"
echo "vmdk: $vmdk"
/sbin/vmkfstools -d thin -i "$1/$vmdk" "$destpath/$vmdk"
echo "Concluida a copia da VM: '$name'"
Visitor Rating: 5 Stars