Btrfs

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 obtidos 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 em 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 em 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:

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. Portanto, certifique-se de substituir esses nomes pelos 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á feito o backup no sistema de arquivos Btrfs criado no sdb2 partição. O sistema de arquivos Btrfs criado no sdb2 partição funcionará como a unidade externa. Você também pode usar um pen drive USB ou um disco rígido externo; apenas certifique-se de formatá-lo com o sistema de arquivos Btrfs.

Para obter ajuda com a instalação do sistema de arquivos Btrfs no Ubuntu, consulte meu artigo Instalar e usar Btrfs no Ubuntu 20.04 LTS.

Para obter ajuda com a instalação do sistema de arquivos Btrfs no Fedora, consulte meu artigo Instalar e usar Btrfs no Fedora 33.

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

Vou formatar tanto o sdb1 e sdb2 partições como Btrfs. Vou usar o sdb1 partição para armazenar os dados e instantâneos 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 forneça os instantâneos do rótulo 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 / snapshots para montar o sdb1 e sdb2 partições, respectivamente, da seguinte forma:

$ sudo mkdir -v / data, snapshots

Monte o sistema de arquivos Btrfs que você criou no sdb1 partição no diretório / data, da seguinte maneira:

$ sudo mount / dev / sdb1 / data

Da mesma forma, monte o sistema de arquivos Btrfs que você criou no sdb2 partição no / snapshots diretório, da seguinte forma:

$ sudo mount / dev / sdb2 / snapshots

Como você pode ver na imagem 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, vamos criar o projeto fictício web1 no / data / projects / web1 Subvolume Btrfs. Faremos um instantâneo desse subvolume nesta seção, bem como alguns outros instantâneos nas seções posteriores deste artigo.

Primeiro, crie o novo diretório / data / projects, do seguinte modo:

$ sudo mkdir -v / data / projects

Em seguida, crie o novo subvolume web1 no / data / diretório de projetos, do seguinte modo:

$ sudo btrfs subvolume create / data / projects / web1

Finalmente, crie o novo índice de arquivo.html no / data / projects / web1 subvolume com o editor de texto nano, da seguinte maneira:

$ sudo nano / data / projects / web1 / index.html

Digite as seguintes linhas de código no índice.arquivo html:




Site de demonstração



Olá Mundo




Quando terminar, pressione <Ctrl> + X seguido pela Y e <Entrar> para salvar o índice.arquivo html.

Da mesma forma, crie o novo arquivo estilo.css no / data / projects / web1 subvolume do seguinte modo:

$ sudo nano / data / projects / web1 / style.css


Digite as seguintes linhas de código no estilo.css Arquivo:

h1
cor verde;

Quando terminar, pressione <Ctrl> + X seguido pela Y e <Entrar> para salvar o estilo.css Arquivo.

Agora o / data / projects / web1 subvolume contém o índice.html e estilo.arquivo css.

$ ls -lh / data / projects / 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/.snapshots / web1-2020-12-30 do / data / projects / web1 subvolume com o seguinte comando:

$ sudo btrfs subvolume snapshot -r / data / projects / web1 / data /.snapshots / web1-2020-12-30

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

Lista / dados de subvolume $ sudo btrfs

Backup de instantâneos para unidade externa

Para fazer backup do instantâneo /dados/.snapshots / web1-2020-12-30 para outro sistema de arquivos Btrfs (unidade externa sdb2, neste caso) montado no / snapshots diretório, execute o seguinte comando:

$ sudo btrfs send / data /.instantâneos / web1-2020-12-30 | sudo btrfs receive / snapshots

O instantâneo /dados/.snapshots / web1-2020-12-30 deve ser feito backup no sistema de arquivos Btrfs externo (sdb2) montado no / snapshots diretório.

Como você pode ver, o novo subvolume web1-2020-12-30 foi criado no sistema de arquivos Btrfs externo.

Lista de subvolumes / instantâneos de $ sudo btrfs

O instantâneo web1-2020-12-30 deve ter os mesmos arquivos/ diretórios Enquanto o /dados/.snapshots / web1-2020-12-30 instantâneo.

$ tree -a / snapshots

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

$ sudo btrfs subvolume show / snapshots / web1-2020-12-30

Backup incremental de instantâneos para unidade externa

Se houver muitos arquivos nos instantâneos para fazer backup em uma unidade externa, os backups incrementais irão ajudá-lo a acelerar a operação de backup. Nesse caso, o Btrfs só atualizará os arquivos que foram alterados desde o último instantâneo e copiará os novos arquivos que não estavam disponíveis no último instantâneo.

Nesta seção, vou mostrar como fazer backups incrementais de instantâneos Btrfs para sistemas de arquivos Btrfs externos.

Primeiro, abra o índice.arquivo html de / data / projects / web1 subvolume, do seguinte modo:

$ sudo nano / data / projects / web1 / index.html

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

Faça um novo instantâneo somente leitura do / data / projects / web1 subvolume, do seguinte modo:

$ sudo btrfs subvolume snapshot -r / data / projects / web1 / data /.snapshots / web1-2020-12-31

Como você pode ver, o novo instantâneo /dados/.snapshots / web1-2020-12-31 do / data / projects / web1 subvolume foi criado.

Lista / dados de subvolume $ sudo btrfs

Agora, estamos prontos para fazer um backup incremental.

Para fazer um backup incremental, você precisará de um instantâneo comum dos sistemas de arquivos Btrfs de origem e de destino (unidade externa). O instantâneo comum geralmente é o instantâneo mais recente 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 no sistema de arquivos Btrfs de origem e destino) do sistema de arquivos Btrfs de origem. O Btrfs irá 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 destino), /dados/.snapshots / web1-2020-12-30, também.

Um backup incremental do /dados/.snapshots / web1-2020-12-31 O instantâneo pode ser obtido em um sistema de arquivos Btrfs externo, da seguinte maneira:

$ sudo btrfs send -p / data /.snapshots / web1-2020-12-30 / data /.instantâneos / web1-2020-12-31 | sudo btrfs receive / snapshots

Um backup incremental do /dados/.snapshots / web1-2020-12-31 deve ser tirado um instantâneo.

Como você pode ver, o instantâneo web1-2020-12-31 foi feito backup no sistema de arquivos Btrfs externo montado no / snapshots diretório.

Lista de subvolumes / instantâneos de $ sudo btrfs

Como você pode ver na imagem abaixo, as mudanças que você fez no índice.arquivo html estão disponíveis no instantâneo web1-2020-12-31 cujo backup foi feito no sistema de arquivos Btrfs externo.

$ cat / snapshots / web1-2020-12-31 / index.html

Da mesma forma, você pode fazer quantos backups incrementais de seus instantâneos desejar.

Vou mostrar a você como fazer um backup incremental mais uma vez. Não vou perder tempo para explicar de novo. Em vez disso, vou apenas mostrar o processo para maior clareza.

Abra o índice.arquivo html de / data / projects / web1 subvolume, do seguinte modo:

$ sudo nano / data / projects / web1 / index.html

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

Faça um novo instantâneo somente leitura do / data / projects / web1 subvolume, do seguinte modo:

$ sudo btrfs subvolume snapshot -r / data / projects / web1 / data /.snapshots / web1-2020-12-31_2

Faça um backup incremental do /dados/.snapshots / web1-2020-12-31_2 snapshot para um sistema de arquivos Btrfs externo, da seguinte maneira:

$ sudo btrfs send -p / data /.snapshots / web1-2020-12-31 / data /.snapshots / web1-2020-12-31_2 | sudo btrfs receive / snapshots

Observação: Agora, o instantâneo pai para o qual o /dados/.snapshots / web1-2020-12-31_2 snapshot será comparado é /dados/.snapshots / web1-2020-12-31.

Como você pode ver, o web1-2020-12-31_2 instantâneo foi copiado para o sistema de arquivos Btrfs externo montado no / snapshots diretório.

Lista de subvolumes / instantâneos de $ sudo btrfs

Como você pode ver na imagem abaixo, as mudanças recentes feitas no índice.arquivo html estão disponíveis no instantâneo web1-2020-12-31_2 backup para o sistema de arquivos Btrfs externo.

$ cat / snapshots / web1-2020-12-31_2 / index.html

Mantendo as coisas limpas

Se você faz backup de seus snapshots Btrfs com frequência, você vai acabar com muitos snapshots 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 Btrfs, você pode manter alguns instantâneos em seu sistema de arquivos Btrfs e fazer backup de todos os instantâneos em sua unidade externa.

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

Para realizar backups de seus instantâneos Btrfs, você precisa manter pelo menos o instantâneo mais recente em ambas as fontes (/dados/.instantâneos) e o destino (/ snapshots - unidade externa) Sistemas de arquivos Btrfs. Portanto, sinta-se à vontade para remover qualquer instantâneo que não seja o instantâneo mais recente em ambas as extremidades.

Por exemplo, neste caso, o instantâneo mais recente é web1-2020-12-31_2. Portanto, para realizar backups incrementais, este instantâneo deve ser mantido na origem e no destino (unidade externa) sistemas de arquivos Btrfs.

Suponha que você deseja remover o /dados/.snapshots / web1-2020-12-30 snapshot.

Para fazer isso, execute o seguinte comando:

$ sudo btrfs subvolume delete / data /.snapshots / web1-2020-12-30

O instantâneo Btrfs /dados/.snapshots / web1-2020-12-30 agora deve ser removido.

Da mesma forma, você pode remover o /dados/.snapshots / web1-2020-12-31 snapshot, do seguinte modo:

$ sudo btrfs subvolume delete / data /.snapshots / web1-2020-12-31

Agora, apenas o instantâneo mais recente, /dados/.snapshots / web1-2020-12-31_2, está disponível no sistema de arquivos Btrfs, montado no /dados diretório. Os outros instantâneos são copiados na unidade externa, montada no / snapshots diretório.

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

Restaurando instantâneos de unidade externa

Se você fez backup dos seus instantâneos no drive externo, você pode restaurá-los a qualquer momento do drive externo.

Por exemplo, eu removi o instantâneo web1-2020-12-30 do meu sistema de arquivos Btrfs, montado no /dados diretório. Mas, este instantâneo é feito em uma unidade externa, montada no / snapshots diretório. Vamos restaurar este instantâneo.

Lista de subvolumes / instantâneos de $ sudo btrfs

Para restaurar o instantâneo web1-2020-12-30 da unidade externa, execute o seguinte comando:

$ sudo btrfs send / snapshots / web1-2020-12-30 | sudo btrfs receive / data /.instantâneos

O instantâneo web1-2020-12-30 deve ser restaurado no sistema de arquivos Btrfs montado no /dados diretório.

Como você pode ver, o instantâneo web1-2020-12-30 é restaurado no sistema de arquivos Btrfs montado no /dados diretório.

Lista / dados de subvolume $ sudo btrfs

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

$ cat / data /.snapshots / web1-2020-12-30 / index.html

Conclusão

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

Como usar o Xdotool para estimular cliques do mouse e pressionamentos de tecla no Linux
Xdotool é uma ferramenta de linha de comando gratuita e de código aberto para simular cliques do mouse e pressionamentos de tecla. Este artigo irá cob...
Os 5 principais produtos ergonômicos de mouse de computador para Linux
O uso prolongado do computador causa dor no pulso ou nos dedos? Você está sofrendo de rigidez nas articulações e constantemente precisa apertar as mão...
Como alterar as configurações do mouse e touchpad usando Xinput no Linux
A maioria das distribuições Linux vem com a biblioteca “libinput” por padrão para lidar com eventos de entrada em um sistema. Ele pode processar event...