Olá Habr! Neste artigo, vamos discutir se vale a pena organizar arrays RAID com base em soluções sólidas SATA SSD e NVMe SSD, e se isso realmente traz um grande benefício. Decidimos investigar essa questão, examinando os tipos e as categorias de controladores que permitem isso, bem como as áreas de aplicação dessas configurações.

De uma forma ou de outra, todos nós já ouvimos, pelo menos uma vez na vida, definições como "RAID", "array RAID", "controlador RAID", mas provavelmente não atribuímos a isso uma grande importância, uma vez que isso raramente interessa ao usuário comum. Mas velocidades elevadas de dispositivos internos e confiabilidade em seu funcionamento são desejos de todos. Afinal, por mais potente que seja o hardware do computador, a velocidade do dispositivo se torna um gargalo quando se fala no desempenho geral do PC e do servidor.
Isso era verdade até o momento em que os modernos NVMe SSDs com capacidades comparáveis a 1 TB ou mais começaram a substituir os tradicionais HDDs. E se antes em PCs era comum encontrar combinações de SATA SSD + alguns HDDs grandes, hoje isso está sendo substituído por outra solução — NVMe SSD + alguns SATA SSDs grandes. No caso de servidores corporativos e "nuvens", muitos já migraram com sucesso para SATA SSDs, simplesmente porque eles são mais rápidos que os tradicionais "discos rígidos" e conseguem lidar com um maior número de operações de entrada/saída simultaneamente.

No entanto, a resiliência do sistema ainda está em um nível bastante baixo: não podemos, como em "A Batalha dos Paranormais", prever com precisão, nem mesmo uma semana antes, quando um ou outro dispositivo sólido irá falhar. E enquanto os HDDs "morrem" gradualmente, permitindo que percebamos os sinais e tomemos medidas, os SSDs "morrendo" de uma só vez e sem avisos. Agora é a hora de entender, para que tudo isso é realmente necessário? Vale a pena organizar arrays RAID com base em soluções sólidas SATA SSD e NVMe SSD, e isso trará um grande benefício?
Para que serve um array RAID?
A própria palavra "array" já implica que, para sua criação, são usados vários dispositivos de armazenamento (HDD e SSD), que são combinados por meio de um controlador RAID e reconhecidos pelo sistema operacional como um único armazenamento de dados. A principal tarefa que os arrays RAID permitem resolver é a minimização do tempo de acesso aos dados, o aumento da velocidade de leitura/gravação e a confiabilidade, que é alcançada graças à possibilidade de recuperação rápida em caso de falha. Vale mencionar que, para backups domésticos, não é absolutamente necessário usar RAID. Mas se você tem seu próprio servidor doméstico, que precisa de acesso constante 24/7, a situação é diferente.
Existem mais de uma dezena de níveis de arrays RAID, cada um deles com uma quantidade diferente de dispositivos utilizados e suas vantagens e desvantagens: por exemplo, RAID 0 permite obter alta performance sem redundância, RAID 1 garante espelhamento automático dos dados sem aumento de velocidade, enquanto RAID 10 combina as funcionalidades acima mencionadas. RAID 0 e RAID 1 são os mais simples (pois não exigem cálculos programáticos) e, consequentemente, os mais populares. No final das contas, a escolha de um ou outro nível de RAID depende das tarefas atribuídas ao array de discos e das capacidades do controlador RAID.
RAID doméstico e corporativo: qual é a diferença?
A base de qualquer negócio moderno são grandes volumes de dados que devem ser armazenados de forma confiável nos servidores das empresas. Além disso, como já mencionamos acima, deve-se garantir acesso constante 24/7 a eles. É claro que, assim como o "hardware", a parte de software também é importante, mas neste caso estamos falando de equipamentos que garantem o armazenamento e o processamento confiáveis das informações. Nenhum software salvará uma empresa da falência se o equipamento "hardware" não corresponder às tarefas que lhe são atribuídas.

Para essas tarefas, qualquer fabricante de "hardware" oferece os chamados dispositivos corporativos. No caso da Kingston, são soluções de armazenamento sólido potentes na forma de modelos SATA e , e modelos NVMe DC1000M U.2 NVMe, DCU1000 U.2 NVMe e DCP-1000 PCI-e, projetados para uso em data centers e supercomputadores. Arranjos com esses dispositivos costumam ser usados em combinação com controladores de hardware.

Para o mercado consumidor (ou seja, para PCs domésticos e servidores NAS), estão disponíveis dispositivos como NVMe PCIe, mas neste caso não é necessário comprar um controlador de hardware. Você pode se limitar ao integrado na placa-mãe do PC ou do servidor NAS, a menos que planeje montar um servidor doméstico para tarefas não convencionais (como criar um pequeno hosting para amigos, por exemplo). Além disso, arranjos RAID domésticos geralmente não pressupõem a presença de centenas ou milhares de dispositivos, limitando-se a dois, quatro ou oito dispositivos (frequentemente SATA).
Tipos e categorias de controladores RAID
Existem três tipos de controladores RAID, baseados nos princípios de implementação de arranjos RAID:
1. Programáticos, onde o gerenciamento do arranjo recai sobre a CPU e DRAM (ou seja, a execução do código é feita no processador).
2. Integrados, ou seja, embutidos nas placas-mãe de PCs ou servidores NAS.
3. De hardware (modulares), que consistem em placas discretas de expansão para conectores PCI/PCIe de placas-mãe.
Qual é a principal diferença entre eles? Controladores RAID programáticos ficam atrás dos controladores integrados e de hardware em termos de desempenho e tolerância a falhas, mas não exigem hardware especial para funcionar. Porém, é importante garantir que o processador do sistema host seja suficientemente potente para executar o software RAID, sem impactar negativamente o desempenho das aplicações que também operam no host. Controladores integrados geralmente vêm equipados com sua própria memória cache e utilizam uma certa quantidade de recursos da CPU.
Os controladores de hardware possuem tanto cache próprio quanto um processador embutido para executar algoritmos de software. Normalmente, eles permitem a implementação de todos os tipos de níveis de RAID e suportam vários tipos de dispositivos de armazenamento ao mesmo tempo. Por exemplo, os modernos controladores de hardware da Broadcom podem conectar simultaneamente dispositivos SATA, SAS e NVMe, permitindo que você não precise trocar o controlador ao fazer um upgrade nos servidores: em particular, ao migrar de SSD SATA para SSD NVMe, não será necessário trocar os controladores.

E assim, chegamos à tipologização dos próprios controladores. Se existe o modelo de três modos, devem haver outros também? Neste caso, a resposta é afirmativa. Dependendo das funções e capacidades, os controladores RAID podem ser divididos em vários tipos:
1. Controladores comuns com função RAID
Dentro de toda a hierarquia, este é o controlador mais simples, que permite combinar HDDs e SSDs em arrays RAID dos níveis '0', '1' ou '0+1'. Isso é implementado programaticamente no nível do firmware. No entanto, tais dispositivos dificilmente podem ser recomendados para uso no segmento corporativo, pois carecem de cache e não suportam arrays dos níveis '5', '3', etc. Mas para um servidor doméstico de nível básico, eles são bastante adequados.
2. Controladores que trabalham em conjunto com outros controladores RAID
Esse tipo de controlador pode operar em conjunto com controladores integrados das placas-mãe. Isso é realizado da seguinte maneira: o controlador RAID discreto assume a resolução das tarefas 'lógicas', enquanto o integrado cuida das funções de troca de dados entre os dispositivos de armazenamento. Mas há uma ressalva: o funcionamento paralelo desses controladores só é possível em placas-mãe compatíveis, o que significa que sua área de aplicação é bastante restrita.
3. Controladores RAID independentes
Essas soluções discretas contêm todos os chipsets necessários para trabalhar com servidores de classe corporativa, possuindo seu próprio BIOS, cache e processador para a rápida correção de erros e cálculo de somas de verificação. Além disso, atendem a altos padrões de confiabilidade em fabricação e possuem módulos de memória de alta qualidade.
4. Controladores RAID externos
Não é difícil adivinhar que todos os controladores mencionados acima são internos e recebem alimentação através do conector PCIe da placa-mãe. O que isso significa? Que a falha da placa-mãe pode levar a erros no funcionamento da matriz RAID e à perda de dados. Por outro lado, os controladores externos estão isentos desse problema, pois são colocados em um gabinete separado com uma fonte de alimentação independente. Em termos de confiabilidade, esses controladores oferecem o mais alto nível de armazenamento de dados.
, Microsemi Adaptec, Intel, IBM, Dell e Cisco são apenas algumas das empresas que atualmente oferecem controladores RAID de hardware.
Modos de operação dos controladores RAID SAS/SATA/NVMe
A principal tarefa dos controladores HBA e RAID de três modos (ou controladores com função Tri-Mode) é criar um RAID de hardware com base em NVMe. A Broadcom possui controladores da série 9400 que realizam isso: por exemplo, . Ele pertence ao tipo independente de controladores RAID, é equipado com quatro conectores SFF-8643 e, graças ao suporte Tri-Mode, permite conectar simultaneamente dispositivos SATA/SAS e NVMe. Além disso, é um dos controladores mais eficientes em termos de energia no mercado (consome apenas 17 Watts, com menos de 1,1 Watts para cada uma das 16 portas).

A interface de conexão é PCI Express x8 versão 3.1, o que permite uma largura de banda de até 64 Gbit/s (espera-se que em 2020 haja controladores para PCI Express 4.0). A base do controlador de 16 portas é um chip de 2 núcleos e 72 bits de DDR4-2133 SDRAM (4 GB), além de suportar a conexão de até 240 dispositivos SATA/SAS ou até 24 dispositivos NVMe. Em termos de organização das matrizes RAID, suportam os níveis “0”, “1”, “5” e “6”, além de “10”, “50” e “60”. Vale mencionar que a memória cache e de outros controladores da série 9400 é protegida contra falhas de energia por um módulo adicional CacheVault CVPM05.
A tecnologia de três modos baseia-se na função de conversão de dados SerDes: a conversão de dados em formato serial nas interfaces SAS/SATA para uma forma paralela no PCIe NVMe e vice-versa. Ou seja, o controlador sincroniza velocidades e protocolos para operar sem problemas com qualquer um dos três tipos de dispositivos de armazenamento. Isso proporciona uma forma contínua de escalar a infraestrutura dos data centers: os usuários podem utilizar NVMe sem mudanças significativas em outras configurações do sistema.

No entanto, ao planejar configurações com unidades NVMe, é importante considerar que as soluções NVMe utilizam 4 linhas PCIe para conexão, o que significa que cada unidade ocupa todas as linhas das portas SFF-8643. Assim, apenas quatro unidades NVMe podem ser conectadas diretamente ao controlador MegaRAID 9460-16i. Alternativamente, pode-se limitar a duas soluções NVMe ao mesmo tempo que se conectam oito unidades SAS ( veja o diagrama de conexão abaixo).

A figura mostra o uso do conector "0" (C0 / Conector 0) e do conector "1" para conexões NVMe, bem como dos conectores "2" e "3" para conexões SAS. Esta disposição pode ser invertida, mas cada unidade x4 NVMe deve ser conectada utilizando linhas adjacentes. Os modos de operação do controlador são definidos através das ferramentas de configuração StorCLI ou Human Interface Infrastructure (HII), que opera em um ambiente UEFI.

O modo padrão é o perfil "PD64" (suporte apenas para SAS / SATA). Como mencionado anteriormente, há três perfis no total: o modo "apenas SAS/SATA" (PD240 / PD64 / PD 16), o modo "apenas NVMe" (PCIe4) e o modo misto, no qual todos os tipos de unidades podem operar: "PD64-PCIe4" (suporte para 64 discos físicos e virtuais com 4 unidades NVMe). No modo misto, o perfil definido deve ser "ProfileID=13". Vale destacar que o perfil selecionado é mantido como principal e não é redefinido mesmo ao retornar às configurações de fábrica com o comando Set Factory Defaults. A alteração só poderá ser feita manualmente.
Vale a pena criar um array RAID em SSD?
Assim, já entendemos que os arrays RAID são fundamentais para um alto desempenho. Mas será que vale a pena montar um RAID com unidades de estado sólido para uso doméstico e corporativo? Muitos céticos afirmam que o aumento de velocidade não é tão significativo a ponto de justificar o investimento em unidades NVMe. Mas será que isso é verdade? Difícilmente. O maior limitante para o uso de SSD em RAID (tanto em ambientes domésticos quanto corporativos) pode ser apenas o preço. De qualquer forma, o custo por gigabyte de espaço em HDD é significativamente mais baixo.
Conectar várias unidades de estado sólido ao controlador RAID para formar um array de SSD em determinadas configurações pode ter um enorme impacto no desempenho. No entanto, não devemos esquecer que o desempenho máximo é limitado pela largura de banda do próprio controlador RAID. O nível RAID que oferece a melhor velocidade de operação é o RAID 0.

A configuração de um RAID 0 simples com dois SSDs, utilizando o método de divisão de dados em blocos fixos e alternando-os entre os armazenamentos de estado sólido, resultará em um aumento de desempenho (comparado às velocidades que um único SSD oferece). Assim, um array RAID 0 com quatro unidades de estado sólido será quatro vezes mais rápido do que o SSD mais lento no array (dependendo da limitação de largura de banda no nível do controlador RAID SSD).
Se considerarmos a aritmética simples, um SSD SATA é aproximadamente 3 vezes mais rápido que um HDD SATA tradicional. As soluções NVMe são ainda mais eficientes – 10 vezes ou mais. Desde que dois discos rígidos em RAID de nível zero demonstrem desempenho duplicado, aumentando-o em 50%, dois SSDs SATA estarão 6 vezes mais rápidos, enquanto dois SSDs NVMe estarão 20 vezes mais rápidos. Em particular, uma unidade Kingston KC2000 NVMe PCIe pode atingir velocidades de leitura e gravação sequencial de até 3200 MB/s, que em formato RAID 0 alcançará impressionantes 6 GB/s. E a velocidade de leitura/gravação de blocos aleatórios de 4 KB passará de 350.000 IOPS para 700.000 IOPS. Mas... ao mesmo tempo, o RAID
Pode-se dizer que, em ambiente doméstico, a redundância de armazenamento geralmente não é necessária, portanto, a configuração RAID mais adequada para SSD é realmente o RAID 0. Essa é uma maneira confiável de obter um aumento significativo de desempenho como alternativa ao uso de tecnologias como os drives SSD baseados em Intel Optane. Mas como se comportarão as soluções SSD nos tipos mais populares de RAID ("1", "5", "10", "50") — falaremos sobre isso no nosso próximo material.
Este artigo foi preparado com o apoio de nossos colegas da Broadcom, que fornecem seus controladores para os engenheiros da Kingston testarem com unidades SATA/SAS/NVMe de classe corporativa. Graças a essa simbiose amigável, os clientes não precisam duvidar da confiabilidade e estabilidade do funcionamento das unidades Kingston com controladores HBA e RAID. .
Mais informações sobre os produtos da Kingston podem ser encontradas a empresa.
Fonte: habr.com
