Hoje, daremos 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 as empresas.
Mesmo sendo dos Estados Unidos, prefiro pronunciar ZedFS em vez de ZeeFS porque soa mais legal. Você é livre para pronunciá-lo como quiser.
Observação: você verá o ZFS repetido muitas vezes no artigo. Quando falo sobre recursos e instalação, estou falando sobre OpenZFS. ZFS (desenvolvido pela Oracle) e OpenZFS seguiram caminhos diferentes desde encerramento do Oracle OpenSolaris. (Mais sobre isso mais tarde.)
História do ZFS
O Z File System (ZFS) 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 Sun Microsystems ’ OpenSolaris. Em 2008, o ZFS foi portado para o FreeBSD. No mesmo ano, um projeto foi iniciado para portar ZFS para 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 Linux. Para contornar esse problema, a maioria das distros Linux oferece métodos para instalar o ZFS.
Pouco depois que a Oracle comprou a Sun Microsystems, o OpenSolaris tornou-se fonte próxima. Todo o desenvolvimento posterior do ZFS também se tornou um código fechado. Muitos dos desenvolvedores do ZFS ficaram insatisfeitos com essa reviravolta. Dois terços dos principais devlopers do ZFS, incluindo Ahrens e Bonwick, deixaram a Oracle devido a esta decisão. Eles se juntaram a outras empresas e criaram o projeto OpenZFS em setembro de 2013. O projeto liderou o desenvolvimento de código aberto do ZFS.
Vamos voltar ao problema de licença mencionado acima. Uma vez que o projeto OpenZFS é separado do Oracle, alguns provavelmente se perguntam por que não alteram a licença para algo que seja compatível com a GPL para que possa ser incluída no kernel Linux. De acordo com o site do OpenZFS, alterar a licença envolveria contatar qualquer pessoa que contribuiu com o 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 é ZFS? Quais são suas características?
// <! [CDATA [janela.__ Mirage2 = {petok: dbbe6b9dff0757871483a108705fe05a0503370f-1612029056-1800}; //]]>! [Sistema de arquivos ZFS]()
Como eu disse antes, ZFS é um sistema de arquivos avançado. Como tal, tem alguns [recursos] interessantes (https://wiki.archlinux.org/index.php/ZFS). Tal como:
- Armazenamento em pool
- Copy-on-write
- Instantâneos
- Verificação de integridade de dados e reparo automático
- RAID-Z
- Tamanho de arquivo máximo de 16 exabytes
- Armazenamento máximo de 256 quatrilhões de zetabytes
Vamos analisar alguns desses recursos.
Pooled Storage
Ao contrário da maioria dos sistemas de arquivos, o ZFS combina os recursos de um sistema de arquivos e um gerenciador de volume. Isso significa que, ao contrário de outros sistemas de arquivos, o ZFS pode criar um sistema de arquivos que abrange uma série de drives ou um pool. Além disso, você pode adicionar armazenamento a um pool adicionando outra unidade. O ZFS tratará do particionamento e formatação.
![Armazenamento em pool no ZFS]()
Armazenamento em pool no ZFS
Copy-on-write
Copy-on-write é outro recurso interessante (e legal). Na maioria dos sistemas de arquivos, quando os dados são substituídos, eles são perdidos para sempre. No ZFS, as novas informações são gravadas em um bloco diferente. Depois que a gravação é concluída, os metadados do sistema de arquivos sã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 fsck após uma falha do sistema.
Instantâneos
A cópia na gravação leva a outro recurso do ZFS: instantâneos. O ZFS usa instantâneos para rastrear alterações no sistema de arquivos. O instantâneo contém a versão original do sistema de arquivos e o sistema de arquivos ativo contém todas as alterações feitas desde que o instantâneo foi obtido. Nenhum espaço adicional é usado. À medida que novos dados são gravados no sistema de arquivos ativo, novos blocos são alocados para armazenar esses dados. Se um arquivo for excluído, a referência do instantâneo também será removida. Portanto, os instantâneos 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 anterior de um arquivo. Também é possível reverter o sistema ao vivo para um instantâneo anterior. Todas as alterações feitas desde o instantâneo serão perdidas.
Verificação de integridade de dados e reparo automático
Sempre que novos dados são gravados no ZFS, ele cria 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 então tentará automaticamente corrigir o erro.
RAID-Z
O ZFS pode lidar com RAID sem exigir nenhum software ou hardware extra. Não é novidade que o ZFS tem sua própria implementação de RAID: RAID-Z. RAID-Z é na verdade uma variação do RAID-5. No entanto, ele foi projetado para superar o erro de buraco 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 de RAID-Z] básico (https://wiki.archlinux.org/index.php/ZFS/Virtual_disks#Creating_and_Destroying_Zpools) (RAID-Z1), você precisa de pelo menos dois discos para armazenamento e um para paridade. O RAID-Z2 exigia pelo menos dois drives de armazenamento e dois drives para paridade. RAID-Z3 requer pelo menos duas unidades de armazenamento e três unidades para paridade. Quando os drives são adicionados aos pools RAID-Z, eles devem ser adicionados em múltiplos de dois.
Enorme potencial de armazenamento
Quando o ZFS foi criado, ele foi projetado para ser a última palavra em sistemas de arquivos. Em um momento em que a maioria dos sistemas de arquivos era de 64 bits, os criadores do ZFS decidiram pular direto para o de 128 bits para torná-lo compatível com o futuro. Isso significa que o ZFS oferece 16 bilhões de vezes a capacidade dos sistemas de 32 ou 64 bits. Na verdade, Jeff Bonwick (um dos criadores) disse que alimentar um pool de armazenamento de 128 bits totalmente preenchido exigiria, literalmente, mais energia do que ferver os oceanos.
Como instalar o ZFS?
Se você quiser usar o ZFS pronto para uso, será necessário instalar o FreeBSD ou um sistema operacional usando o kernel do Illumos. illumos é um fork do kernel do OpenSolaris.
Na verdade, o suporte para ZFS é uma das principais razões pelas quais alguns usuários experientes do Linux optam pelo BSD.
Se quiser experimentar o ZFS no Linux, você pode usá-lo como seu sistema de arquivos de armazenamento. Recentemente, o Ubuntu 19.10 introduziu a capacidade de instalar o ZFS em sua raiz imediatamente. Leia mais sobre como usar o ZFS no Ubuntu. Se você estiver interessado em experimentar o ZFS no Linux, o projeto ZFS no Linux tem vários tutoriais sobre como fazer isso.
Embargo
Este artigo descreve os benefícios do ZFS. Agora, deixe-me contar um problema rápido com o ZFS. Usar RAID-Z pode ser caro por causa do número de unidades que você precisa comprar para adicionar espaço de armazenamento.
Você já usou o ZFS? Como foi sua experiência? Deixe-nos saber nos comentários abaixo.
Se você achou este artigo interessante, reserve um minuto para compartilhá-lo nas redes sociais, Hacker News ou Reddit.
Via itsfoss.com. Você pode conferir o post original em inglês:
What is ZFS? Why are People Crazy About it?Última atualização deste artigo: 29 de october de 2020