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.

iTunes no Linux

Finalmente consegui rodar o iTunes no linux via Wine, tá não é nada que ninguém já não tenha feito mas pra mim é novidade, então posto aqui :

iTunes no linux

Aparentemente ele synca com ipod (no meu não obrigado), baixa os podcasts, toca músicas e vídeo, mas o desempenho é sofrivel com lags gráficos terrivelmente grandes. Mas é mais uma alternativa pra quem não gosta dos jukebox disponíveis pra linux.

Vou ser sincero, eu não gosto dos jukebox pra linux, já testei todos mas a tática dos developers de imitar o itunes não tá funcionando… E na verdade me irrita bastante, pois o mínimo que posso esperar de um programa que copia a interface do itunes é que ele funcionem tão bem quanto.

Mas sendo um pouco justo, gosto bastante do Banshee, que é feito em mono imita o itunes e funciona quase tão bem quanto.

AMD vs Intel – Cooler = fumaça :)

Esse é pros meus alunos de hardware :



É aquilo que todos sabemos, processadores Intel sem cooler reduzem o clock e “congelam”, os AMD fritam ! No caso das AMD se o cooler parar uma boa placa mãe corta a energia do sistema, no caso do vídeo o dissipador foi retirado com o cooler funcionando, por isso a mobo não reagiu.

Já vi um caso real de um AMD fritar, um técnico inexperiente/relaxado não fixou o dissipador corretamente, e esse se soltou durante o transporte da máquina. Ao ligar o processador fritou, atingiu uns 300 graus e derreteu o soquete do processador na placa mãe, perda total.M

Atenção crianças !

Pacman, comandos básicos

O arch linux tem o gerenciador de pacotes pacman, que é esperto como o yum do fedora, e rápido como um tar xzvf 🙂 Note que não falei do apt-get 😛

A lógica de funcionamento é diferente dos outros packages managers , ele tem basicamente quatro campos básicos, e algumas ações inerentes a esses campos. Os campos são :

  • S : Sync, ele sincroniza os comandos de ação à árvore de pacotes dos mirrors
  • U : Upgrades ,realiza Upgrades a partir de pacotes locais ou URLs, mas não resolve dependências
  • Q : Query, realiza buscas e operações com seu banco de dados de pacotes locais, como dependências, package ownership de arquivos , lista pacotes etc…
  • R : Remove pacotes, com suas dependências ou não

A conjunção dos campos com as ações no início não são nada intuitivas, mas com o tempo as coisas fazem mais sentido . Segue uma tabela comparativa entre yum, apt, emerge e pacman :

descrição pacman apt / dpkg yum / rpm emerge
Sync com servidor pacman -Sy apt-get update emerge –sync
Atualização do sistema pacman -Suy apt-get upgrade/dist-upgrade yum update emerge -u world
Busca por pacotes pacman -Ss apt-cache search yum search emerge -s
Instalação de pacote via servidor remoto pacman -S apt-get install yum install emerge
Instalação de pacote local pacman -U/A dpkg -i yum install
Remoção de pacotes pacman -R apt-get remove yum remove emerge unmerge
Listar conteúdo de pacote pacman -Ql dpkg -L rpm -ql ???
Encontrar pacote dono de arquivo pacman -Qo dpkg -S rpm -qf ???

Os campos marcados com “-” não se aplicam ao programa, os campos com “???” eu desconheço tal função, o que não quer dizer que não exista.

Esses são os comandos que mais uso no dia a dia, espero que a tabelinha seja útil 🙂

Arch Linux, os bons tempos voltaram ?

Minha história com o linux sempre foi meio conturbada mas durante muito tempo foi uma relação estável e saudável. Nunca fui fiel a uma única distribuição, sempre migrei para as versões mais novas conforme o release, naquela época não era possível baixar uma ISO da internet em um dia , dois ou uma semana 😛

Eu comprava minhas distros na livraria temporeal , custava 10 reais cada CD… Minha primeira distro foi o Debian Potato, lixo completo, não reconhecia vídeo, áudio ou o meu modem… Depois comprei o Conectiva 5, ainda tenho o box, funcionou o vídeo mas nada de áudio ou modem. Então migrei pro mandrake, funcionou vídeo com aceleração 3d , som mas não o modem.

O slackware foi uma revolução, pois com ele aprendi a compilar o kernel, o que me abriu um mundo novo de possibilidades… Com ele deixei de ser refém do linux e tomei o controle, fiz aceleração 3D, som e após 6 meses o meu modem… Com isso aposentei o Windows 2000 que tinha na minha máquina e nunca mais usei sistemas da Microsoft pra algo além de jogar.

É claro que depois conheci, gentoo, redhat, LFS, fiz minhas próprias distros , fiz as pazes com o debian, odiei o ubuntu, mandei o debian pra PQP, conheci o fedora , abandonei o fedora , voltei pro gentoo …. Mas quero me ater ao Slackware pois ele me lembra muito o ArchLinux.

O slackware fez minha alegria pois todo o sistema deve ser configurado na mão, não existem configuradores automáticos ou scripts que ninguém sabe pra que serve. Um ótimo ambiente para aprendizado, ideal para quem tem máquina velha. Deixei de usar o slack por mais de 2 / 3 do meu sistema era composto de pacotes que eu mesmo fazia, o número de pacotes era tão grande que enchia 2 cds com pacotes TGZ, e olha que na época cabia o KDE e o GNOME inteiros em um único CD-ROM de 650 Mb. Junto com Roberto Parra, hospedamos boa parte desses pacotes no seu servidor e doamos para o site linuxpackages , naquela época não conhecia o coletivo Saravá , que possuem um dos maiores e melhores repositórios de pacotes slackware .

O que me incomodava no slack era o sistema de pacotes, que não tinha resolução de dependências ou upgrades, e levando em conta que gastava boa parte do meu tempo recompilando pacotes minha migração para o Gentoo foi natural . Nessa época o gentoo bombava, a politica era a de pacotes novos sempre… Mas esse espirito se foi com a saída de Daniel Robins a distro ficou abandonada e hoje está sem rumo.

O Arch linux ocupou esse espaço deixado pelo gentoo, com as vantagens do slack e do fedora, saca a política dos caras :

  • Pacotes recentes, custe o que custar, bem no estilo fedora
  • Sistema simples, com scripts de inicialização estilo BSD, como no Slackware
  • Pacotes binários com foco em desempenho apenas para i686 e x86_64, desempenho bom como no gentoo
  • Facilidade de criação de pacotes, como no slack
  • Instalação em TXT, com dialogos, muito simples, como no slack
  • Detecção automática de hardware de c* é r**a !!!
  • Gerenciamento de pacotes rápido e eficiente, resolvendo conflitos sem precisar de apt-get -f install , viva o Pacman !
  • Distro muito bem documentada como o Gentoo, e com ótimos cérebros nas listas… Diferente das listas do Ubuntu e Fedora que só tem n00b

A distro é muito legal, e é a distro geek que mais cresce atualmente ! Por incrivel que pareça ela tem foco em usabilidade, não estressa os nerds de plantão, acaba com os aborrecimentos tipicos de uma configuração/manutenção do slack . E não é recomendada para n00bs, vai usar Ubuntu seu lerdo !

Senti uma certa nostalgia ao usar o arch, e me lembrei dos bons tempos de quando usar o linux era uma experiência gratificantes ,educativa e divertida. Arch vem com muitos drivers proprietários nos repositórios e no CDROM, oque elimina a parte chata de usar uma distro tão simples.

Nas minhas próximas máquinas vou instalar Arch com certeza, e agora passa a ser minha recomendação de distro para o ano de 2008 😉