O que é RAID-Z?

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

RAID-Z é uma das melhores ferramentas que garantiriam que seus dados vivam o mais livre possível de erros na coleção mais barata de discos. Faz parte do OpenZFS. Você pode entender o básico do OpenZFS neste breve artigo, se você nunca ouviu falar disso antes. É um sistema de arquivos de grau corporativo e de código aberto disponível no Linux, FreeBSD, Mac OS X, Smartos, Illumos e outros OS principais OSs.

Mas primeiro ... o que é o ataque?

RAID significa uma variedade redundante de discos independentes (baratos). Isso se refere à prática da indústria de armazenar dados não apenas em um disco, mas em vários discos, para que, mesmo quando houver uma falha de disco, os dados possam ser reconstruídos de outros discos. A maneira como os dados são espalhados pelos discos é diferente para diferentes tipos de redundâncias de acordo, eles são nomeados RAID 0, RAID 1, etc. Não vamos lidar com eles aqui. Nós nos concentraríamos em um Raidz, específico para o OpenZFS.

RAID (e também RAID-Z) não é o mesmo que escrever cópias de dados em um disco de backup. Quando você tem dois ou mais discos configurados em RAID, os dados são gravados para eles simultaneamente e todos os discos estão ativos e online. Esta é a razão pela qual o ataque é 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 poderão ir com o servidor, mas os backups salvarão o seu dia. Da mesma forma, se houver falha de disco único e algo não foi 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 periodicamente coletados cópias de dados relevantes e RAID é uma redundância em tempo real. Existem várias maneiras pelas quais os dados são armazenados nos sistemas tradicionais de RAID, mas não entraremos neles aqui. Aqui, mergulharíamos profundamente em Raidz, que é uma das características mais legais do OpenZFS.

Uma última coisa antes de começarmos, a invasão tradicional às vezes incentiva o uso de dispositivos de hardware dedicados para fazer o ataque. Isso deixa o sistema operacional e o sistema de arquivos desconhecendo os mecanismos de ataque que estão no lugar. Mas muitas vezes o cartão RAID (o hardware dedicado) encontra uma falha, deixando toda a sua matriz de disco essencialmente inútil.

Para evitar isso, Você sempre deve tentar usar o OpenZFs sem nenhum controlador de invasão de hardware.

RAID-Z1, RAID-Z2, RAID-Z3

O ZFS combina as tarefas do Volume Manager e Systems de arquivos. Isso significa que você pode especificar os nós do dispositivo para seus discos enquanto cria um novo pool e o ZFS os combina em um pool lógico e você pode criar conjuntos de dados para diferentes usos como /home, /usr, etc.

A configuração do 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 de armazenamento conectado à rede também, dispositivo de bloco virtual etc., mas vamos seguir 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 depois 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 pedaços são escritos em três vdevs separados. Então o arquivo acaba tomando 1.5 GB de espaço no total.

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

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

Mas uma piscina do 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 mais antigo. Mas se mais de um disco falhar em um único vdev, isso não é recuperável. Toda a sua piscina é inútil até os VDEVs mais saudáveis.

Este é um modelo realmente simplificado. Os arquivos nunca são divididos exatamente em metades, 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 garantirá que cada bloco de dados exclusivo seja escrito de modo que possa se recuperar da falha de qualquer disco único em VDEV. Felizmente, você não precisa se preocupar com esses detalhes internos. Essa é a responsabilidade do ZFS. Depois que o pool é configurado, os dados são automaticamente espalhados por ele da maneira mais ideal.

A tolerância a falhas ainda está limitada a uma falha de disco por vdev. Ir além disso, precisamos ir para o RAID-Z2. O RAID-Z2 funciona de maneira semelhante, mas cria dois blocos de paridade e dois blocos de dados de uma única informação. Isso permite suportar 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, o RAID-Z3 requer pelo menos 5 discos por vdev e pode suportar o fracasso de 3 deles. O RAID-Z3 não é tão eficiente quanto o RAID-Z2, que não é tão eficiente em termos de espaço quanto o RAID-Z1.

Conclusão

Com o RAID-Z, vemos uma troca entre o espaço utilizável oferecido por discos individuais e a confiabilidade que a coleta de tais discos pode oferecer. Com maior número de discos, a probabilidade de múltiplos discos falhando simultaneamente também aumenta.

A melhor maneira de combatê-lo é usar uma estratégia RAID-Z eficaz que oferece confiabilidade e o melhor retorno para o seu dinheiro. Informe-nos se você achou este tutorial útil ou se tiver alguma dúvida com relação ao RAID-Z!