Conceitos e tutoriais do ZFS

Conceitos e tutoriais do ZFS

ZFS: conceitos e tutorial

Na sua busca pela integridade de dados usando o OpenZFS é inevitável. De fato, seria bastante lamentável se você estiver usando qualquer coisa, exceto o ZFS para armazenar seus dados valiosos. No entanto, muitas pessoas relutam em experimentar. Razão é que um sistema de arquivos de grau corporativo com uma ampla gama de recursos incorporados a ele, o ZFS deve ser difícil de usar e administrar. Nada pode estar mais longe da verdade. Usar o ZFS é o mais fácil possível. Com um punhado de terminologias e menos comandos, você está pronto para usar o ZFS em qualquer lugar - da empresa à sua casa/escritório NAS.

Nas palavras dos criadores do ZFS: “Queremos facilitar a adição de armazenamento ao seu sistema.”

Veremos mais adiante como isso é feito. Eu estarei usando o FreeBSD 11.1 Para realizar os testes abaixo, os comandos e a arquitetura subjacente são semelhantes para todas as distribuições Linux que suportam o OpenZFs.

Toda a pilha ZFS pode ser apresentada nas seguintes camadas:

  • Provedores de armazenamento - discos de giro ou SSDs
  • VDEVs - agrupamento de provedores de armazenamento em várias configurações de ataque
  • ZPools - Agregação de VDEVs em um único pool de armazenamento
  • Z -Filesystems - conjuntos de dados com recursos legais como compactação e reserva.

ZPOOL CREATE

Para começar, vamos começar com uma configuração de onde temos seis discos de 20 GB ADA [1-6]

$ ls -al /dev /Ada?

O Ada0 é onde o sistema operacional está instalado. O resto será usado para esta demonstração.

Os nomes de seus discos podem diferir dependendo do tipo de interface que está sendo usada. Exemplos típicos incluem: DA0, ADA0, ACD0 e cd. Olhando para dentro/devlhe darei uma idéia do que está disponível.

A zpool é criado por ZPOOL CREATE comando:

$ zpool Criar nosso firstzpool Ada1 Ada2 Ada3
# E depois execute o seguinte comando:
$ zpool Status

Veremos uma saída interessante, dando -nos informações detalhadas sobre o pool:

Este é o zpool mais simples, sem redundância ou tolerância a falhas ... cada disco é seu próprio vdev.

No entanto, você ainda receberá toda a bondade do ZFS, como somas de verificação para todos os blocos de dados que estão sendo armazenados para que você possa detectar pelo menos se os dados que você armazenaram está sendo corrompido.

FileSystems, a.k.Um conjunto de dados, agora pode ser criado no topo deste pool da seguinte maneira:

$ zfs Crie Ourfirstzpool/DataSet1

Agora, use seu familiar df -h comando ou execute:

Lista de $ zfs

Para ver as propriedades do seu sistema de arquivos recém -criado:

Observe como todo o espaço oferecido pelos três discos (VDEVs) está disponível para o sistema de arquivos. Isso será verdade para todos os sistemas de arquivos que você criar no pool, a menos que especifiquemos o contrário.

Se você quiser adicionar um novo disco (vdev), Ada4, Você pode fazer isso correndo:

$ zpool Adicionar nosso firstzpool Ada4

Agora, se você vir o estado do seu sistema de arquivos

O tamanho disponível agora cresceu sem nenhum incômodo adicional de cultivar a partição ou fazer backup e restaurar os dados no sistema de arquivos.


Dispositivos virtuais - VDEVs

VDEVs são os blocos de construção de um zpool, a maior parte da redundância e desempenho depende da maneira como seus discos são agrupados neles, assim chamados, VDEVs . Vamos olhar para alguns dos tipos mais importantes de VDEVs:

1. RAID 0 ou listras

Cada disco atua como seu próprio vdev. Sem redundância de dados e os dados se espalham por todos os discos. Também conhecido como striping. A falha de um único disco significaria que todo o zpool é inutilizável. O armazenamento utilizável é igual à soma de todos os dispositivos de armazenamento disponíveis.

O primeiro ZPOOL que criamos na seção anterior é um RAID 0 ou uma matriz de armazenamento listrada.

2. Raid 1 ou espelho

Os dados são espelhados entre ndiscos. A capacidade real do VDEV é limitada pela capacidade bruta do menor disco que n-matriz de disco. Os dados são espelhados entre n discos, isso significa que você pode suportar o fracasso de N-1 discos.

Para criar uma matriz espelhada, use o espelho -chave:

$ zpool Criar espelho de tanque Ada1 Ada2 Ada3

Os dados gravados para tanque O ZPOOL será espelhado entre esses três discos e o armazenamento disponível real é igual ao tamanho do menor disco, que neste caso é de cerca de 20 GB.

No futuro, você pode querer adicionar mais discos a este pool, e há duas coisas possíveis que você pode fazer. Por exemplo, ZPOOL tanque tem três discos espelhando dados como um único vdev espelho-0:

Você pode querer adicionar disco extra, digamos Ada4, para refletir os mesmos os dados. Isso pode ser feito executando o comando:

$ zPool Anexar tanque Ada1 Ada4

Isso adicionaria um disco extra ao VDEV, que já tem o disco Ada1 nele, mas não aumenta o armazenamento disponível.

Da mesma forma, você pode destacar as unidades de um espelho correndo:

$ zpool destacar tank Ada4

Por outro lado, convém adicionar um VDEV extra para aumentar a capacidade do ZPOOL. Isso pode ser feito usando o comando zpool Add:

$ zpool Adicionar espelho de tanque Ada4 Ada5 Ada6


A configuração acima permitiria que os dados fossem listrados sobre VDEVs Mirror-0 e Mirror-1. Você pode perder 2 discos por vdev, neste caso, e seus dados ainda estarão intactos. O espaço total utilizável aumenta para 40 GB.

3. RAID-Z1, RAID-Z2 e RAID-Z3

Se um vdev for do tipo RAID-Z1, ele deve usar pelo menos 3 discos e o VDEV pode tolerar o desaparecimento de um apenas desses discos. As configurações RAID-Z não permitem anexar discos diretamente em um VDEV. Mas você pode adicionar mais VDEVs, usando Zpool Add, de modo que a capacidade da piscina possa continuar aumentando.

RAID-Z2 exigiria pelo menos 4 discos por vdev e pode tolerar até 2 falhas em disco e se o terceiro disco falhar antes que os 2 discos sejam substituídos, seus dados valiosos forem perdidos. O mesmo segue para RAID-Z3, que requer pelo menos 5 discos por VDEV, com até 3 discos de tolerância a falhas antes que a recuperação se torne sem esperança.

Vamos criar um pool RAID-Z1 e cultivá-lo:

$ zpool Criar tanque Raidz1 Ada1 Ada2 ADA3

A piscina está usando três discos de 20 GB, disponibilizando 40 GB para o usuário.

Adicionar outro VDEV exigiria 3 discos adicionais:

$ zpool Adicionar tanque Raidz1 Ada4 Ada5 Ada6


O total de dados utilizáveis ​​agora é de 80 GB e você pode perder até 2 discos (um de cada VDEV) e ainda ter uma esperança de recuperação.

Conclusão

Agora você sabe o suficiente sobre o ZFS para importar todos os seus dados com confiança. A partir daqui, você pode procurar vários outros recursos que o ZFS fornece como usar NVMES de alta velocidade para leitura e escrita, usando compactação integrada para seus conjuntos de dados e, em vez de ficar sobrecarregado por todas as opções disponíveis, basta procurar o que você precisa para o seu caso de uso particular.

Enquanto isso, existem mais algumas dicas úteis sobre a escolha do hardware que você deve seguir:

  1. Nunca use o controlador de ataque de hardware com ZFS.
  2. Erro a correção de RAM (ECC) é recomendada, mas não obrigatória
  3. O recurso de desduplicação de dados consome muita memória, use a compactação.
  4. A redundância de dados não é uma alternativa para backup. Tenha vários backups, armazene esses backups usando o ZFS!