/ / Uma introdução ao Z File System (ZFS) para Linux

Uma introdução ao Z File System (ZFS) para Linux

O ZFS é comumente usado por armazenadores de dados, NASamantes e outros geeks que preferem confiar em um sistema de armazenamento redundante e não na nuvem. É um ótimo sistema de arquivos para gerenciar vários discos de dados e rivaliza com algumas das melhores configurações de RAID.

Foto de Kenny Louie.

O que é o ZFS e por que devo usá-lo?

O sistema de arquivos Z é um gerenciador de volume lógico de código aberto e gratuito desenvolvido pela Sun Microsystems para uso em seu sistema operacional Solaris. Alguns de seus recursos mais atraentes incluem:

Escalabilidade sem fim

Bem, não é tecnicamente sem fim, 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 você tenha, o ZFS será adequado para gerenciá-lo.

Integridade máxima

Tudo o que você faz no ZFS usa uma soma de verificaçãopara 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 verificando silenciosamente a integridade dos seus dados, ele faz reparos automáticos a qualquer momento.

Pool de unidades

Os criadores do ZFS querem que você pense nisso comosendo semelhante à maneira como seu computador usa RAM. Quando você precisar de mais memória no seu computador, coloque outro stick e pronto. Da mesma forma com o ZFS, quando você precisa de mais espaço no disco rígido, você coloca 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ê precisar de um "pool" maior de armazenamento, basta adicionar discos.

INCURSÃO

O ZFS é capaz de diversos níveis de RAID, todosenquanto oferece desempenho comparável ao dos controladores RAID de hardware. Isso permite economizar dinheiro, facilitar a configuração e ter acesso a níveis superiores de RAID com os quais o ZFS melhorou.

Instalando o ZFS

Como abordamos apenas o básico nesteguia, não vamos instalar 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 para 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 http://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 http://archive.zfsonlinux.org/epel/zfs-release-1-3.el6.noarch.rpm
$ sudo yum install zfs

Se você tiver alguma outra distribuição, consulte 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, vamosuse o Ubuntu porque essa parece ser a opção número 1 para os geeks do Linux. Você ainda deve acompanhar o que quer que seja, pois os comandos do ZFS não serão alterados nas diferentes distribuições.

A instalação demora um pouco, mas quando terminar, execute $ sudo zfs list para garantir que ele esteja instalado corretamente. Você deve obter uma saída como esta:

Agora, estamos usando uma nova instalação do servidor Ubuntu, com apenas um disco rígido.

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 utilizados, pois não contêm nenhum tipo de tabela de partição.

Como mencionamos anteriormente, uma das coisas boassobre o ZFS é que não precisamos nos preocupar com partições (embora você possa, se quiser). Vamos começar pegando três de nossos discos rígidos e colocando-os em um pool de armazenamento executando o seguinte comando:

$ 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:

Como você pode ver, o / geek1 já foi montado e está pronto para uso.

Se você deseja ver quais os três discos selecionados para o seu pool, você pode executar sudo zpool status:

O que fizemos até agora é criar uma dinâmica de 9 TBpool de distribuição (efetivamente, RAID 0). Caso você não esteja familiarizado com o que isso significa, imagine que criamos um arquivo de 3 KB em / geek1. 1 KB iria automaticamente para sdb, 1 KB para sdc e 1 KB para sdd. Então, quando vamos ler o arquivo de 3 KB, cada disco rígido nos apresentará 1 KB, combinando a velocidade das três unidades. Isso agiliza a gravação e a leitura de dados, mas também significa que temos um único ponto de falha. Se apenas um disco rígido falhar, perderemos nosso arquivo de 3 KB.

Supondo que proteger seus dados seja maisimportante do que acessá-lo rapidamente, vamos dar uma olhada em outras configurações populares. Primeiro, excluiremos o zpool que criamos para podermos usar esses discos em uma configuração mais redundante:

$ sudo zpool destroy geek1

Bam, nosso zpool se foi. Desta vez, vamos usar nossos três discos para criar um pool RAID-Z. O RAID-Z é basicamente uma versão aprimorada do RAID 5, porque evita o "furo de gravação" usando a cópia na gravação. O RAID-Z requer um mínimo de três discos rígidos e é uma espécie de compromisso entre o RAID 0 e o RAID 1. Em um pool RAID-Z, você ainda terá a velocidade de distribuição no nível de bloco, mas também terá paridade distribuída. Se um único disco do seu pool morrer, basta substituí-lo e o ZFS reconstruirá automaticamente os dados com base nas informações de paridade dos outros discos. Para perder todas as informações no 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 paridade dupla.

Para fazer 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

Como você pode ver, df -h mostra que nosso pool de 9 TB agora 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 nosso pool é basicamente o mesmo de antes, mas agora está usando RAID-Z.

Para mostrar como é fácil adicionar mais discos ao nosso pool de armazenamento, vamos adicionar os outros três discos (outros 9 TB) ao pool de armazenamento geek1 como outra configuração RAID-Z:

$ sudo zpool add -f geek1 raidz /dev/sde /dev/sdf /dev/sdg

Terminamos com:

A saga continua…

Mal rasparemos a superfície do ZFS e seusrecursos, mas usando o que aprendeu neste artigo, agora você poderá criar pools de armazenamento redundantes de seus dados. Volte conosco para artigos futuros sobre o ZFS, consulte as páginas de manual e procure os intermináveis ​​guias de nichos e vídeos do YouTube que cobrem as funções do ZFS.