KVM virt-clone enquanto a VM está em execução

KVM virt-clone enquanto a VM está em execução

É possível clonar uma máquina KVM em execução sem ferramentas como o virt-clone?

Eles já têm a VM original em produção, não consigo desligá-la. Se eu não me importo com a corrupção temporária de dados (o que um fsck inicial pode corrigir) no clone, posso simplesmente copiar o arquivo de imagem qcow para um novo nome, criar uma nova definição de VM que use esse disco e iniciar a máquina?

Responder1

Se você não se importa com os dados na memória, poderá criar um instantâneo do dispositivo de apoio e fazer uma cópia desse instantâneo.

É claro que isso requer um pool de armazenamento com suporte a snapshots (principalmente LVM ou ZFS, já que o BTRFS é extremamente lento para armazenamento de máquinas virtuais).

Responder2

Eu suspeito que sejaapenasÉ possível clonar um disco evitando o uso do virt-clone, porque (como já foi mencionado) o virt-clone se recusará a trabalhar com uma VM em execução. Então você teria que usar outra coisa para fazer uma cópia da imagem real do disco.

Acho que a resposta básica é que você pode tentar e esperar ter sorte.

Obter um 'instantâneo' da configuração do convidado é bastante simples ( virsh dumpxml NAMEfará isso). Se você tiver mais de um disco (ou seja, se tiver um disco do sistema operacional e n + 1 discos de dados), tentaria evitar a clonagem do disco do sistema operacional e veria se poderia usar uma nova instalação.

No entanto, se houverqualqueroutro método além de copiar imagens de disco, eu provavelmente preferiria. Se tudo isso estivesse relacionado a um servidor de banco de dados, por exemplo, eu provavelmente usaria as próprias instalações do banco de dados para copiar os dados entre instâncias com segurança. Se você estivesse lidando diretamente com um sistema de arquivos, talvez valesse a pena ver se algo como o DRBD poderia ajudar ou se algo simples como o rsync ajudaria.

Basicamente, eu consideraria cuidadosamente o que você realmente precisa fazer e tentaria evitar gastar tempo em algo como tentar copiar uma imagem de disco que está em uso (além das questões sobre a aparência da cópia, eu teria preocupações sobre o que tentar copiar o disco pode fazer com o original).

Responder3

Eu tinha uma VM funcionando. Enquanto estava nele, fiz ssh para a máquina base KVM e copiei seu disco de backup e instantâneo para uma unidade nvme usando o arquivo cp -ar. Eu também formatei e particionei o nvme mencionado antes de copiar ... Então usei

virsh edit mykvm 

alterou o id e os locais do disco e o nome ...

e desliguei minha máquina e reiniciei a nova. A única coisa que desapareceu foram as janelas abertas e a sessão do Chrome ...

Parece estar funcionando, a menos que você esteja escrevendo alguns arquivos de sistema ou aplicativo ...

Não vou usar isso, é claro. Vou experimentar e depois de experimentar implementarei os resultados no arquivo original.

No entanto, se eu tivesse que usá-lo como um instantâneo principal do sistema operacional. Eu simplesmente faria uma verificação do sistema de arquivos e, em seguida, uma verificação dos arquivos do sistema (sha1sum) ou usaria qualquer comando integrado para verificar os arquivos do sistema.

Responder4

Isso é totalmente possível com o formato de imagem de disco RAW. Eu não sei sobre qcow2 ...

Debian.img: setor de inicialização x86; partição 1: ID=0x83, ativo, starthead 32, startsector 2048, 497664 setores; partição 2: ID = 0x5, starthead 59, startsector 501758, 104353794 setores, deslocamento de código 0x63

Debian2.img: setor de inicialização x86; partição 1: ID=0x83, ativo, starthead 32, startsector 2048, 497664 setores; partição 2: ID = 0x5, starthead 59, startsector 501758, 104353794 setores, deslocamento de código 0x63

Para teste, usei um sistema Linux Mint em execução com tudo. Em seguida, criei uma nova VM com a nova imagem, ela nem apresentava inconsistências no sistema de arquivos na inicialização. Embora esta fosse apenas uma pequena VM de desktop, o que eu estava prestes a "clonar" é um servidor LAMP em execução em produção com alta E/S no banco de dados.

Eu realmente não me importaria com inconsistências, só queria economizar algum tempo para redefinir o ambiente LAMP, acho que criar uma imagem base no início ou tirar um instantâneo do primeiro servidor web teria sido uma boa ideia, mas depois de totalmente configurado e testado, já era tarde demais, eles começaram a usá-lo na produção imediatamente.

informação relacionada