Por que razão o sistema de ficheiros ZFS no Linux Ubuntu é tão bom?

Sistema de arquivos ZFS no Linux Ubuntu. Quais são as características de sua estrutura, vantagens e desvantagens? Vamos analisar isso juntos em nosso artigo.

Por que razão o sistema de ficheiros ZFS no Linux Ubuntu é tão bom?

ZFS ou Zettabyte File System é um sistema de arquivos originalmente criado pela Sun Microsystems para o sistema operacional Solaris. Ele suporta grandes quantidades de dados, combina os conceitos de sistema de arquivos, gerenciador de disco lógico e mídia física, bem como gerenciamento simples de volume de armazenamento.

É um sistema de arquivos de última geração, originalmente projetado para fornecer soluções NAS com maior segurança, confiabilidade e desempenho. Ao contrário de outros sistemas, o ZFS é um sistema de arquivos de 128 bits que oferece capacidade de armazenamento praticamente ilimitada. ZFS é um projeto de código aberto licenciado sob CDDL (Licença Comum de Desenvolvimento e Distribuição).

Estrutura ZFS - Zettabyte File System

Para usar o sistema de arquivos ZFS “pronto para uso”, você deve instalar FreeBSD ou um sistema operacional que use o kernel illumos, um fork do kernel OpenSolaris.

Se você quiser usar o ZFS no Ubuntu, você deve adicionar suporte manualmente, o que é fácil de fazer com apenas alguns comandos. Falaremos sobre isso novamente mais tarde. Agora, vamos ver as vantagens e desvantagens do sistema de arquivos.

Vá para ver
Sistema de archivos ZFS en Linux Ubuntu. Qué tiene de bueno ZFS

Sistema de archivos ZFS en Linux Ubuntu. Qué tiene de bueno ZFS

Vantagens do ZFS

A seguir estão algumas das vantagens do ZFS:

Simplificou a administração

Aqui o gerenciamento de volumes, RAID e sistemas de arquivos é unificado. Você só precisa de alguns comandos para criar volumes, níveis de redundância, sistemas de arquivos, compactação, pontos de montagem e muito mais.

Isso também facilita o monitoramento, pois há dois ou até três níveis menores para visualizar.

A próxima vantagem é garantir a integridade dos dados

Na maioria dos sistemas de arquivos, os dados são perdidos para sempre após serem substituídos. Por outro lado, no ZFS, novas informações são gravadas em outro bloco.

Função Copiar durante a gravação

Os metadados do sistema de arquivos são então atualizados com as novas informações assim que a gravação for concluída. Isso faz com que os dados antigos sejam preservados em caso de falha do sistema ou outro evento malicioso.

Tem funções de armazenamento integradas

  • Replicação é o processo de fazer uma cópia de algo.

  • A desduplicação é um processo que elimina cópias redundantes de dados e reduz a carga no armazenamento.

    Desduplicação
  • A compactação é uma opção que economiza espaço em disco e aumenta a velocidade, reduzindo no processo o número de bits necessários para representar os dados.

  • Instantâneos são um conjunto de marcadores de referência para dados em um determinado momento.

    Instantâneos
  • Clones são cópias idênticas de algo.

Limitações do ZFS

Mas, como qualquer sistema de arquivos, o ZFS também tem seus pontos fracos.

O ZFS apresenta um desempenho terrível quando preenchido com 80% ou mais da capacidade

Esse é um problema comum em sistemas de arquivos. Quando o pool começar a preencher 80% de sua capacidade, ele deverá ser expandido ou migrado para um armazenamento maior.

Não há como reduzir o pool

Você não pode remover dispositivos ou vdevs do pool depois que eles forem adicionados.

Também tem capacidade limitada para alterar o tipo de redundância

Agora vamos ver como instalar o ZFS em um sistema operacional Linux usando o exemplo do Ubuntu versão 20.04.

A instalação requer um terminal; Pressione Ctrl+Alt+T para iniciar.

Em seguida, execute o seguinte comando

$ sudo apt update

Para verificar atualizações de aplicativos. Após inserir o comando, o sistema solicitará que você insira uma senha, digite a senha do root e pressione Enter.

sudo apt update

E para instalar o seguinte:

$ sudo apt install zfsutils-linux

sudo apt install zfsutils-linux

Depois de executar o comando de instalação, digite "y" para confirmar e pressione Enter. Isso iniciará o processo de instalação do programa de software.

Para verificar a instalação do ZFS, execute o seguinte comando.

$zfs --versión

Verifique a versão do ZFS instalada

O resultado será a versão do programa. Agora você pode criar um pool de armazenamento com um dispositivo virtual vdev.

pool de armazenamento

Um pool de armazenamento é uma coleção de um ou mais dispositivos virtuais nos quais os dados são armazenados. Um pool ZFS, também conhecido como Zpool, serve como contêiner de dados de nível superior em um sistema ZFS. É usado para criar um ou mais sistemas de arquivos (conjuntos de dados) ou dispositivos de bloco (volumes). Esses sistemas de arquivos e dispositivos de bloco compartilham o espaço restante no pool. As operações de particionamento e formatação serão realizadas pelo ZFS.

dispositivo virtual vdev

O dispositivo virtual (vdev) pode consistir em um ou mais dispositivos físicos. Pode ser um pool ou parte de um pool e pode ter um nível de redundância espelho, espelho triplo, RAIDZ, RAIDZ-2 ou RAIDZ-3.

RAID-Z é uma implementação do RAID-5 modificado. No ZFS você pode eliminar erros de gravação e falhas presentes no RAID-5 original. O RAID-Z1 requer pelo menos três discos: dois discos para armazenamento de dados e um disco para paridade.

O RAID-Z2 deve ter dois discos para armazenamento e dois para paridade.

RAID-Z2

RAID-Z3 – pelo menos duas unidades e três discos para paridade.

blog_img src="/pic/blog/a299/en-11-zfs.jpg" alt="RAID-Z3" ]

Como criar um RAIDz

Agora vamos ver como construir um RAID-Z a partir de discos. O primeiro passo é identificar as unidades de disco com as quais você deseja construir o array.

Para verificar as unidades de disco conectadas e determinar quais são necessárias, use um utilitário, fdisk. Execute o seguinte comando para criar uma lista de unidades:

$ sudo fdisk -l

O resultado é uma lista de unidades com informações detalhadas sobre cada uma delas.

Verificando discos conectados

Por exemplo, vou mostrar como construir um RAIDZ nível 1, que é uma contrapartida ao RAID5 com um único disco de paridade. Permite que o array continue operando sem perder dados se uma unidade falhar.

Tenho três discos rígidos /dev/sdd, /dev/sde e /dev/sdf. Vou criar um pool chamado zdata. Eu faço isso executando o seguinte comando:

$ sudo zpool create ith2-zfs-raid-1p zdata /dev/sdd /dev/sde /dev/sdf

$ sudo zpool create zdata raidz /dev/sdd /dev/sde /dev/sdf

Crear un pool llamado zdata

Se ocorrer algum erro, você pode executar um comando usando o parâmetro -f após o comando zpool create, o que forçará o comando.

$ sudo zpool create -f ith2-zfs-raid-1p zdata /dev/sdd /dev/sde /dev/sdf

Se você quiser saber o ponto de montagem após criar o pool, execute df -h:

$ df -h

Descubra o ponto de montagem

O pool está montado em /zdata. Para alterar o ponto de montagem do pool, use a seguinte sintaxe.

$ sudo zfs set mountpoint =<path> <pool_name>

Neste exemplo, usei /var/pool como o novo ponto de montagem.

$ sudo zfs set mountpoint=/var/pool zdata

Confira o novo ponto:

$df -h

Verificamos o novo ponto de montagem

Diretórios podem ser criados no pool de armazenamento. Por exemplo, criarei um diretório chamado meusdados

$ sudo zfs create zdata/mydata

E para ver todos os pools de armazenamento ZFS no sistema, executamos este comando:

$ zpool list

Ver todos os pools de armazenamento ZFS no sistema

E para saber a configuração e o status de cada dispositivo no pool ZFS, execute o comando status.

$zpool status

Para exibir eventos e solucionar problemas, digite este comando.

[código src = "$ sudo zpool eventos zdata -v"]
Conheça a configuração e o status de cada dispositivo no pool ZFS

Para adicionar outro disco rígido ao pool de armazenamento ZFS, você deve executar o comando com o nome da unidade que deseja adicionar.

$ sudo zpool add zdata /dev/sdb

Depois de adicionar o disco, vamos ver o status do pool:

$zpool status

Adicionar outro disco rígido ao pool de armazenamento ZFS

Para excluir o pool de armazenamento ZFS, você precisa executar o seguinte comando.

$ sudo zpool destroy zdata

Como criar, reverter e excluir snapshots ZFS

Este sistema de arquivos permite que você crie um instantâneo da sua enquete.

Um snapshot é uma cópia somente leitura de um sistema de arquivos criado em um determinado momento. Instantâneos podem ser obtidos de conjuntos ou grupos inteiros de dados. O instantâneo inclui a versão original do sistema de arquivos, juntamente com quaisquer alterações feitas desde que o instantâneo foi criado. Em termos simples, quando um instantâneo é criado, é criada uma cópia diferencial só de leitura.

O comando usado para criar o snapshot é zfs snapshot, seguido pelo nome do snapshot. Neste exemplo, usei zdata/mydata para criar um snapshot.

sudo zfs snapshot zdata/mydata@snap1

Para verificar o snapshot, execute o seguinte comando:

$ zfs list -t snapshot

Criar snapshot de pool ZFS

Se precisar, você pode renomeá-lo:

sudo zfs rename zdata/mydata@snap1 zdata/mydata@snap2

Você pode desfazer as alterações executando uma operação de reversão de snapshot. Observe que você perderá todas as alterações desde que o snapshot foi criado.

Para reverter para o snapshot em questão, você deve executar zfs rollback com o nome do snapshot em questão. Isso irá desfazer todas as alterações que foram feitas no diretório desde esse instantâneo.

$ sudo zfs rollback test-pool/mydata@snap1

Reverter o ZFS para o snapshot correto

Este comando reverterá o sistema para a data correta do snapshot.

Após a conclusão da reversão, você pode verificar se há arquivos excluídos, subsequentes ao instantâneo, no diretório.

Transferir e receber ZFS

Os instantâneos podem ser salvos em um arquivo e retornados, o que é ótimo para criar backups ou enviar cópias pela rede (como via ssh) para copiar o sistema de arquivos.

O comando send envia um instantâneo do sistema de arquivos que pode ser encaminhado para um arquivo ou para outra máquina em um thread. O comando de recebimento aceita esse fluxo e grava uma cópia do instantâneo no sistema de arquivos ZFS.

Por exemplo, vamos criar outro snapshot e salvá-lo em um arquivo com o seguinte comando:

sudo zfs snapshot -r zdata/mydata@snap3

sudo zfs send zdata/mydata@snap2> ~/mydata-snap.zfs

Criamos um instantâneo e o salvamos em um arquivo

E então o trazemos de volta executando o seguinte comando:

sudo zfs receive -F zdata/mydata-copy < ~/mydata-snap.zfs

Retornar instantâneo do arquivo

Com a ajuda de scripts adicionais, você pode configurar a criação automática e o envio de snapshots, por exemplo, para o servidor por meio do protocolo ssh.

Compressão de dados ZFS

E como mencionado acima, o ZFS permite que os dados sejam compactados automaticamente. Dada a potência dos processadores modernos, essa é uma opção benéfica, pois a redução no tamanho dos dados significa que menos dados são lidos e gravados fisicamente, resultando em velocidades de E/S mais rápidas. O ZFS oferece uma grande variedade de métodos de compressão. O padrão é lz4 (substituto de alto desempenho para lzjb), que fornece compressão e descompressão mais rápidas que lzjb, com uma taxa de compressão ligeiramente maior. Para alterar o nível de compressão, pode utilizar o seguinte comando:

sudo zfs set compression=gzip-9 zdata

O incluso puede cambiar el tipo de compresión:

sudo zfs set compression=lz4 zdata

Ver el nivel de compresión:

sudo zfs get compressratio

Compresión de datos ZFS

La opción más segura es lz4 ya que es mucho más rápido que el resto de opciones con un buen rendimiento.

Conclusión

Com tudo isso em mente, o ZFS é claramente um sistema de arquivos que oferece uma ampla gama de recursos. Ele não só pode gerenciar dados de forma eficiente e inovadora, mas em caso de emergência, ele também pode recuperar dados sem interromper as operações. Além disso, no caso de uma falha, todo o sistema pode ser facilmente restaurado usando uma função de instantâneo e retornado a um ponto predeterminado no tempo.

Se estiver a sofrer perda de dados do seu sistema de ficheiros ZFS e RAIDZ, experimente o programa Hetman RAID Recovery. O programa pode ajudá-lo a restaurar ficheiros apagados acidentalmente de um sistema de ficheiros ZFS ou a recuperar dados de uma matriz RAIDZ com falhas. O programa ajudá-lo-á em caso de falhas, formatação, substituição e outros casos de perda de dados.

Vá para ver
🔝 Los mejores softwares de recuperación de datos de disco ZFS. 🔝 Cómo recuperar datos de ZFS

🔝 Los mejores softwares de recuperación de datos de disco ZFS. 🔝 Cómo recuperar datos de ZFS

Raidel Becerra

Autor: , Escritor técnico

Raidel Arbelay Becerra é um escritor técnico para a Hetman Software e a voz e rosto do Hetman Software: Canal YouTube de recuperação de dados. Escreve artigos aprofundados, tutoriais e resenhas sobre como funciona o software da empresa com todos os tipos de dispositivos de armazenamento.

Mykhailo Miroshnichenko

Editor: , Escritor técnico

Mykhailo Miroshnychenko é um dos principais programadores da Hetman Software. Com base em quinze anos de experiência em desenvolvimento de software, partilha os seus conhecimentos com os leitores do nosso blogue. Para além da programação, Mikhail é um especialista em recuperação de dados, sistemas de ficheiros, dispositivos de armazenamento e matrizes RAID.

Recomendado para você

Bem-vindo ao assistente com tecnologia de IA da Hetman Software.
Iniciar bate-papo