ZFS

O que é RAID-Z?

O que é RAID-Z?
Os sistemas de arquivos são mais antigos do que o próprio UNIX. E desde que começamos a digitalizar nossas vidas em fitas, discos e SSDs, uma ameaça tem sido eminente. Isso é de falha de hardware. Os dados armazenados em discos costumam ser mais caros do que os próprios discos e esses dados precisam de toda a redundância que pudermos reunir.

RAID-Z é uma das melhores ferramentas que garantem que seus dados vivam o mais livre de erros possível, mesmo na coleção de discos mais barata. É uma parte do OpenZFS. Você pode entender os fundamentos do OpenZFS neste breve artigo se nunca ouviu falar dele antes. É um sistema de arquivos de nível empresarial de código aberto disponível no Linux, FreeBSD, Mac OS X, SmartOS, Illumos e outros sistemas operacionais importantes.

Mas primeiro ... o que é RAID?

RAID significa Redundant Array of Independent (Inexpensive) Disks. Isso se refere à prática ampla da indústria de armazenar dados não apenas em um disco, mas em vários discos, de modo que mesmo quando houver uma falha de disco, os dados possam ser reconstruídos a partir de outros discos. A maneira como os dados são espalhados pelos discos é diferente para diferentes tipos de redundâncias, portanto, são chamados de RAID 0, RAID 1, etc. Não vamos lidar com eles aqui. Focaríamos em um RAIDZ que é específico para OpenZFS.

RAID (e também RAID-Z) não é o mesmo que gravar cópias de dados em um disco de backup. Quando você tem dois ou mais discos configurados em RAID, os dados são gravados neles simultaneamente e todos os discos estão ativos e online. Esta é a razão pela qual o RAID é diferente dos backups e, mais importante, por que RAID não é um substituto para backups. Se todo o seu servidor queimar, todos os discos online podem ir com o servidor, mas os backups salvarão o seu dia. Da mesma forma, se houver uma falha de disco único e algo não foi feito o backup, porque você não pode fazer isso todos os dias, o RAID pode ajudá-lo a recuperar essas informações.

Os backups são cópias feitas periodicamente de dados relevantes e o RAID é uma redundância em tempo real. Existem várias maneiras de armazenar os dados em sistemas RAID tradicionais, mas não entraremos nelas aqui. Aqui, mergulharíamos profundamente no RAIDZ, que é um dos recursos mais interessantes do OpenZFS.

Uma última coisa antes de começarmos, o RAID tradicional às vezes incentiva o uso de dispositivos de hardware dedicados para fazer o RAID. Isso deixa o sistema operacional e o sistema de arquivos sem saber dos mecanismos RAID existentes. Mas, muitas vezes, a própria placa RAID (o hardware dedicado) encontra uma falha, deixando toda a sua matriz de disco praticamente inútil.

Para evitar isso, você deve sempre tentar usar o OpenZFS sem qualquer controlador RAID de hardware.

RAID-Z1, RAID-Z2, RAID-Z3

ZFS combina as tarefas de gerenciador de volume e sistemas de arquivos. Isso significa que você pode especificar os nós de dispositivo para seus discos enquanto cria um novo pool e o ZFS irá combiná-los em um pool lógico e então você pode criar conjuntos de dados para diferentes usos como / home, / usr, etc no topo desse volume.

A configuração de RAID-Z exigiria pelo menos 3 ou mais discos. Você não pode usar menos de três discos. O provedor de armazenamento pode ser outra coisa também armazenamento anexado à rede, dispositivo de bloco virtual, etc, mas vamos nos limitar a três discos de tamanhos iguais como um exemplo simples.

Os três discos podem ser combinados em um dispositivo virtual (vdev). Este é o bloco de construção de um zpool. Se você está começando com apenas 3 discos, você tem 1 vdev em seu zpool. Você pode ter 2 vdevs com 6 discos e assim por diante.

Suponha que você tenha um arquivo de 1 GB que deseja armazenar neste pool. RAID-Z divide-o em dois pedaços iguais de 512 MB e, em seguida, realiza uma operação matemática entre eles que gera um terceiro pedaço de 512 MB (chamado de bloco de paridade). Os três blocos são gravados em três vdevs separados. Então o arquivo acaba levando 1.5 GB de espaço no total.

A vantagem, entretanto, é que, se um dos discos falhar, digamos que o primeiro pedaço seja perdido, então o segundo pedaço e o bloco de paridade podem ser usados ​​para recriar o primeiro. Da mesma forma, se o segundo pedaço for perdido, o primeiro e o terceiro podem ser usados ​​para recriar o segundo.

Seus arquivos usam 50% mais espaço do que o necessário, mas você pode resistir à falha de um disco por vdev. Este é RAID-Z1.

Mas um pool ZFS pode crescer e, eventualmente, você precisará de mais espaço. Bem, você não pode adicionar mais discos diretamente a um vdev (esse recurso é proposto e pode muito bem estar em desenvolvimento agora). No entanto, você pode adicionar um vdev. Isso significa que você pode adicionar discos em conjuntos de três e tratar cada novo conjunto como um único vdev lógico.

Agora você pode tolerar uma única falha de disco neste novo vdev e uma única falha de disco no antigo. Mas se mais de um disco falhar em um único vdev, isso não será recuperável. Todo o seu pool se torna inútil, mesmo os vdevs mais saudáveis.

Este é um modelo realmente simplificado. Os arquivos nunca são divididos exatamente ao meio, mas os dados são tratados como blocos de comprimentos fixos. Além disso, você pode usar mais de 3 discos (mas 3 é o mínimo) por vdev e RAID-Z1 irá garantir que cada bloco de dados exclusivo seja gravado de forma que possa se recuperar da falha de qualquer disco único por vdev. Felizmente, você não precisa se preocupar com esses detalhes internos. Essa é a responsabilidade do ZFS. Uma vez que o pool é configurado, os dados são automaticamente espalhados por ele da maneira mais ideal.

A tolerância a falhas ainda é limitada a uma falha de disco por vdev. Para ir além disso, precisamos ir para RAID-Z2. O RAID-Z2 funciona de maneira semelhante, mas cria dois blocos de paridade e dois blocos de dados a partir de uma única informação. Isso permite que ele resista a até 2 falhas de disco por vdev. Além disso, um vdev deve ter pelo menos 4 discos se for implementar uma configuração RAID-Z2.

Da mesma forma, RAID-Z3 requer pelo menos 5 discos por vdev e pode suportar a falha de 3 deles. O RAID-Z3 não é tão eficiente em termos de espaço quanto o RAID-Z2, que não é tão eficiente em termos de espaço quanto o RAID-Z1.

Conclusão

Com RAID-Z, vemos uma compensação entre o espaço utilizável oferecido por discos individuais e a confiabilidade que a coleção de tais discos pode oferecer. Com maior número de discos, a probabilidade de vários discos falharem simultaneamente também aumenta.

A melhor maneira de contra-atacar é usar uma estratégia RAID-Z eficaz que ofereça confiabilidade e também o melhor retorno para seu investimento. Deixe-nos saber se você achou este tutorial útil ou se você tiver alguma dúvida em relação ao RAID-Z!

Jogos HD Remasterizados para Linux que nunca tiveram uma versão Linux anterior
Muitos desenvolvedores e editores de jogos estão apresentando remasterização em HD de jogos antigos para estender a vida da franquia, por favor, os fã...
Como usar o AutoKey para automatizar jogos Linux
AutoKey é um utilitário de automação de desktop para Linux e X11, programado em Python 3, GTK e Qt. Usando sua funcionalidade de script e MACRO, você ...
Como mostrar o contador de FPS em jogos Linux
Os jogos Linux tiveram um grande impulso quando a Valve anunciou o suporte Linux para o cliente Steam e seus jogos em 2012. Desde então, muitos jogos ...