Propriedades matrizes distribuídas

As propriedades de uma matriz distribuída determinam os atributos de configuração da matriz.

As configurações de matrizes distribuídas criam MDisks internos de grande escala. Essas matrizes, que podem conter de 4 a 128 unidades, também contêm áreas de reconstrução que são usadas para manter redundância após uma unidade falhar. Se não houver unidades suficientes disponíveis no sistema (por exemplo, em configurações com menos de quatro unidades flash), não é possível configurar uma matriz distribuída. As matrizes RAID distribuídas resolvem os gargalos de reconstrução em configurações de matrizes não distribuídas porque as áreas de reconstrução são distribuídas entre todas as unidades na matriz. A carga de trabalho de gravação de reconstrução é dividida entre todas as unidades, em vez de ser colocada apenas em uma única unidade sobressalente, o que resulta em reconstruções mais rápidas em uma matriz. Matrizes distribuídas removem a necessidade de unidades separadas que estão inativa até que ocorra uma falha. Ao invés de alocar uma ou mais unidades como sobressalentes, a capacidade sobressalente é distribuída sobre áreas de reconstrução específicas em todas as unidades do membro. Os dados podem ser copiados de forma mais rápida na área de reconstrução e a redundância é restaurada muito mais rapidamente. Além disso, à medida que a reconstrução progride, o desempenho do conjunto é mais uniforme porque todas as unidades disponíveis serão utilizadas para cada extensão de volume. Após a substituição da unidade com falha, os dados são copiados de volta para a unidade da capacidade sobressalente distribuída. Ao contrário das unidades hot spare, as solicitações de leitura/gravação são processadas em outras partes da unidade, que não são utilizadas como áreas de reconstrução. O número de áreas de reconstrução é baseado na largura da matriz. O tamanho da área de reconstrução determina quantas vezes a matriz distribuída pode recuperar as unidades com falha sem risco de se tornar degradada. Por exemplo, uma matriz distribuída que usa unidades RAID 6 pode manipular duas falhas simultâneas. Após a reconstrução das unidades com falha, a matriz pode tolerar outras duas falhas de unidade. Se todas as áreas de reconstrução forem usadas para recuperar dados, a matriz ficará comprometida na próxima falha da unidade. Verifique se seu modelo suporta matrizes distribuídas antes de concluir a configuração de matriz. Para sistemas que suportam matrizes distribuídas, é possível usar a GUI de gerenciamento ou o comando expanarray para aumentar o número de unidades em uma matriz, incluindo novas unidades na matriz.

Níveis RAID suportados

O sistema suporta os seguintes níveis de RAID para matrizes distribuídas:

RAID 5 distribuído
As matrizes RAID 5 distribuídos fazem faixas de dados nas unidades do membro com uma faixa de paridade em cada faixa. Estas matrizes distribuídas podem suportar de 4 - 128 unidades. As matrizes distribuídas do RAID 5 podem tolerar apenas uma unidade de membro com falha.
RAID 6 distribuído
As matrizes RAID 6 distribuídas dividem os dados nas unidades de membro com duas faixas de paridade em todas as faixas. Estas matrizes distribuídas podem suportar de 6 - 128 unidades. A matriz distribuída do RAID 6 pode tolerar uma das duas falhas de unidades do membro simultâneas.

Exemplo de uma matriz distribuída

Figura 1 mostra um exemplo de uma matriz distribuída configurada com o nível 6 do RAID; todas as unidades na matriz estão ativas. As áreas de reconstrução são distribuídas por meio de todas as unidades e a contagem de unidades inclui todas as unidades.
  •  1  Uma unidade ativa
  •  2  Reconstrução de áreas, que são distribuídas por meio de todas as unidades
  •  3  Contagem de unidades, que inclui todas as unidades
  •  4  Faixas de dados (duas faixas são mostradas)
  •  5  Largura da faixa
  •  6  Pacote, que iguala-se à contagem da unidade multiplicada pela largura da faixa
  •  7  Pacotes adicionais na matriz (não mostrados)
Figura 1. Matriz distribuída (nível do RAID 6)
Esta figura mostra um exemplo de uma matriz distribuída com uma configuração de nível do RAID 6.
Figura 2 mostra uma matriz distribuída que contém uma unidade com falha. Para recuperar dados, os dados são lidos de várias unidades. Então os dados recuperados são gravados nas áreas de reconstrução, que são distribuídos por meio de todas as unidades na matriz. As áreas de reconstrução são distribuídas por meio de todas as unidades.
  •  1  Unidade com falha
  •  2  Reconstrução de áreas, que são distribuídas por meio de todas as unidades
  •  3  Áreas restantes de reconstrução giram por cada unidade restante
  •  4  Pacotes adicionais na matriz (não mostrados)
Figura 2. Matriz distribuída (nível do RAID 6) com uma unidade com falha
Esta figura mostra um exemplo de uma matriz distribuída com uma configuração de nível do RAID 6 que possui uma unidade com falha.

Largura da matriz

A largura da matriz, que também é referenciada como a contagem de unidades, indica o número total de unidades em uma matriz distribuída. Esse total inclui o número de unidades que são usadas para capacidade de dados e paridade e a área de reconstrução que é usada para recuperar dados.

Área de reconstrução

A área de reconstrução é a capacidade do disco que é reservada dentro de uma matriz distribuída para regenerar dados após uma falha de unidade; ela não fornece capacidade utilizável. Diferente de uma matriz não distribuída, a área de reconstrução é determinada por meio de todas as unidades na matriz. Conforme os dados são reconstruídos durante o processo de copyback, a área de reconstrução contribui com o desempenho da matriz distribuída, porque todos os volumes executam solicitações de E/S.

Faixa de largura da faixa

Uma faixa, que também pode ser referenciada como uma unidade de redundância, é a menor quantidade de dados que pode ser direcionado. Para matrizes distribuídas, o tamanho da faixa pode ser 128 ou 256 KiB.

A largura da faixa indica o número de faixas de dados que podem ser gravadas de uma vez, quando os dados forem regenerados após uma unidade falhar. Este valor também é referenciado como largura da unidade de redundância. No Figura 1, a largura da faixa da matriz é 5.

Classe da unidade

Para aprimorar o desempenho de uma matriz distribuída, todas as unidades devem vir da mesma classe de unidade ou superior. Cada classe de unidade é identificada pelo seu drive_class_id. O sistema usa as informações a seguir para determinar a classe da unidade de cada unidade:
Tamanho de Bloco
Indica o tamanho de bloco da classe da unidade. O tamanho do bloco válido é 512 ou 4096.
Capacidade
Indica a capacidade da classe da unidade.
Grupo de E/S
Indica o nome do grupo de E/S que está associado à classe da unidade.
Velocidade do R
Indica a velocidade da classe da unidade. A velocidade de RPM válida pode ser 7,2 K, 10 K ou 15 K. Para SSDs, esse valor está em branco.
Tecnologia
Indica a tecnologia para a classe da unidade. Os tipos de tecnologia a seguir são suportados:
Memória da classe de armazenamento
As unidades de Memória de classe de armazenamento usam tecnologias de memória persistente que melhoram a resistência e reduzem a latência das atuais tecnologias de dispositivos de armazenamento flash. Todas as unidades SCM usam a arquitetura NVMe.
Camada 0 flash
As unidades flash da camada 0 são unidades flash de alto desempenho que processam operações de leitura e gravação e fornecem acesso mais rápido aos dados do que as unidades Enterprise ou nearline. Para a maioria das unidades flash da Camada 0, o sistema monitora seu nível de desgaste e emite avisos quando a unidade está se aproximando da substituição. Algumas unidades conectadas por NVMe, como as unidades IBM FlashCore Module, são consideradas unidades flash da Camada 0.
Camada 1 flash
As unidades flash de Camada 1 são unidades flash com custo reduzido, normalmente com recursos maiores, mas com características de desempenho e de resistência de gravação um pouco inferiores. O sistema monitora seu nível de desgaste e emite avisos quando a unidade está se aproximando da substituição.
Discos corporativos
Os discos corporativos são unidades de disco que são otimizadas para desempenho.
Discos nearline
Os discos nearline são unidades de disco que são otimizadas para capacidade.

Para substituir uma unidade de membro com falha na matriz distribuída, o sistema pode usar outra unidade que tem a mesma classe de unidade que a unidade com falha. O sistema também pode selecionar uma unidade de uma classe de unidade superior. Por exemplo, duas classes de unidade podem contém unidades do mesmo tipo de tecnologia, mas diferentes capacidades de dados. Neste caso, a classe de unidade superior é a classe de unidade que contém as maiores unidades de capacidade.

Para exibir as informações sobre todas as classes de unidade disponíveis no sistema, use o comando lsdriveclass. O Saída de exemplo do comando lsdriveclass mostra quatro classes de unidade no sistema. A classe de unidade 209 contém unidades com uma capacidade de 278,9 GB; a classe de unidade 337 contém unidades com uma capacidade de 558,4 GB. Embora as unidades tenham a mesma velocidade de RPM, o mesmo tipo de tecnologia e o mesmo tamanho de bloco, a classe de unidade 337 é considerada superior à classe de unidade 209.

Saída de exemplo do comando lsdriveclass

id  RPM   capacity IO_group_id IO_group_name tech_type block_size candidate_count superior_count total_count
1   10000 418.7GB  0           io_grp0       sas_hdd   512        0               0              2
129 10000 278.9GB  0           io_grp0       sas_hdd   512        0               0              5
209 15000 278.9GB  2           io_grp2       sas_hdd   4096       2               5              2
337 15000 558,4 GB  3           io_grp3       sas_hdd   4096       3               3              3

Configurações de prioridade de gravação lenta

Quando uma matriz redundante está executando operações de E/S de leitura/gravação, o desempenho da matriz é comprometido pelo desempenho da unidade do membro mais lenta. Se a rede SAS estiver instável ou se muitos trabalhos estiverem sendo direcionados para a matriz enquanto as unidades executam processos ERP internos, o desempenho para unidades membro poderá ficar pior do que o normal. Nessa situação, as matrizes que oferecem redundância podem aceitar uma breve interrupção na redundância para evitar gravação ou leitura no componente mais lento. As operações de gravação que são mapeadas para uma unidade de baixo desempenho são confirmadas com a outra cópia ou paridade e são, então, concluídas com status bom (não assumindo nenhuma outra falha). Quando a unidade do membro é recuperada, a redundância será restaurada por um processo de segundo plano de gravar as faixas que foram marcadas como fora de sincronização enquanto o membro estava lento.

Essa técnica é governada pela configuração do atributo slow_write_priority da matriz distribuída, que é padronizada para latency quando a matriz é criada. Quando configurado como latency, a matriz tem permissão para ficar fora de sincronização em uma tentativa de suavizar o desempenho insatisfatório do membro. É possível usar o comando charray para mudar o atributo slow_write_priority para redundancy. Quando configurado para redundancy, não é permitido que a matriz fique fora de sincronização. No entanto, a matriz pode evitar a perda de desempenho de leitura retornando leituras para o componente lento a partir de caminhos redundantes.

Quando a matriz usa o modo latency ou tenta evitar a leitura de um componente no modo redundancy, o sistema avalia a unidade regularmente para estimar quando ela se tornará uma parte confiável do sistema novamente. Se a unidade nunca oferece bom desempenho ou se provoca muitas falhas de desempenho em na matriz, o sistema provoca falha no hardware para evitar a exposição contínua para a unidade de desempenho insatisfatório. O sistema falhará no hardware apenas se ele não puder detectar outra explicação para o mau desempenho da unidade.

Substituição de unidade distribuída

Se a luz de falha de LED em uma unidade estiver acesa, a unidade será marcada como com falha e não será mais usada na matriz distribuída. Quando o sistema detectar que uma unidade com falha foi substituída, ele removerá automaticamente o hardware com falha da configuração de matriz. Se uma nova unidade for compatível (por exemplo, na mesma classe de unidade), o sistema iniciará uma operação de copyback para tornar uma área de reconstrução disponível na matriz distribuída.