Компания IBM объявила о выходе нового мэйнфрейма бизнес класса - zEnterprise BC12. Удивительная линейка серверов, которой в следующем году исполняется 50 лет - полвека развития от миссии Аполлон на Луну до облачных вычислений и больших данных. В то время как множество процессорных архитектур погибло под давлением x86 (PA-RISC, Alpha, Itanium), мэйнфреймы не только смогли отстоять свое право на существование, но и успешно развиваются вперед, завоевывая сердца новых заказчиков.
S/360, S/390, zSeries, System z, zEnterprise… Менялись поколения, менялись названия, но ключевые принципы, заложенные в первых моделях, не изменились - безопасность, надежность и ориентация на централизованную обработку большого количества задач. Более того, благодаря обратной совместимости, которая была одним из ключевых принципов развития архитектуры, приложения, которые были разработаны для первых моделей по-прежнему запускаются даже на современных представителях этой линейки серверов.
Зеленая консоль родной операционной системы
Все 49 лет вместе с мэйнфреймом развивалась операционная система, которая в данный момент носит название z/OS. Интерфейс немного не привычен. Обилие аббревиатур инструментов, терминология и некоторые другие вещи также заставляют понять, что переход из мира Linux/UNIX систем будет не слишком быстрый, но зато архитектурные особенности вызывают уважение.
Во-первых, из архитектурных особенностей хочется сразу отметить Workload Manager. Он, конечно же, неотъемлемый атрибут такой серьезной системы, которая изначально планировалась для запуска различных приложений в единой системе. Интеграция на всех уровнях позволяет творить чудеса. Например, можно указать SLA для выполнения определенного типа запроса в базе данных DB2, и Workload Manager самостоятельно заставит все подсистемы от уровня приложения до вычислительных ресурсов (и даже системы хранения данных) выполнить запрос по возможности в заданное время.
Во-вторых, встроенные средства безопасности, которые также тесно интегрированы в систему и приложения. При желании можно даже управлять доступом к отдельным строкам таблицы без дополнительных ухищрений и тяжелой интеграции с системными средствами.
Помимо всего прочего, z/OS системы хорошо объединяются в кластер. На аппаратном уровне это делается благодаря микрокоду, который хранит в оперативной памяти все необходимые кластерные данные (для DB2 - таблицу блокировок, кэш и тд). Чтобы эти данные не потерялись в случае выхода из строя сервера, они синхронизируются с помощью выделенных Infiniband каналов. Таким образом, в кластер можно объединить до 32х систем.
Мэйнфреймы и Linux
Помимо родной операционной системы на мэйнфрейме успешно развивается всем известный Linux. Из поддерживаемых IBM дистрибутивов - Red Hat и SuSe, но помимо этого есть CentOS, Debian и Fedora.
Сам по себе Linux для System z - вполне себе обыкновенный Linux на надежной железке пока не доходишь до гипервизора z/VM. Здесь начинаются маленькие приятные вещи, которые не могут не радовать. Например, создание копии существующей системы занимает несколько минут:
1) копируется текстовый файл с описанием ресурсов системы, в котором изменяется в минимальном варианте только название нового виртуального сервера;
2) создается новый виртуальный сервер на основе нового описания (одна команда);
3) делается snapshot дисков (для упрощения пишется короткий скрипт).
Весь процесс можно выполнять без остановки клонируемой системы и, в отличие от традиционных x86 гипервизоров, результат предсказуемо удачный.
Вообще, если говорить подробнее, у сервера System z есть два уровня виртуализации. На первом уровне он делится на логические разделы (LPAR'ы), а при желании в качестве дополнительного гипервизора устанавливается еще z/VM, который добавляет гибкости и позволяет запускать большое количество операционных систем.
Конечно же, гипервизор z/VM позволяет реализовывать стандартный функционал, такой как изменение приоритетов виртуальных серверов, добавление "на лету" новых ресурсов и перенос систем с одного сервера на другой.
Надежность в каждой детали
Буква Z в названии серверной линейки обозначает Zero down-time - нулевое время простоя. Этот акцент на надежность заметен во всем. В аппаратной части дублированы все компоненты, помимо стандартных средств зеркалирования памяти, внутренней шины и внешних интерфейсов, есть даже резервные процессоры. Более того, компания IBM заявляет, что при выходе из строя основных процессоров, резервные их заменяют "на лету" без остановки приложения.
Этот же уровень надежности распространяется и на все последующие уровни - надежные гипервизоры, надежная операционная система, надежные приложения…
Было бы странно, если бы "нулевое время простоя" касалось только внеплановых простоев. Стандартные процедуры поддержки системы также не остались без внимания. Обновление микрокода и замена аппаратных модулей, в случае расширения конфигурации или выхода из строя, проходят без остановки системы. На программном уровне все задачи решаются кластером под названием Parallel Sysplex, о котором я уже немного говорил раньше. Пока одна нода кластера работает за других, на второй можно производить любые виды работ. Подобные апдейты касаются не только операционной системы. Можно увеличивать, например, версию СУБД - на одной ноде кластера будет по-прежнему работать DB2 v9, а на второй уже подняли до v10, и все прозрачно для пользователя…
Производительность, измеренная линейкой
Традиционно платформа System z не участвует ни в каких публичных бенчмарках, гордо стоя в стороне и утверждая, что они мало связаны с реальной жизнью. Также под запретом измерение гигагерцами, количеством ядер и тд. Единственная более-менее стандартная характеристика для измерения мощности мэйнфреймов - MIPS - миллионы инструкций в секунду.
И все же простому обывателю MIPSы непонятны и хочется померять все линейкой, поэтому ключевые характеристики:
• Тактовая частота процессора - 5.5 ГГц для Enterprise класса, 4.2 ГГц для Business класса.
• Количество ядер - 101 для Enterprise класса, 13 для Business класса.
• Оперативная память - 3 ТБ для Enterprise класса, 496 ГБ для Business класса.
Лично мне не известны на данный момент сервера с более высокой тактовой частотой. Более того, мэйнфрейм пока идет против тренда - все производители серверных линеек пошли в сторону многоядерности, снизив тактовую. Можно было бы подумать, что это недоработка, если бы не одно оно - большинство софта по-прежнему лицензируется по ядрам…
Тем не менее, несмотря на уверенные стандартные характеристики, сложно относиться к мэйнфрейму как к простому быстрому серверу. Слишком много в нем нестандартных вещей, которые не видны человеческому взгляду, а порой и приложению. Например, в каждом мэйнфрейме есть выделенный пул процессоров, которые занимаются только операциями ввода-вывода, освобождая основные процессоры от этой лишней задачи.
С увеличением объема данных и ростом влияния бизнес-аналитики, разработчики IBM начали работать над специальными оптимизаторами аналитических запросов. В первой версии это был продукт собственной разработки IBM Smart Analytics Optimizer - предустановленное программное обеспечение на большое количество x86 серверов, на которые распараллеливался аналитический запрос. С покупкой компании Netezza та же концепция была реализована в виде продукта IBM DB2 Analytics Accelerator. Весь процесс выглядит абсолютно прозрачно для приложения - DB2 самостоятельно выбирает, где исполнять запрос в зависимости от его природы - аналитический уклон или транзакционный. В результате в одной базе можно сочетать OLTP и OLAP нагрузку без ущерба для производительности.