Finalmente depois de tanto querer, e com todo o incentivo do André Machado (Serpro), eis que me aventurei a brincar com o ZFS.
Os problema começaram desde cedo porque não pude seguir o artigo oficial em
http://zfsonlinux.org/debian.html, pois a versão empacotada não compila com o kernel 3.14.
Na verdade eu vou relatar basicamente este artigo com um detalhe final que logo explico. Eis o passo a passo:
- Instalar o kit para compilação do zfs
apt-get install build-essential git autoconf libtool zlib1g-dev uuid-dev linux-headers-$(uname -r)
- Clonar os repositórios em /root
mkdir /root/zfsonlinux
cd /root/zfsonlinux
git clone https://github.com/zfsonlinux/spl.git
git clone https://github.com/zfsonlinux/zfs.git
- Compilar e instalar o SPL
cd /root/zfsonlinux/spl
./autogen.sh
./configure --prefix=/usr
make
sudo make install
(gerando pacotes Debian)
./autogen.sh
./configure
make deb
dpkg -i *.deb
- Compilar e instalar o ZFS
cd /root/zfsonlinux/zfs
./autogen.sh
./configure --with-spl=/root/zfsonlinux/spl --prefix=/usr
make
sudo make install
(gerando pacotes Debian)
./autogen.sh
./configure
make deb
dpkg -i *.deb
Em meu cenário simplificado utilizei 3 discos SATA de 2TB para criar uma raidz utilizando a notação /dev/sd{a,b,c}. Para produção a recomendação uma alternativa com nomeação de dispositivo independente da instalação do sistema operacional, como a obtida em /dev/disk/by-id/.
- Criando e configurando um pool raidz
zpool create -f -m none -o ashift=12 mypool01 raidz /dev/sda /dev/sdb /dev/sdc
zfs set atime=off mypool01
zfs set dedup=off mypool01
- Criando um sistema de arquivo em mypool01 e definindo o ponto de montagem
mkdir /pool/data
zfs create mypool01/data
zfs set mountpoint=/pool/data mypool01/data
Até aqui tudo bem, o problema foi que depois de reiniciar, simplesmente eu não conseguia mais acesso ao pool, simplesmente um "zpool list" não listava os pools. Do que pude entender, o que controla a existência do pool zfs é o arquivo zpool.cache e eu não tinha este arquivo em parte alguma do meu sistema.
- Para criar este arquivo depois de criado o pool rodei:
mkdir /etc/zfs
zpool set cachefile=/etc/zfs/zpool.cache mypool01
Fiz alguns teste, renomeando o arquivo zpool.cache para zpool.cache.old, e realmente o zfs não encontra o pool sem este arquivo.
Uma solução de contorno pra quem criou o pool e reiniciou o sistema sem criar o arquivo zpool.cache é importar o pool e criar o arquivo zpool.cache. O importante é lembrar do nome do pool que foi criado, pois eu não descobri como obter o nome do pool com o zpool list.
Acredito que com isto já seja possível começar a brincar com o ZFS sem muitas dores de cabeça.