Oi Habr! Neste artigo, mostraremos se vale a pena organizar matrizes RAID com base em soluções de estado sólido SATA SSD e NVMe SSD, e haverá um lucro sério com isso? Decidimos entender esse problema considerando os tipos e tipos de controladores que permitem isso, bem como o escopo de aplicação de tais configurações.

De uma forma ou de outra, cada um de nós, pelo menos uma vez na vida, ouviu definições como "RAID", "RAID-array", "RAID-controller", mas era improvável que atribuísse uma importância séria a isso, porque para o boyar de PC comum tudo isso é improvável. interessante Mas todo mundo quer que todos desfrutem de altas velocidades de unidades internas e da confiabilidade de seu trabalho. Afinal, não importa o quão poderoso seja o preenchimento do computador, a velocidade da unidade se tornará um gargalo, se falarmos da velocidade combinada do PC e do servidor.
Isso foi exatamente até o momento em que os SSDs NVMe tradicionais com capacidade comparável de 1 TB ou mais substituíram o HDD tradicional. E se, no PC anterior, os SSDs SATA + dois HDs com capacidade eram mais comuns, hoje eles estão começando a ser substituídos por outra solução - NVMe SSD + alguns SSDs com capacidade. Se falamos de servidores corporativos e "nuvens", muitos já mudaram com sucesso para o SATA SSD, simplesmente porque são mais rápidos que as "latas" comuns e são capazes de processar mais operações de E / S ao mesmo tempo.

No entanto, a tolerância a falhas do sistema ainda está em um nível bastante baixo: não podemos, como na Batalha dos Videntes, prever com precisão até uma semana quando uma ou outra unidade de estado sólido solicita uma vida útil prolongada. E se o HDD "morrer" gradualmente, permitindo capturar os sintomas e agir, o SSD "morrerá" imediatamente e sem aviso prévio. E agora é hora de descobrir por que tudo isso é necessário? Vale a pena organizar matrizes RAID com base em soluções de estado sólido SATA SSD e NVMe SSD, e haverá um lucro sério com isso?
Por que preciso de uma matriz RAID?
A própria palavra "matriz" já implica que várias unidades (HDD e SSD) são usadas para criá-la, que são combinadas usando um controlador RAID e são reconhecidas pelo sistema operacional como um único armazenamento de dados. A tarefa global que as matrizes RAID podem resolver é minimizar o tempo de acesso aos dados, aumentar a velocidade de leitura / gravação e a confiabilidade, o que é alcançado graças à capacidade de recuperar-se rapidamente em caso de falha. A propósito, não é necessário usar o RAID para backups domésticos. Mas se você possui seu próprio servidor doméstico, o que exige acesso constante 24 horas por dia, 7 dias por semana - isso é outra questão.
Existem mais de uma dúzia de níveis de matrizes RAID, cada uma delas difere no número de unidades usadas e possui seus próprios prós e contras: por exemplo, o RAID 0 permite obter alto desempenho sem tolerância a falhas, o RAID 1 permite espelhar dados automaticamente sem aumentar a velocidade e o RAID 10 combina em si, as possibilidades do acima exposto. RAID 0 e 1 são os mais simples (já que não exigem cálculos de software) e, como resultado, os mais populares. Por fim, a escolha a favor de um nível RAID específico depende das tarefas atribuídas à matriz de discos e dos recursos do controlador RAID.
RAID doméstico e corporativo: qual é a diferença?
A base de qualquer empresa moderna são grandes quantidades de dados que devem ser armazenados com segurança nos servidores da empresa. E também, como observamos acima, eles devem ter acesso constante 24/7. É claro que, a par do hardware, a parte do software também é importante, mas, neste caso, ainda estamos falando de equipamentos que fornecem armazenamento e processamento confiáveis de informações. Nenhum software salvará a empresa da ruína se o hardware de "hardware" não atender às tarefas atribuídas a ele.

Para essas tarefas, qualquer fabricante de hardware oferece os chamados dispositivos corporativos. A Kingston possui poderosas soluções de estado sólido na forma dos modelos SATA
Kingston 450R (DC450R) e da
série DC500 , bem como nos modelos DC1000M U.2 NVMe NVMe, DCU1000 U.2 NVMe e DCP-1000 modelos PCI-e destinados ao uso em data centers (data centers) e supercomputadores. Matrizes de tais unidades geralmente são usadas em conjunto com controladores de hardware.

Para o mercado consumidor (ou seja, para PCs domésticos e servidores NAS), unidades como
Kingston KC2000 NVMe PCIe estão disponíveis, mas, neste caso, não é necessário comprar um controlador de hardware. Você pode restringir-se a um servidor PC ou NAS embutido na placa-mãe, a menos que você planeje criar seu próprio servidor doméstico para tarefas atípicas (faça uma pequena hospedagem doméstica para amigos, por exemplo). Além disso, matrizes RAID domésticas, como regra, não implicam a presença de centenas ou milhares de unidades, limitando-se a dois, quatro e oito dispositivos (geralmente SATA).
Tipos e tipos de controladores RAID
Existem três tipos de controladores RAID baseados nos princípios da implementação do RAID:
1. Software, no qual o controle da matriz recai na CPU e na DRAM (ou seja, a execução do código do programa ocorre no processador).
2. Integrado, isto é, embutido na placa-mãe de um PC ou servidor NAS.
3. Hardware (modular), que são placas de expansão discretas para conectores placas-mãe PCI / PCIe.
Qual é a diferença fundamental entre eles? Os controladores de software RAID são inferiores aos integrados e ao hardware em desempenho e tolerância a falhas, mas não requerem equipamentos especiais para operação. No entanto, é importante garantir que o processador host seja poderoso o suficiente para executar o software RAID sem afetar adversamente o desempenho dos aplicativos que também são executados no host. Controladores integrados, como regra, são equipados com sua própria memória cache e usam uma certa quantidade de recursos da CPU.
Mas o hardware tem sua própria memória cache e um processador integrado para executar algoritmos de software. Geralmente eles permitem implementar todos os tipos de níveis de RAID e suportam vários tipos de unidades de uma só vez. Por exemplo, você pode conectar simultaneamente dispositivos SATA, SAS e NVMe aos modernos controladores de hardware Broadcom, o que permite que você não altere o controlador ao atualizar servidores: em particular, ao passar de um SSD SATA para um SSD NVMe, não é necessário alterar os controladores.

Na verdade, nessa nota, chegamos à tipologia dos próprios controladores. Se houver três modos, deve haver mais? Nesse caso, a resposta a esta pergunta será afirmativa. Dependendo das funções e capacidades, os controladores RAID podem ser divididos em vários tipos:
1. Controladores RAID comunsEm toda a hierarquia, este é o controlador mais simples que permite combinar HDD e SSD em matrizes RAID de níveis "0", "1" ou "0 + 1". Software isso é implementado no nível do firmware. No entanto, esses dispositivos dificilmente podem ser recomendados para uso no segmento corporativo, porque não possuem cache e não suportam matrizes de níveis "5", "3" etc. Mas para um servidor doméstico básico, eles são bastante adequados.
2. Controladores emparelhados com outros controladores RAIDEste tipo de controlador pode ser emparelhado com controladores da placa-mãe integrados. Isso é implementado de acordo com o seguinte princípio: um controlador RAID discreto cuida da solução de problemas “lógicos” e da troca de dados interna entre unidades. Mas há uma nuance: a operação paralela de tais controladores é possível apenas em placas-mãe compatíveis, o que significa que seu escopo está diminuindo seriamente.
3. Controladores RAID independentesEssas soluções discretas contêm todos os chips necessários para trabalhar com servidores de classe empresarial, com BIOS próprio, memória cache e processador para correção rápida de erros e cálculo de somas de verificação. Além disso, eles atendem a altos padrões de confiabilidade em termos de fabricação e possuem módulos de memória de alta qualidade.
4. Controladores RAID externosÉ fácil adivinhar que todos os controladores acima são internos e recebem energia através do conector PCIe da placa-mãe. Do que isso está falando? E o fato de que uma falha na placa-mãe pode levar a erros na operação da matriz RAID e perda de dados. Os controladores externos estão livres desse mal-entendido, pois estão alojados em um compartimento separado com uma fonte de alimentação independente. Em termos de confiabilidade, esses controladores fornecem o mais alto nível de armazenamento de dados.
Broadcom , Microsemi Adaptec, Intel, IBM, Dell e Cisco são apenas algumas das empresas que atualmente oferecem controladoras RAID de hardware.
Modos de controlador SAS / SATA / NVMe RAID
A principal tarefa dos controladores HBA e RAID de modo triplo (ou controladores com função Tri-Mode) é criar RAID de hardware com base no NVMe. Na Broadcom, os controladores da série 9400 podem fazer isso: por exemplo, o
MegaRAID 9460-16i . Pertence a um tipo independente de controladores RAID, é equipado com quatro conectores SFF-8643 e, graças ao suporte Tri-Mode, permite conectar unidades SATA / SAS e NVMe simultaneamente. Além disso, é também um dos controladores com maior eficiência energética do mercado (consome apenas 17 watts de energia, enquanto menos de 1,1 watts para cada uma das 16 portas).

A interface de conexão é o PCI Express x8 versão 3.1, que permite implementar uma largura de banda de 64 Gb / s (em 2020, espera-se que os controladores do PCI Express 4.0 apareçam). O controlador de 16 portas é baseado no chip
SAS3516 de 2 núcleos e no SDRAM DDR4-2133 de 72 bits (4 GB), além da capacidade de conectar até 240 unidades SATA / SAS ou até 24 dispositivos NVMe. Em relação à organização das matrizes RAID, são suportados os níveis "0", "1", "5" e "6", bem como "10", "50" e "60". A propósito, a memória cache do
MegaRAID 9460-16i e de outros controladores da série 9400 é protegida contra falhas de tensão pelo módulo opcional CacheVault CVPM05.
A tecnologia de três modos é baseada na função de conversão de dados SerDes: conversão de representação de dados seriais em interfaces SAS / SATA em forma paralela no PCIe NVMe e vice-versa. Ou seja, o controlador negocia velocidades e protocolos para funcionar perfeitamente com qualquer um dos três tipos de dispositivos de armazenamento. Isso fornece uma maneira ininterrupta de dimensionar as infra-estruturas de data center: os usuários podem usar o NVMe sem alterações significativas em outras configurações do sistema.

No entanto, ao planejar configurações com unidades NVMe, vale a pena considerar que as soluções NVMe usam 4 linhas PCIe para conectar, o que significa que cada unidade usa todas as linhas de porta SFF-8643. Acontece que apenas quatro unidades NVMe podem ser conectadas diretamente ao controlador MegaRAID 9460-16i. Ou limite-se a duas soluções NVMe enquanto conecta oito unidades SAS ao mesmo tempo (consulte 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. Esse arranjo pode ser revertido, mas cada unidade x4 NVMe deve ser conectada usando linhas adjacentes. Os modos de operação do controlador são definidos por meio das ferramentas de configuração StorCLI ou HII (Human Interface Infrastructure), que são executadas em um ambiente UEFI.

O modo padrão é o perfil “PD64” (suporta apenas SAS / SATA). Como dissemos acima, existem três perfis no total: modo somente SAS / SATA (PD240 / PD64 / PD 16), modo somente NVMe (PCIe4) e modo misto, no qual todos os tipos de unidades podem funcionar: PD64 -PCIe4 "(suporte para 64 discos físicos e virtuais com 4 unidades NVMe). No modo misto, o valor do perfil especificado deve ser assim - "ProfileID = 13". A propósito, o perfil selecionado é salvo como mestre e não é redefinido, mesmo quando você reverte para as configurações de fábrica através do comando Definir padrões de fábrica. Só será possível alterá-lo manualmente.
Devo criar uma matriz RAID em um SSD?
Portanto, já percebemos que as matrizes RAID são a chave para o alto desempenho. Mas vale a pena construir o RAID a partir de unidades de estado sólido para uso doméstico e corporativo? Muitos céticos dizem que o aumento da velocidade não é tão significativo que leva à falência nos drives NVMe. Mas é mesmo assim? Dificilmente. A maior limitação para o uso de SSDs no RAID (em casa e no nível corporativo) pode ser apenas o preço. Seja o que for que se diga, o custo de um gigabyte de espaço em um disco rígido é muito mais barato.
Conectar várias "unidades" de estado sólido a um controlador RAID para criar uma matriz de SSDs em determinadas configurações pode ter um enorme impacto no desempenho. No entanto, não esqueça que o desempenho máximo é limitado pela largura de banda do próprio controlador RAID. O nível RAID que oferece o melhor desempenho é o RAID 0.

A organização de um RAID 0 regular com duas unidades SSD, que usa o método de dividir dados em blocos fixos e sua alternância entre armazenamento em estado sólido, levará a uma duplicação de desempenho (quando comparada às velocidades que um SSD produz). Nesse caso, uma matriz RAID 0 com quatro unidades de estado sólido será quatro vezes mais rápida que o SSD mais lento da matriz (dependendo do limite da largura de banda no nível do controlador RAID SSD).
Baseado na aritmética simples, um SSD SATA é cerca de 3 vezes mais rápido que um HDD SATA tradicional. As soluções NVMe são ainda mais eficazes - 10 vezes ou mais. Desde que dois discos rígidos no nível zero de RAID apresentem desempenho dobrado, aumentando em 50%, dois SSDs SATA serão 6 vezes mais rápidos e dois SSDs NVMe serão 20 vezes mais rápidos. Em particular, uma unidade Kingston KC2000 NVMe PCIe pode atingir velocidades sequenciais de leitura e gravação de até 3200 MB / s, que no formato RAID 0 atingirão 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 "zero" não nos fornece redundância.
Podemos dizer que em casa, a redundância de armazenamento geralmente não é necessária; portanto, o RAID 0 é realmente a configuração RAID mais adequada para o RAID 0. Essa é uma maneira confiável de obter um aumento significativo no desempenho como alternativa ao uso de tecnologias como os SSDs Intel Optane. Mas como as soluções SSD se comportarão nos tipos mais populares de RAID ("1", "5", "10", "50") - falaremos no próximo artigo.
Este artigo foi preparado com o apoio de nossos colegas da Broadcom, que fornecem seus controladores aos engenheiros da Kingston para testes com unidades SATA / SAS / NVMe de classe empresarial. Graças a essa simbiose amigável, os clientes não precisam duvidar da confiabilidade e estabilidade dos discos Kingston com os controladores HBA e RAID da Broadcom.
Informações adicionais sobre os produtos Kingston podem ser encontradas
no site oficial da empresa.