Хабрахабр

СХД AERODISK на отечественных процессорах Эльбрус 8С/8СВ

Хотим поделиться крайне приятной новостью. Привет, читатели Хабра. Официально серийный выпуск должен был стартовать аж в 2016 году, но по факту именно массовое производство началось только в 2019 году и на текущий момент выпущено уже около 8000 процессоров. Мы наконец-то дождались реального серийного выпуска нового поколения российских процессоров Эльбрус 8С и 8СВ.

Это современная, отвечающая всем требованиям МЦСТ универсальная платформа Яхонт УВМ получила статус телекоммуникационного оборудования российского происхождения и включена в единый реестр российской радиоэлектронной продукции. Практически сразу после старта серийного производства данные процессоры появились и у нас в Аэродиске, за что хотим отдельно поблагодарить компанию НОРСИ-ТРАНС, которая любезно предоставила нам свою аппаратную платформу Яхонт УВМ, поддерживающие процессоры Эльбрус 8С, для выполнения портирования программной части СХД.

На текущий момент портирование успешно завершено и уже сейчас СХД AERODISK доступна в варианте с отечественными процессорами Эльбрус.

В этой статье мы расскажем о самих процессорах, об их истории, архитектуре и, конечно же, о нашей реализации СХД на Эльбрусе.

История

В 1973 году в Институте точной механики и вычислительной техники им. История процессоров Эльбрус берет свое начало во времена Советского союза. Лебедева (имени того самого Сергея Лебедева, который ранее руководил разработкой первого советского компьютера МЭСМ, а позже БЭСМ) стартовала разработка многопроцессорных вычислительных комплексов под названием «Эльбрус». С.А. Руководил разработкой Всеволод Сергеевич Бурцев, также активное участие в разработке принимал Борис Арташесович Бабаян, который являлся одним из заместителей главного конструктора.


Всеволод Сергеевич Бурцев


Борис Арташесович Бабаян

Главным заказчиком проекта были само собой вооруженные силы СССР и данная серия компьютеров в итоге успешно применялась при создании командных вычислительных центров и стрельбовых комплексов систем противоракетной обороны, а также других систем специального назначения.

Он обладал модульной архитектурой и мог включать в себя от 1 до 10 процессоров на базе схем средней интеграции. Первый компьютер «Эльбрус» был завершен в 1978 году. Объем оперативной памяти, которая была общей для всех 10 процессоров, составлял до 2 в 20 степени машинных слов или 64 Мб. Быстродействие данной машины достигало 15 миллионов операций в секунду.

Позже выяснилось, что многие используемые при разработке «Эльбруса» технологии в это же самое время исследовались в мире и ими занималась компания International Business Machine (IBM), но работы по данным проектам, в отличие от работ по «Эльбрусу», так и не были завершены и не привели в итоге к созданию законченного продукта.

На архитектуру компьютеров «Эльбрус» повлияли также компьютеры компании Burroughs, разработки Hewlett-Packard, а также опыт разработчиков БЭСМ-6. По словам Всеволода Бурцева, советские инженеры старались применять самый передовой опыт как отечественных, так и зарубежных разработчиков.

Самым интересным в «Эльбрусе-1» была именно его архитектура. Но при этом множество разработок были оригинальными.

Ее массовое применение за рубежом началось только в 90-х годах прошлого века с появлением на рынке доступных процессоров Intel Pentium. Созданный в СССР суперкомпьютер стал первой в мире коммерческой ЭВМ, которая применяла суперскалярную архитектуру.

Таких процессоров в составе системы могло быть до четырех штук, они работали параллельно с центральным процессором и обладали своей собственной выделенной памятью. Кроме этого для организации передачи потоков данных между периферийными устройствами и оперативной памятью в компьютере могли применяться специальные процессоры ввода-вывода.

Эльбрус-2

По архитектуре он мало чем отличался от своего предшественника, но применял новую элементную базу, что позволило почти в 10 раз увеличить общую производительность – с 15 млн. В 1985 году «Эльбрус» получил свое логическое продолжение, был создан и отправлен в серийное производство компьютер «Эльбрус-2». Объем оперативной памяти компьютера увеличился до 16 млн. операций в секунду до 125 млн. Максимальная пропускная способность каналов ввода-вывода «Эльбруса-2» составляла 120 МБ/с. 72-разрядных слов или 144 МБ.

«Эльбрус-2» активно применялся в ядерных исследовательских центрах в Челябинске-70 и в Арзамасе-16 в ЦУПе, в системе ПРО А-135, а также на других военных объектах

Многие инженеры были награждены орденами и медалями. Создание «Эльбруса» было по достоинству оценено руководителями Советского Союза. А Борис Бабаян был награжден Орденом Октябрьской революции. Генеральный конструктор Всеволод Бурцев и ряд других специалистов получили государственной премии.

Награды эти более чем заслуженные, Борис Бабаян позднее говорил:

Сейчас на Западе делают суперскаляры только такой архитектуры. "В 1978-ом году мы сделали первую суперскалярную машину, Эльбрус-1. Причем тот вариант суперскаляра, который сделали мы, аналогичен Pentium Pro, который Intel сделал в 95-ом году". Первый суперскаляр на Западе появился в 92-ом году, наш в 78-ом.

Эти слова об историческом первенстве подтверждают и в США, Кит Дифендорфф, разработчик Motorola 88110, одного из первых западных суперскалярных процессоров писал:

"В 1978 году, почти на 15 лет раньше, чем появились первые западные суперскалярные процессоры, в Эльбрус-1 использовался процессор, с выдачей двух команд за один такт, изменением порядка исполнения команд, переименованием регистров и исполнением по предположению".

Эльбрус-3

Этот подход Борис Бабаян назвал «постсуперскалаярным». Шёл 1986 год и почти сразу после завершения работ над вторым «Эльбрусом» в ИТМиВТ начали разработку новой системы «Эльбрус-3», используя принципиально новую процессорную архитектуру. Именно эту архитектуру, названную потом VLIW/EPIC, в будущем (в середине 90-ых годов) стали использовать процессоры Intel Itanium (а в СССР эти разработки стартовали в 1986-ом, а завершились в 1991-ом).

В этом вычислительном комплексе впервые были воплощены в жизнь идеи явного управления параллелизмом операций с помощью компилятора.

В 1991 году был выпущен первый и, к сожалению, единственный компьютер «Эльбрус-3», который после развала Советского Союза стал никому не нужен, а разработки и планы так и остались на бумаге.

Предпосылки к новой архитектуре

И в начале 90-х годов стартовало активное сотрудничество МЦСТ с Sun Microsystems, где коллектив МЦСТ принимал участие в разработке микропроцессора UltraSPARC. Коллектив, работавший в ИТМиВТ над созданием советских суперкомпьютеров не распался, а продолжил работу как отельная компания под именем МЦСТ (Московский Центр СПАРК-Технологий).

Позднее проект стал полностью независим и вся интеллектуальная собственность на него осталась у коллектива МЦСТ. Именно в этот период возник проект архитектуры E2K, который первоначально финансировался компанией Sun.

Хотя 90% работы было выполнено еще до появления Sun". "Если бы мы и дальше работали с Sun в этой области, то все принадлежало бы Sun. (Борис Бабаян)

Архитектура E2K

Когда мы обсуждаем архитектуру процессоров «Эльбрус», очень часто от наших коллег по ИТ-индустрии мы слышим следующие заявления:

«Эльбрус – это же RISC-архитектура»
«Эльбрус – это же EPIC-архитектура»
«Эльбрус – это же SPARC-архитектура»

На самом деле ни одно из этих заявлений не является полностью верным, а если и являются, то только лишь частично.

Архитектура E2K разработана коллективом МЦСТ и в её основе лежат постсуперскалярная архитектура (а-ля EPIC) и SPARC-архитектура (c RISC-прошлым). Архитектура E2K — это отдельная оригинальная процессорная архитектура, Основные качества E2K — это энергоэффективность и прекрасная масштабируемость, достигаемые при помощи задания явного параллелизма операций. Мир действительно тесен. При этом в создании трех из четырех базовых архитектур (Суперскаляры, постсуперскаляры и SPARC) МЦСТ принимал непосредственное участие.

Чтобы в дальнейшем избегать путаницы, мы нарисовали простую схему, которая хоть и упрощенно, но очень понятно показывает корни архитектуры E2K.

явное планирование использования основных ресурсов). Теперь ещё немного о названии архитектуры, с которым тоже есть непонимание.
В разных источниках можно встретить следующие названия данной архитектуры: «E2K», «Эльбрус», «Эльбрус 2000», ELBRUS ("ExpLicit Basic Resources Utilization Scheduling", т.е. Все эти названия говорят об одном и том же – об архитектуре, но в официальной технической документации, а также на технических форумах для обозначения архитектуры используется название E2K, поэтому в дальнейшем если мы говорим о процессорной архитектуре мы используем термин «E2K», а если про конкретный процессор, то используем название «Эльбрус».

Технические особенности архитектуры E2K

Процессор может обнаруживать независимые операции и запускать их параллельно (суперскалярность) и даже менять их порядок (внеочередное исполнение). В традиционных архитектурах типа RISC или CISC (х86, PowerPC, SPARC, MIPS, ARM) на вход процессора поступает поток инструкций, которые рассчитаны на последовательное исполнение.

Кроме того, соответствующие блоки внутри процессора потребляют заметное количество энергии и сложнейшая их реализация порой приводит к проблемам стабильности или безопасности. Однако динамический анализ зависимостей и поддержка внеочередного исполнения имеет свои ограничения в количестве запуска и анализа команд за один такт.

Процессору на вход поступают т.н. В архитектуре E2K основную работу по анализу зависимостей и оптимизации порядка операций берет на себя компилятор. От процессора не требуется анализировать зависимости между операндами или переставлять операции между широкими командами: все это делает компилятор, исходя из анализа исходного кода и планирования ресурсов процессора. широкие команды, в каждой из которых закодированы инструкции для всех исполнительных устройств процессора, которые должны быть запущены на данном такте. В результате аппаратная составляющая процессора может быть проще и экономичнее.

Поэтому в архитектуре E2K больше параллельно работающих исполнительных устройств, чем в традиционных архитектурах. Компилятор способен анализировать исходный код гораздо тщательнее, чем аппаратура RISC/CISC процессора и находить больше независимых операций.

Текущие возможности архитектуры E2K:

  • 6 каналов арифметико-логических устройств (АЛУ), работающих параллельно.
  • Регистровый файл из 256 84-разрядных регистров.
  • Аппаратная поддержка циклов, в том числе с конвейеризацией. Повышает эффективность использования ресурсов процессора.
  • Программируемое асинхронное устройство предварительной подкачки данных с отдельными каналами считывания. Позволяет скрыть задержки от доступа к памяти и полнее использовать АЛУ.
  • Поддержка спекулятивных вычислений и однобитовых предикатов. Позволяет уменьшить число переходов и параллельно исполнять несколько ветвей программы.
  • Широкая команда, способная при максимальном заполнении задать в одном такте до 23 операций (более 33 операций при упаковке операндов в векторные команды).

Эмуляция х86

Для этого была реализована система динамической (т.е. Еще на этапе проектирования архитектуры у разработчиков было понимание важности поддержки программного обеспечения, написанного для архитектуры Intel х86. Эта система может работать как в режиме приложения (на манер WINE), так и в режиме, аналогичном гипервизору (тогда возможно запустить целиком гостевую ОС для архитектуры х86). в процессе исполнения программы, или «на лету») трансляции двоичных кодов х86 в коды процессора архитектуры E2K.

Качество эмуляции архитектуры х86 подтверждается успешным запуском на вычислительных комплексах «Эльбрус» более 20 операционных систем (в том числе несколько версий Windows) и сотен приложений. Благодаря нескольким уровням оптимизации удается достичь высокой скорости работы оттранслированного кода.

Защищенный режим исполнения программ

Его суть заключается в том, чтобы гарантировать работу программы только с инициализированными данными, проверять все обращения в память на принадлежность к допустимому диапазону адресов, обеспечивать межмодульную защиту (например, защищать вызывающую программу от ошибки в библиотеке). Одна из самых интересных идей, унаследованных от архитектур Эльбрус-1 и Эльбрус-2 – это так называемое защищенное исполнение программ. Для защищенного режима имеется полноценный компилятор С/С++ и библиотека run-time поддержки. Все эти проверки осуществляются аппаратно.

Так, стек связующей информации (цепочка адресов возврата при процедурных вызовах) отделен от стека пользовательских данных и недоступен для таких применяемых в вирусах атак, как подмена адреса возврата. Даже в обычном, «незащищенном» режиме работы процессоров «Эльбрус» имеются особенности, повышающие надежность системы.

Закладок типа 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) и им подобных. Созданные за годы разработки позволяют не только догнать и в будущем превзойти конкурирующие архитектуры в плане производительности и масштабируемости, но и обеспечить защиту от ошибок, которыми страдают x86/amd64.

Именно поэтому падение производительности на текущих и предыдущих поколениях процессоров данных архитектур настолько заметно и составляет от 30% до 80%. Современная защита от найденных уязвимостей в архитектуре х86/amd64 базируется на заплатках на уровне операционных систем. Мы как активные пользователи x86-ых процессоров об этом знаем, страдаем и продолжаем «есть кактус», а вот наличие решения этих проблем на корню для нас (и в итоге для наших заказчиков) несомненное благо, тем более если решение российское.

Технические характеристики

Ниже приведены официальные технические характеристики процессоров «Эльбрус» прошлого (4С), актуального (8С), нового (8СВ) и будущего (16С) поколений в сравнении с аналогичными процессорами Intel x86.

Даже беглый взгляд на данную таблицу показывает (и это очень радует), что технологическое отставание отечественных процессоров, которое 10 лет назад казалось непреодолимым уже сейчас кажется совсем небольшим, а 2021 году с запуском «Эльбруса 16С» (который, ко всему прочему будет поддерживать виртуализацию) сократится до минимальных дистанций.

СХД AERODISK на процессорах Эльбрус 8С / 8СВ

В рамках стратегического альянса компаний МЦСТ, Аэродиск, Базальт СПО (ранее Альт Линукс) и НОРСИ-ТРАНС была в разработана и подготовлена к эксплуатации система хранения данных, которая на текущий момент по параметрам безопасности, функциональности, стоимости и производительности является если не лучшим, то на наш взгляд бесспорно достойным решением, которое может обеспечить должный уровень технологической независимости нашей с вами Родины.
Теперь детали… От теории переходим к практике.

Аппаратная часть

Система представляет из себя два отдельных контроллера СХД (по 2U каждый), которые соединены между собой интерконнектом 1G или 10G Ethernet, а также с общими дисковыми полками, используя SAS-подключение. Аппаратная часть СХД реализована на базе сертифицированной ФСТЭК и Министерством Обороны платформе Яхонт УВМ компании НОРСИ-ТРАНС.

Тут главное, чтобы работало хорошо, а о «бантиках» подумаем позже. Конечно, это не так красиво, как формат «Cluster in a box» (когда контроллеры и диски с общим бэкплейном установлены в одном шасси 2U), который мы используем обычно, но уже в ближайшем будущем он также будет доступен.

Также на борту каждого контроллера имеется по 4 порта 1G Ethernet (2 из которых используются ПО AERODISK ENGINE как служебные) и по 3 PCIe-разъема для Back-end (SAS) и Front-end (Ethernet или FibreChannel) адаптеров. Под капотом каждый контроллер имеет однопроцессорную материнскую плату c четырьмя гнёздами под оперативную память (DDR3 для процессора 8С или DDR4 для процессора 8СВ).

В качестве загрузочных дисков используются российские SATA SSD диски компании GS Nanotech, которые мы неоднократно тестировали и использовали в проектах.

К качеству сборки и пайки вопросов у нас не возникло, все сделано аккуратно и надежно. При первом знакомстве с платформой мы внимательно её обследовали.

Операционная система

В скором времени мы планируем создание подключаемого и постоянно обновляемого репозитория для ОС Альт c ПО СХД Аэродиск. В качестве ОС используется сертифицированная версия ОС Альт 9СП.

9 для Е2K (ветка с долговременной поддержкой портирована специалистами МЦСТ), дополненной патчами по функциональности и безопасности. Данная версия дистрибутива построена на текущей стабильной версии ядра Linux 4. Все пакеты в ОС Альт собраны непосредственно на «Эльбрусах» с использованием оригинальной транзакционной сборочной системы проекта ALT Linux Team, что позволило уменьшить трудозатраты на сам перенос и уделить больше внимания качеству продукта.

Любой выпуск ОС Альт для Эльбрус можно существенно расширить в плане функциональности, воспользовавшись доступным для него репозиторием (от примерно 6 тысяч исходных пакетов для восьмой версии до примерно 12 – для девятой).
Выбор был сделан также и потому, что компания БазАЛЬТ, разработчик ОС ALT Linux активно работает с другими разработчиками ПО и устройств на различных платформах, обеспечивая бесшовное взаимодействие в рамках аппаратно-программных комплексов.

ПО Системы хранения данных

При портировании мы сразу отказались от идеи использовать поддерживаемую в E2K эмуляцию x86, а стали работать с процессорами напрямую (благо Альт уже имеет необходимые для этого средства).

Среди прочего нативный режим выполнения дает лучшую безопасность (те самые три аппаратных стека вместо одного) и повышенную производительность (нет нужды выделять одно-два ядра из восьми для работы бинарного транслятора, а компилятор делает свою работу лучше, чем JIT).

В качестве ПО системы хранения используется актуальная на текущий момент версия AERODISK ENGINE (A-CORE версия 2. По факту в реализации AERODISK ENGINE на E2K поддерживается большая часть существующего функционала СХД, который есть в x86. 30)

Без особых проблем на E2K были заведены и протестированы для использования в продуктиве следующие функции:

  • Отказоустойчивость до двух контроллеров
  • Блочный и файловый доступ с тонкими томами (пулы RDG, DDP; протоколы FC, iSCSI, NFS, SMB включая интеграцию с Active Directory)
  • Различные уровни RAID до тройной чётности (включая возможность использования конструктора RAID)
  • Гибридное хранение (совмещение SSD и HDD в рамках одного пула, т.е. кэш и тиринг)
  • Варианты экономии пространства с помощью дедупликации и компрессии
  • ROW-снэпшоты, клоны и разные варианты репликации
  • И другие маленькие, но полезные функции, такие как QoS, global hotspare, VLAN, BOND и т.п.

По факту на E2K нам удалось завести весь наш функционал, кроме многоконтроллерности (больше двух) и многопоточного ввода-вывода, который позволяет увеличивать производительность all-flash пулов на 20-30%.

Но эти полезные функции мы, естественно, тоже добавим, вопрос времени.

Немного о производительности

После успешного прохождения тестов базового функционала СХД мы, разумеется, стали выполнять нагрузочные тесты.

3 Ghz, 32 GB RAM + 4 SAS SSD 800GB 3DWD), в которой был отключен RAM-кэш, мы создали два пула DDP с основным уровнем RAID-10 и два LUN по 500G и подключили эти LUN-ы по iSCSI (10G Ethernet) к Linux-хосту. К примеру, на двухконтроллерной СХД (2xCPU E8C 1. И выполнили один из базовых часовых тестов на небольшие блоки последовательной нагрузки с помощью программы FIO.

Первые результаты оказались вполне позитивными.

это базовый уровень, на котором СХД может спокойно работать. Нагрузка на процессоры в среднем была на уровне 60%, т.е.

Да, это далеко не highload и под высокопроизводительные СУБД какого-нибудь биллинга этого явно не хватит, но, как показывает наша практика, этих характеристик достаточно для 80% общих задач, под которые используются СХД.

Чуть позже мы планируем вернуться с детальным отчетом о нагрузочных тестах Эльбруса как платформы для СХД.

Светлое будущее

Для сравнения, процессоров предыдущего поколения Эльбрус 4С за весь период их производства было выпущено всего 5000, так что прогресс налицо. Как мы писали выше, массовое производство Эльбруса 8С/СВ по факту стартовало буквально недавно – в сентябре 2019 года и к декабрю уже было выпущено около 8000 процессоров и ещё 2000 должно быть выпущено до конца 2019 года.

Кроме того, каждый год в течение следующих четырех лет этот объем планируется удваивать. Понятное дело, что это капля в море, даже для российского рынка, но есть одно но…
На 2020 год запланирован выпуск 150 000 процессоров Эльбрус 8С и 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/

Показать больше

Похожие публикации

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»