Como fazer backup de máquinas virtuais em um host ESXi independente?


17

Host independente do ESXi (4.1) sem nenhum vCenter Server.

Como fazer backup de máquinas virtuais o mais rápido e fácil de armazenar possível?

Eu sei que posso acessar o console do ESXi e usar o cpcomando padrão do Unix , mas isso diminui a cópia de todos os arquivos do VMDK, não apenas do espaço realmente usado; portanto, para um VMDK de 30 GB dos quais apenas 1 GB é usado, o backup ocupará 30 GB de espaço e tempo apropriados.

E sim, eu sei sobre discos virtuais thin-provisioned, mas eles tendem a se comportar muito mal quando copiados fisicamente e / ou explodir no tamanho total provisionado; Além disso, eles não são recomendados para o desempenho real da VM.

Não há problema em desligar as VMs antes de fazer o backup delas (ou seja, não preciso de backups "ativos"); mas preciso de uma maneira de copiá-los com eficiência; e sim, uma maneira de automatizar o desligamento / inicialização ao fazer um backup também ajudaria.

Eu só tenho ESXi; sem console de serviço, sem vCenter Server ... qual é a melhor maneira de lidar com essa tarefa? Além disso, e as restaurações?

Respostas:


17

Minha solução preferida para isso é simplesmente exportá-los para um arquivo ovf ou ova usando o cliente vSphere ou a linha de comando ovftool .

No vSphere Client, verifique se a VM está desativada, realce-a e vá para Arquivo-> Exportar-> Exportar modelo OVF. Em seguida, basta seguir as instruções.

Restaurar é fácil, basta fazer o inverso (a opção do menu é "Implantar modelo OVF", eu acho).

Para criar um backup fino usando o ovftool

ovftool -dm=thin  vi://<user>@<esxi-host>/<vm-name> <local-file>.ovf

Você também pode conferir algumas das opções em http://www.virtuallyghetto.com/ , sei que são muito populares e acho que existem algumas boas opções para backups, embora não tenha visto nenhuma delas muito recentemente.


O backup e restauração de OVF parecem funcionar muito bem como opção de backup do VMWare de um homem pobre. Eventualmente, pretendo automatizar o uso do cli ovftool, mas desligar a vm dentro do script enquanto o backup é executado será a parte mais complicada.
steampowered

OVF é muito lento. Se você deseja evitar o tempo de inatividade, pode usar o Web client para clonar uma VM em execução pagando pelo vMotion, depois encerrar e fazer backup do clone. Sem tempo de inatividade.
steampowered

5

Não sei se isso é adequado para você, mas o VM Explorer faz um bom trabalho ao executar backups quentes ou frios de máquinas virtuais. Acredito que, com o ESXi 4.1, o VM Explorer permita que você execute backups de convidados de VM de um host para outro.


Vou ter que olhar mais para isso, mas desde o início vejo algo de que gosto - licenciado por instalação.
Chadddada

A versão básica é gratuita
Matthew Bloqueio

Bom notar que isso não é mais livre, o nível mais baixo é "profissional" em US $ 699
Douglas Gaskell

4

Acabei escrevendo um script que copia os arquivos de configuração da VM e usa vmkfstools -dpara clonar os VMDKs, preservando o thin provisioning.

Para referência:

#!/bin/sh

if [ $# != 2 ]; then
        echo "Usage: $(basename $0) <SOURCE VM PATH> <DESTINATION PATH>"
        echo "Example: $(basename $0) /vmfs/volumes/datastore1/VM1 /vmfs/volumes/datastore2"
        exit
fi

vmx=$(basename $(/bin/ls $1/*.vmx))
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)}')
vmdks=$(grep vmdk $1/$vmx | /bin/awk -F\" '{print $(NF-1)}')

echo "Started copying VM $name"

vmdir=$(basename $1)
destpath="$2/$vmdir"

echo "Source path: $1"
echo "Destination path: $destpath"

echo "Creating destination path $destpath"
/bin/mkdir -p $destpath

echo "Copying configuration files:"
echo $vmx
/bin/cp $1/$vmx $destpath
echo $vmxf
/bin/cp $1/$vmxf $destpath
echo $nvram
/bin/cp $1/$nvram $destpath

echo "Copying virtual disks:"
for vmdk in $vmdks;
do
        echo $vmdk
        /sbin/vmkfstools -d thin -i $1/$vmdk $destpath/$vmdk
done

echo "Completed copying VM $name"

Isso requer que a VM seja desligada e não tenha instantâneos ativos.


Oi, que tal preguiçoso?
rovshango 9/09/15

Ótimo script para @Massimo, mas tive que adicionar aspas duplas à atribuição da vmx para evitar erro de sintaxe do nome da base: vmx = $ (nome da base "$ (/ bin / ls $ 1 / *. Vmx)"). Mas agora, se o caminho $ 1 contiver espaços, ele trava porque $ 1 não é citado. Não consegui me livrar desse problema. Qualquer ideia?
Blazeag

4

Eu tentaria usar uma solução comprovada de algum tipo, em vez de criar sua própria. A redução de problemas, tempo e risco se pagará facilmente, mesmo se você optar por uma solução que não seja gratuita. Todos esses problemas com os quais você está preocupado são abordados em qualquer solução de backup moderna para ESXi.

A solução que um cliente usa em seu ambiente ESXi com boa sorte é a Veeam. Existe até uma edição gratuita que pode atender às suas necessidades: https://www.veeam.com/virtual-machine-backup-solution-free.html


11
A edição gratuita ainda precisa do licenciamento do ESXi.
Overmind

@Overmind Você está absolutamente correto. Eu esqueci que isso não funciona (ironicamente, talvez) com a edição gratuita do vSphere Hypervisor.
Josh Richards

2

O Ghetto VCB pode fazer o backup enquanto a máquina está em execução. Para o espaço, você pode usar um sistema de arquivos com desduplicação + compactação como lessfs no servidor de backup.


1

XSIBackup é um serviço ESXi que é executado no SO do hipervisor ESXi e tem uma área útil mínima. Na verdade, seus usuários não perceberão que há um backup em segundo plano.

Ele oferece duas ferramentas diferentes: XSIBackup-Free e XSIBackup-Pro.

O XSIBackup-Free oferece todos os recursos presentes na versão Pro, como:

  • Backups quentes
  • Cron scheduling
  • Backups diferenciais instantâneos (OneDiff)
  • Desduplicação no nível do bloco nativo mais compactação nos datastores locais e nos servidores Linux (XSITools).

A versão Pro oferece todas as ferramentas acima, além de ferramentas estendidas que agilizam suas transferências de dados (XSIDiff), certificação de backup via soma de verificação, métodos rápidos de comparação de arquivos e uma GUI SSH (Interface Gráfica do Usuário) que permite configurar todas as opções de um assistente, acelerando a configuração de tarefas de backup.

https://33hops.com/xsibackup-pro-vmware-esxi-backup.html


0

Também estou exportando para o formato OVF. É bom porque comprime a imagem em tempo real com gzip.

Mas as licenças acabaram, porque com a importação de um arquivo OVF para um ESXI, uma máquina com novo hardware é criada.

Solução:

Faço backup (download) da pasta de arquivos da máquina virtual sem a imagem grande e os comprimo.

A pasta ovf e a cópia compactada dos arquivos de imagem virtual (sem imagem grande) - estão na mesma pasta.

Restaurando:

-> Importar OVF para ESXI e fazer upload da configuração descompactada (da pasta de arquivos de backup) -> A máquina virtual está boa novamente

ismail


0

cpio pode copiar arquivos esparsos, preservando os "buracos" neles.


AFAIK, não havia nenhuma ferramenta que pudesse manipular arquivos sparse.vmdk de forma nativa, além do vmkfstools, que é limitado para copiar arquivos em um sistema de arquivos local. Por isso, criamos o (c) XSIDiff como parte de nosso conjunto de ferramentas para o ESXi. Ele copia apenas os blocos usados ​​como vmkfstools, mas você pode copiar dados pelo SSH e também como um aplicativo cliente / servidor TCP / IP. Você pode baixar uma versão de trabalho livre aqui: 33hops.com/download-xsidiff-trial.html
Daniel J.
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.