ZFS: Criando Clones – Parte 11

Um clone em ZFS é um clone do snapshot. Não podemos editar um snapshot pois ele é apenas leitura, mas o clone é editável.  Podemos adicionar, excluir, editar arquivos dentro dele.

O snaphost é a origem do clone. Só conseguimos destruir um snapshot se não houver clones vinculados. Devemos destruir o clone para poder destruir o snapshot.

Criar clone é praticamente instantâneo e não consome espaço adicional inicialmente. Durante alterações de dados no clone ele começará a consumir espaço separado do snapshot.

Meu Atual Ambiente

tenho o pool “meuPool”

elder@server01:~$ sudo zpool list
NAME      SIZE  ALLOC   FREE  CKPOINT  EXPANDSZ   FRAG    CAP  DEDUP    HEALTH  ALTROOT
meuPool   160M  23,0M   137M        -         -     7%    14%  1.00x    ONLINE  -

Tenho o dataset  “meuPool/documentos”

elder@server01:~$ sudo zfs list
NAME                 USED  AVAIL     REFER  MOUNTPOINT
meuPool              198K  79,7M       24K  /meuPool
meuPool/documentos    24K  79,7M       24K  /meuPool/documentos

Vamos criar alguns arquivos dentro do dataset

elder@server01:~$ touch /meuPool/documentos/arquivos{1..7}.txt
elder@server01:~$ ls -1 /meuPool/documentos/
arquivos1.txt
arquivos2.txt
arquivos3.txt
arquivos4.txt
arquivos5.txt
arquivos6.txt
arquivos7.txt

Criando Snapshot meu Pool/documentos

elder@server01:~$ sudo zfs snapshot  meuPool/documentos@08_02_2021

listando o snapshot

elder@server01:~$ sudo zfs list -t snapshot
NAME                            USED  AVAIL     REFER  MOUNTPOINT
meuPool/documentos@08_02_2021     0B      -       25K  -

 

Criando um Clone do Snapshot

 

Criarei um clone do snapshot “meuPool/documentos@08_02_2021” e darei o nome de “documentosClone”

elder@server01:~$ sudo zfs clone  meuPool/documentos@08_02_2021    meuPool/documentosClone

Vamos listar os datasets e veremos que o clone estará visível

elder@server01:~$ sudo zfs list 
NAME                      USED  AVAIL     REFER  MOUNTPOINT
meuPool                   251K  79,7M       24K  /meuPool
meuPool/documentos         38K  79,7M       25K  /meuPool/documentos
meuPool/documentosClone    15K  79,7M       25K  /meuPool/documentosClone

Liste as montagens e veja que o clone foi montado automaticamente

elder@server01:~$ df -hT
Sist. Arq.              Tipo      Tam. Usado Disp. Uso% Montado em
.......
meuPool                 zfs        80M  128K   80M   1% /meuPool
meuPool/documentos      zfs        80M  128K   80M   1% /meuPool/documentos
meuPool/documentosClone zfs        80M  128K   80M   1% /meuPool/documentosClone

Veja os arquivos

elder@server01:~$ ls -1  /meuPool/documentosClone/
arquivos1.txt
arquivos2.txt
arquivos3.txt
arquivos4.txt
arquivos5.txt
arquivos6.txt
arquivos7.txt

vamos criar outros arquivos dentro do clone e ver o resultado

elder@server01:~$ touch /meuPool/documentosClone/documentos{1..5}.txt
elder@server01:~$ ls -1 /meuPool/documentosClone/
arquivos1.txt
arquivos2.txt
arquivos3.txt
arquivos4.txt
arquivos5.txt
arquivos6.txt
arquivos7.txt
documentos1.txt
documentos2.txt
documentos3.txt
documentos4.txt
documentos5.txt

 

Sabemos que os snapshots ficam dentro da pasta inicial/raiz de onde eles foram criados. Vamos visualizar o conteúdo do snapshot

elder@server01:~$ ls -1 /meuPool/documentos/.zfs/snapshot/08_02_2021/
arquivos1.txt
arquivos2.txt
arquivos3.txt
arquivos4.txt
arquivos5.txt
arquivos6.txt
arquivos7.txt

Vamos tentar criar um arquivo dentro do snapshot

elder@server01:~$ touch  /meuPool/documentos/.zfs/snapshot/08_02_2021/teste.txt
touch: não foi possível tocar '/meuPool/documentos/.zfs/snapshot/08_02_2021/teste.txt': Sistema de arquivos somente para leitura

Em vermelho acima vemos que: “Sistema de arquivos somente para leitura

 

Destruindo o Clone

Liste os DataSets

elder@server01:~$ sudo zfs list 
NAME                      USED  AVAIL     REFER  MOUNTPOINT
meuPool                   251K  79,7M       24K  /meuPool
meuPool/documentos         38K  79,7M       25K  /meuPool/documentos
meuPool/documentosClone    15K  79,7M       25K  /meuPool/documentosClone

Destrua o clone  “meuPool/documentosClone”

elder@server01:~$ sudo zfs destroy meuPool/documentosClone

 

Conclusão

Vimos como como criar um clone e destruí-lo. Também aprendemos que o clone é editável e independente do snapshot do qual ele foi criado; podemos excluir, alterar e adicionar dados dentro do clone sem afetar o snapshot.

O snapshot é uma imagem de um sistema de arquivos e não é editável, é apenas leitura.

Leitor voraz e um dos administradores do GNU/Linux Brasil no Whatsapp, facebook, youtube e nesse dito site: www.gnulinuxbrasil.com.br

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *