Introdução e administração de pontos de restauração no openSUSE

Nesse artigo vamos fazer uma análise e instrução de como usar snapshots do BTRFS (ponto de restauração) no openSUSE. O artigo tem como objetivo difundir e explicar o sistema para os iniciantes no mundo Linux e em especial openSUSE.

[ Hits: 1.042 ]

Por: Edivan Santtos em 08/07/2020 | Blog: http://bit.ly/2Pi7y0m


Introdução



Antes de começarmos, vamos falar um pouco sobre cada coisa.

Sobre o filesystem

O BTRFS é um sistema de arquivos já conhecido no mundo Linux, desenvolvido pela Oracle, é o maior condidato para substituir o ext4, assim como o wyland está substituindo o x.org. Embora já conhecido e tendo sido criado há muito tempo, algumas distros pouco indicam ele, ao contrário da openSUSE e o SUSE Linux Enterprise, que o tem como sistema de arquivos padrão para o diretório raiz há muito tempo. Muitas distros ainda o consideram como experimental, não indicando a instalação com o sistema de arquivos. Nem o Fedora, famoso por ser pioneiro em tecnologias, colocou o BTRFS como padrão durante a instalação, o Anaconda ainda sugere o ext4.

Durante a instalação do openSUSE, ao escolher o BTRFS, é possível vermos os níveis de RAID compatíveis, bem como uma explicação detalhada.

Principais funções

COW (Copy-On-Write) e Snapshot

Suas funções mais conhecidas e faladas como vantagens em relação ao ext4 e outro filesystem, é o COW (Copy-On-Write) e o recurso de Snapshot. O cow tem como função otimizar a entrada/saída de dados, que tem como objetivo dar maior vida útil aos SSDs e melhorar a velocidade nos HDs. É claro que existe uma grande lista de funções, como o empacotamento mais eficiente, utilizando melhor o espaço. Mas vamos focar nessas duas.

Outra função é a de Snapshots, que consiste em cópias do sistema antes de ter algum problema, dessa forma você poderá recuperar seu sistema sem ter que reinstalar. O conhecido Ponto de Restauração presente em alguns sistemas operacionais. Ao instalar com usando o BTRFS ele gerará muitos subvolumes, algo semelhante aos LVMs, que de certa forma gerenciarão os arquivos e tornarão mais fácil manipular o snapshot.

A manipulação do snapshot é através do Snapper, que na página do openSUSE, é descrito dessa forma:

"Snapper é uma ferramenta para gerenciar snapshots btrfs. Além, de obviamente criar e remover snapshots, ela pode comparar snapshots e reverter diferenças entre eles. Em termos simples, isto permite que usuários visualizem versões antigas de arquivos e revertam as alterações. Snapper está disponível com uma interface de linha de comando e módulo do Yast. Ambos fazem uso da biblioteca C++ libsnapper que também está disponível para outros programas."
Note que os subvolumes não estão ocupando novos espaços. Algo para se esclarecer, é que o Snapshot compacta os arquivos, suportando diversos padrões. Há quem prefira um em detrimento do outro. O padrão utilizado é o zlib.

Caso tenha interesse sobre o BTRFs, em português, tem na wiki: Btrfs (Português) - ArchWiki

Você pode ver uma comparação entre os tipos de compactação aqui: Btrfs Zstd Compression Benchmarks On Linux 4.14 - Phoronix (lembrando que o teste não foi feito com o openSUSE, o que certamente poderia ter resultados diferentes, levando em consideração a maturidade do sistema de arquivos na distro).

Administrando um Snapshot

Automaticamente o sistema já criará, mas você pode criar seu próprio snapshot.

# btrfs subvolume snapshot /caminho/do/subvolume /caminho/do/snapshot

Para verificar o uso do btrfs use o comando:

# btrfs filesystem show /

Caso você queira verificar a lista de snapshots criada, veja com o comando:

# snapper list

Se você estiver em dúvida entre as diferenças de uma imagem para outra, poderá usar o comando abaixo, que mostrará as diferenças entre elas:

# snapper diff 71..72

Veja abaixo que existe um sinal de "+", isso informa que são novos arquivos.
Também é possível que você crie um snapshot para uma data específica, usando dessa forma:

# snapper create --description "Snapshot for week 2 2020"

Mas e se dispor de pouco espaço e quiser apagar snapshots antigos? Use o seguinte:

# snapper delete 65

E para deletar todos?

# snapper delete 1-100000

E se quiser modificar alterações feitas entre um e outro?

# snapper undochange 2..3

Vale lembrar que estamos a falar de snapshot para a partição /, automaticamente não é feito o snapshot para a partição /home, mesmo que ela não esteja separada.

No entanto, é possível fazermos manualmente, com o seguinte comando:

# snapper -c home create-config /home

Depois é só listar e verificar, como fizemos acima na partição /.

# snapper -c home list
Crie um com a descrição, para ser fácil de memorizar:

# snapper -c home create --description "antes da pandemia"

Evidentemente que esses passos foram por meio do terminal, mas é possível que você também os faça por meio de interface gráfica. Basta adicionar um plugin para a maravilha chamada YaST, caso ele já não esteja instalado.

# zypper in yast2-snapper
Para o YaST criar automaticamente, use:

# snapper-zypp-plugin

Caso queira que opções avançadas de uso do snapshot aparaçam no grub, rode o comando:

# grub2-snapper-plugin

Ao acessar o YaST, vá para a guia Instantâneos do Sistema de Arquivos:
Clique aí e abrirá uma janela com os snapshots.
Note que existem duas opções, a root e a home, visto que criamos um snapshot para a /home.

Agora é só acessar qual deseja.

A restauração também é muito simples, na tela de login já irá aparecer a opção:
Basta selecionar a imagem que irá aparecer:


Basta selecionar e já terá recuperado o sistema. Em outras distros você tem um trabalho quase hercúleo comparado à simplicidade do openSUSE. Sem dúvidas até o momento é a melhor integração e desenvolvimento do BTRFS que temos na comunidade Linux.

Por enquanto, é apenas isso. O tutorial se destinou a usuários inciante que ainda não estão familiarizados com o sistema e suas funções, para um usuário avançado isso talvez não faça muito diferencial. Caso tenha mais informações que queira compartilhar para acrescentar ao artigo, deixa aí nos comentários. Informações útil nunca é demais e é sempre bem-vinda.

*Todos os passos foram testados na máquina principal e na virtual.

Até mais, linuxers.

   

Páginas do artigo
   1. Introdução
Outros artigos deste autor

Introdução à Solus Linux - Distro Independente

openSUSE - Deveria Ser a Porta de Entrada no Mundo Linux?

Por que voltei para o Ubuntu? O que tem na versão 19.04?

Arco Linux - Distro completa

Leitura recomendada

Discos Virtuais na Amazon WS - Como expandir disco EBS em servidores virtuais Amazon WS

NFS rápido e direto usando Slackware 12

Como atualizar o Ubuntu Dapper (6.06) para Edgy (6.10)

Linux - Sistema de arquivos

Montando partições automaticamente

  
Comentários
[1] Comentário enviado por clodoaldops em 09/07/2020 - 10:31h

Muito bom. Parece que BTRFS será padrão no Fedora 33. Será uma boa oportunidade p/ testar.

[2] Comentário enviado por Fabio_Farias em 09/07/2020 - 11:18h

Muito bom o artigo mas apenas para complementar, segue algumas informações adicionais importantes no openSUSE. Pelo menos nas minhas instalações desse sistema:

- O comando # zypper in yast2-snapper não é necessário pois se usar o btrfs como padrão o sistema já instalará esse modulo do YaST

- O comando snapper-zypp-plugin também não é necessário, já será instalado automaticamente e o YaST criará snapshots regulares nas seguintes situações:

- a cada 1 hora e;
- antes e depois de usar o zypper ou o YaST para atualizar o sistema ou instalar/desinstalar um pacote. São chamados de snapshots pré e pós.

- O comando grub2-snapper-plugin também não é necessário pelos mesmos motivos acima, uma vez que o sistema já faz essa configuração de combinar o grub + snapper + btrfs.

Os passos acima acabam sendo desnecessários pois durante a instalação eu marco um "caixinha" chamada "Habilitar snaphosts" ao selecionar o btrfs como sistema de arquivos para a raiz (/).

No openSUSE particularmente é desnecessário o gerenciamento por linha de comando. Somente usuários avançados gostam disso. Como gosto de facilidade uso o YaST. No entanto, nem preciso me preocupar com isso pois o sistema gerencia automaticamente. Só uso se quero criar um snapshot manualmente antes de fazer alguma alteração significativa no sistema. Como foi dito acima, no caso de um grande update nem precisa criar pois o sistema já faz isso. Não uso o Tumbleweed mas deve ser muito útil pois ajuda a recuperar o sistema se alguma atualização falhar.

Agora uma pequena correção ao artigo:

Não basta somente inicializar pelo snapshot que deseja usar na recuperação. Como é descrito na tela do grub, os snapshots são inicializados em modo somente leitura (read-only). Uma vez conferido se tudo está ok, para que o snapshot se torne a inicialização padrão (e assim efetive a restauração dos sistema) é necessário executar o comando

# snapper rollback

Ao reiniciar o sistema terá retornado ao snapshot selecionado.

[3] Comentário enviado por edivandjs em 09/07/2020 - 13:08h


[1] Comentário enviado por clodoaldops em 09/07/2020 - 10:31h

Muito bom. Parece que BTRFS será padrão no Fedora 33. Será uma boa oportunidade p/ testar.



Ficará ótima com colocando essa integração. Gostando muito do BTRFs.

[4] Comentário enviado por edivandjs em 09/07/2020 - 13:14h


[2] Comentário enviado por Fabio_Farias em 09/07/2020 - 11:18h

Muito bom o artigo mas apenas para complementar, segue algumas informações adicionais importantes no openSUSE. Pelo menos nas minhas instalações desse sistema:

- O comando # zypper in yast2-snapper não é necessário pois se usar o btrfs como padrão o sistema já instalará esse modulo do YaST

- O comando snapper-zypp-plugin também não é necessário, já será instalado automaticamente e o YaST criará snapshots regulares nas seguintes situações:

- a cada 1 hora e;
- antes e depois de usar o zypper ou o YaST para atualizar o sistema ou instalar/desinstalar um pacote. São chamados de snapshots pré e pós.

- O comando grub2-snapper-plugin também não é necessário pelos mesmos motivos acima, uma vez que o sistema já faz essa configuração de combinar o grub + snapper + btrfs.

Os passos acima acabam sendo desnecessários pois durante a instalação eu marco um "caixinha" chamada "Habilitar snaphosts" ao selecionar o btrfs como sistema de arquivos para a raiz (/).

No openSUSE particularmente é desnecessário o gerenciamento por linha de comando. Somente usuários avançados gostam disso. Como gosto de facilidade uso o YaST. No entanto, nem preciso me preocupar com isso pois o sistema gerencia automaticamente. Só uso se quero criar um snapshot manualmente antes de fazer alguma alteração significativa no sistema. Como foi dito acima, no caso de um grande update nem precisa criar pois o sistema já faz isso. Não uso o Tumbleweed mas deve ser muito útil pois ajuda a recuperar o sistema se alguma atualização falhar.

Agora uma pequena correção ao artigo:

Não basta somente inicializar pelo snapshot que deseja usar na recuperação. Como é descrito na tela do grub, os snapshots são inicializados em modo somente leitura (read-only). Uma vez conferido se tudo está ok, para que o snapshot se torne a inicialização padrão (e assim efetive a restauração dos sistema) é necessário executar o comando

# snapper rollback

Ao reiniciar o sistema terá retornado ao snapshot selecionado.



Obrigado pela contribuição Fábio. No caso dos comando "yast2-snapper e snapper-zypp-plugin", quando coloquei o "caso ele já não esteja instalado" imaginei que na instalação mínima pudessem não serem instalado. Na verdade nunca gostei de instalação mínima, nem sei o que vem ou não. No caso da restauração do snapshot, fiz a seleção do snapshot e o sistema iniciou normalmente. Mas não mexi em nada, então não sabia se estava somente leitura. Deixei passar esse detalhe. Vlw, até a próxima.

[5] Comentário enviado por Fabio_Farias em 09/07/2020 - 18:16h


Obrigado pela contribuição Fábio. No caso dos comando "yast2-snapper e snapper-zypp-plugin", quando coloquei o "caso ele já não esteja instalado" imaginei que na instalação mínima pudessem não serem instalado. Na verdade nunca gostei de instalação mínima, nem sei o que vem ou não. No caso da restauração do snapshot, fiz a seleção do snapshot e o sistema iniciou normalmente. Mas não mexi em nada, então não sabia se estava somente leitura. Deixei passar esse detalhe. Vlw, até a próxima.


Não faço instalações mínimas do openSUSE então também não tenho certeza. Mas por se tratar de algo que envolve o sistema de arquivos acredito que mesmo nesse tipo de instalação a configuração envolvendo os snasphots e o snapper seja feita usando esses pacotes, desde que, evidentemente, se use o btrfs como sistema de arquivos.

Sem dúvidas até o momento é a melhor integração e desenvolvimento do BTRFS que temos na comunidade Linux.


Concordo. Não vi essa integração em nenhuma outra distro. O SUSE Linux Enterprise apostou no btrfs e parece ter dado certo.

Quanto ao detalhe do comando #snapper roolback eu também só fui saber depois pois o sistema inicia em modo leitura e ao desligar "perde" as configurações que foram feitas. Esse comando confirma a substituição do snapshot sobre o sistema atual.

Ótimo artigo. Parabéns!



Contribuir com comentário