Propriedades matrizes distribuídas
Essas matrizes, que podem conter de 4 a 128 unidades, também contêm áreas de reconstrução que são usadas para manter a redundância após falha de uma unidade. Como resultado, a configuração distribuída reduz significativamente os tempos de reconstrução e reduz a exposição que os volumes têm para carregamento extra da recuperação de redundância.
Matrizes RAID distribuídas resolvem esses problemas, porque as áreas de reconstrução são distribuídas entre todas as unidades na matriz. A carga de trabalho de gravação da reconstrução se dispersa entre todas as unidades em vez de em uma única unidade sobressalente, o que resulta em reconstruções mais rápidas em uma matriz. As configurações de matrizes distribuídas poderão conter entre 4 - 128 unidades. Matizes distribuídas acabam com a necessidade de unidades separadas que ficam inativas até ocorrer 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 com mais agilidade para a área de reconstrução e a redundância é restaurada com muito mais agilidade. Além disso, à medida que a reconstrução progride, o desempenho do conjunto é mais uniforme porque todas as unidades disponíveis são usadas 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. Diferentemente de unidades "hot spares", solicitações de leitura/gravação são processadas em outras partes da unidade que não estão sendo usadas 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 unidades com falha sem arriscar tornar-se degradada. Por exemplo, uma matriz distribuída que usa unidades RAID 6 pode manipular duas falhas simultâneas. Após as unidades com falha terem sido reconstruídas, a matriz pode tolerar falhas de outras duas unidades. Se todas as áreas de reconstrução forem usadas para recuperar dados, a matriz se tornará degradada na próxima falha de unidade.
Níveis RAID suportados
O sistema suporta os seguintes níveis de RAID para matrizes distribuídas.
- 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 a falha de uma unidade do membro.
- 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


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. Este total inclui o número de unidades usadas para a capacidade e paridade de dados, e a área de reconstrução 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 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. A 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.4GB 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 gravações que são mapeadas para uma unidade de execução insatisfatória são confirmadas para a outra cópia ou paridade e são, então, concluídas com um status de satisfatório (presumindo 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.