O que é o ZFS? Por que as pessoas são loucas por isso?

Hoje, vamos dar uma olhada no ZFS, um sistema de arquivos avançado. Discutiremos de onde veio, o que é e por que é tão popular entre os técnicos e a empresa.

Mesmo que eu seja dos EUA, eu prefiro pronunciar ZedFS em vez de ZeeFS porque parece mais legal. Você é livre para pronunciá-lo como quiser.

Nota: Você verá o ZFS repetido várias vezes no artigo. Quando falo de recurso e instalação, estou falando sobre o OpenZFS. O ZFS (desenvolvido pela Oracle) e o OpenZFS seguiram caminhos diferentes desde o encerramento do Oracle OpenSolaris. (Mais sobre isso depois.)

História do ZFS

O ZFS (Z File System) foi criado por Matthew Ahrens e Jeff Bonwick em 2001. O ZFS foi projetado para ser um sistema de arquivos de última geração para o OpenSolaris da Sun Microsystems. Em 2008, o ZFS foi portado para o FreeBSD. No mesmo ano, um projeto foi iniciado para portar o ZFS para o Linux. No entanto, como o ZFS é licenciado sob a Licença de Desenvolvimento e Distribuição Comum, que é incompatível com a Licença Pública Geral GNU, ele não pode ser incluído no kernel do Linux. Para contornar este problema, a maioria das distribuições Linux oferece métodos para instalar o ZFS.

Pouco depois de a Oracle ter comprado a Sun Microsystems, o OpenSolaris se tornou uma fonte próxima. Todo o desenvolvimento adicional do ZFS tornou-se fechado também. Muitos dos desenvolvedores do ZFS ficaram insatisfeitos com esse rumo dos acontecimentos. Dois terços dos devedores principais do ZFS, incluindo Ahrens e Bonwick, deixaram a Oracle devido a essa decisão. Eles se juntaram a outras empresas e criaram o projeto OpenZFS em setembro de 2013. O projeto liderou o desenvolvimento de software livre do ZFS.

Vamos voltar para o problema de licença mencionado acima. Como o projeto OpenZFS é separado do Oracle, alguns provavelmente se perguntam por que eles não mudam a licença para algo que seja compatível com o GPL para que possa ser incluído no kernel do Linux. De acordo com o site do OpenZFS, a alteração da licença envolveria entrar em contato com qualquer pessoa que contribuísse com código para a implementação atual do OpenZFS (incluindo o código ZFS comum inicial até o OpenSolaris) e obter sua permissão para alterar a licença. Como esse trabalho é quase impossível (porque alguns colaboradores podem estar mortos ou difíceis de encontrar), eles decidiram manter a licença que possuem.

O que é o ZFS? Quais são suas características?

Como eu disse antes, o ZFS é um sistema de arquivos avançado. Como tal, tem algumas características interessantes. Tal como:

  • Armazenamento agrupado
  • Cópia-on-write
  • Instantâneos
  • Verificação de integridade de dados e reparo automático
  • RAID-Z
  • Tamanho máximo do arquivo de 16 exabytes
  • Armazenamento máximo de 256 quatrilhões de zettabytes

Vamos detalhar alguns desses recursos.

Armazenamento agrupado

Ao contrário da maioria dos sistemas de arquivos, o ZFS combina os recursos de um sistema de arquivos e um gerenciador de volumes. Isso significa que, diferentemente de outros sistemas de arquivos, o ZFS pode criar um sistema de arquivos que abrange uma série de unidades ou um pool. Não só isso, mas você pode adicionar armazenamento a um pool, adicionando outra unidade. O ZFS manipulará o particionamento e a formatação.

Armazenamento agrupado no ZFS

Cópia-on-write

Copy-on-write é outro recurso interessante (e legal). Na maioria dos sistemas de arquivos, quando os dados são sobrescritos, eles são perdidos para sempre. No ZFS, as novas informações são gravadas em um bloco diferente. Quando a gravação estiver concluída, os metadados dos sistemas de arquivos serão atualizados para apontar para as novas informações. Isso garante que, se o sistema travar (ou algo mais acontecer) enquanto a gravação estiver ocorrendo, os dados antigos serão preservados. Isso também significa que o sistema não precisa executar o fsck após uma falha no sistema.

Instantâneos

A cópia na gravação leva a outro recurso do ZFS: instantâneos. O ZFS usa instantâneos para controlar as alterações no sistema de arquivos. “O instantâneo contém a versão original do sistema de arquivos, e o sistema de arquivos ao vivo contém as alterações feitas desde que o instantâneo foi tirado. Nenhum espaço adicional é usado. Conforme novos dados são gravados no sistema de arquivos ao vivo, novos blocos são alocados para armazenar esses dados. ”Um arquivo é excluído, a referência de captura instantânea também é removida. Portanto, os snapshots são projetados principalmente para rastrear alterações em arquivos, mas não a adição e criação de arquivos.

Os instantâneos podem ser montados como somente leitura para recuperar uma versão passada de um arquivo. Também é possível reverter o sistema ao vivo para um instantâneo anterior. Todas as alterações feitas desde que o instantâneo será perdido.

Verificação de integridade de dados e reparo automático

Sempre que novos dados são gravados no ZFS, eles criam uma soma de verificação para esses dados. Quando esses dados são lidos, a soma de verificação é verificada. Se a soma de verificação não corresponder, o ZFS sabe que um erro foi detectado. O ZFS tentará automaticamente corrigir o erro.

RAID-Z

O ZFS pode manipular o RAID sem precisar de nenhum software ou hardware extra. Não é novidade que o ZFS tem sua própria implementação de RAID: RAID-Z. O RAID-Z é na verdade uma variação do RAID-5. No entanto, ele foi projetado para superar o erro do furo de gravação RAID-5, “no qual os dados e as informações de paridade se tornam inconsistentes após uma reinicialização inesperada”. Para usar o nível básico de RAID-Z (RAID-Z1), você precisa de pelo menos dois discos para armazenamento e um para paridade. O RAID-Z2 exigia pelo menos duas unidades de armazenamento e duas unidades para paridade. O RAID-Z3 requer pelo menos duas unidades de armazenamento e três unidades para paridade. Quando as unidades são adicionadas aos conjuntos RAID-Z, elas precisam ser adicionadas em múltiplos de dois.

Potencial enorme de armazenamento

Quando o ZFS foi criado, ele foi projetado para ser a última palavra em sistemas de arquivos. No momento em que a maioria dos sistemas de arquivos era de 64 bits, os criadores do ZFS decidiram ir direto ao teste de 128 bits para torná-lo mais seguro. Isso significa que o ZFS “oferece 16 bilhões de bilhões de vezes a capacidade de sistemas de 32 ou 64 bits”. Na verdade, Jeff Bonwick (um dos criadores) disse que alimentar um “preenchimento total de um pool de armazenamento de 128 bits exigiria, literalmente, mais energia do que ferver os oceanos”.

Como instalar o ZFS

Se você quiser usar o ZFS fora da caixa, será necessário instalar o FreeBSD ou um sistema operacional usando o kernel do illumos. O illumos é um fork do kernel do OpenSolaris.

Na verdade, o suporte ao ZFS é uma das principais razões pelas quais alguns usuários experientes do Linux optam pelo BSD.

Se você quiser experimentar o ZFS no Linux, só poderá usá-lo como seu sistema de arquivos de armazenamento. Até onde eu sei, nenhuma distribuição Linux lhe dá a opção de instalar o ZFS em sua raiz fora da caixa. Se você estiver interessado em experimentar o ZFS no Linux, o projeto ZFS no Linux possui vários tutoriais sobre como fazer isso.

Embargo

Este artigo tem cantado os benefícios do ZFS. Agora, deixe-me contar um problema rápido com o ZFS. O uso do RAID-Z pode ser caro devido ao número de unidades que você precisa comprar para adicionar espaço de armazenamento.

Você já usou o ZFS? Como foi a sua experiência? Deixe-nos saber nos comentários abaixo.

Se você achou este artigo interessante, por favor tire um minuto para compartilhá-lo nas mídias sociais, Hacker News ou Reddit.

Recomendado

Como corrigir erro do Flash Player em falta no Midori
2019
Sayonara é um tocador de música leve e bonito para Linux
2019
Aqui está o que é que os leitores de software livre pensam em 25 anos de Linux
2019