Almacenamiento de AERODISK en procesadores domésticos Elbrus 8C


Hola lectores de Habr. Queremos compartir muy buenas noticias. Finalmente esperamos la producción en serie real de una nueva generación de procesadores rusos Elbrus 8C. Oficialmente, se suponía que la producción en serie comenzaría ya en 2016, pero, de hecho, fue la producción en masa que comenzó solo en 2019 y actualmente se han lanzado alrededor de 4000 procesadores.


Casi inmediatamente después del inicio de la producción en masa, estos procesadores también aparecieron en nuestro Aerodisk, por lo que queremos agradecer a la empresa NORSI-TRANS, que amablemente nos proporcionó su plataforma de hardware Yakhont UVM, que admite procesadores Elbrus 8C, para portar el software de almacenamiento. Esta es una plataforma moderna y universal que cumple con todos los requisitos del MCST. Por el momento, la plataforma es utilizada por consumidores especiales y operadores de telecomunicaciones para garantizar la implementación de acciones establecidas durante las actividades de búsqueda operativa.


Por el momento, la transferencia se ha completado con éxito, y ahora el almacenamiento AERODISK está disponible en la versión con procesadores domésticos Elbrus.


En este artículo, hablaremos sobre los procesadores mismos, su historia, arquitectura y, por supuesto, sobre nuestra implementación de almacenamiento en Elbrus.


La historia


La historia de los procesadores Elbrus se origina en los días de la Unión Soviética. En 1973, en el Instituto de Mecánica de Precisión e Ingeniería Informática. S.A. Lebedev (llamado así por el mismo Sergey Lebedev, que anteriormente dirigió el desarrollo del primer MESM informático soviético, y más tarde BESM) comenzó el desarrollo de sistemas informáticos multiprocesador llamados "Elbrus". Vsevolod Sergeevich Burtsev dirigió el desarrollo, y Boris Artashesovich Babayan, uno de los principales diseñadores adjuntos, también participó activamente en el desarrollo.



Vsevolod Sergeevich Burtsev



Boris Artashesovich Babayan


El principal cliente del proyecto fue, por supuesto, las Fuerzas Armadas de la URSS, y esta serie de computadoras finalmente se utilizó con éxito para crear centros de comando de computadoras y sistemas de disparo para sistemas de defensa antimisiles, así como otros sistemas de propósito especial.


La primera computadora Elbrus se completó en 1978. Tenía una arquitectura modular y podía incluir de 1 a 10 procesadores basados ​​en circuitos de integración media. La velocidad de esta máquina alcanzó 15 millones de operaciones por segundo. La cantidad de RAM, que era común para los 10 procesadores, era de 2 a 20 palabras de máquina de potencia o 64 MB.


Más tarde resultó que muchas de las tecnologías utilizadas en el desarrollo de Elbrus al mismo tiempo se estudiaron en el mundo, y la International Business Machine (IBM) se involucró en ellas, pero el trabajo en estos proyectos, a diferencia del trabajo en Elbrus, nunca fue se completaron y no dieron como resultado un producto terminado.


Según Vsevolod Burtsev, los ingenieros soviéticos intentaron aplicar la experiencia más avanzada de los desarrolladores nacionales y extranjeros. La arquitectura de las computadoras Elbrus también estuvo influenciada por las computadoras Burroughs, los desarrollos de Hewlett-Packard, así como la experiencia de los desarrolladores de BESM-6.


Pero al mismo tiempo, muchos desarrollos fueron originales. Lo más interesante en "Elbrus-1" fue precisamente su arquitectura.


La supercomputadora creada fue la primera computadora en la URSS en utilizar la arquitectura superescalar. El uso masivo de procesadores superescalares en el extranjero comenzó solo en los años 90 del siglo pasado con la llegada de procesadores Intel Pentium asequibles en el mercado.


Además, para organizar la transferencia de flujos de datos entre dispositivos periféricos y RAM en la computadora, se podrían utilizar procesadores especiales de entrada / salida. Podría haber hasta cuatro de estos procesadores en el sistema; trabajaron en paralelo con el procesador central y tenían su propia memoria dedicada.


Elbrus-2


En 1985, Elbrus obtuvo su continuación lógica, la computadora Elbrus-2 fue creada y puesta en producción en serie. En arquitectura, no era muy diferente de su predecesor, pero utilizó una nueva base de elementos, lo que permitió aumentar la productividad general en casi 10 veces, de 15 millones de operaciones por segundo a 125 millones. La memoria RAM de la computadora aumentó a 16 millones de palabras de 72 bits o 144 MB. El rendimiento máximo de los canales de E / S Elbrus-2 fue de 120 MB / s.


El "Elbrus-2" se utilizó activamente en los centros de investigación nuclear en Chelyabinsk-70 y en Arzamas-16 en el CCM, en el sistema de defensa antimisiles A-135, así como en otras instalaciones militares.



SPRUT C1200 complejo basado en procesadores Elbrus


La creación de Elbrus fue apreciada por los líderes de la Unión Soviética. Muchos ingenieros recibieron órdenes y medallas. El diseñador general Vsevolod Burtsev y otros especialistas recibieron premios estatales. Y Boris Babayan fue galardonado con la Orden de la Revolución de Octubre.


Estos premios son más que merecidos, Boris Babayan dijo más tarde:


"En 1978, hicimos la primera máquina superescalar, Elbrus-1. Ahora en Occidente hacen superescalares solo de esta arquitectura. El primer superescalar apareció en el año 92, el nuestro en el 78. Además, esa versión del superescalar que hicimos , similar a Pentium Pro, que Intel hizo en el año 95 ".

Estas palabras sobre la primacía histórica también se confirman en los EE. UU., Keith Diefendorff, el desarrollador de Motorola 88110, uno de los primeros procesadores superescalares occidentales, escribió:


"En 1978, casi 15 años antes de que aparecieran los primeros procesadores superescalares occidentales, se utilizó un procesador en Elbrus-1, con la emisión de dos instrucciones por ciclo, cambiando el orden de ejecución de las instrucciones, renombrando registros y ejecutando por suposición".

Elbrus-3


Era 1986, y casi inmediatamente después de completar el trabajo en el segundo Elbrus, ITM & VT comenzó a desarrollar un nuevo sistema Elbrus-3 utilizando una arquitectura de procesador fundamentalmente nueva. Boris Babayan llamó a este enfoque "post-superescalar". Fue esta arquitectura, más tarde llamada VLIW / EPIC, la que los procesadores Intel Itanium comenzaron a usar en el futuro (a mediados de los 90) (y en la URSS, estos desarrollos comenzaron en 1986 y terminaron en 1991).


La idea de gestionar explícitamente el paralelismo de operaciones utilizando un compilador se realizó por primera vez en este complejo informático.


En 1991, se lanzó la primera y, desafortunadamente, la única computadora Elbrus-3, que no pudieron configurar completamente, y después del colapso de la Unión Soviética, nadie la necesitaba, y los diseños y planes permanecieron en papel.


Antecedentes de la nueva arquitectura.


El equipo que trabajó en ITMiVT para crear supercomputadoras soviéticas no se separó, sino que continuó trabajando como una compañía separada bajo el nombre MCST (Centro de Tecnología SPARK de Moscú). Y a principios de los 90, el ICST comenzó una cooperación activa con Sun Microsystems, donde el equipo del ICST participó en el desarrollo del microprocesador UltraSPARC.


Fue durante este período que surgió el proyecto de arquitectura E2K, que originalmente fue financiado por Sun. Más tarde, el proyecto se volvió completamente independiente y toda la propiedad intelectual en él permaneció con el personal del ICST.


"Si continuamos trabajando con Sun en esta área, todo habría pertenecido a Sun. Aunque el 90% del trabajo se realizó antes de que apareciera Sun". (Boris Babayan)

Arquitectura E2K


Cuando discutimos la arquitectura de los procesadores Elbrus, muy a menudo de nuestros colegas en la industria de TI, escuchamos las siguientes declaraciones:


"Elbrus es arquitectura RISC"
"Elbrus es una arquitectura EPIC"
"Elbrus es la arquitectura SPARC"

De hecho, ninguna de estas afirmaciones es completamente cierta, y si lo es, es solo parcialmente.


La arquitectura E2K es una arquitectura de procesador original separada, las características principales de E2K son la eficiencia energética y la excelente escalabilidad lograda al establecer un paralelismo explícito de las operaciones. La arquitectura E2K fue desarrollada por el equipo ICST y se basa en la arquitectura post-superescalar (a la EPIC) con cierta influencia de la arquitectura SPARC (con el pasado RISC). Al mismo tiempo, en la creación de tres de las cuatro arquitecturas básicas (superescalares, superescalares y SPARC), el MCST participó directamente. El mundo es realmente pequeño.


Para evitar más confusión, dibujamos un diagrama simple que, aunque simplista, muestra muy claramente las raíces de la arquitectura E2K.



Ahora un poco más sobre el nombre de la arquitectura, en relación con el cual también hay un malentendido.


En diferentes fuentes puede encontrar los siguientes nombres de esta arquitectura: "E2K", "Elbrus", "Elbrus 2000", ELBRUS ("ExpLicit Basic Resources Utilization Scheduling", es decir, planificación explícita para el uso de recursos básicos). Todos estos nombres dicen lo mismo: sobre arquitectura, pero en la documentación técnica oficial, así como en foros técnicos, el nombre E2K se usa para designar arquitectura, por lo que en el futuro si hablamos de arquitectura de procesador, usaremos el término "E2K", y si sobre un procesador específico, usamos el nombre "Elbrus".


Características técnicas de la arquitectura E2K


En arquitecturas tradicionales como RISC o CISC (x86, PowerPC, SPARC, MIPS, ARM), el procesador recibe una secuencia de instrucciones diseñadas para la ejecución secuencial. El procesador puede detectar operaciones independientes y ejecutarlas en paralelo (superescalaridad) e incluso cambiar su orden (ejecución extraordinaria). Sin embargo, el análisis de dependencia dinámico y el soporte para ejecución extraordinaria tienen sus limitaciones en el número de lanzamientos y análisis de comandos por ciclo. Además, los bloques correspondientes dentro del procesador consumen una cantidad significativa de energía, y su implementación más complicada a veces conduce a problemas de estabilidad o seguridad.


En la arquitectura E2K, el compilador toma la mayor parte del trabajo en el análisis de dependencia y optimiza el orden de las operaciones. El procesador recibe la llamada entrada. comandos anchos, en cada uno de los cuales están codificadas las instrucciones para todos los dispositivos ejecutivos del procesador que deben ejecutarse en este reloj. El procesador no necesita analizar dependencias entre operandos u operaciones de reorganización entre comandos anchos: todo esto lo realiza el compilador en función del análisis del código fuente y la planificación de recursos del procesador. Como resultado, el componente de hardware del procesador puede ser más simple y más económico.


El compilador puede analizar el código fuente mucho más a fondo que el hardware del procesador RISC / CISC y encontrar operaciones más independientes. Por lo tanto, hay más actuadores concurrentes en la arquitectura E2K que en las arquitecturas tradicionales.


Características actuales de la arquitectura E2K:


  • 6 canales de dispositivos de lógica aritmética (ALU) que funcionan en paralelo.
  • Un archivo de registro de 256 registros de 84 bits.
  • Soporte de hardware para bucles, incluida la canalización. Mejora la utilización de la CPU.
  • Dispositivo programable de pre-paginación de datos asíncronos con canales de lectura separados. Le permite ocultar retrasos en el acceso a la memoria y hacer un uso completo de ALU.
  • Soporte para computación especulativa y predicados de un solo bit. Permite reducir el número de transiciones y ejecutar simultáneamente varias ramas del programa.
  • Un equipo amplio que es capaz de configurar hasta 23 operaciones en un solo ciclo con un llenado máximo (más de 33 operaciones al empaquetar operandos en instrucciones vectoriales).


Emulación X86


Incluso en la etapa de diseño de la arquitectura, los desarrolladores comprendieron la importancia de admitir software escrito para la arquitectura Intel x86. Para esto, se implementó un sistema de traducción dinámica (es decir, en el proceso de ejecución del programa o "sobre la marcha") de códigos binarios x86 en códigos de procesador de la arquitectura E2K. Este sistema puede funcionar tanto en el modo de aplicación (de la manera WINE) como en un modo similar al hipervisor (entonces es posible ejecutar todo el SO huésped para la arquitectura x86).


Gracias a varios niveles de optimización, es posible lograr una alta velocidad del código traducido. La calidad de la emulación de arquitectura x86 se confirma con el lanzamiento exitoso de más de 20 sistemas operativos (incluidas varias versiones de Windows) y cientos de aplicaciones en complejos informáticos de Elbrus.


Modo de ejecución de programa protegido


Una de las ideas más interesantes heredadas de las arquitecturas Elbrus-1 y Elbrus-2 es la llamada ejecución segura de programas. Su esencia es garantizar el funcionamiento del programa solo con datos inicializados, verificar que todos los accesos a la memoria pertenezcan a un rango válido de direcciones, proporcionar protección entre módulos (por ejemplo, proteger el programa que llama de un error en la biblioteca). Todos estos controles se realizan en hardware. Para el modo protegido, hay un compilador completo y una biblioteca de soporte de tiempo de ejecución. Debe entenderse que las restricciones impuestas hacen que sea imposible organizar la ejecución de, por ejemplo, código escrito en C ++.


Incluso en el modo de operación habitual "desprotegido" de los procesadores Elbrus, hay características que aumentan la confiabilidad del sistema. Por lo tanto, la pila de información vinculante (la cadena de direcciones de retorno para llamadas de procedimiento) se separa de la pila de datos del usuario y no está disponible para tales ataques utilizados en virus como falsificación de la dirección de retorno.


Estos desarrollos no solo nos permiten ponernos al día y superar en el futuro las arquitecturas de la competencia en términos de rendimiento y escalabilidad, sino que también brindan protección contra errores que afectan a x86 / amd64. Marcadores 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) y similares.


La protección moderna contra las vulnerabilidades encontradas en la arquitectura x86 / amd64 se basa en parches a nivel del sistema operativo. Es por eso que la caída en el rendimiento en las generaciones actuales y anteriores de procesadores de estas arquitecturas es tan notable y varía del 30% al 80%. Nosotros, como usuarios activos de procesadores x86, sabemos sobre esto, sufrimos y continuamos "comiendo un cactus", pero la solución a estos problemas está de raíz para nosotros (y, como resultado, para nuestros clientes), un beneficio indudable, especialmente si la solución es rusa.


Especificaciones técnicas


A continuación se muestran las especificaciones técnicas oficiales de los procesadores Elbrus de las generaciones pasadas (4C), actuales (8C), nuevas (8CB) y futuras (16C) en comparación con procesadores Intel x86 similares.



Incluso una mirada superficial a esta tabla muestra (y esto es muy agradable) que el retraso tecnológico de los procesadores domésticos, que parecía insuperable hace 10 años, ahora parece muy pequeño, y en 2021 con el lanzamiento de Elbrus-16C (que, entre otras cosas, admitirá la virtualización) se reducirá a distancias mínimas.


Almacenamiento de AERODISK en procesadores Elbrus 8C


Pasamos de la teoría a la práctica. Como parte de la alianza estratégica de las compañías MTsST, Aerodisk, Basalt SPO (anteriormente Alt Linux) y NORSI-TRANS, se desarrolló y preparó un sistema de almacenamiento de datos para la operación, que en este momento no es el mejor en términos de seguridad, funcionalidad, costo y rendimiento. , en nuestra opinión, una solución indudablemente digna que puede brindarle el debido nivel de independencia tecnológica de nuestro país.
Ahora los detalles ...


Hardware


El hardware de almacenamiento se implementa sobre la base de la plataforma universal Yakhont UVM de NORSI-TRANS. La plataforma Yakhont UVM recibió el estado de los equipos de telecomunicaciones de origen ruso y está incluida en el registro unificado de productos radioelectrónicos rusos. El sistema consta de dos controladores de almacenamiento separados (2U cada uno), que están interconectados por una interconexión Ethernet 1G o 10G, así como con estantes de disco comunes que utilizan una conexión SAS.


Por supuesto, esto no es tan hermoso como el formato "Cluster in a box" (cuando los controladores y las unidades con una placa posterior común están instalados en el mismo chasis 2U), que usualmente usamos, pero también estará disponible en un futuro próximo. Lo principal aquí es trabajar bien, pero luego pensaremos en los "arcos".




Bajo el capó, cada controlador tiene una placa base de un solo procesador con cuatro ranuras de RAM (DDR3 para el procesador 8C). Cada controlador también tiene 4 puertos Ethernet 1G (dos de los cuales son utilizados por AERODISK ENGINE como servicio) y tres conectores PCIe para adaptadores Back-end (SAS) y Front-end (Ethernet o FibreChannel).


Como discos de arranque, utilizamos discos SSD SATA rusos de GS Nanotech, que hemos probado y utilizado repetidamente en proyectos.



Cuando conocimos la plataforma, la examinamos cuidadosamente. No tuvimos ninguna pregunta con respecto a la calidad del ensamblaje y la soldadura; todo se hizo de manera ordenada y confiable.


Sistema operativo


Como sistema operativo, la versión del sistema operativo Alt 8SP se utiliza para la certificación. En un futuro próximo, planeamos crear un repositorio enchufable y constantemente actualizado para Alt OS con el software de almacenamiento Aerodisk.


Esta versión de la distribución se basa en la versión estable actual del kernel Linux 4.9 para E2K (una rama con soporte a largo plazo fue portada por los especialistas del MCST), complementada con parches para funcionalidad y seguridad. Todos los paquetes en el sistema operativo Alt se recopilaron directamente en Elbrus utilizando el sistema de ensamblaje transaccional original del proyecto ALT Linux Team, lo que permitió reducir los costos de mano de obra para el puerto y prestar más atención a la calidad del producto.


Cualquier versión de Alt OS para Elbrus se puede ampliar significativamente en términos de funcionalidad, utilizando el repositorio disponible (de aproximadamente 6 mil paquetes fuente para la octava versión a aproximadamente 12 para la novena).


La elección también se hizo porque la empresa Basalt SPO, el desarrollador de Alt OS, está trabajando activamente con otros desarrolladores de software y dispositivos en varias plataformas, proporcionando una interacción perfecta en el marco de los sistemas de hardware y software.


Software de almacenamiento


Al portar, inmediatamente abandonamos la idea de usar la emulación x86 compatible con E2K, y comenzamos a trabajar con procesadores directamente (ya que Alt ya tiene las herramientas necesarias para esto).


Entre otras cosas, el modo de ejecución nativo proporciona una mayor seguridad (esas mismas tres pilas de hardware en lugar de una) y un mayor rendimiento (no hay necesidad de asignar uno o dos núcleos de ocho para que funcione el traductor binario, y el compilador hace su trabajo mejor que JIT).


De hecho, en la implementación de AERODISK ENGINE en E2K, se admite la mayor parte de la funcionalidad de almacenamiento existente, que se encuentra en x86. Como software de sistema de almacenamiento, se utiliza la versión actual de AERODISK ENGINE (A-CORE versión 2.30)


Sin ningún problema, las siguientes funciones se lanzaron en E2K y se probaron para su uso en el producto:


  • Tolerancia a fallas para hasta dos controladores y E / S de múltiples rutas (mpio)
  • Acceso a archivos y bloques con volúmenes delgados (RDG, agrupaciones DDP; protocolos FC, iSCSI, NFS, SMB, incluida la integración con Active Directory)
  • Diferentes niveles de RAID hasta la triple paridad (incluida la capacidad de usar el constructor RAID)
  • Almacenamiento híbrido (combinando SSD y HDD en el mismo grupo, es decir, caché y desgarro)
  • Opciones de ahorro de espacio con deduplicación y compresión.
  • Instantáneas de ROW, clones y diferentes opciones de replicación
  • Y otras características pequeñas pero útiles 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/482434/


All Articles