Storage ZFS em FreeBSD

Mais uma saga se inicia, a configuração de um servidor de dados rodando FreeBSD e ZFS. Faz tanto tempo que não uso FreeBSD que esqueci quase todos os macetes, mas pelo menos completei a instalação sem qualquer problema.

Aqui tenho uma máquina com 3 discos, um deles é IDE e possui 80GB de capacidade, os outros dois são SATA e tem 320 GB cada. A brincadeira é instalar o FreeBSD e montar uma partição gigante unindo os três discos , algo parecido com um split.


Logo de cara vi que não tenho bash instalado, CSH é um lixinho, e para instalar o BASH preciso de rede, então esse é o primeiro passo . Para ver quais placas de rede estão plugadas ao sistema use :


ifconfig

Dessa forma descobri que minha placa é vr0, como uso DHCP usei o seguinte comando para configurar minha rede :


dhclient vr0

Feito isso vamos instalar o bash 🙂 No FreeBSD temos duas formas de instalar os programas, via ports e via pacotes binários. A oferta de pacotes via ports é mais abundante e flexivel, já os pacotes binários são mais rápidos de se obter. Como eu quero apenas o BASH vou usar o ports.

Usar o ports é fácil, se você sabe o nome do que procura use o :

whereis bash

Se não sabe vá em /usr/ports, e escolha a categoria do software que procuras, e dentro de cada um desses diretórios tem um diretório com o nome dos softwares, e o bash fica em /usr/ports/shells/bash. Uma vez dentro do diretório do bash basta dar o comando :


make && make install

Depois é só usar o comando chsh pra mudar o shell é se livrar do lixo do csh. 🙂

A parte boa é que o ZFS já vem com o FreeBSD, a ruim é que o suporte é experimental, nem sempre experimental quer dizer ruim… Mas só vou descobrir com o tempo heheh. No meu caso eu quero usar o resto do HD de 80 GB , e os dois HDs sata, para realizar essa mágica com o ZFS basta usar os comandos :


zpool create storage ad0s3 ad4 ad6

No meu caso tive que repetir o comando por causa de um warning dado pelo time do FreeBSD avisando que o ZFS ainda não está totalmente implementado. Mas aqui funcionou, totalizando 680 GB espalhados por dois discos e uma partição. E o sistema já montou o pool em /storage automaticamente.
Configuração do ZFS é isso mesmo, fazem LVM e raid parecerem piadas de mal gosto.

Agora temos que editar alguns arquivos, e devo dizer que o vi que vem no freebsd é um lixo, e se você , assim como eu não quer perder muito tempo compilando o VIM vamos instalar o pacote pronto, o comando é simples:



pkg_add -r vim

Basta substituir o “vim” pelo comando que você quer e tudo vai dar certo… ou não, no meu caso o pacote pronto do VIM exige a instalação completa do xorg, um completo desperdício de disco, já que nem monitor essa máquina via ter.

Para que nosso array de discos monte na incialização do sistema basta executar o comando :


echo 'zfs_enable="YES"' >> /etc/rc.conf

Como disse no início do post ZFS é experimental com o FreeBSD, então ele tem vários bugs já conhecidos, no caso do ZFS o mais grave é um que causa Kernel Panic se houver excesso de I/O, carinhosamente conhecido como “kmem_suballoc” . Pra resolver isso basta adicionar as seguintes linhas no /boot/loader.conf :


vm.kmem_size_max=”512M”
vm.kmem_size=”512M”
vfs.zfs.zil_disable=1

Se colocar mais memória doque seu computador possui ele vai crashar !

Agora é só botar o samba pra exportar o pool e já era ! Se o Mac OSX vier com uma implementação decente do ZFS, e aparentemente vai, o linux vai cair na irrelevância bwa ! ha ! ha ! ha !

Trolagens a parte, vou descrever brevemente porque o ZFS é o melhor sistema de arquivos em qualquer segmento:

  • Ele faz snapshots ! Vai fazer faxina no HD ou vai deixar seu sobrinho mexer no micro ? sem crise ! faz um snapshot e todos seus dados estão automaticamente backupeados !
  • Hd ta acabando, não tem mídia pra fazer backup ? Sem problemas, ativa a flag de compressão de dados e ganhe gigas de espaço sem fazer esforço
  • Precisa de mais partições ou de redimencionar o seu /home ? Sussa, é mais rápido do que ler essa linha
  • Comprou um HD novo ? É só espetar adicionar ao pool de discos e usar, não vai ter trabalho nem pra de particionar muito menos montar o disco novo !!!
  • Quer segurança nos dados, redundancia e velocidade ? Sussa, raidz faz isso pra você, é só ter mais de 2 discos

O único defeito do ZFS é que ele não é licenciado em GPL, então não pode ser incluido no kernel do linux com a mesma facilidade que foi absorvido pelos *BSDs ou OSX … “Linux é livre, ZFS é livre, mas minha licença é melhor que a sua então não vou incorporar seu software” babaquice ? Sim e da grande ! Quem perde ? Todo mundo !

Ponto pra licença BSD.