Foto de Kenny Louie.
O que é o ZFS e por que devo usá-lo?
O sistema de arquivos Z é um gerenciador de volumes lógicos de código aberto e gratuito criado pela Sun Microsystems para uso em seu sistema operacional Solaris. Algumas de suas características mais atraentes incluem:
Escalabilidade sem fim
Bem, não é tecnicamente infinito, mas é um sistema de arquivos de 128 bits capaz de gerenciar zettabytes (um bilhão de terabytes) de dados. Não importa quanto espaço no disco rígido você tenha, o ZFS será adequado para gerenciá-lo.
Integridade máxima
Tudo o que você faz dentro do ZFS usa uma soma de verificação para garantir a integridade do arquivo. Você pode ter certeza de que seus arquivos e suas cópias redundantes não encontrarão corrupção de dados silenciosa. Além disso, enquanto o ZFS está ocupado em verificar silenciosamente os dados quanto à integridade, ele faz reparos automáticos sempre que pode.
Conduzir o pooling
Os criadores do ZFS querem que você pense que ele é semelhante ao modo como seu computador usa a RAM. Quando você precisar de mais memória em seu computador, coloque outra vara e pronto. Da mesma forma com o ZFS, quando você precisar de mais espaço no disco rígido, coloque outro disco rígido e pronto. Não é necessário gastar tempo particionando, formatando, inicializando ou fazendo qualquer outra coisa em seus discos - quando você precisa de um "pool" de armazenamento maior, basta adicionar discos.
RAID
O ZFS é capaz de vários níveis diferentes de RAID, ao mesmo tempo em que oferece desempenho comparável ao dos controladores RAID de hardware. Isso permite economizar dinheiro, facilitar a configuração e ter acesso a níveis de RAID superiores que o ZFS melhorou.
Instalando o ZFS
Como estamos cobrindo apenas o básico deste guia, não instalaremos o ZFS como um sistema de arquivos raiz. Esta seção pressupõe que você esteja usando o ext4 ou algum outro sistema de arquivos e gostaria de usar o ZFS em alguns discos rígidos secundários. Aqui estão os comandos para instalar o ZFS em algumas das distribuições Linux mais populares.
O Solaris e o FreeBSD já devem vir com o ZFS instalado e pronto para uso.
Ubuntu:
$ sudo add-apt-repository ppa:zfs-native/stable $ sudo apt-get update $ sudo apt-get install ubuntu-zfs
Debian:
$ su - # wget https://archive.zfsonlinux.org/debian/pool/main/z/zfsonlinux/zfsonlinux_2%7Ewheezy_all.deb # dpkg -i zfsonlinux_2~wheezy_all.deb # apt-get update # apt-get install debian-zfs
RHEL / CentOS:
$ sudo yum localinstall --nogpgcheck https://archive.zfsonlinux.org/epel/zfs-release-1-3.el6.noarch.rpm $ sudo yum install zfs
Se você tiver alguma outra distribuição, confira zfsonlinux.org e clique em sua distribuição na lista “Pacotes” para obter instruções sobre como instalar o ZFS.
À medida que continuamos com este guia, vamos usar o Ubuntu porque essa parece ser a escolha número 1 para os nerds do Linux. Você ainda deve ser capaz de acompanhar, não importa o que, pois os comandos do ZFS não serão alterados em distribuições diferentes.
A instalação demora um pouco, mas quando terminar, corra
$ sudo zfs list
para se certificar de que está instalado corretamente. Você deve obter uma saída como esta:
Configurando o ZFS
Agora, digamos que colocamos mais seis discos rígidos em nosso computador.
$ sudo fdisk -l | grep Error
nos mostrará os seis discos rígidos que acabamos de instalar. No momento, eles não podem ser usados, pois não contêm nenhum tipo de tabela de partições.
$ sudo zpool create -f geek1 /dev/sdb /dev/sdc /dev/sdd
zpool create
é o comando usado para criar um novo pool de armazenamento,
-f
substitui quaisquer erros que ocorram (como se os discos já tivessem informações sobre eles),
geek1
é o nome do pool de armazenamento e
/dev/sdb /dev/sdc /dev/sdd
são os discos rígidos que colocamos na piscina.
Depois de criar seu pool, você poderá vê-lo com o
df
comando ou
sudo zfs list
:
Se você quiser ver quais três discos você selecionou para o seu pool, você pode executar
sudo zpool status
:
Supondo que proteger seus dados é mais importante do que acessá-los rapidamente, vamos dar uma olhada em outras configurações populares. Primeiro, excluiremos o zpool que criamos para que possamos usar esses discos em uma configuração mais redundante:
$ sudo zpool destroy geek1
Bam, nosso zpool sumiu. Desta vez, vamos usar nossos três discos para criar um pool RAID-Z. O RAID-Z é basicamente uma versão melhorada do RAID 5, porque evita o “buraco de gravação” usando copy-on-write. O RAID-Z requer um mínimo de três discos rígidos e é uma espécie de comprometimento entre o RAID 0 e o RAID 1. Em um pool RAID-Z, você ainda terá a velocidade de distribuição em nível de bloco, mas também terá a paridade distribuída. Se um único disco no seu conjunto morrer, basta substituir esse disco e o ZFS recriará automaticamente os dados com base nas informações de paridade dos outros discos. Para perder todas as informações em seu pool de armazenamento, dois discos teriam que morrer. Para tornar as coisas ainda mais redundantes, você pode usar o RAID 6 (RAID-Z2 no caso do ZFS) e ter dupla paridade.
Para conseguir isso, podemos usar o mesmo
zpool create
comando como antes, mas especifique
raidz
após o nome da piscina:
$ sudo zpool create -f geek1 raidz /dev/sdb /dev/sdc /dev/sdd
df -h
mostra que nosso pool de 9 TB foi reduzido para 6 TB, já que 3 TB estão sendo usados para armazenar informações de paridade. Com o
zpool status
comando, vemos que a nossa piscina é praticamente a mesma de antes, mas está usando o RAID-Z agora.
Para mostrar como é fácil adicionar mais discos ao nosso pool de armazenamento, vamos adicionar os outros três discos (outro 9 TB) ao nosso pool de armazenamento geek1 como outra configuração RAID-Z:
$ sudo zpool add -f geek1 raidz /dev/sde /dev/sdf /dev/sdg
Nós acabamos com:
A Saga Continua …
Mal exploramos a superfície do ZFS e seus recursos, mas usando o que você aprendeu neste artigo, agora você deve conseguir criar pools de armazenamento redundantes dos seus dados. Volte para a gente para artigos futuros sobre o ZFS, veja as man pages, e procure os infinitos guias de nicho e vídeos do YouTube cobrindo as funções do ZFS.