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