Quem utiliza Solaris ou BSD muito provavelmente sabe das inúmeras vantagens que este sistema de arquivos pode proporcionar.
ZFS é software livre, porém licenciado sob a CDDL (Common Development and Distribution License), o que o torna incompatível com a GPL sob a qual é licenciado o kernel
Linux.
Desta forma, seria ilegal DISTRIBUIR o código do ZFS dentro do kernel Linux, mas não UTILIZAR o ZFS como outro software qualquer em separado rodando em sua máquina.
Desta forma, foi criada a iniciativa
zfsonlinux que produziu suporte compatível ao kernel Linux, e que é considerado estável desde 2013.
Dentre as principais distribuições Linux, Ubuntu, Gentoo e Arch Linux tem ótimo suporte ao ZFS, permitindo a instalação à partir de seus próprios repositórios. O Slackware também tem documentação disponível para utilizar ZFS de diversas formas.
Para quem precisa apenas de acessar um sistema de arquivos, existe também o ZFS-FUSE, que se utiliza do FUSE (Filesystem in Userspace), porém para utilizar o sistema de forma completa com todas suas vantagens é necessário habilitar o suporte no kernel, que é a finalidade deste artigo.
Instalando o ZFS
Para utilizar o ZFS no Linux você deve instalar dois pacotes: SPL e ZFS.
O
SPL (Solaris Porting Layer) é um módulo para o kernel Linux entender a API do kernel Solaris. Essa camada de emulação torna possível executar código Solaris no kernel Linux com mínima modificação. O ZFS é o módulo do sistema de arquivos.
O ZFS em sua versão 0.6.4 é compatível com o kernel Linux desde a versão 2.6.32 até a 3.19.
Também é necessário ter instalado em seu sistema os kernel sources e headers na mesma versão. São recomendados sistemas com processadores x86_64 e com memória RAM suficiente (>2 GB) para ótima performance.
Também é necessário ter os pacotes de desenvolvimento básicos instalados, o que de forma geral, em uma distribuição Debian-like, seria instalado com algo do tipo:
sudo apt-get install build-essential gawk alien fakeroot linux-headers-$(uname -r)
sudo apt-get install zlib1g-dev uuid-dev libblkid-dev libselinux-dev parted lsscsi wget
Se você utiliza uma distribuição como Slackware em sua instalação full, tudo que você precisar já está instalado, porém neste caso provavelmente você já deve saber o que fazer.
Nós vamos fazer uma compilação básica dos pacotes porém também há pacotes já disponíveis em diversas distribuições e seus respectivos gerenciadores de pacotes:
Dito isso, mão à obra:
cd ~
wget -c http://archive.zfsonlinux.org/downloads/zfsonlinux/spl/spl-0.6.4.tar.gz
wget -c http://archive.zfsonlinux.org/downloads/zfsonlinux/zfs/zfs-0.6.4.tar.gz
tar -xzvf spl-0.6.4.tar.gz
tar -xzvf zfs-0.6.4.tar.gz
cd spl-0.6.4
./configure
make
# make install
cd ../zfs-0.6.4
./configure
make
# make install
That's it! Agora você já pode reiniciar o computador e começar a usar ZFS da mesma forma como faria no Solaris ou FreeBSD.
Você terá os executáveis:
- /usr/local/sbin/zpool
- /usr/local/sbin/zfs
Com os quais fará o gerenciamento do ZFS.
Primeiro carregue o módulo:
# modprobe zfs
E veja se a instalação está funcionando, com a seguinte saída:
# zpool status
no pools available
Se aparecer algo diferente disso sua instalação não ocorreu corretamente.