Надежные вычислительные машины являются ключевыми элементами для построения наиболее ответственных прикладных систем, используемых в сфере торговли, финансов и телефонной коммутации. На современном этапе развития информационных технологий подобные приложения предъявляют повышенные требования к масштабируемости, поддержке открытых стандартов и обеспечению отказоустойчивости. Одной из известных в мире фирм, работающих в данной области, является компания Tandem, которая для удовлетворения растущих требований рынка надежных вычислений поставляет сегодня две различные линии серверов: системы Tandem NonStop и системы Tandem Integrity.
Системы Tandem NonStop, первые модели которых появились еще в 1976 году, базируются на реализации многопроцессорной обработки и модели распределенной памяти. Для обеспечения восстановления аппаратуры и ошибок ПО после сбоев эти системы используют механизмы передачи сообщений между процессорными парами. База данных NonStop SQL, в основе архитектуры которой лежит модель системы без разделения ресурсов (shared-nothing), показала линейную масштабируемость в приложениях обработки транзакций на конфигурациях, содержащих более 100 процессоров. Первоначально системы NonStop были нацелены на создание приложений оперативной обработки транзакций (OLTP), но сегодня интенсивно используются и в других ответственных приложениях, таких как системы передачи сообщений, поддержки принятия решений.
Чтобы удовлетворить потребности в отказоустойчивых системах, позволяющих выполнять без переделок существующие UNIX-приложения, в 1990 году Tandem начала выпуск систем Integrity. Для маскирования ошибок в работе систем Integrity используются методы аппаратной избыточности (трехкратное резервирование), обеспечивающие продолжение непрерывной работы в условиях сбоев без воздействия на приложения. Системы Integrity часто применяются в телефонных и сотовых сетях связи, а также в других коммерческих приложениях, требующих реализации надежных систем, удовлетворяющих открытым стандартам.
Хотя обе линии компьютеров имеют отличия, они удовлетворяют целому ряду общих требований и используют многие общие технологии и компоненты. Все системы Tandem гарантируют целостность данных и устойчивость к сбоям, и кроме того, обеспечивают масштабируемость и возможность производить модернизацию системы в режиме on-line. Обе линии NonStop и Integrity позволяют выполнять техническое обслуживание: установка и замена плат, источников питания и вентиляторов без остановки системы и выключения питания. Применяемые конструкции допускают установку обеих систем в офисных помещениях, стандартных машинных залах или на телефонных станциях. В системах используется много общих компонентов: накопители на дисках, элементы памяти и микропроцессоры.
В 1991 году Tandem начала программу объединения лучших свойств обеих систем в единую линию. Эта программа дает возможность гибкой реализации целого ряда важнейших свойств: устойчивости к сбоям - восстановление после проявления неисправности может выполняться как программными, так и аппаратными средствами, масштабируемости - построение кластеров на базе модели распределенной памяти и реализация мультипроцессорной обработки в разделяемой общей памяти, а также использование нескольких ОС (NonStop Kernel, Unix и Windows NT).
Основой для объединения архитектур послужила разработка главного транспортного средства - системной сети ServerNet, многоступенчатой пакетной сети, используемой как для организации межпроцессорных связей, так и для реализации связей с устройствами ввода/вывода. ServerNet обеспечивает эффективные средства для обнаружения и изоляции неисправностей, а также реализует прямую поддержку альтернативных каналов передачи данных для обеспечения непрерывной работы при наличии отказов сети. Эта разработка предоставляет новые возможности развития обеих линий, включая большую масштабируемость, интерфейсы с открытыми стандартами шин и улучшенную поддержку мультимедийных приложений.
Архитектура систем NonStop
На рис. 1 показана базовая архитектура систем NonStop, которая предполагает объединение двух или более ЦП при помощи дублированной высокоскоростной межпроцессорной шины. Каждый процессор имеет один или несколько каналов в/в, соединяющих его с двухпортовыми дисковыми контроллерами и коммуникационными адаптерами. В действительности у первых пяти поколений систем NonStop: NonStop I, II, TXP, CLX и VLX было реализовано только по одному каналу в/в на процессор, а пара разделяемых шин обеспечивала объединение до 16 процессоров. В более поздних реализациях NonStop Cyclone и Himalaya K10000/20000 для увеличения пропускной способности системы межсоединений была применена сегментация межпроцессорной шины на базе четырехпроцессорных секций. Секции могут объединяться с помощью оптоволоконных линий связи в узлы - до четырех секций в узле. Системы NonStop II, TXP, VLX и Cyclone поддерживают также возможность построения оптоволоконного кольца, которое позволяет объединить между собой до 14 узлов и обеспечивает быстрый обмен данными внутри домена, состоящего из 224 процессоров. В Cyclone к процессору могут подсоединяться несколько каналов в/в, причем каждые четыре канала управляются своей парой контроллеров прямого доступа к памяти.
Рис. 1. Архитектура NonStop
После разработки и успешных испытаний системы Cyclone компания Tandem перешла на применение в своих изделиях RISC-процессоров компании MIPS, вместо применявшихся ранее заказных CISC. В системах CLX/R и К200 используются процессоры R3000, а в системах Himalaya K10000, K20000 и K2000 - процессоры R4400. Одновременно с объявлением в 1993 году о начале поставок нового семейства систем Himalaya компания анонсировала также оптоволоконную сеть межпроцессорного обмена TorusNet, предназначенную для построения крупномасштабных кластеров. TorusNet обеспечивает соединение четырехпроцессорных секций с помощью избыточной сети с топологией двухмерного тора.
Все аппаратные компоненты систем NonStop построены на основе принципа "быстрого проявления неисправности" (fail fast design), в соответствии с которым каждый компонент должен либо функционировать правильно, либо немедленно останавливаться. В более ранних системах Tandem реализация этого принципа опиралась на использование методов проверки четности, избыточного кодирования или проверки допустимости состояния при выполнении каждой логической функции. Современные конструкции обнаружения ошибок в сложной логике полагаются главным образом на методы дублирования и сравнения. Все системы на базе микропроцессоров для гарантии целостности данных и быстрого обнаружения неисправностей выполняют сравнение выходов дублированных и взаимно синхронизированных микропроцессоров. В NonStop ответственность за восстановление после обнаружения неисправности в аппаратуре возлагается на ПО.
ОС NonStop Kernel систем NonStop непрерывно развивалась и постепенно превратилась из патентованной фирменной операционной системы в систему, которая обеспечивает полностью открытые интерфейсы, построенные на основе промышленных стандартов. Для поддержки устойчивости критически важных процессов в NonStop Kernel реализованы низкоуровневые механизмы контрольных точек, а также специальный слой программных средств, на котором строится как патентованная среда Guardian, так и открытая среда Posix-XPG/4. NonStop Kernel базируется на механизмах передачи сообщений и обеспечивает средства прозрачного масштабирования в пределах 16-процессорного узла, 224-процессорного домена или 4080-процессорной (локальной или глобальной) сети TorusNet.
Архитектура систем Integrity
Основной задачей компании Tandem при разработке систем семейства Integrity было обеспечение устойчивости к одиночным отказам аппаратуры при соблюдении 100% переносимости стандартных UNIX-приложений. Для маскирования аппаратных неисправностей в системах Integrity используется тройное модульное резервирование (TMR - triple-modular redundancy) в процессоре, кэш-памяти и основной памяти (рис. 2).
Рис. 2. Архитектура Integrity
Три процессора выполняют одинаковые потоки команд, но работают с независимой синхронизацией. Процессоры синхронизируются во время обработки обращений к глобальной памяти и при обслуживании внешних прерываний. Все обращения к глобальной памяти с выходов резервируемых процессоров поступают через схемы голосования в пару контроллеров TMR. Схемы голосования, сравнивая обращения между собой, обнаруживают возможные неисправности процессоров и посылают достоверные запросы в остальную часть системы. Для обнаружения неисправностей в конструкциях контроллера TMR и процессора в/в используются средства самоконтроля. Каждый периферийный контроллер содержит стандартную плату VME, которая через специальный адаптер подсоединяется к паре шин в/в, защищенных четностью. Плата адаптера позволяет осуществлять коммутацию контроллера с 2 процессорами в/в.
В системах Integrity реализация платы основного процессора не требует сложной логики самоконтроля. Однако отличает ее конструкцию от конструкции процессорной платы систем NonStop, хотя в обеих используются одни и те же микропроцессоры. Архитектура новых систем объединяет требования базовой конструкции Integrity при сохранении совместимости с требованиями систем NonStop.
Архитектура системы на базе ServerNet
Новая системная архитектура, построенная на базе ServerNet, объединяет свойства систем NonStop и Integrity, решая задачу масштабируемых отказоустойчивых систем путем реализации гибких методов соединения стандартных функциональных блоков (модулей ЦП/памяти, подсистем внешней памяти и коммуникационных адаптеров).
На рис. 3 показана архитектура типичной системы, построенной на базе ServerNet. Эта система состоит из нескольких процессорных узлов и узлов ввода/вывода, объединенных друг с другом системной сетью ServerNet. Базовым элементом сети ServerNet является маршрутизатор, выполненный в виде отдельной заказной СБИС. Для обеспечения отказоустойчивости предполагается возможность построения двух независимых подсетей ServerNet: X и Y. В типовой конфигурации большинство узлов имеют двухпортовые интерфейсы, обеспечивающие подсоединение каждого узла к этим независимым подсетям. Одной из дополнительных возможностей новой архитектуры является наличие специальной шины когерентности, допускающей подключение до четырех ЦП. Эта шина обеспечивает согласованное состояние общей для нескольких процессорных узлов памяти и их кэшей при выполнении программ, рассчитанных на мультипроцессорную обработку в системе с разделяемой общей памятью.
Рис. 3. Архитектура системы на базе ServerNet
При работе под управлением операционных систем, поддерживающих отказоустойчивость программными средствами, например подобных NonStop Kernel, процессорные узлы выполняют независимые потоки команд. В отличие от более ранних систем, которые для передачи сообщений между процессорами и реализации операций ввода/вывода использовали разные интерфейсы, в новой архитектуре все пересылки данных осуществляются процессором по сети ServerNet.
При использовании операционных систем, в которых отсутствуют специальные средства поддержки отказоустойчивости, это свойство может быть реализовано с помощью аппаратных средств путем создания конфигураций ЦП в виде дуплексных пар. В этом случае пары узлов ЦП выполняют идентичные потоки команд. Если один ЦП из пары отказывает, другой продолжает работать. Таким процессорам в сети ServerNet присваивается общий идентификатор узла, и все пакеты, адресуемые с помощью этого идентификатора, дублируются и доставляются одновременно двум ЦП. При отсутствии неисправностей оба ЦП в паре создают идентичные исходящие пакеты, поэтому в случае нормальной работы логика маршрутизации ServerNet может выбрать для пересылки пакеты любого узла. При этом для обнаружения неисправностей используются возможности самой сети ServerNet.
Как уже отмечалось, для обеспечения отказоустойчивости в системе Integrity требуются три процессорных кристалла и три массива микросхем памяти. Новая архитектура требует четырех процессорных кристаллов - два на каждый модуль ЦП - и двух массивов микросхем памяти. Стоимость реализации этих двух подходов существенно зависит от размера памяти. Для типовых систем оба метода имеют сравнимую стоимость.
Сеть ServerNet
ServerNet - быстрая, масштабируемая, надежная системная сеть, обеспечивающая гибкость соединения большого числа ЦП и периферийных устройств в/в между собой. Главными свойствами этой сети коммутации пакетов являются малая задержка и высокая надежность передачи данных. Для уменьшения задержки в сети применяется метод червячной маршрутизации, не требующий приема всего пакета до его отсылки к следующему приемнику. Физический уровень ServerNet образуют независимые каналы приема и передачи, каждый из которых имеет 9-битовое поле команд/данных и сигнал синхронизации. Поле команд/данных обеспечивает кодирование 256 символов данных и до 20 символов команд. Символы команд используются для управления уровнем звена, инициализации и сигнализации об ошибках. Кодирование в одних и тех же линиях команд и данных сокращает количество контактов и упрощает обнаружение ошибок в логике управления.
Система использует ServerNet для организации связей ЦП-ЦП, ЦП-В/В и В/В-В/В. Пересылки между микропроцессором и памятью для каждого узла ЦП остаются локальными.
Данные в сети ServerNet пересылаются со скоростью 50 Мбайт/с. Сегодня максимальная длина линии связи ServerNet ограничена 30 м. В будущих адаптерах предполагается увеличение расстояния между узлами ServerNet с помощью последовательных оптоволоконных линий связи. Предполагается, что этот переход будет относительно простым, поскольку все функции управления применяют одни и те же линии команд/данных.
Пакеты ServerNet состоят из 8-байтного заголовка, дополнительного 4-байтного адреса, поля данных переменного размера и поля контрольной суммы. Заголовок определяет идентификаторы источника и приемника, объем передаваемых данных и необходимую для выполнения операцию. 4-байтное адресное поле обеспечивает 4-гигабайтное окно в адресном пространстве узла назначения. В устройствах в/в какие-либо механизмы преобразования адресов отсутствуют. ЦП преобразуют адрес из пакета в адрес физической памяти с помощью таблицы удостоверения и преобразования адреса (AVT - Address Validation and Translation Table). AVT проверяет допустимость удаленных обращений к локальной памяти узла. Каждый элемент таблицы обеспечивает доступ по чтению и/или записи одного узла ЦП или узла в/в к данным внутри 4-килобайтного диапазона адресов локальной памяти. С помощью нескольких элементов таблицы AVT узел ЦП может иметь доступ к большим сегментам своей памяти или обеспечивать несколько узлов доступом к одному и тому же сегменту. Неисправный узел может испортить только те сегменты памяти, к которым ЦП предоставил ему доступ. AVT выполняет также преобразование смежных адресов памяти в несмежные адреса страниц физической памяти.
Все транзакции по сети ServerNet происходят в два этапа: выполнение запроса и ожидание соответствующего ответа, который должен вернуться до истечения заданного интервала времени. Все узлы поддерживают возможность выдачи несколько исходящих запросов в другие узлы. Помимо стандартных действий в соответствии с протоколом уровня передачи пакетов получатель определенной транзакции может по своему усмотрению выполнить некоторые локальные действия. Например, существующие сейчас узлы ЦП или В/В преобразуют транзакции записи по определенным адресам в локальные прерывания.
В СБИС маршрутизатора ServerNet реализован матричный переключатель размерностью 6х6. Решение о направлении маршрутизации принимается на основе анализа идентификатора приемника из заголовка пакета. В состав маршрутизаторов входят входные буфера FIFO, логика арбитража и управления потоком данных, реализованная с помощью ЗУПВ таблица маршрутизации и матричный переключатель (см. рис. 4). Инициализация и реконфигурация сети выполняются программными средствами путем загрузки соответствующих таблиц маршрутизации.
Рис. 4. СБИС 6-портового маршрутизатора ServerNet
Процессорный модуль
Одним из базовых элементов системы является процессорный модуль (ЦП). В ЦП, построенном на принципах быстрого проявления неисправностей, имеются два порта ServerNet, обеспечивающие его соединение через системную сеть с другими ЦП и устройствами в/в. Для реализации механизмов разделяемой общей памяти несколько ЦП могут объединяться друг с другом с помощью шины когерентности.
В состав ЦП входят два микропроцессора, каждый из которых имеет независимый вторичный кэш. Каждый микропроцессор подсоединяется к шине памяти с помощью СБИС процессорного интерфейса. При выполнении обращений к памяти эти СБИС сравнивают выходы микропроцессоров для обнаружения всех возможных ошибок микропроцессора и кэша. Память ЦП защищена кодом ECC, который обеспечивает коррекцию всех одиночных ошибок и обнаружение любых ошибок в отдельных микросхеммах ДЗУПВ или адресных линиях. Массив микросхем памяти соединяется с шиной памяти ЦП через пару СБИС контроллеров памяти. СБИС при обращениях к памяти взаимно проверяют выходы друг друга.
Как уже было отмечено, ЦП могут иметь прямой доступ к памяти других ЦП с помощью дополнительной шины когерентности. Шина обеспечивает аппаратную поддержку стандартных приложений UNIX или Windows NT, которые используют симметричную мультипроцессорную обработку (SMP). Каждый ЦП подсоединяется к шине с помощью пары самоконтролирующихся СБИС интерфейса когерентности. СБИС обеспечивают кэш-когерентный доступ к общей памяти, используя дублированную память тегов и стандартный протокол аннулирования блоков кэш-памяти. Они обеспечивают когерентность кэш-памяти при выполнении обращений к памяти со стороны В/В. Все передачи данных по шине когерентности защищены кодом ECC. Проверка синдрома ECC для данных, пересылаемых по шине, и сравнение выходов СБИС позволяют обнаруживать сбои шины или СБИС интерфейса.
Операционная система, поддерживающая модель системы без разделения ресурсов (подобная NonStop Kernel), для увеличения степени изоляции ошибок может запретить работу с шиной когерентности. В этом режиме когерентность кэш-памяти для всех транзакций с памятью по сети ServerNet обеспечивается средствами системного программного обеспечения. Если же работа шины когерентности разрешена, то ошибка в одном ЦП может привести к отказу всех ЦП, подсоединенных к этой шине.
СБИС процессорного интерфейса ЦП реализуют два порта ServerNet. Линии приема данных обоих портов ServerNet подсоединяются к обеим СБИС процессорного интерфейса. Каждая СБИС формирует данные для передачи по обоим портам ServerNet, но реально данные передаются только из одного порта. Вторая СБИС принимает данные, передаваемые другой СБИС, сравнивает полученное значение со значением, которое она сформировала сама, и сигнализирует об ошибке при любом рассогласовании данных.
Организация ввода/вывода
Новая система в/в обеспечивает практически неограниченные возможности масштабирования по числу объединяемых узлов и пропускной способности сети. Она поддерживает модель распределенных вычислений, разрешая любому процессору обращаться к любому контроллеру в/в и допуская реализацию прямых связей контроллер-контроллер.
Большинство адаптеров в/в ServerNet имеют по два порта, которые обеспечивают две независимые магистрали доступа к адаптеру. Возникновение ошибки в одной из магистралей ServerNet обнаруживается средствами временного контроля. Системное программное обеспечение позволяет перемаршрутизировать и заново повторить запрос.
Дуплексная обработка
Аппаратная отказоустойчивая система реализуется с помощью дуплексной пары, созданной путем соответствующего конфигурирования двух процессорных модулей. Идентичное состояние памяти и кэшей в этих двух модулях поддерживается благодаря выполнению на обоих ЦП одного и того же программного кода с теми же самыми данными, а также поступлению в память обоих ЦП всего потока ввода. Оба ЦП генерируют идентичные исходящие потоки вывода. Один из этих потоков выбирается маршрутизаторами для пересылки в контроллеры в/в или другие процессоры.
Дуплексная работа затрагивает три аспекта построения системы: межмодульную синхронизацию, синхронизацию уровня линий связи ServerNet и обработку ошибок. Для реализации дуплексного режима требуются два маршрутизатора в различных подсетях ServerNet и два ЦП, подсоединенных к разным шинам когерентности для работы с разделяемой памятью. Отказ одного из компонентов системы не может вывести из строя оба ЦП или оба маршрутизатора. Все ЦП, разделяющие шину когерентности, имеют общую синхронизацию. Специалисты Tandem называют эту комбинацию ЦП, шины когерентности и системы синхронизации слайсом. Система, сконфигурированная для дуплексной работы, имеет два слайса.
Работа дуплексной системы требует синхронной работы двух слайсов. Процессоры в каждом слайсе в одном и том же такте выполняют идентичные команды. Входной поток ввода поступает в интерфейс памяти каждого ЦП в одном и том же такте, поэтому в нормальных условиях при отсутствии неисправностей поведение слайсов будет полностью идентичным.
Модули ЦП имеют развитые средства обнаружения неисправностей. ЦП останавливается при обнаружении его схемами контроля любой ошибки. Остановка ЦП приводит к тому, что по обоим его портам ServerNet будет передана запрещенная кодовая комбинация. В результате маршрутизатор может определить неисправный ЦП - основополагающим правилом системы установлено, что все ошибки ЦП должны приводить к передачам по ServerNet запрещенных кодовых комбинаций. Когда маршрутизатор, подсоединенный к дуплексному ЦП, обнаруживает ошибку, он начинает выполнение протокола восстановления. Этот протокол реализован полностью аппаратно. При этом один из ЦП исключается из работы, а другой продолжает функционировать - протокол гарантирует, что исправный ЦП останется работать. Однако существуют случаи, когда в исключенном ЦП неисправности отсутствуют. Например, к исключению ЦП из работы могут привести неисправности в одном из маршрутизаторов или в одной из линий связи ServerNet. В этих случаях система обслуживания может исключить из работы неисправный маршрутизатор, а исключенный ЦП перевести в состояние on-line.
Если при пересылке пакета из ЦП маршрутизатор обнаруживает неисправность линии связи ServerNet, он помечает пакет как недостоверный. Любой узел ServerNet, который получит этот пакет, будет его игнорировать, а это означает, что неисправность в ЦП, маршрутизаторе или линии связи может привести к потере одного или нескольких пакетов. При нормальной дуплексной работе только один из двух маршрутизаторов дуплексных процессоров пересылает пакеты, поступающие из каждого ЦП. Это ограничивает потерю пакетов пределами одной подсети ServerNet. Интерфейсные кристаллы обнаруживают потерю пакетов ServerNet с помощью средств временного контроля. ПО ввода/вывода выполняет восстановление путем повторной передачи данных по альтернативному пути.
Рис. 5. Блок-схема ЦП
Возможности масштабирования
Обычно расширение системы выполняется с помощью встроенных кабельных соединений, а также установки в гнезда расширения ServerNet плат маршрутизаторов. Кроме того, добавление каждого ЦП обеспечивает увеличение числа линий связи ServerNet и эффективно расширяет общую пропускную способность в/в системы. В отличие от других массивно-параллельных архитектур сети ServerNet не ограничены только регулярными топологиями типа гиперкубов или торов. Сеть ServerNet позволяет увеличить число линий связи в любом месте, где требуется дополнительная пропускная способность. Приложения с умеренными требованиями к системе межсоединений могут довольствоваться минимальным количеством связей, а следовательно, использовать достаточно дешевую сеть, в то время как приложения с высокой интенсивностью обработки данных могут рассчитывать на организацию сети с большей связностью.
Сегодня в области масштабируемых распределенных вычислений начали широко использоваться стандартные системы UNIX. В ряде научных приложений кластеры рабочих станций стали заменять суперкомпьютеры. В отличие от NonStop Kernel, которая сразу же была разработана как распределенная операционная система, большинство доступных ОС таким свойством не обладают. В качестве механизма масштабирования в этих системах обычно используется SMP-обработка. Этот механизм предполагает реализацию в системе единой разделяемой памяти, разделяемой системы в/в и когерентности кэш-памяти.
Архитектура ServerNet обеспечивает гибкую реализацию разделяемой памяти, и несколько ЦП могут быть связаны друг с другом шиной когерентности. Вместо использования единой глобальной памяти, память в системе распределена по ЦП. Это приводит к неодинаковому времени доступа, но аппаратура поддерживает глобальное адресное пространство и когерентность кэш-памяти.
С целью повышения производительности в каждом ЦП поддерживается свое собственное локальное пространство памяти. В каждом процессоре локальная память начинается с физического адреса 0, ее размер задается в процессе установки конфигурации системы.
В архитектуре можно выделить три отдельных класса памяти. Наименьшее время доступа имеет локальная память, доступ к глобальной памяти, размещенной на плате локального процессора, занимает больше времени, а доступ к глобальной памяти на плате другого ЦП является самым продолжительным. Локальная память каждого ЦП содержит копию части программного кода и данных операционной системы, доступ к которым разрешен только по чтению. Кроме того, в локальную память операционная система может поместить некоторые частные для процессора данные. Оценка показывает, что размещение этих объектов в локальной памяти и случайное распределение глобальной памяти будут обеспечивать производительность, сравнимую с производительностью системы, реализующей механизмы единой глобальной памяти.
Системы с разделяемой памятью могут функционировать либо в симплексном, либо в дуплексном режиме. Система, построенная на узлах SMP и обеспечивающая отказоустойчивость программными средствами, может использовать только симплексный режим. Полностью аппаратная отказоустойчивая система с масштабируемостью SMP требует реализации дуплексного режима работы.
Шина когерентности может также поддерживать работу гибридных распределенных систем, в которых распределенная память используется для обмена данными между процессорами. В этом случае система распределяет основную часть памяти под "локальные нужды" процессоров, а в глобальную память помещает только разделяемые данные.
Рис. 6. Распределение памяти в четырехпроцессорной SMP-системе
Система обслуживания
Основные функции системы обслуживания включают инсталляцию системы, формирование сообщений об ошибках, диагностику и управление средствами контроля питающих напряжений и температурных режимов работы. Системой обслуживания управляют два сервисных процессора (SP), которые размещаются в каждой стойке и работают как специализированные контроллеры в/в ServerNet. SP, размещенные в разных стойках, также связаны друг с другом посредством ServerNet.
Система обслуживания использует специальную систему независимых шин, базирующихся на двух стандартных интерфейсах: SPI (Serial Peripheral Interconnect) компании Motorola и система сканирования в стандарте IEEE 1149.1 JTAG. SPI применяется в качестве недорогой последовательной шины в/в для связи со всеми средствами контроля и управления состоянием окружающей среды. Система обслуживания использует средства сканирования для управления, инициализации, тестирования и отображения работы всех СБИС. Применяемое Tandem расширение к стандарту IEEE 1149.1, обеспечивает доступ к регистрам СБИС. Средства сканирования никак не затрагивают нормальную работу СБИС. Этот универсальный механизм обеспечивает средство для инициализации СБИС, определения топологии ServerNet и передачи сообщений об ошибках.
Инициализация
Сервисные процессоры несут полную ответственность за инициализацию системы. Во время начальной установки системы они прежде всего создают полный перечень доступных в стойке ресурсов, используя шины обслуживания и перепрограммируемые ПЗУ, которые хранят информацию о конфигурации всех компонентов системы. Затем сервисные процессоры инициализируют эти компоненты, используя интерфейс сканирования.
Вслед за этим сервисные процессоры, расположенные в разных стойках, включаются в процесс динамического определения топологии ServerNet. Этот процесс не зависит от ранее полученных данных по конфигурации системы - он работает ниже уровня передачи пакетов ServerNet, поскольку предшествует установке средств маршрутизации. После того как сервисные процессоры определили топологию сети, они выполняют назначение идентификаторов узлов ServerNet и программирование таблиц маршрутизации в маршрутизаторах. Затем сервисные процессоры начинают выполнение начальной установки операционной системы на главном процессоре. Сервисные процессоры сообщают программе начальной загрузки и операционной системе перечень аппаратных средств и информацию об их конфигурации, включая адреса ServerNet для каждого устройства системы.
Программное обеспечение
Ключевым свойством новой архитектуры является гибкость. Она поддерживает реализованные программно, распределенные отказоустойчивые системы, подобные NonStop Kernel. Аппаратные средства позволяют создавать отказоустойчивые SMP-конфигураций для ОС, подобных UNIX или NT. Системы могут поддерживать также продукты типа Oracle Parallel Server, которые базируются на модели разделяемых общих дисков. ServerNet позволяет создавать гибридные системы. Например, одна система может работать под управлением Windows NT в качестве фронтальной машины для базы данных Oracle Parallel Server. При этом системы соединяются друг с другом посредством ServerNet. Поддержка большого числа ОС требует сведения к минимуму усилий по портированию программ. При этом для обеспечения отказоустойчивости не требуется никаких модификаций в ядре ОС. Основная часть этого специфичного для соответствующей платформы кода работает на сервисном процессоре, независимо от операционной системы основных процессоров.
Специальный набор портируемых приложений обеспечивает средства управления системой. Эти приложения отображают состояние аппаратуры, сообщают об ошибках, предпринимают при необходимости автоматические шаги по восстановлению и обеспечивают интерфейсы для удаленного управления системой, используя стандартные протоколы.
Компьютеры на базе технологии ServerNet
В рамках нового семейства Integrity S4000 компания Tandem выпускает две модели серверов (CM и CO), построенные на базе технологии ServerNet. Можно выделить три главные подсистемы: процессорную, подсистему в/в и подсистему внешней памяти. Процессорная подсистема строится на базе системных плат (SPU), каждая из которых включает по два микропроцессора с памятью и логикой сравнения, связанных дублированными каналами с подсистемой в/в. В качестве микропроцессоров применяются MIPS R4400/200 с кэш-памятью первого уровня емкостью 32 Кбайт. Объем кэш-памяти второго уровня составляет 1 Мбайт/процессор. Объем основной памяти системы может составлять 1 Гбайт.
Подсистема в/в ServerNet создает отказоустойчивую магистраль передачи данных между SPU и контроллерами периферийных устройств и коммуникационными адаптерами. Отказоустойчивость обеспечивается благодаря использованию двух независимых подсетей ServerNet. Integrity S4000 поддерживает несколько типов контроллеров в/в. В составе каждого сервера имеется многофункциональный контроллер SSC (Standard System Controller), который обеспечивает интерфейс ServerNet с контроллерами в/в, контроллерами SCSI-2 для внутренних устройств массовой памяти, сервисным процессором, а также последовательными и сетевыми интерфейсами для поддержки средств диагностики и консоли. Пара контроллеров SSC обеспечивает отказоустойчивый доступ к устройствам массовой памяти. Каждый контроллер SSC содержит по два интерфейса шины SCSI-2, которые соединены с другим контроллером SSC и обеспечивают два независимых пути доступа ко всем внутренним дисковым и ленточным накопителям. Система поддерживает "зеркалирование" дисков для обеспечения непрерывного доступа к хранящимся на дисках данным.
В серверы Integrity S4000 могут также устанавливаться дополнительные контроллеры Ethernet, асинхронного и синхронного интерфейсов, каждый из которых имеет по два порта для обеспечения доступа к процессорам через две независимых подсети ServerNet. Контроллеры SSC и дополнительные контроллеры в/в могут заменяться в режиме "горячей" замены.
Рис. 7. Структурная схема сервера семейства Integrity S4000
Модели CM и CO отличаются максимальным количеством устанавливаемых системных плат SPU и характеристиками подсистем в/в (таблица 1), а также областью применения. Модели CO специально предназначены для установки в помещениях телекоммуникационных узлов связи и удовлетворяют весьма жестким требованиям (стандарт Bellcore TR-NWT-000063, выпуск 5) по обеспечению повышенной безопасности, устойчивости к пожарам и электрическим характеристикам. Они проверены на устойчивость к землетрясениям, имеют трехуровневую систему аварийной сигнализации и резервные источники питания постоянного тока.
Обе модели работают под управлением операционной системы NonStop-UX, базирующейся на стандарте UNIX System V Release 4.2 MP и обеспечивающей средства повышенной готовности и минимизацию плановых простоев системы, включая средства быстрого обнаружения неисправностей и восстановления, а также возможность модернизации программного обеспечения в режиме on-line.
***
ServerNet создает надежную инфраструктуру для построения как крупномасштабных, так и небольших отказоустойчивых систем. Данная архитектура позволяет объединить между собой несколько сотен процессоров и независимо наращивать количество связей между ними и периферийными устройствами, обеспечивая масштабируемую полосу пропускания и избыточные каналы передачи данных. Организация связей типа "каждый с каждым" позволяет предотвратить ненужные промежуточные пересылки данных, которые истощают ресурсы процессоров и памяти. ServerNet предоставляет средства создания горячего резерва и балансировки нагрузки путем коммутации периферийных устройств между собой.
Базирующиеся на ServerNet системы представляют собой существенный шаг вперед в архитектуре коммерческих отказоустойчивых систем. Одна и та же архитектура дает возможность построения отказоустойчивых систем как чисто аппаратными, так и чисто программными средствами. Она обеспечивает также дополнительную гибкость, поддерживая как модель вычислений в разделяемой общей памяти, так и создание кластеров с распределенной памятью.
Виктор Шнитман (vzs@ispras.ru) -- Институт системного программирования РАН, Москва.