Андрей Борзенко


Первая статья этой серии опубликована в "BYTE/Россия" №8'2001.

Первым компьютером, который можно было модернизировать с помощью 64-разрядного процессора Alpha, был DEC VAX 7000. Последним, очевидно, станет один из серверов серии AlphaServer GS. Дело в том, что корпорации Compaq (http://www.compaq.com) и Intel (http://www.intel.com) приняли решение о совместных технических разработках, направленных на развитие технологии параллельных вычислений в мощных вычислительных системах. В рамках соглашения к 2004 г. Compaq консолидирует все свое семейство 64-разрядных серверов на базе архитектуры Itanium. Впрочем, разработку и выпуск новых систем AlphaServer на базе существующих и будущих процессоров Alpha предполагается продолжать вплоть до 2003 г. В частности, процессор 21364 (EV7) будет использован в моделях AlphaServer GS, выпуск которых намечен на конец следующего года.

Сегодня серия компьютеров AlphaServer GS второго поколения включает в себя 8-процессорную систему GS80 и два высокопроизводительных сервера масштаба предприятия - 16-процессорный GS160 и 32-процессорный GS320. В случае GS160 можно, начав с однопроцессорной системы, без нарушений работы или простоев довести ее до полной 32-процессорной. Обеспечивая поддержку памяти объемом 256 Гбайт, возможности систем Very Large Memory ("очень большая память") расширяются до Ultra Large Memories ("сверхбольшая память"). Кроме того, в этих системах вводится множество новых усовершенствований, направленных на поддержку вычислительной среды с безостановочной работой. Функции разделения аппаратных ресурсов обеспечивают высокую гибкость поддержки меняющихся потребностей пользователей.

AlphaServer GS80 представляет собой систему в одной стойке, поддерживающую до 8 микропроцессоров Alpha, 64 Гбайт памяти и 16 шин PCI с 56 гнездами PCI и общей внутренней полосой пропускания свыше 13 Гбайт/с. Архитектура этой системы позволяет создавать один или два системных раздела. Сервер GS160 - это двухкорпусная система, поддерживающая до 16 процессоров, 128 Гбайт памяти и 32 шины PCI со 112 гнездами PCI и общей внутренней полосой пропускания более 26 Гбайт/с. Она позволяет создавать до четырех системных разделов. Системы GS160 обеспечивают высокий уровень производительности приложений при сравнительно низкой стоимости. С добавлением третьего процессорного корпуса система расширяется и превращается в AlphaServer GS320.

GS320 поддерживает до 32 процессоров Alpha, 256 Гбайт памяти и 64 шины PCI с 224 гнездами PCI и общей полосой пропускания более 63 Гбайт/с. Он позволяет создавать до восьми системных разделов. Этот сервер также может содержать дополнительные шкафы. Применение подобного конструктива обеспечивает целый ряд преимуществ, в том числе повышает надежность и модульность всей системы. В главном шкафе ввода-вывода расположены дополнительные PCI-слоты, последовательные и параллельный порты, а также порты клавиатуры и мыши. Кроме того, там находятся адаптеры Fast Ethernet и UltraSCSI. В GS320 имеется 14 отсеков для жестких дисков (могут применяться диски емкостью 9, 18 или 36 Гбайт, суммарно до 504 Гбайт). В минимальную конфигурацию входит также модуль памяти (1, 2 или 4 Гбайт), привод CD-ROM и жесткий диск емкостью 9,1 Гбайт. Добавляемые PCI-корзины содержат по четыре шины PCI (2 шины по 4 слота плюс 2 шины по 3 слота), всего же возможно до 16 PCI-корзин (итого - до 64 PCI-шин и 224 PCI-слотов). Следует отметить большие возможности применения UltraSCSI, а также устройств Fibre Channel, в том числе концентраторов и коммутаторов. При необходимости в дополнительных шкафах можно разместить PCI-корзины и полки StorageWorks с внешними устройствами.

Стоит отметить, что мощные многопроцессорные серверы уровня предприятия радикально новой архитектуры появляются достаточно редко. В настоящее время одной из наиболее совершенных и гибких при построении серверов по праву считается архитектура ccNUMA (cache coherence Non-Uniform Memory Access) с неоднородным доступом к памяти и поддержанием когерентности кэш-памяти всех процессоров, в том числе принадлежащих разным узлам. Как известно, в NUMA время доступа зависит от географического расположения памяти. Процессор работает с собственной локальной памятью гораздо быстрее, нежели с удаленной, которая, в свою очередь, является локальной для другого процессора или разделяется между несколькими процессорами. NUMA дает возможность использовать объединенную вычислительную мощность множества процессоров, каждый из которых обращается к общему пулу памяти. Однако в этом случае для связи процессоров друг с другом они организованы в небольшие группы, или узлы. Например, 16-процессорный сервер может содержать четыре узла по четыре процессора. Каждый узел имеет собственный пул памяти. NUMA уменьшает нагрузку на шину, поскольку процессоры в узлах взаимодействуют друг с другом и со своей локальной оперативной памятью через отдельные шины. Кроме того, они могут обращаться к пулам памяти других узлов, хотя время доступа зависит от того, насколько эти узлы удалены друг от друга.

Инженеры компании Digital более десятилетия работали над высокопроизводительными технологиями коммутации и получили довольно много патентов на оригинальные решения, включенные впоследствии в новые системы с кодовым названием Wildfire ("бешеный огонь"). По мнению экспертов IDC, модели AlphaServer GS подняли планку производительности серверов среднего уровня на новую отметку. В целом системы Compaq стали более конкурентоспособными по сравнению с аналогичной продукцией других компаний.

Наиболее примечательная особенность этих систем связана с использованием высокопроизводительной неблокирующей инфраструктуры коммутации с очень низкой задержкой. Она позволяет реализовать вычислительные возможности процессоров, обусловленные системной архитектурой ccNUMA, но при этом устранить характерные для ccNUMA проблемы и добиться преимуществ, которые доступны в симметричных многопроцессорных архитектурах SMP (Symmetric Multi-Processing). Преимущества ccNUMA перед с SMP-архитектурой хорошо известны: это более высокая масштабируемость не только памяти и подсистемы ввода/вывода, но и процессорных ресурсов. Недостатки ccNUMA в первую очередь связаны с увеличением задержек при обращении к удаленной памяти. Инженеры Сompaq реализовали целый ряд усовершенствований в архитектуре новых систем, добиваясь повышения пропускной способности и уменьшения видимых задержек.

Особенности архитектуры

Одна из важнейших особенностей новых систем - модульность их архитектуры. Можно начать с очень небольшой однопроцессорной конфигурации GS160 и легко расширить ее до самой большой конфигурации GS320. Более того, начать можно даже с системы AlphaServer GS80 и сохранить немалую часть своих вложений (например, в процессоры, память и средства ввода-вывода), если впоследствии потребуется перейти к системе GS160 или GS320. Такой рост осуществляется путем добавления корпусов и системных компонентов - без ущерба для доступности и производительности приложений; кроме того, он не требует изменения конфигурации существующих компонентов системы или замены каких-либо элементов, в которые раньше были вложены средства. Модульность системы позволяет внедрить семейство продуктов по номинальной цене, поскольку при первоначальном приобретении системы не придется оплачивать все присущие ей возможности расширения мощности и функции масштабируемости.

В основе конструкции систем серии GS лежат так называемые счетверенные монтажные блоки QBB (Quad Building Block, рис. 1), каждый из которых поддерживает четыре микропроцессора Alpha, четыре платы памяти с возможностью установки 32 Гбайт памяти и восемь шин PCI с 28 PCI-гнездами. Первоначально QBB строились на процессорах Alpha 21264A/731 МГц с внешней кэш-памятью второго уровня емкостью 4 Мбайт. Связь всех компонентов системы осуществляется через высокопроизводительный локальный коммутатор (Switch), обеспечивающий индивидуальную полосу пропускания 1,6 Гбайт/с между процессорами и памятью или подсистемой ввода-вывода, а также общую полосу пропускания в рамках каждого строительного блока более 6 Гбайт/с. Коммутатор имеет еще один порт с той же пропускной способностью, которая используется для подсоединения других QBB. Пиковая пропускная способность коммутатора составляет около 16 Гбайт/с.

Fig.1
Рис. 1. Блок-схема QBB.

8-процессорные машины класса GS конструируются из QBB путем прямого соединения коммутаторов двух этих блоков через так называемые глобальные порты. Эти порты получили свое название от глобального, или иерархического коммутатора (Hierarchical Switch), который связывает между собой QBB в AlphaServer GS320 - компьютере, содержащем до 32 процессоров Alpha (рис. 2). Такое построение системы, когда каждый процессор имеет свой порт на коммутаторе, имеет преимущество перед системами, где порт коммутатора разделяется двумя процессорами. В последнем случае между процессорами теоретически могут возникнуть конфликты. При использовании QBB велика вероятность того, что обращения к оперативной памяти будут происходить в пределах памяти, локальной для одного QBB.

Fig.2 Рис. 2. Двухуровневая коммутируемая архитектура.

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

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

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

Надежность и доступность

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

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

Различие между "горячей" заменой и "горячей" установкой учитывает целый ряд важных факторов. Так, не все активные компоненты можно удалить из работающей системы без ущерба для ее функционирования. Нельзя просто вынуть модуль памяти - это серьезно затронет работающие приложения и ОС. Вместо этого для некоторых компонентов (например, памяти, блоков PCI и QBB) поддерживается "горячая" установка. Чтобы был возможен ремонт без отключения сервера, ОС должна взаимодействовать с базовой системой, поддерживая высокую доступность среды. В таких случаях ОС останавливает использование устройства, чтобы его можно было снять и заменить, а затем вновь активизирует его.

Память с кодом коррекции ошибок ECC (Error Correcting Code) применяется не только в подсистемах кэш-памяти и основной памяти, но и на всех путях данных в рамках таких систем. Благодаря этому одиночные битовые ошибки не смогут нарушить работу критически важных приложений. Полностью избыточная консольная подсистема без единых точек сбоя служит гарантией того, что цепочка сбоев не приведет к нарушению работоспособности системы.

В области кластерных технологий новые системы вобрали в себя почти двадцатилетний опыт разработок. Функции автоматического выравнивания нагрузки в кластерах TruCluster и OpenVMS Cluster делают этот процесс простым и прозрачным, гарантируя оптимальное использование ресурсов.

Полное дистанционное управление, или администрирование (lights-out operation), обеспечивает управление и контроль за базовой системой даже в случае физического отсутствия оператора. Это касается отключения и включения машин, а также всех других системных функций. Поддержка этих возможностей заложена в реализации удаленных и локальных консолей. Такая система не содержит единых точек сбоя; для подключения консолей применяются последовательные линии, а при необходимости и каналы TCP/IP. Это означает, что клиенты могут реализовать любую систему безопасности, какая им нужна. При этом с удаленной консоли можно делать все то же, что и с локальной. Для управления несколькими системами достаточно одной системной консоли. Это позволяет создать административный центр для систем и тем самым справиться с другой возникающей во многих организациях проблемой - поиском квалифицированных системных менеджеров и администраторов. Если аварийная ситуация возникнет в нерабочие часы, то системному администратору нет нужды ехать для ее устранения в центр обработки данных - он может это сделать прямо из дома.

Значение этих возможностей увеличивается благодаря применению системных аппаратных разделов (system hardware partition). Они предназначены для того, чтобы обеспечить работу на одном и том же физическом оборудовании нескольких различных ОС, а также для поддержки эволюционирующих задач и потребностей пользователей. Подобное разбиение хорошо зарекомендовало себя не только в мире мэйнфреймов, но и, в частности, в ряде RISC/UNIX-систем. Вообще говоря, разделы представляют собой фактически отдельные компьютерные системы. Все такие системные аппаратные разделы могут использовать:

  • одну и ту же версию ОС (при этом несколько ее экземпляров могут выполнять различные приложения или применяться в смешанной среде для производственных приложений, разработок и тестирования);
  • различные версии одной и той же ОС (для поддержки унаследованных приложений или для тестирования новых версий ОС, СУБД или приложений);
  • совершенно разные ОС (поддерживая одну ОС для работы унаследованных приложений и одновременно применяя новые приложения под управлением другой системы или осуществляя проект по объединению серверов);
  • несколько экземпляров Tru64 UNIX или OpenVMS (с OpenVMS Galaxy).

Приложения и ОС, работающие в различных разделах, полностью изолированы и защищены друг от друга. Их сбой в одном разделе не окажет влияния на работу в других разделах. Это особенно полезно при объединении серверов или в средах, где определенные приложения могут вести себя не совсем корректно. Кроме того, такие функции пригодятся, если несколько приложений требуют различных версий ОС, базы данных или других приложений.

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

Разделы можно объединять в кластеры. Такое решение в действительности не повышает доступности (для этой цели Compaq рекомендует объединять по крайней мере две разные системы), но открывает доступ ко всем преимуществам кластеров Tru64 UNIX или OpenVMS в том, что касается управления, хранения данных и эксплуатации. Кроме того, при сбое приложения в одном разделе его можно перенести в другой. В то же время нет никакого смысла выравнивать нагрузку между разделами. Сompaq обеспечила гибкую систему динамических разделов в серверах GS, работающих под управлением Galaxy с несколькими копиями OpenVMS. Формирование разделов происходит под управлением ядер OpenVMS и позволяет перераспределять ресурсы между копиями ОС в зависимости от рабочей нагрузки.

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

Производительность

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

С момента своего появления серверы AlphaServer GS неоднократно показывали рекордные по отрасли результаты производительности. Так, в январе 2001 г. сервер AlphaServer GS установил рекорд производительности в тесте SAP Business Information Warehouse (SAP BW) Version 2.0B. Он продемонстрировал производительность и масштабируемость серверов этого семейства в таких приложениях, как интенсивно используемые системы CRM (управление отношениями с клиентами) и интеллектуальной поддержки бизнеса, к числу которых относится и SAP BW. Напомним, что эта система предназначается для сбора информации из производственных баз данных, работающих на множестве разнообразных компьютерных систем, и соединения ее с данными из других, часто внешних источников. В частности, системы Compaq показали в тесте SAP BW следующие результаты: средняя пропускная способность системы на этапе загрузки информации (Load Phase, Step 1) - 114 млн. записей в час, на этапе преобразования информации (Realignment Phase, Step 2) - 313 млн. записей в час и на этапе обработки запросов (Query Navigation Step) - 207 323 навигационные операции в час. Этап Query Navigation Step в этом тесте имитирует работу пользователей, обращающихся к системе SAP BW с запросами. Тестовая система состояла из сервера AlphaServer GS320 с 32 процессорами Alpha 21264 EV67 и 32 Гбайт ОЗУ, подсистемы хранения данных Compaq StorageWorks с 1308 Гбайт дискового пространства и использовала ОС Tru64 UNIX Version 5.1 и СУБД Oracle8i release 8.1.6.

В июне этого года сервер Compaq AlphaServer GS320 установил новый рекорд производительности в тесте TPC-C для одиночных систем. В этом стандартном для отрасли тесте комплекс из AlphaServer GS320, ОС Tru64 UNIX и СУБД Oracle9i Enterprise Edition показал результат в 230533 транзакции в минуту при цене в 56,62 долл. за транзакцию в минуту, что превзошло соответствующие характеристики конкурирующих систем.