Intel Itanium 2, подобно микропроцессорам с архитектурой х86, используется самыми разными производителями многопроцессорных серверов. В таких серверах применяются некоторые решения, ставшие индустриальными стандартами. Практика показала, что структура подобных серверов имеет немало общих черт. 32-процессорные серверы NEC, базирующиеся на Itanium 2, могут служить примером того, как выглядит типичный представитель серверов данного класса.

Специалистам по компьютерной архитектуре NEC известна в первую очередь как разработчик и производитель самых мощных векторных суперкомпьютеров мира [1], однако корпорация выпускает и многопроцессорные серверы, ориентированные как на высокопроизводительные вычисления, так и на бизнес-приложения, в том числе критические. Рассмотрим подробнее серверы NEC TX7 (Express 5800/1xx0) на платформе Itanium 2.

О судьбе Itanium 2

Хорошо известно, что разработчикам Itanium 2 не удалось (по крайней мере, пока) решить первоначально стоявшую перед ними сверхзадачу — обогнать по производительности всех RISC-конкурентов. Однако, хотя и с задержкой, первоначальные предсказания о вытеснении конкурентов стали сбываться. И HP PA-RISC, и Sun UltraSPARC, и SGI R1x000 сильно отстали, и в смысле производительности их применение становится технически нецелесообразным.

Однако один RISC-конкурент, IBM Power, остается. Сегодня Power5 — безусловный лидер по производительности с плавающей точкой.

Но если говорить о целочисленной производительности, которая для бизнес-приложений важнее, то Itanium 2 обогнал-таки всех RISC-конкурентов. (Другой вопрос, что по целочисленной производительности 64-разрядные процессоры AMD Opteron, а также процессоры Intel x86, включая 64-разрядные версии с архитектурой EM64T, в свою очередь, опережают Itanium 2.)

Открыт вопрос и о том, как будет развиваться ситуация с производительностью микропроцессоров в будущем. Гонка тактовых частот, благодаря которой микропроцессоры х86/х86-64 оказались в лидерах производительности, закончилась; теперь важнее становится микроархитектура. Дальнейший рост производительности будет осуществляться в первую очередь за счет перехода к многоядерным процессорам — а это требует распараллеливания программного обеспечения. Существенно и то, что, как заявляют в Intel, в будущем Itanium 2 станет продаваться по ценам, равным ценам на Xeon, обладая при этом более высокой производительностью.

Впрочем, уже сегодня компьютер на базе Itanium 2 можно собрать и самому: покупай в рознице материнские платы, скажем, от Supermicro, а дальше — дело техники. (Ясно, что такой компьютер получится несравнимо дешевле; вообще говоря, автор предостерегает от «самосборки», однако в отдельных случаях это может иметь смысл.)

Собственно, подобная доступность компонентов отвечает традиционной для Intel бизнес-модели организации поставок. Однако в случае с Itanium 2 корпорация пошла по «RISC-пути» в смысле ориентации на эксклюзивные решения производителей и установление высокой торговой маржи. В финансовом плане, возможно, эта стратегия была эффективной. Однако в техническом плане — с точки зрения быстрого продвижения архитектуры IA-64 на рынок — это, полагаю, стало тормозом процесса распространения процессоров семейства Itanium. Теперь на роль могильщика RISC-архитектуры, на которую раньше претендовал Itanium, пробуются уже новые процессоры с архитектурой х86-64 (AMD Opteron, Intel Xeon/EM64T).

Как бы то ни было, серверы на базе Itanium 2 сегодня становятся все популярнее. Высказываются разные точки зрения, за счет чего растет эта часть рынка: за счет ли замены RISC-серверов или в первую очередь вследствие приобретения новых серверов в целях расширения бизнеса. Большинство ведущих производителей — IBM, HP, SGI, Fujitsu Siemens и другие компании — имеют в своей линейке серверы на базе Itanium 2. Многие российские производители также предлагают подобные серверы собственной сборки.

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

Архитектура 32-процессорных серверов

При анализе компьютерных систем на базе Itanium 2 обычно обращают значительное внимание на используемый в них набор микросхем, который во многом определяет основные архитектурные черты многопроцессорных серверов. Наборы микросхем для Itanium 2 были разработаны, в частности, Intel [2], HP [3] и Fujitsu. Есть свой набор микросхем и у NEC.

Надо сказать, что NEC стала одной из первых компаний, создавших многопроцессорные серверы на базе Itanium. Эти 16-процессорные серверы AzusA были предшественниками рассматриваемых нами серверов TX7 серий i9000 и i6000, которые используют единый набор микросхем. Мы сконцентрируем свое внимание на 32-процессорном сервере TX7/i9510*; другие модели имеют ту же архитектуру, но предусматривают установку меньшего числа процессоров Itanium 2 [4].

Общая архитектура TX7 представлена на рис. 1. Основу структуры серверов составляют два типа ячеек — процессорные ячейки и ячейки PCI-X (называемые также PCI-блоками), соединенные между собой посредством неблокирующихся координатных коммутаторов (crossbar).

Процессорная ячейка содержит до четырех процессоров Itanium 2, набор микросхем и оперативную память (рис. 2). Набор микросхем был сконструирован таким образом, чтобы обеспечить уменьшение полной стоимости владения за счет поддержания высокого уровня готовности, в частности, путем разбиения сервера на разделы; защиты путей данных кодами ECC (в оперативной памяти используется также технология Chipkill) или битами четности; проверки целостности данных и повторением команд при сбоях [5]. Набор микросхем обеспечивает масштабирование до 32 процессоров (до 8 процессорных ячеек) и до 112 слотов PCI-X (по 14 слотов в каждом из блоков PCI, до 8 блоков на сервер).

В качестве процессоров могут применяться Itanium 2 с частотами 1,5, 1,4 или 1,3 ГГц, с кэш-памятью емкостью 6, 4 или 3 Мбайт соответственно; недавно стали доступны и процессоры Madison с кэш-памятью третьего уровня на 9 Мбайт.

В оперативной памяти используются модули DDR DIMM (32 слота на процессорную ячейку), что при использовании DIMM емкостью 2 Гбайт дает предельную емкость памяти 64 Гбайт на ячейку, или 512 Гбайт на сервер. В процессорной ячейке предусматривается два контроллера оперативной памяти; память имеет 4-кратное расслоение (чередование адресов) на «уровне» строки кэша. Кроме того, поддерживается расслоение памяти на «межъячеечном» уровне, которое целесообразно применять для операционных систем, не имеющих явной поддержки архитектуры NUMA [5].

Отношение времени задержки при обращении в удаленную память, расположенную в чужой процессорной ячейке, ко времени задержки локальной памяти меньше, чем 2:1 (200 нс — задержка для локальной памяти и 340 нс — для удаленной) [6].

Интересно, что недавно Fujitsu Siemens Сomputers анонсировала 32-процессорные серверы Primequest на платформе Itanium 2, которые имеют структуру, очень близкую к рассматриваемой нами, — также до восьми четырехпроцессорных блоков, соединенных коммутаторами с восемью блоками ввода/вывода, содержащими суммарно до 128 слотов PCI-X. Даже максимальная емкость оперативной памяти у обоих серверов одинаковая. В FSC не приводят данных о задержках при обращении в память, позиционируя архитектуру своих серверов как SMP. Между тем NEC говорит об архитектуре ccNUMA, что, думается, вернее.

Пропускная способность оперативной памяти в процессорной ячейке равна 12,8 Гбайт/с; агрегатная пропускная способность памяти сервера линейно масштабируется с числом ячеек. Полосу пропускания при доступе в память разделяют процессоры и устройства ввода/вывода. Порты на коммутаторах данных имеют пропускную способность, равную 6,4 Гбайт/с. Однако, поскольку каждая процессорная ячейка связана с двумя коммутаторами, на одну ячейку приходится вдвое большая пропускная способность.

Для пересылки адресной и управляющей информации используется отдельная «адресная сеть». В архитектуре ccNUMA, для которой характерно большое (свыше 32) число процессоров, обычно используются протоколы обеспечения когерентности кэш-памяти, базирующиеся на справочниках (каталогах). Однако в данных серверах применяется традиционный для SMP-систем протокол наблюдения (snoop-based), в котором предприняты специальные меры для уменьшения числа транзакций наблюдения [4].

В NEC имеются планы выпуска серверов с еще большим, чем 32, числом процессоров Itanium 2, которые могут иметь иерархическую структуру, так что рис. 1 будет отвечать ее нижнему уровню. Можно предположить, что при этом будет использована иерархическая система коммутаторов (это имеет место, например, в векторных суперкомпьютерах NEC). В компании Stins Coman (OEM-партнер компании NEC) утверждают, что в конструкции коммутаторов на рис. 1 использованы наработки NEC по конструированию коммутаторов векторных систем NEC SX-6.

План (или распределение) памяти TX7 совместим с архитектурой Itanium Processor Family (IPF). Набор микросхем поддерживает адресное пространство емкостью 1 Тбайт. Имеются две области отображения ввода/вывода в оперативную память: одна расположена под границей 4 Гбайт и расширяется вниз приращениями по 4 Мбайт; вторая расположена между адресами 4 Гбайт и 1 Тбайт и расширяется приращениями по 1 Гбайт. Такая структура распределения памяти обеспечивает достаточное адресное пространство для всех 112 слотов PCI.

В TX7 применяются развитые средства обработки прерываний. Во-первых, имеется режим «виртуальных проводов», совместимый с i8259. Он соответствует доставке прерывания путем прямого сигнального соединения и используется при возможном выполнении команд из постоянной памяти при загрузке ОС (на самом деле набор микросхем эмулирует этот режим транзакциями). Основной режим — это использование Stream-lined Advanced Programmable Interrupt Controller (SAPIC); в этом случае прерывание доставляется до цели в форме сообщений о прерывании по процессорной шине. Это позволяет осуществлять быструю обработку прерываний. В TX7, в отличие от AzusA, поддерживаются перенаправленные межпроцессорные прерывания, что позволяет направить прерывание на обработку менее нагруженному процессору.

Подсистема ввода/вывода

Как мы уже говорили, PCI-блоки содержат по 14 слотов шин PCI-X. Из них шесть слотов работают на частоте 133 МГц и восемь слотов — на частоте 66 МГц. В максимальной конфигурации с восемью PCI-блоками агрегатная пропускная способность ввода/вывода может достигнуть 58 Гбайт/с.

Предусмотрено два типа PCI-блоков — содержащие базовые средства ввода/вывода и не содержащие их. Базовые средства ввода/вывода включают плату VGA, плату SCSI и базовую плату ввода/вывода, которая обеспечивает поддержку последовательных интерфейсов, портов USB, клавиатуры и мыши, а также IDE-устройства. В числе предлагаемых плат PCI-X — SCSI (в том числе, RAID-контроллер), Fibre Channel и Gigabit Ethernet. В PCI-блоке располагаются также шесть жестких дисков с формфактором 3,5 дюйма, допускающие горячую замену. Предлагаемые диски имеют емкость 36, 73 и 146 Гбайт.

Всего в 32-процессорное шасси можно установить до восьми процессорных ячеек, до двух PCI-блоков плюс два блока питания и два блока вентиляторов. Такая стойка имеет габариты 600х1040х1800 мм и при весе 528 кг потребляет 12 КвА. Еще шесть PCI-блоков можно установить в стойке расширения, при этом максимальная емкость внутреннего дискового пространства достигнет 7 Тбайт.

Надежность, готовность, управление

Рассматриваемые серверы могут применяться в широком диапазоне приложений — от научно-технических расчетов до критически важных бизнес-приложений. Остановимся подробнее на некоторых особенностях серверов TX7, актуальных для работы с бизнес-приложениями*.

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

SP связан с процессорными ячейками, PCI-блоками и коммутаторами посредством интерфейса DGI (Diagnostic Interface) для осуществления функций инициализации, конфигурирования, диагностики аппаратных средств и общего управления сервером, включая управление аппаратными разделами. При инициализации с помощью DGI осуществляется перенос образа «прошивки» (firmware) системы в оперативную память. Это уменьшает время загрузки раздела по сравнению с прямой инициализацией из загрузочной постоянной памяти. Firmware можно модернизировать при работе системы, в том числе в удаленном режиме.

SP отвечает и за обработку ошибок (мониторинг, журналирование, выдача сообщений об ошибках). Сообщения об ошибке, включающие ее причину и информацию о «сбойнувшем» компоненте, могут быть направлены на консоль или в программное обеспечение управления системой System Management Software, которое может послать отчет об ошибке непосредственно в сервисный центр. В случае некорректируемой ошибки сервер изолирует неисправный компонент, и firmware извещает об этом операционную систему, которая для восстановления может воспользоваться функциями Machine Check Architecture (MCA).

SP обеспечивает перенаправление (через локальную сеть на удаленную консоль) подсоединенных к последовательным портам консолей, максимум от 8 операционных систем и firmware. Также можно перенаправить консоль самого SP.

Избыточность поддерживается не только для SP: продублированными могут быть также аппаратура таймера и модули коммутаторов и соответственно пути от процессорной ячейки к PCI-блокам. Последнее обеспечивается благодаря специальному соединению пар смежных PCI-блоков: каждый из этих блоков подсоединен к своему коммутатору, и еще имеется прямое соединение PCI-блоков пары между собой (рис. 1). В NEC говорят о полной аппаратной избыточности [6].

Если система прекращает работу из-за некорректируемой ошибки, SP диагностирует ситуацию, выводит из конфигурации сбойный компонент и автоматически перезагружает систему. Если один из путей от процессорной ячейки к PCI-блоку выводится из конфигурации вследствие ошибки, система может быть перезагружена с применением конфигурации, включающей альтернативный путь. При сбое таймера система может быть перезагружена с использованием другого таймера.

Избыточными по схеме «N+1» являются блоки питания и вентиляторы. Поддерживается горячая замена PCI-блоков, процессорных ячеек, SP, плат ввода/вывода, модулей коммутатора, таймера, блоков питания и вентиляторов.

Для управления сервером SP использует функции, совместимые с индустриальными стандартами ACPI (Advanced Configuration and Power Interface) и IPMI (Intelligent Platform Management Interface), широко используемыми при работе с небольшими х86-совместимыми серверами, в том числе в кластерах. Вообще, в TX7 применяется много отраслевых стандартов — например, тот же PCI-X, EFI (Extensible Firmware Interface) или DIG64 (Developer Interface Guide for IA64), что обеспечивает совместимость с другими платформами.

Из других особенностей TX7, способствующих повышению надежности, можно отметить диагностику оперативной памяти в режиме реального времени. Набор микросхем автоматически проверяет память через некоторые интервалы времени (это происходит при работе системы), чтобы предотвратить будущие сбои. При этом данные, содержащие корректируемые ошибки, перезаписываются «правильными» данными. При инициализации системы набор микросхем сканирует оперативную память, и при обнаружении некорректируемой ошибки соответствующая часть памяти выводится из конфигурации.

Разбиение на разделы

Разбиение сервера на логические разделы («домены»), или «парционирование», является широко распространенной особенностью для серверов данного класса [7]. В серверах TX7, также как и в их предшественниках AzusA, имеется возможность использовать аппаратно поддерживаемые разделы.

Каждый раздел может содержать целое число любых процессорных ячеек и PCI-блоков; максимальное количество разделов равно восьми. Ограничением является лишь то, что каждый раздел должен иметь хотя бы один PCI-блок с базовыми средствами ввода/вывода.

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

Управление разделами и их конфигурациями осуществляет SP. В различных разделах могут работать одновременно разные операционные системы, например HP-UX 11i, Linux и Windows Server 2003. Если операционная система поддерживает функции горячей замены (такие возможности в настоящее время внедряются, например, в ОС Linux), то возможно динамическое реконфигурирование.

Для реконфигурирования может использоваться разработанное в NEC программное обеспечение промежуточного слоя VALUMOware, частью которого является инструментарий SystemGlobe GlobalMaster, непосредственно отвечающий за управление разделами. Для работы с этими средствами имеется удобный графический интерфейс. Если раздел окажется «перегруженным» и его ресурсов не хватает, то ему динамически может быть добавлена процессорная ячейка.

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

Разделы могут эффективно использоваться для решения задачи консолидации серверов: разные разделы сервера могут применяться как серверы, ориентированные на разные приложения. Другое преимущество применения разделов — виртуализация аппаратных ресурсов. Выигрыш от виртуализации проявляется при взаимодействии с SystemGlobe GlobalMaster: автоматизация функций, подобных управлению рабочей нагрузкой, означает создание некой разновидности «автономных вычислений» [5].

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

Литература
  1. М. Кузьминский. «Динозавры эпохи микропроцессоров». Открытые системы, № 8, 2004.
  2. Ф. Бригс, М. Цеклев, К. Крета, М. Харе, С. Кулик, А. Кумар, Л.П. Луи, Ч. Натараджан, С. Радхакришна, Л. Ренкин. «Intel 870: строительные блоки для недорогих масштабируемых серверов». Открытые системы, № 12, 2002.
  3. М. Кузьминский. «Система на базе Itanium 2», Открытые системы, № 3, 2003.
  4. T. Senta, A. Takahashi, T. Kadoi, T. Itoh, S. Kawaguchi, Y. Kishida. «Itanium 2 32-way Server System Architecture». NEC Res. and Develop., Vol. 44, No. 1, 2003.
  5. T. Shibuya, S. Mikayawa, T. Senta, M. Kimura, H. Takagi. «32-way Itanium 2 Server NX7700/i9510: High-Performance and Highly Reliable Infrastructure for Mission-Critical Enterprise Application». NEC J. of Adv. Tech., Vol. 1, No. 2, 2004.
  6. T. Kadoi. «NEC Highly Scalable Itanium 2 Datacenter-class Server», Intel Developmnet Forum, 2003.
  7. М. Кузьминский. «Доменная архитектура многопроцессорных компьютеров», Открытые системы, № 10, 2000.

* Если быть точнее, у этих 32-процессорных серверов имеется несколько наименований — в зависимости от того, ориентируются ли они на японский или на международный рынок, и предназначены ли они для рынка высокопроизводительных приложений или для рынка критически важных бизнес-приложений. В последнем случае речь должна идти о серверах NX7700 Series Model i9510. При продажах вне Японии их именуют Exprsess 5800/1320xd.


* C учетом бизнес-ориентации точнее было бы использовать далее название Express, но мы для удобства сохраняем единое наименование во всей статье.