ZFS: Instalando e Usando zfs-auto-snapshot para Automatizar Criação de Snapshot – Parte 17

No post anterior vimos como usar o znapzend para automatizar a criação dos nossos snapshots. Hoje iremos ver outra alteranativa: zfs-auto-snapshot.

Instalando zfs-auto-snapshot

 

  1. Acesse o site oficial no githut  e baixe a versão atual, nesse momento é a 1.2.4, usando o comando wget.
    Como sempre, acessoa a pasta /home/downloads para que o arquivo seja baixado dentro dela:

    elder@server01:~$ cd ~/downloads/

    usando wget para baixar

    elder@server01:~/downloads$ wget https://github.com/zfsonlinux/zfs-auto-snapshot/archive/upstream/1.2.4.tar.gz
  2. Extraia o conteúdo do arquivo “1.2.4.tar.gz” baixado
    elder@server01:~/downloads$ tar xf 1.2.4.tar.gz

    Foi gerada a pasta “zfs-auto-snapshot-upstream-1.2.4”. Acesse ela

    elder@server01:~/downloads$ cd zfs-auto-snapshot-upstream-1.2.4
  3. Execute “make install” para compilarmos/instalarmos
    elder@server01:~/downloads/zfs-auto-snapshot-upstream-1.2.4$ sudo make install

Pronto, já temos nosso zfs-auto-snapshot instalado.

Usarei o comando locate para vermos os arquivos criados pela instalação  e filtrei com  “grep -v home/elder” para que não seja  feita procura dentro da minha pasta home/elder.

elder@server01:~$ sudo locate zfs-auto-snapshot | grep -v "home/elder"
/etc/cron.d/zfs-auto-snapshot
/etc/cron.daily/zfs-auto-snapshot
/etc/cron.hourly/zfs-auto-snapshot
/etc/cron.monthly/zfs-auto-snapshot
/etc/cron.weekly/zfs-auto-snapshot
/usr/local/sbin/zfs-auto-snapshot
/usr/local/share/man/man8/zfs-auto-snapshot.8

Podemos ver acima o zfs-auto-snapshot automaticamente é configurado para gerar snapshots

  • /etc/cron.d/zfs-auto-snapshot:  faz com que seja feito um snapshot a cada 15 minutos. Os snaphots a casa 15 minutos são chamados/rotulados de “frequent”
  • daily: diariamente
  • hourly: a toda hora
  • monthly: mensalmente
  • weekly: semanalmente

 

Também temos dois arquivos criados,

  • o programa: /usr/local/sbin/zfs-auto-snapshot
  • o manual de uso do programa: /usr/local/share/man/man8/zfs-auto-snapshot.8

Opções para zfs-auto-snapshot

  • -n ou –dry-run: Exibe ações na telas mas sem realmente fazer nada.
  • –skip-scrub: não cria snapshot de sistemas de arquivos que estão realizando scrub no momento
  • -h ou –help: exibe ajuda
  • -k ou –keep=nun: “nun” é qualquer número positivo e diferente de zero. mantém “num” snapshots e exclui os mais antigos. Exemplo –keep=2 irá manter os dois mais recentes snapshots e excluir os demais.
  • -l ou –label=nome: “Nome” pode ser qualquer palavra, mas geralmente é algo do tipo dia, mes, hora…
  • -p ou –prefix=nome: o prefixo é ‘zfs-auto-snap’. Ao definirmos –prefix=snapshot então snapshot substituirá zfs-auto-snap. Exemplo: meuPool@zfs-auto-snap-2021-02-25-1338 é o padrão e se usamos  –prefix=snapshot  ficará assim  meuPool@snapshot-2021-02-25-1338
  • -r ou –recursive: a recursividade faz com que seja criado snapshot do sistema de arquivos e todos os seus filhos/descendentes.
  • –pre-snapshot=comando: Executa um comando antes de gerar o snapshot
  • –post-snapshot=comando: Executa um comando depois de gerar o snapshot

 

Executando o zfs-auto-snapshot

Como vimos acima, nos agendamentos do cron, não precisamos praticamente fazer nada, os snapshots serão criados automaticamente de acordo com os planos acima(a cada 15 minutos, hourly, daily…).

Mas se quisermos testar podemos executar:

/usr/local/sbin/zfs-auto-snapshot  ou

apenas o comando zfs-auto-snapshot sem o caminho.

Logicamente que iremos usar apenas zfs-auto-snapshot. Mas ao criar scripts é recomendado usar o comando com todo o seu caminho absoluto.

  1. Liste os snapshots
    elder@server01:~$ sudo zfs list -t snapshot
    no datasets available

    Podemos ver que ainda não existem snapshots

  2. Vamos executar o comando zfs-auto-snaphot para criar snapshot do meuPool
    elder@server01:~$ sudo zfs-auto-snapshot meuPool
    @zfs-auto-snap-2021-02-25-1338, 1 created, 0 destroyed, 0 warnings.

    Liste novamente

    elder@server01:~$ sudo zfs list -t snapshot
    NAME                                               USED  AVAIL     REFER  MOUNTPOINT
    meuPool@zfs-auto-snap-2021-02-25-1338                0B      -       24K  -
    meuPool/contratos@zfs-auto-snap-2021-02-25-1338      0B      -       24K  -
    meuPool/documentos@zfs-auto-snap-2021-02-25-1338     0B      -       24K  -

    Podemos ver que além de snapshot para meuPool foi criado recursivamente para seus datasets filhos: meuPool/contratos e meuPool/documentos.

  3. Acima, em laranja, o rótulo(label) está como “zfs-auto-snap…”. Vamos alterar. Geralmente pode ser ‘hourly’, ‘daily’, ou ‘monthly’
    elder@server01:~$ sudo zfs-auto-snapshot -l hourly meuPool
    @zfs-auto-snap_hourly-2021-02-25-1341, 1 created, 0 destroyed, 0 warnings.

    Liste os snapshots

    elder@server01:~$ sudo zfs list -t snapshot
    NAME                                                      USED  AVAIL     REFER  MOUNTPOINT
    meuPool@zfs-auto-snap-2021-02-25-1338                       0B      -       24K  -
    meuPool@zfs-auto-snap_hourly-2021-02-25-1341                0B      -       24K  -
    meuPool/contratos@zfs-auto-snap-2021-02-25-1338             0B      -       24K  -
    meuPool/contratos@zfs-auto-snap_hourly-2021-02-25-1341      0B      -       24K  -
    meuPool/documentos@zfs-auto-snap-2021-02-25-1338            0B      -       24K  -
    meuPool/documentos@zfs-auto-snap_hourly-2021-02-25-1341     0B      -       24K  -

    Podemos colocar qualquer palavra no rótulo

    elder@server01:~$ sudo zfs-auto-snapshot -l diariamente  meuPoo
    elder@server01:~$ sudo zfs list -t snapshot
    NAME                                                           USED  AVAIL     REFER  MOUNTPOINT
    meuPool@zfs-auto-snap-2021-02-25-1338                            0B      -       24K  -
    meuPool@zfs-auto-snap_hourly-2021-02-25-1341                     0B      -       24K  -
    meuPool@zfs-auto-snap_diariamente-2021-02-25-1342                0B      -       24K  -
    meuPool/contratos@zfs-auto-snap-2021-02-25-1338                  0B      -       24K  -
    meuPool/contratos@zfs-auto-snap_hourly-2021-02-25-1341           0B      -       24K  -
    meuPool/contratos@zfs-auto-snap_diariamente-2021-02-25-1342      0B      -       24K  -
    meuPool/documentos@zfs-auto-snap-2021-02-25-1338                 0B      -       24K  -
    meuPool/documentos@zfs-auto-snap_hourly-2021-02-25-1341          0B      -       24K  -
    meuPool/documentos@zfs-auto-snap_diariamente-2021-02-25-1342     0B      -       24K  -
    
  4. Alterando o prefixo(–prefix ou -p) para snap e o rótulo(–label ou -l) para diario e definindo recursividade(–recursive ou  -r).
    elder@server01:~$ sudo zfs-auto-snapshot -l diario -p snap  -r  meuPool

    Listando

    elder@server01:~$ sudo zfs list -t snapshot 
    NAME                                             USED  AVAIL     REFER  MOUNTPOINT
    meuPool@snap_diario-2021-02-25-1429                0B      -       24K  -
    meuPool/contratos@snap_diario-2021-02-25-1429      0B      -       24K  -
    meuPool/documentos@snap_diario-2021-02-25-1429     0B      -       24K  -

 

Conclusão

O znapzend possui mais recursos de que a ferramenta zfs-auto-snapshot. znapzend pode, por exemplo, enviar backups para outro disco e até para outro servidor via ssh. Mas se a intenção é algo mais simples de se instalar e se não há a necessidade de enviar backups de snapshots para outros discos então recomendamos o uso de zfs-auto-snapshot.

Lembrando que, no caso do znapzend, o outro disco que receberá a cópia do snapshot também tem que estar formatado com o sistema de arquivos zfs.

Fontes: manual do comando zfs-auto-snapshot

 

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 *