Os algoritmos RAID foram apresentados ao público em 1987. Até hoje, permanecem como a tecnologia mais requisitada para proteção e aceleração de acesso a dados no armazenamento de informações. No entanto, a idade de uma tecnologia de TI que ultrapassou os 30 anos não indica maturidade, mas sim uma certa obsolescência. A razão para isso é o progresso, que traz consigo novas oportunidades irresistíveis. Em tempos em que praticamente não havia outros dispositivos de armazenamento além dos HDDs, os algoritmos RAID permitiam o uso mais eficiente dos recursos disponíveis. Contudo, com o surgimento dos SSDs, a situação mudou radicalmente. Atualmente, o RAID, ao trabalhar com unidades de estado sólido, se torna um 'estrangulamento' para seu desempenho. Portanto, para liberar todo o potencial das características de velocidade dos SSDs, é imprescindível uma abordagem completamente diferente.

Além das diferenças claras entre HDD e SSD em termos de funcionamento, esses tipos de dispositivos possuem uma característica importante: qualquer disco rígido pode reescrever quaisquer dados com granularidade de um bloco (atualmente, geralmente de 4KB). Para os SSDs, no entanto, o processo de reescrita representa um procedimento muito mais complexo:
- Os dados alterados são copiados para um novo local. A granularidade é o mesmo bloco, mas consiste em várias páginas e tem um tamanho de 256KB a 4MB. Ou seja, ao alterar aqueles mesmos 4KB, é necessário copiar também todas as páginas vizinhas que formam um bloco único.
- Os 'blocos antigos' são marcados como não utilizados para depois serem apagados pelo coletor de 'lixo' (Garbage Collector).

Gravação/regravação sequencial em SSD
No caso de gravação/regravação sequencial, essa característica do funcionamento do SSD não desempenha um grande papel em termos de desempenho, uma vez que os blocos estão próximos e o coletor de 'lixo' consegue realizar seu trabalho em segundo plano. Porém, na vida real, e ainda mais no segmento Enterprise, os SSDs geralmente têm acesso aleatório aos dados. E esses dados são gravados em locais arbitrários nos dispositivos.
Quanto mais dados são gravados em um SSD, mais difícil se torna o trabalho do coletor de lixo, pois a fragmentação aumenta significativamente. Como resultado, chega um momento em que o processo de limpeza do dispositivo deixa de ser "em segundo plano": o desempenho do SSD diminui consideravelmente, pois uma parte significativa dele é consumida pelo Garbage Collector.

Localização real dos dados em um SSD durante o uso diário
Para ilustrar o efeito da operação do coletor de lixo dependendo do modo de gravação no dispositivo, é possível realizar testes simples: gravação sequencial e aleatória em blocos de 4KB em um dispositivo de 100GB. (Fonte – a empresa )

Desempenho em gravação sequencial

Desempenho em gravação aleatória
Como pode ser visto nos testes, a queda de desempenho pode ultrapassar duas vezes. E isso é apenas um único dispositivo. No caso de uso de SSD em um grupo RAID, o número de operações de regravação aumenta significativamente devido ao trabalho com paridade.
Na verdade, devido a essas características de funcionamento dos SSDs, existe um parâmetro chamado de coeficiente de gravação (write amplification). Este é o relacionamento entre o volume de dados gravados no dispositivo e o volume de dados que realmente foram enviados pelo host. E para o RAID5 mais popular, esse coeficiente é de aproximadamente 3.5.
Como resultado, sistemas com RAID clássico geralmente utilizam apenas cerca de 10% da real velocidade dos SSDs e escalam mal em desempenho ao aumentar o número de dispositivos para mais de uma dezena.
Também devemos notar que operações excessivas de gravação não apenas reduzem o desempenho dos SSDs, mas também diminuem seu recurso não infinito, encurtando assim a vida útil do dispositivo.
, que é o núcleo de todos os produtos AccelStor, foi desenvolvida como uma alternativa aos algoritmos clássicos de RAID ao trabalhar com SSDs. A inovação da tecnologia foi reconhecida por várias patentes e prêmios (incluindo no Flash Memory Summit 2016), bem como pelos resultados de testes independentes (por exemplo, SPC1).
Essência consiste na conversão de todos os pedidos de gravação recebidos, principalmente do tipo random, em um conjunto de blocos que se assemelham o máximo possível ao modo de gravação sequencial do ponto de vista do dispositivo de armazenamento. Como resultado, a gravação em SSD ocorre no modo mais confortável para eles, e o desempenho final supera qualquer sistema com RAID clássico.
Todos os SSDs nos sistemas AccelStor são divididos em duas grupos simétricos FlexiRemap®. O tamanho do grupo depende do modelo e varia de 5 a 11 dispositivos. Para resiliência dentro do grupo, aplica-se paridade semelhante ao RAID5. Ambos os grupos são utilizados em conjunto, formando um espaço de armazenamento total. Portanto, a resiliência final será análoga a um array RAID50, composto por dois grupos: o sistema é capaz de suportar a falha de até dois SSDs, mas não mais de um em cada grupo FlexiRemap®.

Todos os pedidos de gravação recebidos são fragmentados em blocos de 4KB, que são gravados em ambas as grupos FlexiRemap® em modo round robin. Ao mesmo tempo, o sistema mantém um registro constante da demanda pelos blocos gravados, tentando, ao modificá-los, gravar blocos semelhantes o mais próximo possível uns dos outros. Isso resulta em um análogo virtual de tiering, se expressarmos em termos de armazenamento. Nesse caso, o trabalho do coletor de lixo é significativamente facilitado: blocos não utilizados estarão sempre próximos uns dos outros.
Vale ressaltar que diferente dos produtos concorrentes, não utilizam a funcionalidade de cache de solicitações de entrada na memória RAM do controlador. Todos os blocos de dados recebidos são gravados imediatamente no SSD. O host recebe a confirmação de gravação bem-sucedida apenas após a colocação física dos dados nos dispositivos. Na RAM, são armazenadas apenas as tabelas de localização dos blocos no SSD para acelerar o acesso e determinar onde gravar o próximo bloco de dados. Naturalmente, para segurança, cópias dessas tabelas também estão localizadas nos próprios dispositivos. Como resultado, os sistemas AccelStor não precisam de nenhuma proteção de cache sob a forma de bateria/condenser (no entanto, existe a possibilidade de conexão a um UPS – para desligamento
Graças a essa abordagem na organização da gravação, o coletor de 'lixo' realmente consegue operar em segundo plano, sem impactar significativamente a velocidade dos dispositivos de armazenamento, o que permite, no contexto do sistema, reciclar até 90% da performance do SSD. É precisamente isso que explica os altos índices de IOPS nos sistemas AccelStor em comparação com All Flash, que têm algoritmos RAID como base.
Outra característica importante da tecnologia FlexiRemap® é a redução significativa das operações de gravação excessivas nos SSDs. Assim, o índice de gravação (write amplification) para os sistemas AccelStor é de apenas 1,3, o que em termos práticos significa um aumento na vida útil dos dispositivos em comparação com RAID5 de mais de 2,5 vezes!

Devido ao controle constante da política de posicionamento de dados nos SSDs realizada pelo sistema, todos os dispositivos se desgastam de maneira uniforme. Essa abordagem permite prever sua vida útil e comunicar previamente ao administrador quando o recurso de gravação estiver se esgotando.
É claro que os SSDs podem falhar. Nesse caso, o sistema começará imediatamente um rebuild em um dos discos hot spare. Assim, o grupo FlexiRemap®, que está em estado degradado, muda para o modo 'somente leitura', e todas as solicitações de gravação são direcionadas para o segundo grupo. Esse mecanismo de proteção é projetado para acelerar a operação de rebuild e reduzir a probabilidade de mais um dispositivo falhar no mesmo grupo. Afinal, não é segredo que durante o rebuild todos os dispositivos do grupo enfrentam uma carga maior devido à interferência das operações de leitura, gravação e recuperação no hot spare. Assim, aumenta-se a chance de falha de um outro disco. Quanto mais operações de gravação, mais longo será o processo de rebuild.

Após a conclusão do processo de recuperação e o retorno do grupo FlexiRemap® ao estado normal, haverá um pequeno desvio no recurso de gravação entre os dois grupos. Portanto, para equilibrá-lo, as operações de gravação subsequentes serão direcionadas com mais frequência para o grupo recuperado (é claro, com o objetivo de que a performance final do sistema não seja seriamente comprometida).
Aumentar o desempenho de sistemas All Flash baseados em algoritmos RAID além de certos valores (~280K IOPS@4K gravação aleatória) não é possível, mesmo com o uso de complexos sistemas de cache. A tecnologia FlexiRemap®, graças a uma abordagem totalmente diferente na organização do espaço de armazenamento, não apenas supera facilmente essa barreira, mas também aumenta várias vezes a vida útil dos SSDs. Portanto, os sistemas têm vantagens significativas entre os arrays All Flash em muitos aspectos (IOPS/$, GB/$, TCO, ROI), tornando-os candidatos ideais para posições-chave em data centers de clientes para resolver tarefas que exigem muitos recursos.
Fonte: habr.com
