Введение в Linux на IBM Power Systems

Вступление

Linux в экосистеме IBM Power Systems сочетает в себе одни из лучших в мире операционных систем с одним из лучших в мире семейств процессорной архитектуры: с открытым исходным кодом и оборудованием OpenPOWER, оптимизированным для обеспечения производительности, надежности и отказоустойчивости. В этой статье представлена очень сокращенная история платформы и информация для пользователей, которая поможет им уверенно развернуть ее.

Linux

Были написаны тома контента об истории операционных систем, UNIX®, проекте GNU и ядре Linux; эта статья не будет пытаться повторить это содержание.

Linux — довольно молодая операционная система. Он начал формироваться в конце 1980-х годов. Linux оставался сферой деятельности любителей на протяжении большей части 1990-х годов, вплоть до войн UNIX. Linux начал привлекать внимание корпораций, в том числе IBM, в конце 1990-х годов. В 2000-х годах IBM объявила, что инвестирует один миллиард долларов (США) в разработку Linux, включая помощь в переносе ядра, остальной части операционной системы и собственного программного обеспечения для нормальной работы на серверах IBM. В настоящее время Linux, пожалуй, самая популярная операционная система на земле (и за ее пределами), работающая на всем, от часов до огромных суперкомпьютеров, необходимых для исследования космоса и Fortune 500.

По сути, Linux возник как реакция на разочарование. Разработчики просто хотели иметь возможность делать то, что они хотят, как они хотят и когда они хотят. У них определенно хватило навыков для этого. Однако они жили в мире закрытых систем и проприетарных лицензионных операционных систем и программного обеспечения, которые не давали возможности видеть внутреннюю работу или изменять их, делиться своими изменениями или сотрудничать с другими в этом.

Движение за открытый исходный код также началось давно, в основном оно связано с инструментами, играми и случайными набегами на ядра. В середине 1980-х в рамках проекта GNU была начата попытка создать полную операционную систему с открытым исходным кодом, и сочетание работы проекта GNU над компонентами операционной системы и ядра Linux привело к созданию полностью открытой операционной системы.

Собирать все части вместе, как правило, было утомительно, пока дистрибутивы Linux не начали делать коробочные версии и упрощать установку, чтобы операционная система Linux могла легко использоваться не только разработчиками. Slackware, Debian, Red Hat® и SUSE предоставили операционные системы для легкодоступных компьютеров.

Преобладающие процессоры того времени производились компанией Intel® и конкурентами, производившими совместимые процессоры, такими как AMD.

IBM POWER

Компьютерные программы, по сути, представляют собой набор данных и ряд инструкций для обработки этих данных. Ранние компьютеры имели довольно сложные наборы инструкций, которые, тем не менее, выполняли свою работу. Исследователи начали искать революционный подход к дизайну процессора: меньший набор более простых инструкций. Это стало известно как вычисление с сокращенным набором команд (RISC). По мере развития RISC в 1980-х и 1990-х годах он имел некоторые преимущества по сравнению с традиционными процессорами вычислений со сложным набором команд (CISC), что позволяло упростить схему, повысить частоту процессоров и повысить производительность. Процессоры RISC несовместимы с процессорами CISC, поэтому они развивались по параллельным и конкурирующим путям.

Ранние продукты IBM RISC включали IBM RT PC (1986). С тех пор процессоры IBM RISC продолжают развиваться и конкурировать с ранними процессорами IBM POWER®, процессорами IBM PowerPC®, современными процессорами IBM POWER9 и недавно анонсированными процессорами POWER10 десятого поколения. Эти процессоры используются и продолжают выполнять критически важные приложения по всему миру и поддерживают несколько операционных систем корпоративного уровня мирового класса, включая IBM AIX®, IBM i и Linux, масштабируясь от одного сервера до самых больших суперкомпьютеров в мире. IBM Power Systems славится своей производительностью, надежностью и отказоустойчивостью.

Linux on Power

В начале 2000-х IBM начала поддерживать Linux, работающую на процессорах IBM POWER, включая дистрибутивы Linux корпоративного класса в сотрудничестве с Red Hat, SUSE и Canonical (Ubuntu).

Благодаря технологиям виртуализации мирового класса IBM, IBM Power Systems может одновременно запускать рабочие нагрузки с использованием операционных систем Linux, IBM AIX и IBM i.

IBM Power Systems под управлением Linux входит в пятерку лучших суперкомпьютеров IBM в списке 500 лучших суперкомпьютеров в мире и входит в 9 из 11.

Комбинация операционных систем на базе Linux и процессоров POWER объединяет открытую, яркую и кроссплатформенную экосистему программного обеспечения Linux с мощной, надежной и устойчивой аппаратной экосистемой POWER.

Полностью открытая система

В том же духе открытости, который запустил ядро Linux и продолжает его продвигать, IBM в партнерстве с несколькими ведущими технологическими компаниями запустила OpenPOWER Foundation в 2013 году, чтобы разделить управление экосистемой, окружающей процессор POWER, системы и архитектуру программного обеспечения.

С выпуском дизайна ядра процессора POWER бесплатно в 2020 году по лицензии Creative Commons, Linux на стеке платформы POWER теперь включает открытые компоненты сверху вниз:

  • Open source enterprise-class Linux-based operating systems
  • Open source Linux kernel
  • Open source KVM hypervisor
  • Open source Skiboot/OPAL firmware
  • Open hardware design
  • Open ecosystem governance at the OpenPOWER Foundation (now part of the Linux Consortium)

Кроме того, в 2019 году OpenPOWER Foundation совместно с IBM выпустили Power Instruction Set Architecture (ISA) под открытой лицензией, что позволяет любому свободно создавать свои собственные микросхемы в соответствии с Power ISA.

Результатом стала самая открытая в отрасли платформа корпоративных вычислений для массового рынка.

Проверенный временем, мощный, производительный, надежный, отказоустойчивый и открытый. Что еще нужно знать?

Развертывайте с уверенностью

Развертывание стека программного обеспечения на базе Linux на платформе на базе процессора POWER может быть выполнено с такой же уверенностью, как и на любой другой поддерживаемой платформе корпоративного класса, со знанием того, что:

  • Поддерживаются те же корпоративные дистрибутивы Linux.
  • Ядро Linux построено с использованием того же исходного кода.
  • Пакеты операционной системы построены с одним и тем же исходным кодом.
  • Тот же набор инструментов доступен и используется для сборки пакетов.
  • Доступна та же технология виртуализации (KVM).
  • Доступна та же технология контейнеризации
  • Можно использовать ту же программную инфраструктуру управления системой
  • Доступны те же базы данных
  • Интерпретируемые языки, такие как Python, Node.js, Ruby, Java ™, JavaScript, PHP, Perl, R и т. Д., Работают одинаково без изменений.

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

Различия в архитектуре

Семейство архитектуры процессоров POWER — это семейство основной архитектуры в вычислительной технике (другие включают IBM Z®, Intel 64 и ARM AArch64). Между этими семьями есть много общего, но есть и различия.

Архитектура набора команд (ISA)

Основное различие между семействами — это архитектура набора команд (ISA). Скомпилированный исходный код (двоичный код) для одного семейства не будет работать в системе другого семейства. Исходный код, который необходимо скомпилировать, включает C, C ++ и FORTRAN. К счастью, эти языки хорошо документированы как официальные стандарты, и эти стандарты хорошо поддерживаются компиляторами с открытым исходным кодом, такими как GCC. Таким образом, исходный код, соответствующий стандартам, чаще всего можно просто перекомпилировать и повторно связать.

Код, который написан для определенного семейства, например ассемблер, необходимо переписать. Однако ассемблерный код используется редко.

Booting, firmware/BIOS

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

В системах на базе процессоров IBM POWER используется открытая прошивка OPAL / Skiboot. Intel 64 использует BIOS с расширяемым интерфейсом микропрограмм (EFI). Очевидно, они нигде не похожи, но их цель — контролировать некоторую низкоуровневую конфигурацию системы, а также загружать и запускать загрузчик.

Как отмечалось выше, прошивка OPAL / Skiboot имеет открытый исходный код.

IBM Power Systems также поддерживает проприетарную микропрограмму разделов для использования с Power Hypervisor (см. Ниже).

Гипервизор

Технология гипервизора KVM с открытым исходным кодом доступна в системах на базе процессоров POWER, как и в других архитектурных семействах. Гипервизор KVM в системах на базе процессоров POWER поддерживает виртуальные машины, на которых работает Linux с прямым и обратным порядком байтов одновременно.

IBM Power Systems также поддерживает гипервизор Power мирового класса (PHYP). PHYP поддерживает виртуальные машины с Linux (little endian), Linux (big endian), AIX и IBM i одновременно.

/proc and /sys

Некоторые файлы в / proc и / sys будут выглядеть иначе, чем в системах с разными семействами процессоров, из-за уникальных характеристик различных семейств. Почти всегда одна и та же базовая информация доступна с помощью более продуманных средств. (Другими словами, определение количества процессоров путем анализа / proc / cpuinfo не рекомендуется, вместо этого следует отдавать предпочтение чему-то вроде getconf _NPROCESSORS_ONLN или синтаксическому анализу / sys / devices / system / cpu, что более согласованно для семейств процессоров.)

Пакеты

Базовые имена пакетов такие же, но для пакетов, зависящих от архитектуры, архитектура включается в полное имя пакета. Например, пакет ядра Linux может называться kernel-4.18.0.ppc64le.rpm для системы на базе процессора POWER и kernel-4.18.0.x86_64.rpm для системы Intel 64. Эта разница обычно имеет значение только при загрузке и установке пакетов вручную. Системы управления пакетами прозрачно обрабатывают особенности архитектуры. В разных системах указанный выше пакет можно установить с помощью следующей команды:

yum install kernel

Аппаратные потоки

Ядро процессора POWER достаточно надежно, чтобы поддерживать более одного или двух аппаратных потоков одновременно. Как 4 (SMT4), так и 8 (SMT8) одновременных аппаратных потоков являются общими. Потоки «всегда присутствуют», но могут быть отключены (индивидуально или равномерно до 2 потоков на ядро (SMT2) или однопоточные (SMT1 / ST)). Нумерация аппаратных потоков (ЦП) ядром Linux является основной. Например, аппаратные потоки первого ядра будут отображаться как ЦП от 0 до 3 (SMT4) или 7 (SMT8). В режиме SMT2 аппаратными потоками ядра по-прежнему будут ЦП 0–3 / 7, но только ЦП 0 и 1 будут подключены.

Другие общие семейства процессорной архитектуры могут нумеровать свои аппаратные потоки как основные потоки, поэтому первое ядро из n ядер будет иметь ЦП 0 и ЦП n.

Учитывая, что системы на базе процессоров POWER могут иметь большое количество процессорных сокетов, много ядер на процессор и множество потоков на ядро, потенциально приложениям доступны тысячи процессоров. Сервер IBM Power® System E880 поддерживает до 16 сокетов. При 12 ядрах на процессор и 8 аппаратных потоках на ядро получается 16 x 12 x 8 = 1536 процессоров!

Наличие системы с надежными процессорами может быть значительным преимуществом при некоторых моделях лицензирования программного обеспечения, в которых учитываются ядра (192 в приведенном выше примере) вместо ЦП (1536).

NUMA

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

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

Примечание о частоте процессора

При обсуждении выше относительно RISC и CISC и различных семейств архитектуры процессоров должно быть очевидно, что разные ISA означают разные инструкции, выполняющие разные задачи. Инструкции от одного ISA обычно могут быть более сложными (или более простыми), чем от другого ISA. Из-за этого нецелесообразно делать твердые выводы об относительной производительности процессоров из разных архитектурных семейств, основываясь исключительно на частоте процессора или метрике, такой как количество команд за цикл. Тесты реального кода на реальных системах гораздо более значимы.

Примечание о тестах

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

Выводы

Linux на IBM Power Systems предлагает радикально открытый стек решений от оборудования до операционной системы, оптимизированный для обеспечения производительности, надежности и отказоустойчивости.