Mova a VMware ESXi VM para o novo armazenamento de dados - preserve o thin-provisioning

27

Estou procurando uma boa solução para um problema de ambiente do VMware ESXi em que não haja vCenter disponível.

Qual é a melhor maneira de mover uma VM de um armazenamento de dados para outro em um único host ESXi, mantendo o provisionamento dinâmico do VMDK?

Este é um servidor independente que foi expandido com outra matriz / armazenamento de dados da unidade. Eu gostaria de mover os dados contidos na matriz antiga para a nova.

Editar: o tamanho do armazenamento de dados de destino é realmente menor que a origem. Não tenho espaço suficiente para copiar o arquivo espesso.

ewwhite
fonte
Você realmente acha que é aconselhável mover uma VM para um armazenamento de dados em que ela é pequena demais para caber? O que acontece com algum processo não autorizado na VM que decide usar todo o espaço de armazenamento?
Zoredache
Em geral, não ... mas este é um caso especial. A VM não vai crescer.
ewwhite
Se a VM não crescer, não há razão para mantê-la thin provisioned.
22712 Jim B
Qual versão do ESXi?
precisa
Este é o ESXi 5. #
22412 as

Respostas:

21

Você também pode usar Arquivo -> Exportar -> Exportar modelo OVF

e depois importe-o. A última vez que tentei, acho que isso preserva o formato vmdk. Não tenho tanta certeza agora quanto já faz algum tempo.

johnshen64
fonte
3
Supondo que a versão 4.1 ou mais recente, você será solicitado a usar fina ou grossa quando importada.
precisa
2
Você entendeu! A exportação OVF para um arquivo esparso de compactação foi rápida e indolor. Foi-me dada a opção de provisão fina ou espessa na importação, e a importação foi rápida; 5 minutos para uma máquina virtual de 72 GB (8 GB usada).
ewwhite
3
FWIW, você também pode fazer isso em uma linha de comandos usando o ovftool.
precisa
28

Acabei de encontrar uma maneira de fazer isso sozinho. Aqui está, espero, um guia fácil de seguir sobre como mover sua VM para um novo armazenamento de dados, preservando o provisionamento dinâmico durante a transferência (reduzindo também o tempo de transferência):

Guia passo a passo usando vmkfstools na CLI

  1. Desligar a VM
  2. (Opcional) Consolide instantâneos, se necessário.
  3. Remova a VM do inventário do vCenter
    • Clique com o botão direito do mouse em VM e clique em "Remover do inventário" insira a descrição da imagem aqui
  4. Ativar SSH na máquina ESXi
    • No cliente vSphere, acesse: Configuração -> Perfil de segurança -> Propriedades (ao lado de Serviços) -> SSH (na lista) -> Opções -> Iniciar
  5. Efetue login via SSH como root
  6. Prepare um diretório no armazenamento de dados de destino
    • mkdir "/vmfs/volumes/destination_datastore/Some VM"
  7. Clone os arquivos .vmdk usando thin provisioning
    • vmkfstools -i "/vmfs/volumes/source_datastore/Some VM/Some VM.vmdk" -d thin "/vmfs/volumes/destination_datastore/Some VM/Some VM.vmdk"
  8. Copie os arquivos restantes (evitando a substituição dos arquivos .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. Se você não consolidou os snapshots na etapa 2, pode haver arquivos delta .vmdk do snapshot, também precisamos copiá-los (isso pode levar algum tempo):
    • 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. Depois de clonar e copiar todos os arquivos necessários, adicione a VM do novo armazenamento de dados ao inventário
    • No cliente vSphere, vá para: Configuração-> Armazenamento-> Navegador de Dados , clique com o botão direito do mouse no armazenamento de dados de destino para o qual você moveu sua VM e clique em "Procurar no armazenamento de dados". insira a descrição da imagem aqui
  11. Navegue até sua VM e clique com o botão direito do mouse no arquivo .vmx e clique em "Adicionar ao inventário" insira a descrição da imagem aqui
  12. Inicialize a VM para ver se ela funciona, quando perguntado se você a copiou ou mudou, basta responder que você a copiou. (Não sei ao certo o que isso significa, mas acho que isso tem a ver pelo menos com o endereço MAC da vNIC sendo alterado.) insira a descrição da imagem aqui
  13. Se a VM inicializar bem, você poderá remover a VM do armazenamento de dados antigo.
    • rm -rf "/vmfs/volumes/source_datastore/Some VM"

Nota: Testado apenas com ESXi 5

Ilustrações copiadas descaradamente deste blog .

ohaal
fonte
11
Isso deve funcionar, mas mesmo fornecendo informações sobre como mover uma VM com instantâneos é bobagem. Diga às pessoas para remover todos os instantâneos antes de tentar uma movimentação como esta.
22413 Pauska
2
A publicação de @ ohaal acima, no esxi 5.5 u1, teve que mudar o -print0 para -print e funcionou como um encanto! PS. Eu votaria, mas não representaria.
Icereval 01/04
2
@ohaal verificado para funcionar no ESXi 6.7. Obrigado!
Ed of the Mountain
Existe um motivo para copiar outros arquivos além do .vmdk e do .vmx? Se não houver, você pode transformar a findlinha em simples cp.
Agustín Lado
8

Confira esta resposta . A mesma lógica se aplica à sua situação, a saber, esta citação:

Chama-se "Conversor", mas realmente deve ser chamado de "Movedor de dados de SO para todos os fins". No entanto, não sai da língua tão bem.

A única diferença é que os hosts de origem e destino serão os mesmos, mas os datastores serão diferentes. Isso significa que os arquivos serão transferidos do host ESXi para a máquina Converter e depois voltarão para o host. Seria bom se o Converter fosse "inteligente" e soubesse que era o mesmo host. Infelizmente, isso custa dinheiro.

CAVEAT: a conversão da VM gerará um novo endereço MAC para qualquer adaptador de rede. A maioria dos sistemas operacionais convidados interpreta isso como um novo dispositivo.

Joel E Salas
fonte
11
Um excelente ponto sobre os endereços MAC.
21413 JamesBarnett
3

Na verdade, basta criar a pasta no destino, copie os arquivos da pasta da fonte e ela permanecerá fina. Se você copiar a pasta, ela converterá de fina para grossa.

Vidar
fonte
2
Isto está incorreto. verificado usando o du -h .Thin tornou-se espesso quando copiado para uma pasta já criada no mesmo armazenamento de dados. cp C* ../newdir
Rowan Hawkins
0

Eu copiava o arquivo e depois reconvertia para thin via vmkfstools.

Jim B
fonte
O tamanho do armazenamento de dados de destino é realmente menor que a origem. Não tenho espaço suficiente para copiar o arquivo espesso.
ewwhite
Nesse caso, copiar e reconverter não funcionará, mas você também pode usar o vmkfstools para cloná-lo diretamente no destino. Isso também reduzirá o tempo necessário para transferi-lo, pois não transfere os GBs extras de zeros. Minha resposta contém detalhes sobre como fazê-lo.
ohaal