De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.


Partições Btrfs - Snapshots e Clones

Colaboração: Rubens Queiroz de Almeida

Data de Publicação: 3 de outubro de 2023

Dando sequencia aos tutoriais sobre o sistema de particionamento Btrfs, falaremos hoje sobre a criação e funcionamento de snapshots.

A palavra snapshot significa instantâneo, ou seja, equivale a uma foto tirada em um determinado momento. No contexto de um sistema operacional equivale a congelar uma determinada situação. Quando da criação de um snapshot não é feita uma cópia dos dados, são copiadas apenas as referências aos dados já existentes, os dados em si não são copiados. Os snapshots são implementados como cópias COW (Copy-On-Write), que funciona como descrito anteriormente.

Imagine que temos um objeto ou conjunto de dados. Vários processos ou entidades podem querer "copiar" esse objeto, mas em vez de fazer uma cópia completa, eles apenas mantêm uma referência ao objeto original.

Quando uma das entidades quer modificar o objeto "copiado", o COW entra em ação. Em vez de modificar o objeto original (o que afetaria todas as outras entidades que referenciam o objeto), uma cópia real do objeto é feita naquele momento (daí o nome "Copy-On-Write"). A entidade que solicitou a modificação agora trabalha com esta cópia, enquanto as outras entidades continuam a referenciar o objeto original.

O benefício principal do COW é a economia de recursos. Se as entidades nunca modificarem o objeto, nunca será necessário criar cópias reais. Isso economiza tempo e espaço de armazenamento.

Por exemplo, para criar um snapshot da partição Btrfs montada em /mnt, procedemos como abaixo:

$ sudo btrfs subvolume snapshot /mnt /mnt/snapshot1

A clonagem no Btrfs também é baseada na técnica COW (Copy-On-Write).

Quando você clona um arquivo ou diretório, ele ainda aponta para os mesmos blocos de dados que o original. Somente quando o original ou o clone é modificado é que os dados são realmente duplicados.

Criar um clone é relativamente simples, você faz isto com o nosso velho conhecido cp:

$ cp --reflink=always original.txt clone.txt 

Quando a diretiva --reflink=always é fornecida, o comando cp copia os blocos de dados apenas quando estes forem modificados.

As técnicas de clonagem e criação de snapshots são particularmente úteis em sistemas empresariais de grande porte, mas mesmo usuários domésticos podem se beneficiar destes recursos avançados.

Por exemplo, atualizações podem ser problemáticas. Antes de atualizar o seu sistema, é recomendável a criação de um snapshot retratando o estado atual do sistema e aplicativos. Como já vimos, com a técnica COW este snapshot é criado em poucos segundos, visto que não é feita a cópia dos dados.

Se a instalação apresentou problemas, basta restaurar o sistema a partir do snapshot criado.

Considerações Importantes

  1. Embora os snapshots não ocupem muito espaço inicialmente (graças ao COW), eles podem crescer com o tempo conforme os dados no subvolume original são modificados.

  2. Os snapshots podem ser usados para backup, mas lembre-se de que eles residem no mesmo dispositivo. Para verdadeiros backups, você deve copiar o snapshot para um dispositivo diferente.

  3. Ao longo do tempo, conforme aumenta o número de snapshots criados, eles podem consumir uma quantidade significativa de espaço. É recomendável avaliar periodicamente os snapshots e excluir aqueles que não são mais necessários.

  4. Um outro problema a ser tratado é a fragmentação do disco. Como o particionamento Btrfs é baseado em COW, pode ocorrer a fragmentação com o tempo, especialmente em sistemas que requerem muitas operações de gravação. Caso seja observada uma diminuição no desempenho, uma possível causa é a fragmentação. Neste caso, você pode fazer a desfragmentação da partição com o comando:

    $ sudo btrfs filesystem defragment /ponto/de/montagem 

Adicionar comentário

* Campos obrigatórios
5000
Powered by Commentics

Comentários

Nenhum comentário ainda. Seja o primeiro!


Veja a relação completa dos artigos de Rubens Queiroz de Almeida