Por Que Razão o Sistema de Ficheiros ZFS no Linux Ubuntu é Superior?
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.
- Vantagens do ZFS
- Limitações do ZFS
- Como criar um RAIDz
- Como criar, reverter e excluir snapshots ZFS
- Transferir e receber ZFS
- Compressão de dados ZFS
- Conclusión
- Perguntas e respostas
- Comentários
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).
Característica | Descrição |
---|---|
Suporte para grandes volumes de dados | O ZFS suporta volumes de dados extremamente grandes, permitindo armazenamento de até exabytes de informações. |
Integração do sistema de arquivos e gerenciamento de volumes | Combina o sistema de arquivos e o gerenciador de volumes, fornecendo gerenciamento simplificado do espaço em disco. |
Instantâneas (snapshots) instantâneas | Permite criar instantâneas do sistema de arquivos para recuperação rápida de dados sem uso significativo de recursos. |
Proteção contra corrupção de dados | Mecanismos integrados de verificação de integridade de dados usando somas de verificação para prevenir corrupção. |
Redundância de dados (RAID-Z) | Fornece vários níveis de proteção de dados através de funções RAID-Z integradas para proteção contra perdas. |
Compressão de dados | Oferece compressão de dados eficaz, ajudando a economizar espaço em disco. |
Clonagem de sistemas de arquivos | Permite criar cópias clonadas diretamente de instantâneas para teste ou desenvolvimento. |
Criptografia | Suporta criptografia de dados para proteger informações sensíveis. |
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.
Vantagens do ZFS
A seguir estão algumas das vantagens do ZFS:
Vantagens. 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.
Vantagens. 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.
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.
Vantagens. 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.
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.
-
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.
Limitações. 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.
Limitações. Não há como reduzir o pool
Você não pode remover dispositivos ou vdevs do pool depois que eles forem adicionados.
Limitações. 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.
E para instalar o seguinte:
$ 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
O resultado será a versão do programa. Agora você pode criar um pool de armazenamento com um dispositivo virtual vdev.
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.
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-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.
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
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
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
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
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"]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
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
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
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
E então o trazemos de volta executando o seguinte comando:
sudo zfs receive -F zdata/mydata-copy < ~/mydata-snap.zfs
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
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.
Característica | Descrição |
---|---|
Suporte para Arrays RAID | O programa suporta vários tipos de arrays RAID, incluindo RAID 0, RAID 1, RAID 5, RAID 10 e configurações personalizadas. |
Detecção automática de parâmetros | Detecta automaticamente parâmetros do array, como tamanho de bloco, ordem dos discos e outras características importantes. |
Recuperação de dados | Capacidade de recuperar dados de arrays RAID danificados ou excluídos, bem como recuperação após falhas ou erros de configuração. |
Pré-visualização de arquivos | Permite visualizar arquivos antes da recuperação para avaliar a qualidade e verificar os dados. |
Suporte a sistemas de arquivos | Suporta sistemas de arquivos como FAT, NTFS, ReFS, HFS+, Ext2/3/4, XFS, ZFS e outros. |
Interface amigável | Interface fácil de usar com assistente passo a passo para recuperação de dados. |