Configurando o LVM Snapshot como um ponto de backup / restauração no ubuntu

29

Configurando o LVM Snapshot como um ponto de backup / restauração no ubuntu.

Por quê?

Bem, a meu ver, com toda a grande utilidade do Linux, sua maior desvantagem é a maneira confusa de instalar aplicativos. Todas as DLLs vão para um diretório. Todos os arquivos de configuração para outro. E os binários também são colocados em um monte. Sim, o Windows funciona da mesma maneira mais ou menos, mas com a natureza do software do sistema / servidor instalado no Linux, sendo que a maioria dos softwares instalados tem apenas 95% de maturidade a qualquer momento, é uma bagunça no sistema duas vezes por mês. muito provável ..

Obviamente, podemos fazer backup do sistema antes e após cada instalação, mas isso leva um milhão de anos. Os backups do sistema (em oposição ao backup apenas de dados / arquivos) exigem que você desligue o computador e use algum tipo de CD ao vivo inicializável e uma mídia de backup. E, se a unidade estiver com mais de 15% de capacidade, pode levar muito tempo para fazer o backup, mesmo com o hardware moderno.

Então, como isso pode ser feito?

esfregar
fonte
3
Isso não é uma pergunta ... também acho que você não parecia muito difícil; uma rápida no google para "ubuntu lvm snapshot" e a primeira coisa que vem à tona é wiki.ubuntu.com/Lvm
psusi
1
Nada a ver com ... você leu? Abrange tudo o que você disse aqui.
21414 psusi
5
Claro que você pode fazer uma pergunta e , em seguida, responder a si mesmo - mas tenha em mente que este site está funcionando como Q & A - não se destinem a tutoriais de forma livre.
precisa saber é o seguinte
3
Essa e a coisa. O AskUbuntu fornece tutoriais, mas não consegui encontrar uma maneira fácil de colocar um. E como eu queria compartilhar meu trabalho duro com qualquer pessoa que pudesse se beneficiar, decidi apenas publicá-lo aqui.
rub
4
Votação para reabrir para que possamos dividir isso em um Q & A
Muru

Respostas:

11

A alternativa - Instantâneos do LVM - Você pode ler sobre os instantâneos do LVM aqui: http://www.tutonics.com/2012/12/lvm-guide-part-2-snapshots.html

Em resumo, os snapshots são uma maneira de congelar os setores usados ​​no HardDisk, dizendo ao sistema para gravar qualquer alteração / exclusão / adição em uma parte reservada do HardDisk, chamada volume de snapshot, adiando a decisão de manter / descartar as alterações. na unidade para algum momento futuro, na medida em que o espaço do volume da captura instantânea for fornecido. E, assim que você decidir reverter as alterações (ou mantê-las), poderá fazê-lo com uma linha.

Pode parecer complexo no começo, mas posso garantir que, após o primeiro esforço, tudo o que é necessário para usar o mecanismo de captura instantânea são apenas scripts de 2 linhas (downloads fornecidos!)

Garantia - Nenhuma garantia, de qualquer forma, é dada para as instruções abaixo. Use por sua conta e risco!

Quão?

Se você não possui um grupo de volumes pré-configurado, provavelmente precisará instalar um Ubuntu limpo e fresco. Então, você terá que se esforçar para configurar o sistema corretamente pela primeira vez, mas a partir deste momento, o instantâneo se tornará fácil . E sem esforço, quero dizer comandos de um liner, usando scripts pré-configurados.

  1. Inicialize no live cd do ubuntu (nenhuma instalação ainda .. apenas o live cd)
  2. Abrir Acessórios -> Terminal
  3. Vamos limpar o disco rígido! Faça o backup de qualquer coisa importante antes de passar por esse estágio.

    Primeiro, vamos remover as partições existentes:

    # fdisk /dev/sda
      Enter 'd' to delete - enter for as many partitions you have 
    > d   
    > <enter>
      ...
      Enter 'w' to write down changes
    > w
    
  4. Crie a partição de inicialização e o restante da unidade como a outra partição

    # fdisk /dev/sda
    > n
      To create a new partition.
    > p
      For Boot Primary partition.
    > 1
      Press <enter> to accept the default start sector.
      Enter:
    > +512M
      To give the boot partition a size of 512MB
    > n
      To create (another) new partition.
    > p
      Should be Primary too.
    > <enter> 
      To accept the default value of 2 (the second partition)
    > <enter>
      To accept the default start sector
    > <enter>
      To accept the whole disk
    > t
      To change the type of the second partition to LVM
    > 2
      To choose the second partition
    > 8e
      To set the type to 'LVM Linux'
    > w
      To write changes and exit.
    

    Para verificar se as alterações funcionaram bem, execute:

    # fdisk --list
    

    Você deve obter algo como isto:

      Device     Boot   Start    End        Blocks     Id   System
      /dev/sda1         2048     524287     261120     83   Linux
      /dev/sda2         524288   488397167  243936440  8e   Linux LVM
    
  5. Remova quaisquer grupos de volumes / volumes lógicos anteriores:

    # lvdisplay 
    

    Exibe os volumes lógicos que você pode ter no sistema

    # lvremove <existing_logical_volume_name>
    

    Se for necessário remover qualquer instalação de volume que possa interferir nessa instalação.

    # vgdisplay 
    

    Mostrará qualquer grupo de volumes existente no sistema

    # vgremove <existing_volume_group>
    

    O mesmo que para os grupos de volumes.

  6. Crie o grupo de volumes 'vgsnap'

    # vgcreate vgsnap /dev/sda2
    

    Deve resultar com:

      Volume group "vgsnap" successfully created
    
  7. Crie o volume lógico

    # lvcreate --extents 100%FREE --name lvroot vgsnap
    

    O volume lógico raiz, começando com 100% do dispositivo.

    # lvresize --size -30G /dev/mapper/vgsnap-lvroot
    

    Isso decolará 30G para volumes de troca e captura instantânea. Claro - você pode escolher tamanhos menores para a troca / captura instantânea.

    > 'y'
      for the warning shown.
    

    E crie o volume de troca:

    # lvcreate --size 15G --name lvswap vgsnap
    

    Nota: deixamos agora 15G de espaço em disco não utilizado, reservado para o instantâneo futuro.

  8. Instalando o Ubuntu

    Feche o terminal e inicie o instalador.

    Escolha "Usar LVM ..." (você também pode optar por ativar a criptografia de disco inteiro - mas não testei ..)

    Selecione "Outra coisa" e pressione continuar. Nesta fase, você encontrará uma variedade de volumes / dev / mapper / ... definidos. Alguns deles são gerados automaticamente (lvsnap- *) - você pode ignorá-los por enquanto.

    Selecione: / dev / mapper / volume vgsnap-lvroot. Escolha "ext4" como formato e monte como '/'

    Selecione: / dev / mapper / volume vgsnap-lvswap e escolha "swap area"

    Se você deseja criar uma unidade criptografada (não tenho idéia se isso funcionaria com os instantâneos?), Provavelmente você desejará selecionar o / dev / sda2 e marcar o "volume para criptografia". Não testei embora ..

    Nota: Os 15G não utilizados são deixados livres para o volume da captura instantânea.

    Selecione: partição / dev / sda1. Formate-o como 'ext2' e monte-o como '/ boot'

    Abaixo - escolha: partição / dev / sda1 como inicialização

    Instalar!

Usando o instantâneo

As etapas a seguir mostrarão como usar o instantâneo a qualquer momento:

  1. Montando o instantâneo:

    Crie o volume da captura instantânea

    # lvcreate --size 15G --snapshot --name lvsnap /dev/mapper/vgsnap-lvroot
    

    Crie o diretório de montagem

    # mkdir /mnt/vgsnap-lvsnap
    

    Monte a captura instantânea como montagem somente leitura

    # mount -o ro /dev/vgsnap/lvsnap  /mnt/vgsnap-lvsnap
    

    O instantâneo está ativado!

    Nesse ponto, você pode começar a atrapalhar seu sistema, instalar drivers beta e até (Não! Isso é inapropriado).

    A partir de agora, você poderá a qualquer momento (na medida em que o tamanho da captura instantânea fornecer ..) retornar ao estado anterior ou, se estiver satisfeito com a nova aparência - mantenha-a.

  2. Automático de volume instantâneo espaço livre em disco monitorando: Usando uma versão beliscada do script fornecido aqui: http://blog.rimuhosting.com/2012/02/20/cron-script-for-checking-disk-space/ eu criei monitor_snapshot roteiro .

    Como usar / instalar? - Praticamente como no link acima:

    # cd /etc/cron.hourly
    # copy /home/<user>/Downloads/monitor_snapshot
    # chmod +x monitor_snapshot
    

    Antes de executá-lo pela primeira vez, edite melhor os valores nele, como seu endereço de email (para onde as notificações serão enviadas, etc.) Se configurado corretamente, o daemon cron executará o script a cada X horas / dias - como você decidir - e notifique-o assim que o instantâneo estiver prestes a ficar cheio.

    Para testar o script, execute:

    # sh /etc/cron.hourly/monitor_snapshot
    

    Ele imprimirá a porcentagem (número) de espaço livre no instantâneo.

    Importante! Depois de concluir seus testes / instalações - reverter ou manter as alterações - e Montar o instantâneo!

  3. Revertendo as Alterações: (Consulte o script rollback_snapshot , com as seguintes instruções, link no final do documento)

    # lvconvert --merge /dev/vgsnap/lvsnap
    

    Isso também desmontará o instantâneo, mas descartará qualquer uma de suas alterações. Além disso - você verá um aviso que sugere que a reversão ocorrerá apenas na próxima ativação, portanto:

    # reboot
    

    Nota: Se você pular a fusão, suas alterações serão confirmadas depois que você Montar o instantâneo.

  4. Confirmando alterações - montando a captura instantânea: (Consulte o script commit_snapshot , com as seguintes instruções - link no final do documento)

    # umount /mnt/vgsnap-lvsnap
      Will unmount (commit0 the snapshot
    
    # lvremove /dev/mapper/vgsnap-lvsnap
    # rm -rf /mnt/vgsnap-lvsnap/
    
    # rm /etc/cron.hourly/monitor_snapshot
      Remove the cron daemon script (that is unused)
    
  5. Remontando a captura instantânea: (Veja o script de remontagem , com as seguintes instruções - link no final do documento) Praticamente como antes:

    # lvcreate --size 15G --snapshot --name lvsnap /dev/mapper/vgsnap-lvroot
    # mkdir /mnt/vgsnap-lvsnap
    # mount -o ro /dev/vgsnap/lvsnap /mnt/vgsnap-lvsnap
    

    Se você salvou o monitor_snapshot em seu diretório pessoal, é possível restaurá-lo novamente:

    # cp /home/<user>/monitor_snapshot /etc/cron.hourly/
    # chmod +x /etc/cron.hourly/monitor_snapshot
    

Isso é tudo, pessoal! As instruções a seguir são apenas para desistentes;)

  1. Descartando o volume da captura instantânea (se não for mais necessário)

    # rmdir /mnt/vgsnap-lvsnap
    # lvremove /dev/vgsnap/lvsnap
    

    (Você também pode redimensionar a partição raiz ou trocar para ocupar os 15G ausentes reservados para troca)

  2. Descartando o grupo de volumes - Possível apenas removendo os volumes do grupo de volumes, o que provavelmente significa excluir a instalação do SO. Mas é claro, não há necessidade real de remover o grupo de volumes ...

    Para remover o grupo de volumes:

    # vgremove vgsnap
    

Nota importante! - formatar / executar o fdisk e remover todas as partições NÃO removerá os volumes nem o grupo, pois eles estão gravados em uma parte diferente da unidade ... Portanto, use as instruções de remoção fornecidas acima e remova os volumes e o grupo, se necessário.

esfregar
fonte
Muito obrigado por estas instruções detalhadas ... uau.
Adriano Lucas
2

Criando um cronjob para fazer backup usando o comando lvcreate -s -L <size> -n <snapshot_name> <volume_name>

Aqui nome do volume é o nome do volume cuja captura instantânea você deseja tirar. Para mais detalhes, você também pode seguir este tutorial

Bidyut
fonte
1
Bom guia! Observe, no entanto, que minhas intenções são fornecer meios de fazer backup sem uma mídia de backup . Como uma forma de backup lento. Antigamente, isso salvava vidas, com o Norton GoBack e o Windows 2000 :) Eu costumava mexer muito com os sistemas em que trabalhava, e poder contar com isso para reverter meus erros rapidamente foi fácil. ! Os backups provavelmente são o caminho certo para um servidor real, mas para uma estação de trabalho que não seja instalada no VMWare / VirtualBox (que fornece instantâneos externamente), acredito que os instantâneos são o caminho a seguir.
rub