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

29

Configurando o Instantâneo do LVM como um ponto de backup / restauração no Ubuntu.

Por quê?

Bem, no meu entender, 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 forma, mas com a natureza do software do sistema / servidor instalado no Linux, sendo que a maioria dos softwares instalados é de apenas 95% de maturidade a qualquer momento, estragar seu sistema duas vezes por mês é muito provável ..

Claro, podemos fazer o backup do sistema antes e depois de cada instalação, mas isso leva um milhão de anos. Os backups do sistema (como se opõem apenas ao backup de dados / arquivos) exigem que você desligue seu computador e use alguma forma de CD inicializável e uma mídia de backup. E, se a unidade estiver com mais de 15%, pode levar muito tempo para fazer o backup, mesmo com hardware moderno.

Então, como isso pode ser feito?

    
por rub 21.02.2014 / 16:45

2 respostas

7

A alternativa - Instantâneos do LVM - Você pode ler sobre os instantâneos do LVM aqui: Ссылка

Em suma - os instantâneos são uma maneira de congelar os setores usados ​​no disco rígido, dizendo ao sistema para gravar qualquer alteração / exclusão / adição em uma parte reservada do disco rígido, chamada de volume instantâneo, adiando assim a decisão de manter / descartar as alterações na unidade para algum tempo futuro, na medida em que o espaço do volume da captura instantânea forneça. E assim, quando você decide reverter as alterações (ou mantê-las), você pode fazer isso 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 snapshot é apenas 2 scripts de linha (downloads fornecidos!)

Garantia - Nenhuma garantia é dada para as instruções abaixo. Use a seu próprio risco!

Como?

Se você não tiver um grupo de volumes pré-configurado, provavelmente precisará instalar um novo Ubuntu limpo. Então, você terá que se esforçar para configurar o sistema corretamente pela primeira vez, mas, a partir daí, o instantâneo se tornará sem esforço . E sem esforço eu quero dizer um comando, usando scripts pré-configurados.

  1. Inicialize o ubuntu live cd (sem instalação ainda .. apenas o live cd)
  2. Acessórios abertos - & gt; Terminal
  3. Estaremos limpando o disco rígido! Por favor, faça backup de qualquer coisa importante antes de passar por este 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 receber algo assim:

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

    # lvdisplay 
    

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

    # lvremove <existing_logical_volume_name>
    

    Se qualquer instalação de volume que possa interferir nesta instalação precisar ser removida.

    # 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 volume 'vgsnap'

    # vgcreate vgsnap /dev/sda2
    

    Deve resultar em:

      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 tirará 30G para swap & amp; volumes de instantâneos. Claro que você pode escolha tamanhos menores para o swap / instantâneo.

    > 'y'
      for the warning shown.
    

    E crie o volume de troca:

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

    Observação: 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 habilitar toda a criptografia de disco - mas eu não testei ..)

    Selecione "Algo mais" e pressione continuar. Neste estágio, você encontrará um conjunto de volumes / dev / mapper / ... definidos. Alguns deles são gerados automaticamente (lvsnap- *) - você pode ignorá-los por enquanto.

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

    Selecione: / dev / mapper / vgsnap-lvswap volume e escolha "área de troca"

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

    Nota: O 15G não usado é deixado livre para o volume do instantâneo.

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

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

    Instale!

Usando o instantâneo

Os passos seguintes mostram como usar o instantâneo a qualquer momento:

  1. Montando o instantâneo:

    Crie o volume do instantâneo

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

    Crie o diretório de montagem

    # mkdir /mnt/vgsnap-lvsnap
    

    Monte o instantâneo como montagem somente leitura

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

    O instantâneo está ativado!

    Neste ponto, você pode começar a bagunçar o sistema, instalar drivers beta e até mesmo (não! Isso é inapropriado).

    De agora em diante, você pode a qualquer momento (até onde o tamanho do instantâneo fornece ...) retornar ao estado anterior ou, se estiver satisfeito com o novo visual - mantenha-o.

  2. Monitoramento automático de espaço em disco livre de volume de instantâneo: Usando uma versão ajustada do script fornecida aqui: Ссылка Criei o script monitor_snapshot .

    Como usar / instalar? - Muito parecido com o link acima:

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

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

    Para testar a execução do script:

    # sh /etc/cron.hourly/monitor_snapshot
    

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

    Importante! Depois de concluir os testes / instalações - reverter ou manter as alterações - e umount do instantâneo!

  3. Reverter as alterações: (Veja o script rollback_snapshot , com as seguintes instruções nele, link no final do documento )

    # lvconvert --merge /dev/vgsnap/lvsnap
    

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

    # reboot
    

    Observação: se você pular a mesclagem, suas alterações serão confirmadas assim que você montar o instantâneo.

  4. Confirmando alterações - desmontando o instantâneo: (Veja o script commit_snapshot , com as seguintes instruções nele - 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. Reinstalar o instantâneo: (Veja o script remontar , com as seguintes instruções nele - 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 no seu diretório home, poderá restaurá-lo novamente:

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

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

  1. Descartar o volume do instantâneo (se não for mais necessário)

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

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

  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 sistema operacional. Mas, claro, não há necessidade real de remover o grupo de volumes ...

    Para remover o grupo de volumes:

    # vgremove vgsnap
    

Nota Importante! - a formatação / execução do fdisk e a remoção de todas as partições NÃO removerão os volumes nem o grupo, já que eles estão escritos em uma parte diferente da unidade ... remova as instruções fornecidas acima e remova os volumes e o grupo, se necessário.

    
por rub 01.10.2015 / 15:45
2

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

Aqui nome do volume é o nome do volume cujo instantâneo você deseja tirar. Para mais detalhes, você também pode acessar este tutorial

    
por Bidyut 03.10.2015 / 09:02