Faça backup de uma partição LVM regularmente

0

Eu tenho um pequeno servidor doméstico (Ubuntu Server 17.10) e gostaria de configurar alguns backups para ele. Meus principais pontos são:

  • O servidor tem dois discos rígidos. O primeiro (um SSD) é particionado com a partição EFI e um espaço LVM; dentro há dois volumes LVM, e eu quero fazer backup de um deles. Deixei espaço suficiente para fazer um volume instantâneo quando necessário. O segundo tem duas partições e eu quero montar o segundo quando necessário para armazenar os backups. Estas duas partições no segundo HDD não fazem parte do espaço LVM
  • O servidor não está em 24/7
  • Eu gostaria de ter algum backup assim:
    • Todos os dias, a 1.00 *, execute um backup incremental; se o backup não for executado porque o PC está desligado, execute-o quando estiver pronto
    • Mantenha no máximo 5 * backups incrementais diários. Se um dia o backup não foi executado porque o PC estava desligado durante todo o dia, deve haver sempre backups de 5 *.
    • Todo mês deve haver um backup completo (ou seja, não incremental) para proteger contra corrupção de dados
    • Mantenha no máximo 3 * backups mensais completos. O mesmo conceito explicado no ponto 2 se aplica (3 * backups, não os backups dos últimos 3 * meses)

Nota: o tempo e a quantidade de backups (anotados por um *) podem ser alterados.

Por exemplo, hoje é o 14/03. No dia 11/03 o PC ficou desligado o dia todo, então no banco de dados deve haver:

Backups incrementais: 14/03, 13/03, 12/03, 10/03, 09/03 (09/03 também podem ser preenchidos se necessário) Backups completos: 01/03, 01/02, 01/01

Agora, sou muito novo nisso, então comecei a olhar em volta e encontrei o Attic e depois o Borg. Mas não consigo entender se o que eu quero alcançar é factível com borg ou não, ou se existem maneiras mais fáceis de fazer isso do que usar este programa (considerando que estou no LVM, então talvez eu possa usar um instantâneo para " faixa "muda ou .. o que for).

Então ... O que eu descrevi pode ser implementado em um script borg simples (ou duplo)? Você recomenda outras ferramentas (ou uma cópia simples)? Ou você acha que a estratégia que descrevi é inútil / não é suficiente?

Obrigado

NOTA: Por engano, eu abri isso no serverfault, e como não consegui movê-lo e não houve comentários nem respostas, preferi excluir o antigo e abri-lo novamente aqui para acelerar a transição e evitar deixar este tarefa para os moderadores

EDIT: Talvez eu não expliquei da maneira correta, então estou fazendo mais algumas linhas nesta questão.

Minha experiência com instantâneos "incrementais" vem do Virtualbox. Nesse caso, quando você remove um instantâneo, as modificações são mescladas.

Para evitar escrever muito, estou fazendo um exemplo usando no máximo três backups diários.

Suponha que estamos na condição

  • Backup diário 12/03 - Cópia completa do sistema de arquivos em 12/03
  • Backup diário 13/03 - Modificações entre 12/03 e 13/03
  • Backup diário 14/03 - Modificações entre 13/03 e 14/03

Hoje é um novo dia, então o backup é iniciado. Mas já existem 3 backups diários. Portanto, o backup de 12/03 e o 13/03 são mesclados (as diferenças de 13/03 são aplicadas na versão base) e um novo backup incremental é feito. Dessa forma, você perde as diferenças entre 12 e 13, mas o backup permanece "cheio":

  • Backup diário 13/03 - Cópia completa do sistema de arquivos em 13/03
  • Backup diário 14/03 - Modificações entre 13/03 e 14/03
  • Backup diário 15/03 - Modificações entre 14/03 e 15/03

Eu acho que esse é o comportamento normal da ameixa borg (corrijam-me se eu estiver errado, por favor)

Outra opção (que é mais desejável na minha opinião) seria mesclar os backups incrementais do backup mensal. Quero dizer algo como:

  • Backup mensal 01/03 - Cópia completa do sistema de arquivos em 01/03
  • Backup diário 12/03 - Modificações entre 01/03 e 12/03
  • Backup diário 13/03 - Modificações entre 12/03 e 13/03
  • Backup diário 14/03 - Modificações entre 13/03 e 14/03

Ao remover, o 12 e o 13 são mesclados (por isso, torna-se o backup diário 13/03 - Modificações entre 01/03 e 13/03) e um novo é criado.

A última opção, menos desejável na minha opinião (mas se você acha que é melhor argumentar isso) é manter backups diários em relação ao mensal.

  • Backup mensal 01/03 - Cópia completa do sistema de arquivos em 01/03
  • Backup diário 12/03 - Modificações entre 01/03 e 12/03
  • Backup diário 13/03 - Modificações entre 01/03 e 13/03
  • Backup diário 14/03 - Modificações entre 01/03 e 14/03

Nesse caso, é mais simples: basta remover o backup diário sem olhar para trás.

    
por frarugi87 15.03.2018 / 10:52

1 resposta

0

Você não pode realmente "mesclar" os backups. Não é bem o que você pediu, mas isso pode atender às suas necessidades. O sistema de backup que eu uso é um trabalho cron envolvendo multinível dump em uma torre de padrão Hannoi. Acredito que você pode usar anacron para garantir que as execuções agendadas para quando o sistema estiver desligado sejam executadas quando a próxima estiver ativada.

#!/bin/bash
set -e
declare -a LEVELMAP=(1 5 4 5 3 5 4 5 2 5 4 5 3 5 4 5 1 5 4 5 3 5 4 5 2 5 4 5 3 5 4 5)
DATE='date +%-d'
LEVEL=${LEVELMAP[$DATE-1]}
echo Performing a level $LEVEL dump
sync
lvcreate -s -n snap devserv2/root -L 1g
dump -$LEVEL -quz9 -b 1024 -f /backup/dump.$LEVEL /dev/mapper/devserv2-snap
lvremove -f devserv2/snap

dump tem o conceito de níveis. Um despejo de nível 0 contém tudo. Um dump de nível 1 contém tudo o que foi alterado desde o último nível 0. Um nível 2 tem tudo desde o último nível 0 ou nível 1, o que for mais recente, e assim por diante. Ao realizar os despejos de nível listados em cada dia do mês, você obtém um nível 1 no dia 1 e no dia 17 do mês. Eles contêm tudo desde o último nível 0, que faço manualmente a cada dois meses. O resto dos dias do mês você usa os níveis 2-5. Isso significa que, a qualquer momento, você tem três níveis de backups que contêm alterações desde o primeiro ou décimo sétimo dia do mês, e os arquivos alterados frequentemente terão várias versões para as quais você pode voltar, variando de 1 a vários dias.

    
por 05.04.2018 / 15:05