Pagina inicial » como » Uma introdução ao sistema de arquivos Z (ZFS) para Linux

    Uma introdução ao sistema de arquivos Z (ZFS) para Linux

    O ZFS é comumente usado por colecionadores de dados, amantes de NAS e outros geeks que preferem confiar em um sistema de armazenamento redundante próprio e não na nuvem. É um ótimo sistema de arquivos usado para gerenciar vários discos de dados e rivaliza com algumas das maiores 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 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 estiver ocupado verificando silenciosamente seus dados para integridade, ele fará reparos automáticos sempre que puder..

    Conduzir o pooling

    Os criadores do ZFS querem que você pense nisso como sendo semelhante à maneira 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 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-repositório ppa: zfs-native / stable
    $ sudo apt-get update
    $ sudo apt-get instala o 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 instala 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 geeks do Linux. Você ainda deve ser capaz de acompanhar, não importa o quê, pois os comandos do ZFS não serão alterados em distribuições diferentes.

    A instalação demora bastante tempo, mas uma vez terminado, execute $ sudo zfs list para se certificar de que está instalado corretamente. Você deve obter uma saída como esta:

    Estamos usando uma nova instalação do servidor Ubuntu agora, 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. Eles estão inutilizáveis ​​no momento, pois não contêm nenhum tipo de tabela de partição.

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

    $ sudo zpool criar -f geek1 / dev / sdb / dev / sdc / dev / sdd

    zpool create é o comando usado para criar um novo conjunto de armazenamento, -f substitui quaisquer erros que ocorram (como se o (s) disco (s) já possuísse 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 usar.

    Se você quiser ver quais três discos foram selecionados para o seu pool, execute sudo zpool status:

    O que fizemos até agora é criar um pool de stripe dinâmico de 9 TB (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 apresentaria 1 KB para nós, combinando a velocidade das três unidades. Isso torna a escrita e a leitura rápida 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.

    Assumindo que proteger seus dados é mais importante do que acessá-los rapidamente, vamos dar uma olhada em outras configurações populares. Primeiro, vamos excluir o zpool que criamos para podermos 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 o 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 do striping no nível do 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 paridade dupla.

    Para conseguir isso, podemos usar o mesmo zpool create comando como antes, mas especifique Raidz após o nome da piscina:

    $ sudo zpool criar -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 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 adicionar -f geek1 raidz / dev / sde / dev / sdf / dev / sdg

    Nós acabamos com:

    A Saga Continua ...

    Nós mal exploramos a superfície do ZFS e de seus recursos, mas usando o que você aprendeu neste artigo, agora você deve conseguir criar pools de armazenamento redundantes de seus dados. Volte para a gente para artigos futuros sobre o ZFS, veja as páginas de manual e pesquise os intermináveis ​​guias de nicho e vídeos do YouTube sobre as funções do ZFS.