Os instantâneos do LVM destinam-se a capturar o sistema de arquivos em um estado congelado. Eles não devem ser um backup por si só. No entanto, são úteis para obter imagens de backup consistentes porque a imagem congelada não pode e não será alterada durante o processo de backup. Portanto, embora você não os utilize diretamente para fazer backups de longo prazo, eles terão um grande valor em qualquer processo de backup que você decidir usar.
Existem algumas etapas para implementar um instantâneo. A primeira é que um novo volume lógico deve ser alocado. O objetivo deste volume é fornecer uma área em que deltas (alterações) no sistema de arquivos sejam gravados. Isso permite que o volume original continue sem interromper qualquer acesso de leitura / gravação existente. A desvantagem disso é que a área da captura instantânea é de tamanho finito, o que significa que em um sistema com gravações ocupadas, ela pode ser preenchida rapidamente. Para volumes que possuem atividade de gravação significativa, convém aumentar o tamanho do seu instantâneo para permitir espaço suficiente para que todas as alterações sejam registradas. Se o seu instantâneo exceder (enche), o instantâneo será interrompido e marcado como inutilizável. Caso isso aconteça, você desejará liberar seu instantâneo para poder voltar a colocar o volume original online. Quando o lançamento estiver concluído, você '
A segunda coisa que acontece é que o LVM agora "troca" os verdadeiros propósitos dos volumes em questão. Você pensaria que o instantâneo recém-alocado seria o lugar para procurar por quaisquer alterações no sistema de arquivos; afinal, é para onde estão indo todas as gravações, certo? Não, é o contrário. Os sistemas de arquivos são montados nos nomes de volume LVM , portanto, trocar o nome por baixo do resto do sistema seria um não-não (porque o instantâneo usa um nome diferente ). Portanto, a solução aqui é simples: quando você acessar o nome do volume original, ele continuará se referindo à versão ao vivo (leitura / gravação) do volume do qual você fez o instantâneo. O volume da captura instantânea que você cria se refere ao arquivo congelado(somente leitura) do volume que você deseja 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 é concluída, o volume da captura instantânea é liberado novamente no volume e o original permanece.
Eu não recomendo perseguir isso como uma estratégia de backup a longo prazo. Você ainda está hospedando dados na mesma unidade física que pode falhar, e a recuperação do seu sistema de arquivos de uma unidade que falhou não é um backup.
Então, em poucas palavras:
- Os instantâneos são bons para auxiliar backups
- Os instantâneos não são, por si só, uma forma de backup
- Instantâneos não duram para sempre
- Um instantâneo completo não é uma coisa boa
- Os instantâneos precisam ser liberados em algum momento
- O LVM é seu amigo, se você o usar com sabedoria.
Os instantâneos do LVM são ótimos para poder fazer backup do servidor sem deixá-lo offline. Como afirmado, os instantâneos do LVM são cópias quase instantâneas. Você os cria usando o
lvcreate
comando da mesma forma que faria para criar o próprio LV, apenas a--snapshot
opção e o LV original em vez do VG. Por exemplo:Isso criará um instantâneo do LV fornecido com o nome do instantâneo especificado no qual você poderá montar e usar esse LV do 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.
Depois de concluir o backup a partir do instantâneo, você deverá removê-lo para reduzir qualquer sobrecarga adicional de E / S ou outros problemas de desempenho, como outros usuários mencionaram usando:
Embora as capturas instantâneas do LVM possam ser inestimáveis na produção de um backup confiável de sistemas como bancos de dados e de forma que você normalmente queira desligar o backup 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.
fonte
Não é uma boa ideia, IMO.
Os instantâneos são implementados de maneira copiar-para-gravar, para que você transforme cada gravação em uma leitura e duas gravações (o bloco para o qual você está atualizando é lido primeiro no volume principal e armazenado no volume da captura instantânea antes que novos dados sejam inseridos. seu lugar), para que você veja alguma degradação no desempenho se muita gravação for comum nas VMs.
Além disso, IIRC, se o volume do instantâneo ficar cheio, ele será simplesmente descartado sem cerimônia. Isso não é bom para fins de backup! Portanto, se você tentar isso como um método de backup, certifique-se de aumentar o volume da captura instantânea o suficiente para lidar com todas as alterações que ocorrerão durante a vida útil da captura instantânea. Obviamente, se você está ciente e monitora o problema de tamanho e o desempenho não é um problema para você, o que você sugere pode ser uma adição útil a outros processos de backup existentes.
Os instantâneos do LVM são muito úteis como parte de um processo de backup (tirar um instantâneo, fazer backup do instantâneo para outro lugar para garantir que o backup seja consistente sem precisar desativar as atualizações no volume "real", soltar o instantâneo posteriormente), ignorar outras coisas, mas não pretendem ser um recurso de backup por conta própria.
fonte
Você precisará garantir que os dados no disco estejam em um estado consistente antes que o instantâneo seja feito. por exemplo, o mysql pode ter dados armazenados em cache na memória que precisam ser forçados a disco, despejando o banco de dados ou desligando-o. Consulte os manuais dos seus aplicativos para obter detalhes.
fonte
Sob o aspecto inteligente, os LVMs são na verdade 'apenas' um truque de mapeador de dispositivos. Criar um instantâneo com lvcreate não é muito mais 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 --tree output). Esse LV -real é mapeado para o volume da captura instantânea e o volume original, para que possa ser usado nos dois locais. O volume de cópia na gravação funciona como uma sobreposição ao LV -real. O -snap LV mostra a combinação do volume de cópia na gravação e do volume -real. Isso realmente cria alguma sobrecarga de desempenho.
Ao remover o instantâneo, novamente algumas renomeações e mapeamentos acontecem. Depois, a situação novamente parecerá algo como
Quanto ao quanto esse é um bom método de fazer backup de coisas: pode ser, se você levar em conta que isso (1) não ajudará a RAM das máquinas virtuais, (2) criará uma penalidade de desempenho e (3) você precisará para armazenar imagens do instantâneo em outro local.
O VMware VCB também funciona com instantâneos, mas não com LVM.
fonte
Mesmo que os instantâneos não tenham impactado o desempenho, você precisa entender: Os instantâneos não são mais 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 do instantâneo a outro PE no VG, ele conterá apenas os dados modificados desde o instantâneo.
Fazer backup significa uma cópia pelo menos para uma unidade completamente separada como requisito mínimo.
fonte
Eu uso essa configuração para capturas instantâneas de máquinas de servidor vmware e bancos de dados mysql. funciona bem até agora. houve algumas restaurações - tudo sem problemas. Uma coisa a considerar - ao executar o snapshot lvm, obtém um desempenho significativo para operações de E / S. olhe aqui . ignore o fato de falarem sobre mysql, operações de E / S são operações de E / S ... não importa que tipo de dados esteja no lvm.
fonte
Eu uso instantâneos do lvm apenas para copiar o DomU Lv outro em um Vg separado, onde cada domínio tem três "nós" de backup à disposição.
Depois disso, o instantâneo é destruído e os Lvs de backup permanecem até a próxima rodada. Se eu tiver que fazer uma restauração, basta escolher um Lv de origem no backup Vg e copiá-lo para o domínio Lv.
De vez em quando, um Lv de backup é 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 Domain 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 hacks graves, até que uma defesa adequada pudesse ser organizada .
fonte
O que aconteceu com a ideia de linha de defesa do 'modo de pânico'?
fonte