Capturas instantâneas LVM como estratégia de backup

16

Qual a viabilidade de uma estratégia de backup ser instantâneos periódicos de LVM de xen domU's? Prós, contras, quaisquer dicas?

Para mim, parece a solução perfeita para uma restauração rápida e sem cérebro. Qualquer investigação poderia ocorrer no volume lógico quebrado com a execução bem-sucedida sem interrupção.

EDITAR:

Aqui é onde estou agora, ao fazer backups completos do sistema.

  • instantâneo lvm do disco domU
  • um novo volume lógico cujo tamanho é igual ao tamanho do instantâneo.
  • dd if = / dev / instantâneo de = / dev / new_lv
  • eliminando o instantâneo com lvremove
  • verificação opcional com kpartx / mount / ls

Agora preciso automatizar isso.

    
por Karolis T. 11.06.2009 / 12:08

9 respostas

30

Os instantâneos do LVM servem para capturar o sistema de arquivos em um estado congelado. Eles não devem ser um backup em si mesmos. Eles são, no entanto, úteis para obter imagens de backup que sejam consistentes porque a imagem congelada não pode e não será alterada durante o processo de backup. Portanto, embora você não as use diretamente para fazer backups de longo prazo, elas serão de grande valor em qualquer processo de backup que você decida usar.

Existem alguns passos para implementar um instantâneo. A primeira é que um novo volume lógico deve ser alocado. O objetivo deste volume é fornecer uma área na qual os deltas (alterações) do sistema de arquivos são registrados. Isso permite que o volume original continue sem interromper qualquer acesso de leitura / gravação existente. A desvantagem disso é que a área do instantâneo é de tamanho finito, o que significa que, em um sistema com gravações ocupadas, ele pode ser preenchido rapidamente. Para volumes que possuem atividade de gravação significativa, você desejará aumentar o tamanho do seu instantâneo para permitir espaço suficiente para todas as alterações serem registradas. Se o instantâneo estourar (enche), o instantâneo será interrompido e será marcado como inutilizável. Caso isso aconteça, você desejará liberar seu instantâneo para que o volume original fique on-line novamente. Quando a liberação estiver completa, você poderá remontar o volume como leitura / gravação e disponibilizar o sistema de arquivos disponível nele.

A segunda coisa que acontece é que o LVM agora "troca" os propósitos reais dos volumes em questão. Você poderia pensar que o instantâneo recém-alocado seria o local para procurar por quaisquer alterações no sistema de arquivos, afinal, é para onde todas as gravações estão indo, certo? Não, é o contrário. Os sistemas de arquivos são montados em de volume do LVM , então trocar o nome de debaixo do resto do sistema seria um não-não (porque o instantâneo usa um diferente nome). Portanto, a solução aqui é simples: quando você acessa o nome do volume original, ele continua a se referir à versão ao vivo (leitura / gravação) do volume do qual você fez o instantâneo. O volume da captura instantânea que você criar se referirá à versão congelada (somente leitura) do volume que você pretende fazer backup. Um pouco confuso no começo, mas fará sentido.

Tudo isso acontece em menos de 2 segundos. O resto do sistema nem percebe. A menos, claro, que você não libere o instantâneo antes que ele transborde ...

Em algum momento, você desejará liberar seu instantâneo para recuperar o espaço que ele ocupa. Quando a liberação estiver concluída, o volume da captura instantânea será liberado de volta para o volume e o original permanecerá.

Eu não recomendo seguir isso como uma estratégia de backup de longo prazo. Você ainda está hospedando dados na mesma unidade física que pode falhar e a recuperação de seu sistema de arquivos de uma unidade que falhou não contém nenhum backup.

Então, em poucas palavras:

  • Os instantâneos são bons para auxiliar os backups
  • Os instantâneos não são, por si só, uma forma de backup
  • Os instantâneos não duram para sempre
  • Um instantâneo completo não é uma coisa boa
  • Os instantâneos precisam ser lançados em algum momento
  • O LVM é seu amigo, se você usá-lo com sabedoria.
por 11.06.2009 / 16:44
9

Os instantâneos do LVM são ótimos para fazer backup do seu servidor sem colocá-lo offline. Como afirmado, os instantâneos do LVM são cópias quase instantâneas. Você os cria usando o comando lvcreate da mesma forma que você criaria o próprio LV, somente você dá a opção --snapshot e o LV original ao invés do VG. Por exemplo:

lvcreate -L <LV size> -s -n <snapshot name> /dev/<VG name>/<LV name>

Isso criará um instantâneo do LV determinado com o nome do instantâneo especificado que você poderá montar e usar esse LV de instantâneo para executar seu backup sem se preocupar com o uso ativo dos arquivos. Isso é particularmente útil se você estiver tentando fazer backup de um servidor de banco de dados ativo.

Após concluir o backup do snapshot, você poderá removê-lo para reduzir qualquer sobrecarga de E / S adicional ou outros problemas de desempenho, como outros mencionaram usando:

lvremove /dev/<VG name>/<snapshot name>

Embora os instantâneos do LVM possam ser inestimáveis na produção de um backup confiável de sistemas como bancos de dados e que você normalmente deseja desligar para evitar a contenção de arquivos, eles não são ideais para operações de longo prazo como uma restauração rápida.

    
por 11.06.2009 / 15:38
8

Não é uma boa ideia, IMO.

Os instantâneos são implementados de maneira copy-on-write para que você converta todas as gravações em uma leitura e duas gravações (o bloco em que você está atualizando é lido primeiro no volume principal e armazenado no volume do instantâneo antes de novos dados é lugar em seu lugar), então você verá alguma degradação de desempenho se muita escrita for comum nas VMs.

Além disso, se o volume da captura instantânea ficar cheio, o IIRC é simplesmente descartado sem a menor cerimônia. Isso não é bom para fins de backup! Portanto, se você tentar isso como um método de backup, certifique-se de tornar o volume da captura instantânea grande o suficiente para lidar com todas as alterações que ocorrerão durante a vida útil da captura instantânea. É claro que se você conhece e monitora o problema de tamanho e o problema de desempenho não é um problema para você, então o que você sugere pode ser uma adição útil a outros processos de backup que você possui.

Os instantâneos do LVM são muito úteis como parte de um processo de backup (fazer um instantâneo, fazer backup do instantâneo para outro local para garantir que o backup seja consistente sem precisar desabilitar as atualizações do volume "real" elimine o instantâneo depois), conheça outras coisas, mas não seja uma instalação de backup por conta própria.

    
por 11.06.2009 / 12:38
5

Você precisará garantir que os dados no disco estejam em um estado consistente antes que a captura instantânea seja feita. por exemplo. O mysql pode ter dados em cache na memória que precisam ser forçados para o disco, seja descarregando o banco de dados ou desligando-o. Consulte os manuais de aplicativos para detalhes.

    
por 11.06.2009 / 13:11
4

Abaixo do material inteligente, o LVMs é, na verdade, 'apenas' um truque de mapeador de dispositivos. Criar um snapshot com o lvcreate não é muito mais do que um wrapper para algumas coisas do dmsetup. O wrapper cria um novo dispositivo (o volume da captura instantânea) de um volume antigo (o lv original) e um novo (o volume de cópia na gravação). Junto com isso, o LV original é renomeado para -real (veja abaixo, que é dmsetup ls - output de árvore). Este -real LV é mapeado para o volume da captura instantânea e o volume original, para que possa ser usado em ambos os locais. O volume de cópia na gravação funciona como uma sobreposição para o -real LV. O -snap LV mostra a combinação do volume de cópia na gravação e o volume real. Isso realmente cria alguma sobrecarga de desempenho.

Volume00-snap (253:11)
 |-Volume00-snap-cow (253:13)
 |  '- (104:2)
 '-Volume00-LogVol01-real (253:12)
    '- (104:2)

Volume00-LogVol01 (253:5)
 '-Volume00-LogVol01-real (253:12)
    '- (104:2)

Ao remover o instantâneo, novamente alguns renomeamentos e mapeamentos acontecem. Depois, a situação será novamente parecida com

Volume00-LogVol01 (253:5)
 '- (104:2)

Quanto a isso, este é um bom método de fazer backup de coisas: pode ser, se você levar em conta, isso (1) não ajudará na RAM de máquinas virtuais, (2) criará uma penalidade de desempenho e (3) você precisará armazenar imagens do instantâneo em outro lugar.

O VMware VCB também funciona com snapshots, a não ser os LVM.

    
por 11.06.2009 / 16:35
3

Mesmo que os instantâneos não tenham nenhum impacto no desempenho, é necessário entender: Os instantâneos não são mais de um backup do que uma cópia para outra pasta no mesmo disco.

Se o disco travar, seus dados e seu backup serão perdidos. Mesmo se você atribuir a área de instantâneo a outro PE no VG, ele conterá somente os dados modificados desde o instantâneo.

Fazer backup significa uma cópia, pelo menos, para uma unidade completamente separada como requisito mínimo.

    
por 11.06.2009 / 15:55
3

Eu uso essa configuração para instantâneos de máquinas servidoras vmware e bancos de dados mysql. funciona bem até agora. houve algumas restaurações - tudo sem problemas. Uma coisa a considerar - enquanto estiver rodando com snapshot lvm, obtém um desempenho significativo para operações de i / o. olhe aqui . ignore o fato de eles falarem sobre o mysql, operações de i / o são operações de i / o ... não importa que tipo de dados esteja no lvm.

    
por 11.06.2009 / 12:37
1

Eu uso instantâneos lvm apenas para copiar o DomU Lv em outro em um Vg separado, onde cada Domínio tem três "nós" de backup para o seu descarte.

Depois disso, o instantâneo é destruído e os backups de Lv permanecem até a próxima rodada. Se eu tiver uma restauração para fazer, eu só tenho que escolher uma fonte Lv do backup Vg e copiá-lo para o domínio Lv.

De vez em quando, um backup Lv é despejado em um arquivo de imagem em um servidor separado.

Tudo isso é automatizado via script, com um backup a cada dois dias e um despejo a cada semana.

Eu até tinha um modo de "pânico" em mente, onde o Domínio Lv seria restaurado, mas executado a partir de um instantâneo, e redefinido a cada 2 horas, para manter o site on-line em caso de graves invasões, até uma defesa adequada poderia ser organizado.

    
por 11.06.2009 / 16:44
0

O que aconteceu com a linha de 'modo de pânico' da ideia de defesa?

    
por 10.11.2010 / 07:19

Tags