Armazenamento AERODISK em processadores domésticos Elbrus 8C


Olá leitores da Habr. Queremos compartilhar notícias extremamente boas. Finalmente, esperamos a produção em série real de uma nova geração de processadores russos Elbrus 8C. Oficialmente, a produção em série deveria começar já em 2016, mas, de fato, foi a produção em massa que começou apenas em 2019 e atualmente cerca de 4000 processadores já foram lançados.


Quase imediatamente após o início da produção em massa, esses processadores apareceram em nosso Aerodisk, pelo qual queremos agradecer à empresa NORSI-TRANS, que gentilmente nos forneceu sua plataforma de hardware Yakhont UVM, suportando os processadores Elbrus 8C, por portar o software de armazenamento. Esta é uma plataforma moderna e universal que atende a todos os requisitos do MCST. No momento, a plataforma é usada por consumidores especiais e operadoras de telecomunicações para garantir a implementação de ações estabelecidas durante as atividades de busca operacional.


No momento, a portabilidade foi concluída com êxito e agora o armazenamento do AERODISK está disponível na versão com os processadores Elbrus domésticos.


Neste artigo, falaremos sobre os próprios processadores, seu histórico, arquitetura e, é claro, sobre nossa implementação de armazenamento no Elbrus.


A história


A história dos processadores Elbrus se origina nos dias da União Soviética. Em 1973, no Instituto de Mecânica de Precisão e Engenharia de Computação. S.A. Lebedev (nomeado em homenagem ao mesmo Sergey Lebedev, que anteriormente liderou o desenvolvimento do primeiro computador soviético MESM, e mais tarde BESM) iniciou o desenvolvimento de sistemas de computação multiprocessadores chamados "Elbrus". Vsevolod Sergeevich Burtsev liderou o desenvolvimento, e Boris Artashesovich Babayan, que era um dos vice-designers principais, também participou ativamente do desenvolvimento.



Vsevolod Sergeevich Burtsev



Boris Artashesovich Babayan


O principal cliente do projeto foi, obviamente, as Forças Armadas da URSS, e essa série de computadores acabou sendo usada com sucesso para criar centros de computadores de comando e sistemas de disparo para sistemas de defesa antimísseis, bem como outros sistemas para fins especiais.


O primeiro computador Elbrus foi concluído em 1978. Tinha uma arquitetura modular e poderia incluir de 1 a 10 processadores baseados em circuitos de integração médios. A velocidade desta máquina atingiu 15 milhões de operações por segundo. A quantidade de RAM, que era comum em todos os 10 processadores, era de 2 a 20 palavras de máquina elétrica ou 64 MB.


Mais tarde, descobriu-se que muitas das tecnologias usadas no desenvolvimento da Elbrus ao mesmo tempo eram estudadas no mundo, e a International Business Machine (IBM) estava envolvida nelas, mas o trabalho nesses projetos, diferentemente do trabalho na Elbrus, nunca foi foram concluídas e não resultaram em um produto acabado.


Segundo Vsevolod Burtsev, os engenheiros soviéticos tentaram aplicar a experiência mais avançada de desenvolvedores nacionais e estrangeiros. A arquitetura dos computadores Elbrus também foi influenciada pelos computadores Burroughs, pelos desenvolvimentos da Hewlett-Packard e pela experiência dos desenvolvedores do BESM-6.


Mas, ao mesmo tempo, muitos desenvolvimentos eram originais. O mais interessante em "Elbrus-1" foi justamente sua arquitetura.


O supercomputador criado foi o primeiro computador na URSS a usar a arquitetura superescalar. O uso maciço de processadores superescalares no exterior começou apenas nos anos 90 do século passado, com o advento de processadores Intel Pentium acessíveis no mercado.


Além disso, para organizar a transferência de fluxos de dados entre dispositivos periféricos e RAM no computador, processadores especiais de entrada / saída podem ser usados. Pode haver até quatro desses processadores no sistema; eles trabalham em paralelo com o processador central e têm sua própria memória dedicada.


Elbrus-2


Em 1985, a Elbrus teve sua continuação lógica, o computador Elbrus-2 foi criado e colocado em produção em série. Na arquitetura, não era muito diferente do antecessor, mas usava uma nova base de elementos, que permitia aumentar a produtividade geral em quase 10 vezes - de 15 milhões de operações por segundo para 125 milhões.A RAM do computador aumentou para 16 milhões de palavras de 72 bits ou 144 MB. A taxa de transferência máxima dos canais de E / S Elbrus-2 foi de 120 MB / s.


O "Elbrus-2" foi usado ativamente em centros de pesquisa nuclear em Chelyabinsk-70 e em Arzamas-16 no MCC, no sistema de defesa antimísseis A-135, bem como em outras instalações militares.



Complex SPRUT C1200 baseado nos processadores Elbrus


A criação de Elbrus foi apreciada pelos líderes da União Soviética. Muitos engenheiros receberam ordens e medalhas. O designer geral Vsevolod Burtsev e vários outros especialistas receberam prêmios estaduais. E Boris Babayan foi premiado com a Ordem da Revolução de Outubro.


Esses prêmios são mais do que merecidos, Boris Babayan disse mais tarde:


"Em 1978, fabricamos a primeira máquina superescalar, Elbrus-1. Agora, no Ocidente, eles fazem superescalares apenas dessa arquitetura. O primeiro superscalar apareceu no 92º ano, o nosso no 78º. Além disso, a versão do superescalar que fizemos , semelhante ao Pentium Pro, que a Intel fabricou no 95º ano. "

Essas palavras sobre o primado histórico também são confirmadas nos EUA, Keith Diefendorff, desenvolvedor do Motorola 88110, um dos primeiros processadores superscalares ocidentais, escreveu:


"Em 1978, quase 15 anos antes do surgimento dos primeiros processadores superescalares ocidentais, um processador foi usado no Elbrus-1, com a emissão de duas instruções por ciclo, alterando a ordem de execução das instruções, renomeando registros e executando por suposição".

Elbrus-3


Em 1986, e quase imediatamente após a conclusão do trabalho no segundo Elbrus, a ITM & VT começou a desenvolver um novo sistema Elbrus-3 usando uma arquitetura de processador fundamentalmente nova. Boris Babayan chamou essa abordagem de "pós-superescalar". Foi essa arquitetura, mais tarde chamada VLIW / EPIC, que os processadores Intel Itanium começaram a usar no futuro (em meados dos anos 90) (e na URSS, esses desenvolvimentos começaram em 1986 e terminaram em 1991).


A ideia de gerenciar explicitamente o paralelismo das operações usando um compilador foi realizada pela primeira vez neste complexo de computação.


Em 1991, o primeiro e, infelizmente, o único computador Elbrus-3 foi lançado, que não pôde ser totalmente ajustado, e após o colapso da União Soviética, ninguém precisou, e o desenvolvimento e os planos permaneceram no papel.


Antecedentes da nova arquitetura


A equipe que trabalhou na ITMiVT para criar supercomputadores soviéticos não se separou, mas continuou a trabalhar como uma empresa separada sob o nome MCST (Moscow SPARK-Technology Center). E, no início dos anos 90, o ICST iniciou uma cooperação ativa com a Sun Microsystems, onde a equipe do ICST participou do desenvolvimento do microprocessador UltraSPARC.


Foi nesse período que surgiu o projeto de arquitetura E2K, que foi originalmente financiado pela Sun. Mais tarde, o projeto tornou-se completamente independente e toda a propriedade intelectual permaneceu com a equipe do ICST.


"Se continuássemos a trabalhar com a Sun nessa área, tudo teria pertencido à Sun. Embora 90% do trabalho tenha sido feito antes do surgimento da Sun". (Boris Babayan)

Arquitetura E2K


Quando discutimos a arquitetura dos processadores Elbrus, muitas vezes de nossos colegas do setor de TI, ouvimos as seguintes declarações:


“Elbrus é arquitetura RISC”
“Elbrus é uma arquitetura EPIC”
“Elbrus é a arquitetura SPARC”

De fato, nenhuma dessas afirmações é completamente verdadeira e, se for, é apenas parcialmente.


A arquitetura do E2K é uma arquitetura de processador original separada, os principais recursos do E2K são a eficiência energética e a excelente escalabilidade alcançada ao definir paralelismo explícito das operações. A arquitetura E2K foi desenvolvida pela equipe do ICST e é baseada na arquitetura pós-superscalar (à la EPIC), com alguma influência da arquitetura SPARC (com o passado do RISC). Ao mesmo tempo, na criação de três das quatro arquiteturas básicas (superescalares, pós-superescalares e SPARC), o MCST estava diretamente envolvido. O mundo é realmente pequeno.


Para evitar mais confusão, desenhamos um diagrama simples, que, embora simplista, mas muito claramente mostra as raízes da arquitetura E2K.



Agora, um pouco mais sobre o nome da arquitetura, em relação ao qual também há um mal-entendido.


Em diferentes fontes, você pode encontrar os seguintes nomes dessa arquitetura: "E2K", "Elbrus", "Elbrus 2000", ELBRUS ("Programação da utilização de recursos básicos da ExpLicit", ou seja, planejamento explícito para o uso de recursos básicos). Todos esses nomes dizem a mesma coisa - sobre arquitetura, mas na documentação técnica oficial, bem como em fóruns técnicos, o nome E2K é usado para designar arquitetura, portanto, no futuro, se falarmos sobre arquitetura de processador, usaremos o termo "E2K" e, se sobre um processador específico, usamos o nome "Elbrus".


Recursos técnicos da arquitetura E2K


Em arquiteturas tradicionais, como RISC ou CISC (x86, PowerPC, SPARC, MIPS, ARM), o processador recebe um fluxo de instruções projetadas para execução seqüencial. O processador pode detectar operações independentes e executá-las em paralelo (superescalidade) e até alterar sua ordem (execução extraordinária). No entanto, a análise dinâmica de dependência e o suporte para execução extraordinária têm limitações no número de inicialização e análise de comandos por ciclo. Além disso, os blocos correspondentes dentro do processador consomem uma quantidade significativa de energia, e sua implementação mais complicada às vezes leva a problemas de estabilidade ou segurança.


Na arquitetura E2K, o compilador pega a maior parte do trabalho em análise de dependência e otimiza a ordem das operações. O processador recebe a chamada entrada. comandos amplos, em cada um dos quais são codificadas instruções para todos os dispositivos executivos do processador que devem ser executados neste relógio. O processador não precisa analisar dependências entre operandos ou reorganizar operações entre comandos amplos: tudo isso é feito pelo compilador com base na análise do código-fonte e no planejamento dos recursos do processador. Como resultado, o componente de hardware do processador pode ser mais simples e econômico.


O compilador é capaz de analisar o código fonte muito mais detalhadamente do que o hardware do processador RISC / CISC e encontrar operações mais independentes. Portanto, existem mais atuadores simultâneos na arquitetura E2K do que nas arquiteturas tradicionais.


Recursos atuais da arquitetura E2K:


  • 6 canais de dispositivos lógicos aritméticos (ALU) trabalhando em paralelo.
  • Um arquivo de registro de 256 registros de 84 bits.
  • Suporte de hardware para loops, incluindo pipelining. Melhora a utilização da CPU.
  • Dispositivo de pré-paginação de dados assíncronos programável com canais de leitura separados. Permite ocultar atrasos no acesso à memória e fazer pleno uso da ALU.
  • Suporte para computação especulativa e predicados de bit único. Permite reduzir o número de transições e executar simultaneamente várias ramificações do programa.
  • Uma equipe ampla capaz de configurar até 23 operações em um único ciclo com enchimento máximo (mais de 33 operações ao embalar operandos em instruções vetoriais).


Emulação X86


Mesmo no estágio de design da arquitetura, os desenvolvedores entendiam a importância de oferecer suporte ao software criado para a arquitetura Intel x86. Para isso, foi implementado um sistema de conversão dinâmica (ou seja, no processo de execução do programa ou "on the fly") de códigos binários x86 em códigos de processador da arquitetura E2K. Esse sistema pode funcionar no modo de aplicativo (da maneira WINE) e em um modo semelhante ao hipervisor (é possível executar todo o SO convidado para a arquitetura x86).


Graças a vários níveis de otimização, é possível obter alta velocidade do código traduzido. A qualidade da emulação da arquitetura x86 é confirmada pelo lançamento bem-sucedido de mais de 20 sistemas operacionais (incluindo várias versões do Windows) e centenas de aplicativos nos complexos de computação da Elbrus.


Modo de execução do programa protegido


Uma das idéias mais interessantes herdadas das arquiteturas Elbrus-1 e Elbrus-2 é a chamada execução segura de programas. Sua essência é garantir a operação do programa apenas com dados inicializados, verificar todos os acessos à memória por pertencer a um intervalo válido de endereços, fornecer proteção entre módulos (por exemplo, proteger o programa de chamada de um erro na biblioteca). Todas essas verificações são feitas em hardware. Para o modo protegido, há um compilador completo e uma biblioteca de suporte ao tempo de execução. Deve-se entender que as restrições impostas tornam impossível organizar a execução de, por exemplo, código escrito em C ++.


Mesmo no modo de operação "desprotegido" usual dos processadores Elbrus, existem recursos que aumentam a confiabilidade do sistema. Portanto, a pilha de informações de ligação (a cadeia de endereços de retorno para chamadas processuais) é separada da pilha de dados do usuário e não está disponível para ataques usados ​​em vírus como falsificação do endereço de retorno.


Esses desenvolvimentos não apenas nos permitem alcançar e, no futuro, superar as arquiteturas concorrentes em termos de desempenho e escalabilidade, mas também fornecem proteção contra erros que afetam x86 / amd64. Indicadores como Meltdown (CVE-2017-5754), Spectre (CVE-2017-5753, CVE-2017-5715), RIDL (CVE-2018-12126, CVE-2018-12130), Fallout (CVE-2018-12127), ZombieLoad (CVE-2019-11091) e similares.


A proteção moderna contra vulnerabilidades encontrada na arquitetura x86 / amd64 é baseada em patches no nível do sistema operacional. É por isso que a queda no desempenho nas gerações atuais e anteriores de processadores dessas arquiteturas é tão perceptível e varia de 30% a 80%. Nós, como usuários ativos de processadores x86, sabemos sobre isso, sofremos e continuamos a "comer um cacto", mas a solução para esses problemas está na raiz para nós (e, como resultado, para nossos clientes), um benefício indiscutível, especialmente se a solução for russa.


Especificações técnicas


Abaixo estão as especificações técnicas oficiais dos processadores Elbrus das gerações anteriores (4C), atuais (8C), novas (8CB) e futuras (16C) em comparação com processadores Intel x86 semelhantes.



Mesmo uma rápida olhada nesta tabela mostra (e isso é muito agradável) que o atraso tecnológico dos processadores domésticos, que parecia insuperável há 10 anos, agora parece muito pequeno, e em 2021 com o lançamento do Elbrus-16C (que, entre outras coisas, suportará virtualização) será reduzido para distâncias mínimas.


Armazenamento AERODISK nos processadores Elbrus 8C


Passamos da teoria para a prática. Como parte da aliança estratégica das empresas MTsST, Aerodisk, Basalt SPO (anteriormente Alt Linux) e NORSI-TRANS, um sistema de armazenamento de dados foi desenvolvido e preparado para operação, que no momento não é o melhor em termos de segurança, funcionalidade, custo e desempenho, então , em nossa opinião, uma solução inegavelmente digna que pode fornecer o devido nível de independência tecnológica de nosso país.
Agora os detalhes ...


Hardware


O hardware do armazenamento é implementado com base na plataforma universal Yakhont UVM da NORSI-TRANS. A plataforma Yakhont UVM recebeu o status de equipamento de telecomunicações de origem russa e está incluída no registro unificado de produtos radioeletrônicos russos. O sistema consiste em dois controladores de armazenamento separados (2U cada), que são interconectados por uma interconexão Ethernet 1G ou 10G, bem como em prateleiras de disco comuns usando uma conexão SAS.


Obviamente, isso não é tão bonito quanto o formato “Cluster in a box” (quando controladores e unidades com um backplane comum são instalados no mesmo chassi de 2U), que costumamos usar, mas também estará disponível em um futuro próximo. O principal aqui é funcionar bem, mas pensaremos nos "arcos" mais tarde.




Sob o capô, cada controlador possui uma placa-mãe com processador único com quatro slots de RAM (DDR3 para processador 8C). Cada controlador também possui 4 portas Ethernet 1G (duas das quais são utilizadas pelo AERODISK ENGINE como serviço) e três conectores PCIe para adaptadores Back-end (SAS) e Front-end (Ethernet ou FibreChannel).


Como discos de inicialização, usamos discos russos SATA SSD da GS Nanotech, que testamos e usamos repetidamente em projetos.



Quando conhecemos a plataforma, a examinamos cuidadosamente. Não tivemos dúvidas sobre a qualidade da montagem e da solda, tudo foi feito de maneira organizada e confiável.


Sistema operacional


Como sistema operacional, a versão do Alt 8SP OS é usada para certificação. Em um futuro próximo, planejamos criar um plug-in e um repositório constantemente atualizado para o Alt OS com o software de armazenamento Aerodisk.


Esta versão da distribuição é construída na versão estável atual do kernel Linux 4.9 para E2K (uma ramificação com suporte a longo prazo foi transportada pelos especialistas do MCST), complementada por patches de funcionalidade e segurança. Todos os pacotes no Alt OS foram coletados diretamente no Elbrus usando o sistema de montagem transacional original do projeto ALT Linux Team, o que permitiu reduzir os custos de mão-de-obra para a própria porta e prestar mais atenção à qualidade do produto.


Qualquer versão do Alt OS para Elbrus pode ser significativamente expandida em termos de funcionalidade, usando o repositório disponível (de cerca de 6 mil pacotes de código-fonte para a oitava versão a cerca de 12 para a nona).


A escolha também foi feita porque a empresa Basalt SPO, desenvolvedora do Alt OS, está trabalhando ativamente com outros desenvolvedores de software e dispositivos em várias plataformas, fornecendo interação contínua na estrutura de sistemas de hardware e software.


Software de armazenamento


Ao portar, abandonamos imediatamente a idéia de usar a emulação x86 suportada no E2K e começamos a trabalhar diretamente com os processadores (já que a Alt já possui as ferramentas necessárias para isso).


Entre outras coisas, o modo de execução nativo fornece melhor segurança (as mesmas três pilhas de hardware em vez de uma) e maior desempenho (não há necessidade de alocar um ou dois kernels em oito para o tradutor binário funcionar, e o compilador faz seu trabalho melhor que o JIT).


De fato, na implementação do AERODISK ENGINE no E2K, é suportada a maior parte da funcionalidade de armazenamento existente, que é em x86. Como software do sistema de armazenamento, é usada a versão atual do AERODISK ENGINE (A-CORE versão 2.30)


Sem problemas, as seguintes funções foram lançadas no E2K e testadas para uso no produto:


  • Tolerância a falhas para até dois controladores e E / S de vários caminhos (mpio)
  • Acesso a blocos e arquivos com volumes finos (conjuntos RDG, DDP; protocolos FC, iSCSI, NFS, SMB, incluindo integração com o Active Directory)
  • Diferentes níveis de RAID até paridade tripla (incluindo a capacidade de usar o construtor RAID)
  • Armazenamento híbrido (combinando SSD e HDD no mesmo pool, ou seja, cache e lacrimejamento)
  • Opções de economia de espaço com desduplicação e compactação
  • Instantâneos ROW, clones e diferentes opções de replicação
  • E outros recursos pequenos, mas úteis, como QoS, hotspare global, VLAN, BOND, etc.

E2K , ( ) -, all-flash 20-30%.


, , , .



, , .


, (2xCPU E8C 1.3 Ghz, 32 GB RAM + 4 SAS SSD 800GB 3DWD), RAM-, DDP RAID-10 LUN 500G LUN- iSCSI (10G Ethernet) Linux-. FIO.


.



60%, .. , .


, highload - , , , 80% , .


.



, 8 – 2019 4000 . , 4 5000, .


, , , .
2020 8, . , 2020 -8 .


— .


, ( -16). , .


, , , , . , , .


, , , - , – , , . , , .



. , , , !


, , , , , . .


- , 100% – ))).



, :
https://www.ixbt.com/cpu/e2k-spec.html


«»:
https://topwar.ru/34409-istoriya-kompyuterov-elbrus.html


e2k:
https://ru.wikipedia.org/wiki/%D0%AD%D0%BB%D1%8C%D0%B1%D1%80%D1%83%D1%81_2000


4- (-8) 5- (-8, 2020 ):
https://ru.wikipedia.org/wiki/%D0%AD%D0%BB%D1%8C%D0%B1%D1%80%D1%83%D1%81-8%D0%A1


6- (-16, 2021 ):
https://ru.wikipedia.org/wiki/%D0%AD%D0%BB%D1%8C%D0%B1%D1%80%D1%83%D1%81-16%D0%A1


:
http://www.elbrus.ru/elbrus_arch


- «» :
http://www.mcst.ru/files/5a9eb2/a10cd8/501810/000003/kim_a._k._perekatov_v._i._feldman_v._m._na_puti_k_rossiyskoy_ekzasisteme_plany_razrabotchikov.pdf


«» , :
http://www.mcst.ru/files/5472ef/770cd8/50ea05/000001/rossiyskietehnologiielbrus-it-edu9-201410l.pdf


, :
http://www.mcst.ru/e2k_arch.shtml


:
https://www.osp.ru/os/1999/05-06/179819


, :
https://yadi.sk/i/HDj7d31jTDlDgA


:
https://altlinux.org/


https://sdelanounas.ru/blog/shigorin/

Source: https://habr.com/ru/post/pt482434/


All Articles