Como fazer backup de instantâneos BTRFS para unidades externas

Como fazer backup de instantâneos BTRFS para unidades externas

Por padrão, você pode armazenar os instantâneos que você recebe de seus subvolumes BTRFS no mesmo sistema de arquivos BTRFS, mas não é possível armazenar os instantâneos de um sistema de arquivos BTRFS diretamente para outro sistema de arquivos BTRFS. No entanto, o sistema de arquivos BTRFS fornece as ferramentas necessárias para fazer backup de instantâneos de um sistema de arquivos BTRFS para outro sistema de arquivos BTRFS. Este artigo mostra como fazer backup de instantâneos BTRFS para um sistema de arquivos BTRFS externo em uma unidade externa.

Pré -requisitos

Para experimentar os exemplos incluídos neste artigo, você deve cumprir os seguintes pré -requisitos:

  • Tenha o sistema de arquivos BTRFS instalado no seu computador.
  • Tenha um disco rígido ou SSD com pelo menos 2 partições gratuitas (de qualquer tamanho).

Eu tenho o disco rígido de 20 GB, sdb, Na minha máquina Ubuntu. Eu criei duas partições, sdb1 e sdb2, Neste disco rígido.

$ sudo lsblk -e7

Observação: Seu disco rígido ou SSD terá um nome diferente do meu, assim como as partições. Então, certifique -se de substituir esses nomes por seus a partir de agora.


Vou criar sistemas de arquivos btrfs no sdb1 e a sdb2 partições. Os instantâneos criados no sistema de arquivos BTRFS (sdb1) será backup do sistema de arquivos BTRFS criado no sdb2 partição. O sistema de arquivos BTRFS criado no sdb2 A partição atuará como a unidade externa. Você também pode usar uma unidade de polegar USB ou um disco rígido externo; Apenas certifique -se de formatá -lo com o sistema de arquivos BTRFS.

Para obter assistência na instalação do sistema de arquivos BTRFS no Ubuntu, confira o meu artigo Instale e use o BTRFS no Ubuntu 20.04 LTS.

Para obter assistência na instalação do sistema de arquivos BTRFS no Fedora, confira o meu artigo Instale e use o BTRFS no Fedora 33.

Criação de sistemas de arquivos BTRFS necessários

Eu vou formatar o sdb1 e sdb2 Partições como Btrfs. Vou usar o sdb1 Partição para armazenar os instantâneos de dados e BTRFS. Vou usar o sdb2 Partição para fazer backup dos instantâneos do sistema de arquivos BTRFS criado no sdb1 partição.

Para criar um sistema de arquivos BTRFS no sdb1 Partição e forneça os dados do rótulo do sistema de arquivos, execute o seguinte comando:

$ sudo mkfs.BTRFS -L DATA /DEV /SDB1

Um sistema de arquivos BTRFS agora deve ser criado no sdb1 partição.

Para criar um sistema de arquivos BTRFS no sdb2 Partição e dê -lhe os instantâneos da etiqueta do sistema de arquivos, execute o seguinte comando:

$ sudo mkfs.BTRFS -L Snapshots /dev /sdb2

Um sistema de arquivos BTRFS agora deve ser criado no sdb2 partição.

Crie os diretórios /dados e /instantâneos para montar o sdb1 e sdb2 Partições, respectivamente, da seguinte forma:

$ sudo mkdir -v /data, instantâneos

Monte o sistema de arquivos BTRFS que você criou no sdb1 Partição no diretório /dados, como segue:

$ sudo montagem /dev /sdb1 /dados

Da mesma maneira, monte o sistema de arquivos BTRFS que você criou no sdb2 partição no /instantâneos Diretório, como segue:

$ sudo montagem /dev /sdb2 /instantâneos

Como você pode ver na captura de tela abaixo, ambos os sistemas de arquivos BTRFS (sdb1 e sdb2 partições) foram montadas corretamente.

$ df -h -t btrfs

Tirando instantâneos de um sistema de arquivos BTRFS

Nesta seção, criaremos o projeto fictício Web1 no /Data/Projects/Web1 BTRFS Subvolume. Vamos tirar um instantâneo desse subvolume nesta seção, bem como alguns outros instantâneos em seções posteriores deste artigo.

Primeiro, crie o novo diretório /dados/projetos, do seguinte modo:

$ sudo mkdir -v /dados /projetos

Em seguida, crie o novo Subvolume Web1 no /diretório de dados/projetos, do seguinte modo:

$ sudo btrfs subvolume Create/Data/Projects/Web1

Finalmente, crie o novo índice de arquivo.html no /dados/projetos/web1 Subvolume com o editor de texto Nano, como segue:

$ sudo nano/dados/projetos/web1/index.html

Digite as seguintes linhas de código no índice.Arquivo HTML:




Site de demonstração



Olá Mundo




Depois de terminar, pressione <Ctrl> + X seguido pela Y e <Digitar> Para salvar o índice.arquivo html.

Da mesma maneira, crie o novo arquivo estilo.CSS no /Data/Projects/Web1 Subvolume do seguinte modo:

$ sudo nano/dados/projetos/web1/estilo.CSS


Digite as seguintes linhas de código no estilo.CSS arquivo:

H1
cor verde;

Depois de terminar, pressione <Ctrl> + X seguido pela Y e <Digitar> Para salvar o estilo.CSS arquivo.

Agora o /Data/Projects/Web1 Subvolume contém o índice.html e estilo.arquivo CSS.

$ ls -lh/dados/projetos/web1

Manteremos todos os instantâneos deste sistema de arquivos BTRFS no /dados/.Instantâneos diretório.

Primeiro, crie o /dados/.Instantâneos Diretório com o seguinte comando:

$ sudo mkdir -v /data /.Instantâneos

Em seguida, crie o instantâneo somente leitura /dados/.Instantâneos/Web1-2020-12-30 do /Data/Projects/Web1 Subvolume com o seguinte comando:

$ sudo btrfs subvolume instantâneo -r/data/projects/web1/data/.Instantâneos/Web1-2020-12-30

Como você pode ver, o novo instantâneo /dados/.Instantâneos/Web1-2020-12-30 foi criado.

$ sudo btrfs Lista /dados do subvolume

Backup de instantâneos para unidade externa

Para fazer backup do instantâneo /dados/.Instantâneos/Web1-2020-12-30 Para outro sistema de arquivos BTRFS (unidade externa sdb2, neste caso) montada no /instantâneos Diretório, execute o seguinte comando:

$ sudo btrfs envia /dados /dados /.Instantâneos/Web1-2020-12-30 | sudo btrfs recebem /instantâneos

O instantâneo /dados/.Instantâneos/Web1-2020-12-30 deve ser backup do sistema de arquivos BTRFS externo (sdb2) montado no /instantâneos diretório.

Como você pode ver, o Novo subvolume Web1-2020-12-30 foi criado no sistema de arquivos BTRFS externo.

$ sudo btrfs Lista de subvolumes /instantâneos

O Snapshot Web1-2020-12-30 deve ter os mesmos arquivos/diretórios Enquanto o /dados/.Instantâneos/Web1-2020-12-30 instantâneo.

$ árvore -a /instantâneos

Você pode obter mais informações sobre o instantâneo de backup /SNAPSHOSTS/WEB1-2020-12-30 do seguinte modo:

$ sudo btrfs subvolume Show /instantâneos /web1-2020-12-30

Backup incremental de instantâneos para unidade externa

Se houver muitos arquivos nos instantâneos para fazer backup de uma unidade externa, os backups incrementais ajudarão você a acelerar a operação de backup. Nesse caso, o BTRFS atualiza apenas os arquivos que mudaram desde o último instantâneo e copiarão novos arquivos que não estavam disponíveis no último instantâneo.

Nesta seção, mostrarei como executar backups incrementais de instantâneos BTRFs para os sistemas de arquivos BTRFS externos.

Primeiro, abra o índice.arquivo html de /Data/Projects/Web1 Subvolume, do seguinte modo:

$ sudo nano/dados/projetos/web1/index.html

Faça as alterações que desejar para o índice.arquivo html. Depois de terminar, pressione <Ctrl> + X seguido pela Y e <Digitar> Para salvar o índice.html arquivo.

Tire um novo instantâneo somente leitura do /Data/Projects/Web1 Subvolume, do seguinte modo:

$ sudo btrfs subvolume instantâneo -r/data/projects/web1/data/.Instantâneos/Web1-2020-12-31

Como você pode ver, o novo instantâneo /dados/.Instantâneos/Web1-2020-12-31 do /Data/Projects/Web1 Subvolume foi criado.

$ sudo btrfs Lista /dados do subvolume

Agora, estamos prontos para fazer um backup incremental.

Para fazer um backup incremental, você precisará de um instantâneo comum da fonte e do destino (unidade externa) BTRFS FileSystems. O instantâneo comum é geralmente o mais recente instantâneo de um subvolume BTRFS. Quando você tira um novo instantâneo no sistema de arquivos BTRFS de origem, o novo instantâneo é comparado com o instantâneo mais recente (disponível na fonte e no sistema de arquivos BTRFS de destino) do sistema de arquivos BTRFS de origem. O BTRFS calculará a diferença e enviará apenas os dados necessários para o sistema de arquivos BTRFS de destino (a unidade externa).

Por exemplo, para fazer um backup incremental do /dados/.Snapshots/Web1-2020-12-31 Snapshot, Você deve especificar o instantâneo pai (o instantâneo mais recente disponível nos sistemas de arquivos BTRFS de origem e de destino), /dados/.Instantâneos/Web1-2020-12-30, também.

Um backup incremental do /dados/.Instantâneos/Web1-2020-12-31 O instantâneo pode ser levado para um sistema de arquivos BTRFS externo, como segue:

$ sudo btrfs send -p /data /.Instantâneos/Web1-2020-12-30/dados/.Instantâneos/Web1-2020-12-31 | sudo btrfs recebem /instantâneos

Um backup incremental do /dados/.Instantâneos/Web1-2020-12-31 Instantâneo deve ser tirado.

Como você pode ver, o Web1-2020-12-31 Snapshot foi apoiado no sistema de arquivos BTRFS externo montado no /instantâneos diretório.

$ sudo btrfs Lista de subvolumes /instantâneos

Como você pode ver na captura de tela abaixo, as mudanças que você fez no índice.arquivo html estão disponíveis no Web1-2020-12-31 Snapshot que foi apoiado no sistema de arquivos BTRFS externo.

$ CAT/Snapshots/Web1-2020-12-31/Índice.html

Da mesma maneira, você pode pegar quantos backups incrementais de seus instantâneos quiser.

Vou mostrar como fazer um backup incremental mais uma vez. Não vou dedicar um tempo para explicar novamente. Em vez disso, vou apenas mostrar o processo de clareza.

Abra o índice.arquivo html de /Data/Projects/Web1 Subvolume, do seguinte modo:

$ sudo nano/dados/projetos/web1/index.html

Faça as alterações que desejar para o índice.arquivo html. Depois de terminar, pressione <Ctrl> + X seguido pela Y e <Digitar> Para salvar o índice.arquivo html.

Tire um novo instantâneo somente leitura do /Data/Projects/Web1 Subvolume, do seguinte modo:

$ sudo btrfs subvolume instantâneo -r/data/projects/web1/data/.Instantâneos/Web1-2020-12-31_2

Faça um backup incremental do /dados/.Instantâneos/Web1-2020-12-31_2 Snapshot Para um sistema de arquivos BTRFS externo, como segue:

$ sudo btrfs send -p /data /.Instantâneos/Web1-2020-12-31/dados/.Instantâneos/Web1-2020-12-31_2 | sudo btrfs recebem /instantâneos

Observação: Agora, o instantâneo dos pais para o qual o /dados/.Instantâneos/Web1-2020-12-31_2 Snapshot será comparado é /dados/.Instantâneos/Web1-2020-12-31.

Como você pode ver, o Web1-2020-12-31_2 O instantâneo foi backup do sistema de arquivos BTRFS externo montado no /instantâneos diretório.

$ sudo btrfs Lista de subvolumes /instantâneos

Como você pode ver na captura de tela abaixo, as recentes mudanças feitas no índice.arquivo html estão disponíveis no Web1-2020-12-31_2 Snapshot backup do sistema de arquivos BTRFS externo.

$ cat/instantâneos/web1-2020-12-31_2/index.html

Mantendo as coisas limpas

Se você fazer backup de seus instantâneos BTRFS com frequência, acabará com muitos instantâneos, e pode se tornar difícil gerenciá -los. Felizmente, você pode remover qualquer instantâneo do sistema de arquivos BTRFS.

Se você estiver usando uma unidade externa grande o suficiente para manter backups dos instantâneos do BTRFS, poderá manter alguns instantâneos no sistema de arquivos BTRFS e fazer backup de todos os instantâneos em sua unidade externa.

Se você estiver usando uma unidade externa menor, poderá manter seletivamente apenas os instantâneos mais importantes backup na unidade externa.

Para realizar backups dos seus instantâneos BTRFS, você precisa manter pelo menos o instantâneo mais recente da fonte (/dados/.Instantâneos) e o destino (/instantâneos - unidade externa) BTRFS FileSystems. Portanto, fique à vontade para remover os instantâneos que não sejam o último instantâneo nas duas extremidades.

Por exemplo, neste caso, o último instantâneo é Web1-2020-12-31_2. Portanto, para executar backups incrementais, esse instantâneo deve ser mantido na fonte e no destino (unidade externa) BTRFS FileSystems.

Suponha que você queira remover o /dados/.Instantâneos/Web1-2020-12-30 Snapshot.

Para fazer isso, execute o seguinte comando:

$ sudo btrfs subvolume excluir /dados /dados /.Instantâneos/Web1-2020-12-30

O instantâneo BTRFS /dados/.Instantâneos/Web1-2020-12-30 agora deve ser removido.

Da mesma maneira, você pode remover o /dados/.Snapshots/Web1-2020-12-31 Snapshot, do seguinte modo:

$ sudo btrfs subvolume excluir /dados /dados /.Instantâneos/Web1-2020-12-31

Agora, apenas o último instantâneo, /dados/.Instantâneos/Web1-2020-12-31_2, está disponível no sistema de arquivos BTRFS, montado no /dados diretório. Os outros instantâneos são backup na unidade externa, montada no /instantâneos diretório.

$ sudo btrfs Lista /dados do subvolume
$ sudo btrfs Lista de subvolumes /instantâneos

Restaurando instantâneos da unidade externa

Se você fez backup de seus instantâneos na unidade externa, poderá restaurá -los a qualquer momento a partir da unidade externa.

Por exemplo, eu removi o Web1-2020-12-30 Snapshot do meu sistema de arquivos BTRFS, montado no /dados diretório. Mas, este instantâneo é backup na unidade externa, montada no /instantâneos diretório. Vamos restaurar este instantâneo.

$ sudo btrfs Lista de subvolumes /instantâneos

Para restaurar o Web1-2020-12-30 Snapshot A partir da unidade externa, execute o seguinte comando:

$ sudo btrfs send /instantâneos /web1-2020-12-30 | sudo btrfs recebendo /dados /.Instantâneos

O Snapshot Web1-2020-12-30 deve ser restaurado no sistema de arquivos BTRFS montado no /dados diretório.

Como você pode ver, o Web1-2020-12-30 Snapshot é restaurado no sistema de arquivos BTRFS montado no /dados diretório.

$ sudo btrfs Lista /dados do subvolume

E, como você pode ver, o conteúdo do índice.html arquivo do Web1-2020-12-30 Snapshot. Esta é a primeira versão do índice.html arquivo de antes.

$ cat /dados /.Instantâneos/Web1-2020-12-30/índice.html

Conclusão

Neste artigo, você aprendeu como fazer backup de instantâneos do seu sistema de arquivos BTRFS para uma unidade externa. Você também aprendeu a fazer backups incrementais de seus instantâneos BTRFS para uma unidade externa. Por fim, você aprendeu a remover instantâneos existentes de um sistema de arquivos BRTFS e restaurar instantâneos da unidade externa também.