Usando instantâneos LVM para clones de máquina virtual KVM

5

Então, eu tenho uma instalação KVM muito legal rodando agora, CentOS 5.5 nos domínios host e guest, libvirt gerenciando toda a configuração, etc. Os sistemas de arquivos de guest são armazenados em LVM sobre um volume RAID5 de hardware , então eu tenho flexibilidade para backups e redundância de dados de baixo nível.

Testei o virt-clone hoje e ele funcionou incrivelmente bem, exceto que demorou cerca de 30 minutos para replicar 24G de dados dos discos LVM do domínio suspenso para os novos volumes de LVM da nova máquina virtual.

A minha pergunta é: não posso usar apenas um instantâneo LVM para criar o novo disco raiz da VM? Por exemplo: lvcreate -s guest1_root -n guest2_root -L 8G raid_vg

Agora, minha compreensão dos snapshots do LVM é que o snapshot armazena um delta inverso das alterações feitas nos blocos originais, de modo que o snapshot ocupa pouco espaço real e os blocos originais podem ser lidos mesmo após o volume original ter sido escrito para. O LVM2 adiciona instantâneos de leitura e gravação, o que abre essa interessante possibilidade.

De fato, o LVM HOWTO sugere até mesmo o uso desse recurso em conjunto com Xen:

This opens up many new possibilities that were not possible with LVM1's read-only snapshots. (...) It is also useful for creating volumes for use with Xen. You can create a disk image, then snapshot it and modify the snapshot for a particular domU instance. You can then create another snapshot of the original volume, and modify that one for a different domU instance. Since the only storage used by a snapshot is blocks that were changed on the origin or the snapshot, the majority of the volume is shared by the domU's.

Isso parece ser uma ferramenta muito poderosa, e estou imaginando se alguém já experimentou isso em seu ambiente de virtualização de produção, pode pensar em qualquer fornecedor (Citrix, VMWare) que use essa abordagem ou possa pensar em problemas sérios com esta ideia. Eu posso pensar nos seguintes possíveis problemas:

  • Possíveis problemas no sistema de arquivos se o convidado "original" estiver sendo executado no momento do instantâneo.
  • O desempenho LVM do domínio do host como os logs "delta inverso" e "bloco gravado" são anexados. Pode ser muito rápido, mas eu não sei, e isso parece uma ideia estranha, então é preciso testes e benchmarking.
  • Mais ovos em uma cesta: se o volume LVM "original" for corrompido, os volumes instantâneos também serão apagados. Claro, o RAID5 mitiga a corrupção de disco, mas é importante notar.
  • Você pode tirar uma foto instantânea? Eu suponho que sim.

Como as pessoas que provavelmente têm mais experiência de virtualização do que eu, há algo que faça querer sair gritando com essa configuração?

    
por phred 29.07.2010 / 23:34

3 respostas

4

Está perfeitamente bem fazer isso. O que você faz não quer é ter o pai do instantâneo (o original, ou a fonte, ou o que você quiser chamá-lo) para estar em uso ao mesmo tempo, porque isso causará o I / O multiplicação (Hubert estava certo sobre isso, é apenas fácil de evitar por não usar o volume de origem o tempo todo).

Se você tiver um sistema operacional mestre instalado em um LVM e fizer um instantâneo quatro vezes, não haverá muito de uma penalidade de E / S, pois estará gravando apenas nos volumes de instantâneos individuais. Naturalmente, não é livre, mas também não são outras formas de captura instantânea em outros sistemas de arquivos ou discos virtuais. Há sempre um custo em algum lugar.

Uma outra coisa sobre a qual Hubert está certo é que você tem que pensar sobre o tamanho de seus instantâneos. Você desejará certificar-se de que os volumes de instantâneos possam continuar sendo gravados. Um volume instantâneo completo vai quebrar mal as coisas. Uma maneira segura de evitar isso é tornar o volume do instantâneo do mesmo tamanho (ou maior) que o volume de origem. Você perde o benefício de usar menos espaço em disco dessa maneira.

Você sabe que as imagens qemu são capazes de tirar fotos também?

    
por 30.09.2010 / 11:41
4

Embora eu não tenha experimentado o LVM para armazenamento em KVM, usei-o para o recurso de volume de sombra do samba e posso lhe dizer uma coisa: o desempenho foi péssimo.

Cada instantâneo requer uma gravação adicional para acontecer. Se você tiver um volume baseado em instantâneo base e 4 instantâneos, a quantidade de gravações que vai para as unidades será multiplicada por 5 quando você gravar no volume base.

Quanto às suas perguntas específicas:

  • O LVM congela um sistema de arquivos enquanto o instantâneo ocorre (interrompe as gravações, limpa o cache, faz o instantâneo, continua as gravações)
  • como eu disse, é muito lento
  • Sim, o volume base corrompido torna todos os instantâneos inutilizáveis. Além disso, se você ficar sem espaço alocado para os deltas de captura instantânea, o instantâneo também será escolhido
  • sim, você pode tirar um instantâneo de um instantâneo

Infelizmente, existem apenas 3 sistemas que eu conheço que funcionam bem com snapshots: NetApp WAFL, ZFS e btrfs. Se o sistema não é crítico, o btrfs pode valer a pena.

    
por 29.09.2010 / 22:54
0

Eu diria que o ZFS pode valer a pena, é possível configurar um sistema baseado em Nexenta, suportado por algum tipo de disco, seja fibra, iscsi, etc, com bastante facilidade, e tem um desempenho muito bom. Eu recomendaria essa abordagem sobre o armazenamento local se o desempenho não fosse absolutamente crítico em qualquer dia, já que isso forneceria um cenário de recuperação simples se o servidor de virtualização fosse desativado.

    
por 29.09.2010 / 23:13