Como fazer backup de um sistema em execução?

3

Eu tenho um sistema Linux em execução e gostaria de ter um backup completo dele usando dd , que, em meu conhecimento limitado, é a única ferramenta que todo sistema possui.

A distro não importa principalmente porque eu devo aplicar essa abordagem a vários servidores diferentes com sabores diferentes instalados, e não consigo instalar novos softwares nesses servidores.

Qual é a maneira mais genérica e eficiente de realizar essa tarefa?

    
por ludiegu 01.02.2014 / 10:46

2 respostas

2

Não é muito mais uma solução do que alguns conselhos que podem ser úteis se você usar tar / cpio / rsync etc. Primeiro, pode ser uma boa ideia fazer o backup de uma montagem de vinculação seu sistema de arquivos de origem ( mount --bind source mntdir ). Isso terá um efeito semelhante às opções --one-file-system para rsync e tar e -xdev com find . Ele tem as vantagens de funcionar se essas opções estiverem indisponíveis (talvez devido a uma versão antiga, embora as montagens de bind tenham sido introduzidas no Linux 2.4) e permitindo que os arquivos sob pontos de montagem sejam armazenados em backup, o que pode ser desejável em alguns casos. / p>

Segundo, aconselho usar Uids numéricos e gids sempre que possível ( --numeric-owner para tar , --numeric-ids para rsync e --numeric-uid-gid para cpio ). Se você restaurar um backup sem isso e um proprietário / grupo não existir mais ou o uid / gid for diferente (isso pode acontecer particularmente se um disco ativo for usado para restaurar o backup), você pode ter um conjunto de uids / gids usados quando restauração que se torna inválida depois que /etc/passwd e /etc/group sejam restaurados.

Além disso, dê uma olhada no clonezilla . Os métodos que eles usam para fazer a maior parte do backup podem não ser úteis para você, mas quando ele é executado tem opções para fazer backup de setores de inicialização / tabelas de partição e suporta tanto o MBR quanto o GPT, podendo haver alguns scripts que podem ser copiado / adaptado aos seus propósitos.

Como 2 centavos finais, eu consideraria rsync como o modo padrão de fazer isso. É certamente o método mais eficiente ao fazer backups incrementais, embora não tanto para um backup completo. Claro, não é onipresente, mas acho que é um erro não incluí-lo na edição do servidor de uma distro. Pode já estar instalado em todos os seus servidores.

    
por 01.02.2014 / 16:42
1

Usar dd pode, na minha experiência, causar problemas ao restaurar mais tarde, porque ele lê os dados em um nível de bloco do dispositivo, enquanto o sistema de arquivos pode estar atualizando os blocos em uma ordem diferente. Isso resulta em erros no sistema de arquivos no dispositivo restaurado. Ele também requer que você restaure um dispositivo de bloco (ou então monte a imagem em loop), por isso não é tão flexível para a restauração.

Sempre há problemas ao fazer backup de um sistema em execução que não suporta snapshots no nível do sistema operacional, mas tive menos problemas ao usar cpio (e usar tar seria o mesmo). Pode haver arquivos incompletos ou não sincronizados entre si, mas o sistema de arquivos subjacente não terá erros. Outra alternativa para o dd é o rsync se você tiver isso. Você faz uma espécie de instantâneo para uma unidade / servidor diferente. Com find e cpio é fácil gerar um arquivo de timestamp e fazer uma segunda execução com arquivos alterados após o registro de data e hora (isso é muito mais rápido do que o original e oferece menos chance de que os arquivos fiquem fora de sincronia entre si ), o mesmo pode ser feito com a nova execução de rsync .Nenhum cpio nem rsync lida com o setor de inicialização etc., você deve cuidar disso separadamente. dd é bom para isso, pois raramente é alterado enquanto você executa dd .

Para uma configuração restaurável completa, faço um dump do particionamento ( fdisk -l ou parted -l ), uma cópia do setor de inicialização, uma lista de tipos de sistema de arquivos por partição e cpio geraram .tar arquivos do conteúdo das partições (todas gravadas em um CD / DVD). Restaurar implica em inicializar a partir de um CD de vida, restaurar o setor de inicialização, particionar a unidade, formatar as partições e restaurar as partições do tar. (Você deve ser capaz de fazer isso sem a restauração do setor de inicialização instalando o grub após a restauração dos vários arquivos .tar )

    
por 01.02.2014 / 12:49

Tags