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.
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.
$ sudo btrfs filesystem defragment /ponto/de/montagem
This policy contains information about your privacy. By posting, you are declaring that you understand this policy:
This policy is subject to change at any time and without notice.
These terms and conditions contain rules about posting comments. By submitting a comment, you are declaring that you agree with these rules:
Failure to comply with these rules may result in being banned from submitting further comments.
These terms and conditions are subject to change at any time and without notice.
Comentários