Como notamos na semana passada, o Ubuntu 19.10 chegou oficialmente e traz consigo uma série de características realmente excitantes. Embora a maioria dessas novas opções seja destinada a usuários desktop, há uma característica particularmente empolgante que beneficiará tanto os usuários desktop quanto os usuários de servidor. Esse recurso é o suporte a ZFS.
Primeiro desenvolvido pela Sun Microsystems para sua distro Solaris Unix, ZFS é uma combinação de sistema de arquivos de 128 bits e gerenciador de volume lógico que oferece os seguintes recursos:
- É escalável.
- Oferece suporte a alta capacidade de armazenamento e compressão de dados mais eficiente.
- Inclui snapshots e rollbacks.
- Suporta copy-on-write clones.
- Faz verificação contínua de integridade e reparo automático.
- 128-bit addressing
- E muito mais.
Ask qualquer administrador e eles concordarão que a adição de ZFS é um grande negócio para o Ubuntu. Porquê? Só os instantâneos e as funcionalidades de rollback valem o preço de entrada (que, a propósito, é gratuito). Com este recurso, os administradores podem reverter seus sistemas para um estado de funcionamento (ou um estado que incluiu dados apagados acidentalmente). Isso é uma grande coisa.
Obtendo snapshots e rollbacks não são uma coisa nova. Na verdade, muitas plataformas têm incluído esta ferramenta há anos. Então talvez o Ubuntu esteja um pouco atrás da curva nisto. Mas para quem usa Ubuntu este é um caso de “melhor tarde do que nunca”
Mas como o ZFS funciona no Ubuntu? Fico feliz que tenha perguntado. Deixe-me mostrar-lhe.
A Caveat
Antes de mergulhar nisto, saiba que o suporte ZFS no Ubuntu 19.10 é experimental. Embora eu ache-o incrivelmente estável, você pode pensar duas vezes em usá-lo em um ambiente de produção (até que ele não esteja mais listado como “experimental”).
Tambem, note que o suporte a ZFS é atualmente oferecido somente durante a instalação da versão desktop. Isso não significa que você não possa adicionar suporte ao sistema de arquivos na versão servidor, mas não é tão simples assim. Por causa disso, estarei demonstrando na versão desktop do Ubuntu 19.10.
Instalação
O primeiro passo é habilitar o ZFS no momento da instalação do Ubuntu 19.10. Durante a instalação, você encontrará uma nova opção na fase do tipo Instalação (Figura 1).
Figure 1: Selecionando a opção ZFS durante a instalação.
Após a instalação terminar, reinicie e faça o login.
Se você estiver usando a versão do Ubuntu 19 do servidor.10, você sempre pode instalar o suporte a ZFS com o comando:
1
|
sudo apt-get install zfsutils-linux
|
Obviamente, se você for por esse caminho, você terá que dar alguns passos extras (como a criação de conjuntos de dados). Com a instalação da área de trabalho, você encontrará toda a sua hierarquia de diretórios composta de conjuntos de dados ZFS, portanto há muito menos trabalho a fazer.
Primeiro Passo com ZFS
A partir do momento em que você tiver feito login na área de trabalho, você vai querer abrir uma janela de terminal e obter uma listagem dos seus conjuntos de dados. Com instalações Ubuntu que não usam ZFS, você normalmente trabalharia com caminhos de diretório como /home/jack ou /usr/local/. Esse não é o caso dos sistemas habilitados para ZFS. Ao invés disso, eles trabalham com conjuntos de dados. Um conjunto de dados é um tipo de sistema de arquivos que compartilha um pool de armazenamento (o bloco de construção mais básico do ZFS).
Para encontrar seus conjuntos de dados, emita o comando:
1
|
lista zfs
|
Como você pode ver (na Figura 2), cada diretório é encontrado no bpool (boot) ou no rpool (root) pool.
Figure 2: Nosso conjunto de dados listagem.
Trabalhemos com um diretório home do usuário. Neste caso, o conjunto de dados rpool/USERDATA/jack_bwcn4u.
Criar um Snapshot
A primeira coisa que vamos fazer é criar um novo snapshot do diretório /home/jack (que, lembre-se, é o conjunto de dados rpool/USERDATA/jack_bwcn4u). Digamos que queremos criar um snapshot etiquetado com a data de hoje. O comando para isso seria:
1
|
sudo zfs snapshot rpool/USERDATA/jack_bwcn4u@FRIDAY10-18-19
|
>
Se você pudesse incluir o comando de data assim:
1
|
sudo zfs rollback rpool/USERDATA/jack_bwcn4u@`date +%F`
|
>
Para verificar se a sua fotografia foi tirada, emita o comando:
1
|
zfs list -t snapshot
|
Você deve ver todos os snapshots atuais listados (Figura 3).
Figure 3: Nosso novo instantâneo foi criado.
Rolling Back a Snapshot
Vamos dizer, por qualquer razão, que um diretório foi acidentalmente excluído desse diretório home. O que é que você faz? Felizmente, você tirou um instantâneo e pode rolar esse instantâneo de volta, de modo que o diretório excluído retorne.
Primeiro, vamos apagar o directório ~/Documents com o comando:
1
|
rm -rf /home/jack/Documents
|
Saiba o comando ls e verá que o diretório Documents desapareceu (Figura 4).
O nosso diretório Documents foi apagado.
Agora vamos reverter o snapshot de sexta-feira para recuperar esse diretório. Para fazer isso, emita o comando:
1
|
sudo zfs rollback rpool/USERDATA/jack_bwcn4u@FRIDAY10-18-19
|
>
Após o comando estar completo, edição ls novamente para ver que os Documentos retornaram (Figura 5).
Figure 5: Documents is back.
Destroying Snapshots
Vamos dizer que você criou um número de snapshots, ou um determinado snapshot tem dados corrompidos ou ausentes. Você pode querer apagar esse instantâneo. Digamos que queremos apagar o rpool/USERDATA/jack_bwcn4u@FRIDAY10-18-19 snapshot. Para fazer isso, o comando seria:
1
|
sudo zfs destruir rpool/USERDATA/jack_bwcn4u@FRIDAY10-18-19
|
>
Após ter destruído um snapshot, ele não pode ser recuperado, então use esse comando com cuidado. Se você tiver uma foto particularmente importante que você não quer destruir, você pode segurá-la. Para colocar uma pausa no nosso rpool/USERDATA/jack_bwcn4u@FRIDAY10-18-19 snapshot, você emitiria o comando:
1
|
sudo zfs hold keep rpool/USERDATA/jack_bwcn4u@FRIDAY10-18-19
|
>
Agora se tentar destruir essa snapshot, você verá um erro (Figura 6).
Figure 6: Não é possível destruir este instantâneo.
Para destruir uma imagem retida, você tem que adicionar a opção -d assim:
1
|
<i>sudo zfs destroy -d rpool/USERDATA/jack_bwcn4u@FRIDAY10-18-19</i>
|
É isso mesmo, a fotografia que se seguiu desapareceu.
E isso é o básico para criar e destruir instantâneos com a nova funcionalidade ZFS no Ubuntu 19.10. Experimente este ambiente de teste e veja como ele funciona bem. Até agora eu só descobri um problema que, ao tentar reverter um snapshot, eu tinha que reiniciar a máquina antes que o comando rollback fosse executado com sucesso. Fora desse único problema, a navegação com ZFS e Ubuntu 19.10.
tem sido suave.