Александр Рыжов,
менеджер по развитию бизнеса, продуктов и решений на базе серверов Himalaya
Alexander.ryzhov@compaq.ru

Еще десятилетие назад отказоустойчивые информационные системы высокой готовности (Нigh-Аvailability, HA) занимали хотя и значимую, но все же четко очерченную рыночную нишу, определяемую такими жизненно важными для бизнеса приложениями, как автоматизация банковской сферы, биржевая деятельность, расчеты по кредитным и дебетовым картам, справочные и аварийные службы. Тогда, как и сейчас, информационные системы, минимизирующие и плановые, и внеплановые перерывы в работе, в основном были востребованы крупными финансовыми, телекоммуникационными и другими компаниями и организациями.

Для подобных жизненно важных приложений непрерывный недельный рабочий цикл в 24x7 часов - не просто прихоть, но насущная необходимость. По мере того как компании распространяют свою деятельность на все большее количество часовых поясов и увеличивают время деловой активности за счет использования Интернет-приложений, допустимые перерывы в их работе заметно сокращаются. Пользователи и клиенты, привыкшие к возможности в любое время суток пользоваться банкоматами и системами авторизации кредитных карточек, ожидают от нового поколения сетевых приложений непрерывной готовности к работе и бескомпромиссной надежности. В результате концепция непрерывного поддержания работоспособности (100% uptime) находит выражение во все более широком и динамично развивающемся классе приложений. Стопроцентной работоспособности сегодня требуют самые разные типы приложений.

Что такое высокая готовность

Степень готовности, или время непрерывной работоспособности системы, обычно определяется как период (или процент) времени, в течение которого система способна выполнять заданные функции с заданными эксплуатационными параметрами. Здесь учитывается не просто надежность системы (под которой подразумевается заданное количество сбоев или простоев за определенный интервал времени, например, год), но в гораздо большей степени - время восстановления системы после сбоя.

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

Системы NonStop Himalaya, уже более четверти века предлагаемые на рынке, ориентированы на операционную поддержку жизненно важных бизнес-приложений, которые должны выполняться непрерывно. Подразделение Tandem Business Unit, входившее в структуру корпорации Compaq (http://www.compaq.com), в свое время стало пионером в применении отказоустойчивых процессоров и внедрении других отказоустойчивых технологий - резервирования блоков питания, зеркалирования дисков и использования двухпортовых процессоров. Однако аппаратной устойчивости к сбоям еще недостаточно для непрерывной работоспособности приложений. Учтя нужды пользователей, работающих с базами данных и транзакциями, Compaq усовершенствовала свой программный пакет NonStop, изолировав функционирование приложений от отказов в аппаратуре.

Fig.1
Семейство серверов NonStop Himalaya.

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

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

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

Хотя термин "отказоустойчивость" обычно ассоциируется с восстановлением системы после аппаратных сбоев, его с успехом можно использовать и при описании восстановления после сбоев программных.

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

Технология NonStop-вычислений

Концепция NonStop-вычислений ориентирована на достижение наивысшего уровня отказоустойчивости для пользователя вычислительных систем при наименьшей стоимости владения ими. В рамках этой концепции время простоя оценивается в терминах работоспособности приложения, а не просто стандартно понимаемой готовности системы. Главная особенность технологии NonStop - поддержание непрерывной работоспособности, в том числе в условиях непредвиденных ситуаций, с возможностью автоматического (без вмешательства оператора) аварийного восстановления и ограничением распространения последствий сбоя. Непредвиденные ситуации при этом могут включать:

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

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

Технология парных процессов

Сервер NonStop Himalaya представляет собой блочно-ориентированный кластер процессоров с неразделяемыми ресурсами, работающих независимо, в параллельных потоках. Каждому процессору выделяется собственный объем оперативной памяти и собственная копия ОС. Уже одна только эта особенность сервера резко уменьшает возможность возникновения сбоев. Однако отказоустойчивость не сводится лишь к тому, чтобы сделать систему нечувствительной к отказам одиночных компонентов. На серверах NonStop Himalaya дополнительно реализована уникальная программная технология так называемых парных процессов. Речь идет об организации пары вычислительных процессов (первичного и резервного), одновременно выполняющихся на физически различных процессорах. Первичный процесс по необходимости посылает контрольные сообщения о своем состоянии резервному процессу, чтобы тот в случае аппаратного или программного сбоя на первичном процессе смог "подхватить" его состояние. Резервные процессы отнимают, как правило, очень небольшое количество процессорных циклов, так что соответствующие процессоры могут безболезненно выполнять основную работу.

Преимущества этого метода достаточно очевидны. Так, если процесс, управляющий доступом к диску, дает сбой, резервный процесс прозрачно перенаправляет приложению необходимые ему данные. При сбое в TCP/IP-процессе хост-сокет будет поддерживаться резервным процессом. В случае сбоя одного из процессоров резервные процессы других процессоров подхватывают его функции на лету - уже открытые файлы остаются открытыми, а данные - неповрежденными. В результате исключается необходимость формировать заново сложные запросы к базам данных: достаточно осуществить откат транзакции и повторить ее заново.

Важнейший оценочный критерий для простоев - не сама по себе возможность восстановления после сбоев, а время недоступности приложения, затрачиваемое на процедуру восстановления. Клиентский уровень обслуживания (а это лучшая мера оперативности и готовности) в NonStop Himalaya остается постоянно высоким, и это - важнейшая особенность данной системы.

Место NonStop Himalaya среди отказоустойчивых систем

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

Целостность данных

Даже безостановочно функционирующая база данных может оказаться бесполезной, если она содержит поврежденные данные. В отличие от большинства продуктов, где возможен только выборочный контроль целостности данных, системы NonStop Himalaya обеспечивают полный контроль работоспособности микропроцессоров, внутренних шин и драйверов. Процессоры серверов NonStop Himalaya включают в себя два жестко-параллельных микропроцессорных чипа, исполняющих идентичные потоки инструкций. Выходные данные этих микропроцессоров непрерывно сопоставляются, и в случае несовпадения процессор немедленно приостанавливает их обработку, тем самым предотвращая дальнейшее распространение испорченных данных. Кроме того, эта технология, называемая fail-fast, предотвращает сбои микропроцессоров, аппаратные и программные ошибки, а также проверяет функции микропроцессоров на предмет дефектов, вкравшихся в процессе их изготовления. В случае сбоя дефектный компонент незамедлительно исключается из непрерывной цепочки вычислений еще до того, как он сможет вызвать в ней непредсказуемые, а следовательно, трудно поддающиеся обнаружению и устранению сбои. По мере увеличения плотности размещения элементов (транзисторов и микросборок) на кристалле процессора технология fail-fast с использованием жестко-параллельных процессоров становится все более насущной для выполнения жизненно важных бизнес-приложений.

С целью выявления сбоев на самой ранней стадии их возникновения все массивы данных в ОС NonStop Kernel и ее сетевых компонентах защищены постоянным мониторингом контрольных сумм.

Пользователь судит о доступности приложения по пригодности его выходных данных. Вычислительное решение NonStop Himalaya обеспечивает безусловную целостность всех обрабатываемых данных, исключая их потерю или повреждение. Это относится к записи данных из памяти на носители, транзакциям с базами данных, функционированию сети.

Модульность, масштабируемость, реконфигурация

Решение NonStop Himalaya предусматривает продуктивное и предсказуемое наращивание возможностей действующего приложения при гарантированном уровне сервиса.

В обычных вычислительных системах плановые простои составляют около одной трети от всех простоев системы. Для их сведения к минимуму в серверах NonStop Himalaya предусмотрен скрытый режим техобслуживания и реконфигурации, полностью незаметный для исполняемых приложений. Сервер динамически реконфигурирует себя при замене или удалении компонентов аппаратной части - процессоров, устройств хранения данных, контроллеров (так называемая горячая замена), тем самым делая ненужной перезагрузку всей системы. По этой причине многие пользователи NonStop Himalaya ни разу не проводили планового останова своих систем.

Аттестованные сети

Технология парных процессов повышает работоспособность сетевой среды. Такие LAN-протоколы, как TCP/IP, IPX/SPX и ATM (режим асинхронной передачи), а также большинство протоколов WAN, включая SNA и X.25, могут выполняться с использованием технологии парных процессов. Кроме того, все LAN-контроллеры - двухпортовые и, следовательно, легко конфигурируются для обеспечения отказоустойчивости в направлении сервер - клиент. Поскольку WAN-контроллеры также двухпортовые, то при коммутации LAN они аналогичным образом поддерживают избыточные линии связи WAN-протокола.

Сервис

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

 

Серверы Himalaya S-серии

Данная система представляет собой слабо связанный кластер, элементами которого являются не только процессорные модули, но также контроллеры ввода-вывода и дисковые подсистемы. Все компоненты кластера связаны по дублированным сетям ServerNet II, которые заменяют системную шину сервера. Уникальность архитектуры состоит в полной децентрализации - все объекты в кластере равноправны и, естественно, дублированы. Все жесткие диски системы зеркалированы - одни и те же данные записываются одновременно на два диска. Каждый процессор соединен с другими процессорами и устройствами ввода-вывода по двум путям. Дублирование всех компонентов сервера и путей между ними гарантирует аппаратную отказоустойчивость. Программная отказоустойчивость реализуется с помощью технологии парных процессов. На каждом из процессоров выполняется свой экземпляр ОС, что позволяет запускать разные приложения на разных процессорах. Каждый процесс, запущенный на каком-либо процессоре, имеет свою резервную копию на другом процессоре, которая не является активной (не занимает процессорного времени). Она общается с активным процессом через контрольную точку - в некоторые моменты времени получает полный контекст активного процесса. Таким образом, если приложение по какой-то причине аварийно завершилось (выход из строя самого процессора, ошибка в оперативной памяти или плавающая ошибка в программе), то резервный процесс берет управление на себя и приложение продолжает выполняться с момента последней контрольной точки. Речь здесь идет именно о продолжении работы приложения (take over), а не о перезапуске этого приложения (restart).

Fig.2
Архитектура серверов Himalaya.

Для платформы характерны сбалансированная архитектура, высокая производительность, постоянный контроль за целостностью данных и линейный рост производительности при увеличении числа процессоров от 2 до 4080.