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

В резервных системах (Standby) в случае сбоев и отказов процессы передаются избыточным системам, при этом во время переключения и передачи заданий возникают простои. Целостность данных и транзакций должна обеспечиваться отдельно. Доступность резервных систем достигает 99,5-99,9%, что соответствует незапланированному простою до 8,7 часов в год. В кластерных системах при отказе одного из компьютеров специальное программное обеспечение осуществляет переключение на другой компьютер, что также не исключает короткие сбои и потерю начатых транзакций. Кластерные системы обеспечивают доступность 99,95-99,99%, что соответствует незапланированному простою до четырех часов в год. В отказоустойчивых системах все компоненты сервера реализуются избыточно, а значит, все процессы протекают параллельно. Поэтому в случае сбоев никакого переключения не требуется и переход на функционирующие компоненты осуществляется мгновенно. В отказоустойчивых системах доступность повышается до 99,999-99,9999%. Ежегодный незапланированный простой в общей сложности составляет не более пяти минут, что меньше, чем показатели, достижимые при использовании мейнфреймов.

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

  • Рисунок 1. В полностью избыточно оснащенных отказоустойчивых системах замена компонентов может осуществляться без прерывания работы.доступность аппаратного обеспечения и операционной системы, превышающая 99,999%;
  • непрерывность работы при возникновении одиночных ошибок в аппаратных компонентах (отсутствие точек общесистемного отказа);
  • возможность замены компонентов без прерывания работы приложений и с минимальным ограничением производительности (см. Рисунок 1);
  • обновление микропрограммного обес-печения (Firmware) и компонентов операционной системы в оперативном режиме;
  • гибкость в отношении использования новых технологий;
  • единый образ сервера: устанавливаться и администрироваться должна только одна операционная система;
  • применение стандартных компо-нентов.

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

По мере увеличения числа критически важных для предприятия задач возникает потребность в недорогих серверах, построенных на основе стандартных компонентов и, тем не менее, обес-печивающих высокую доступность, то есть готовность, превышающую 99,999%.

К стандартным компонентам можно отнести:

  • распространенные процессорные технологии с соответствующими наборами микросхем;
  • современные технологии шин и разъемов, такие как USB, PCI и DIMM;
  • стандартные адаптеры PCI, стандартные дисковые технологии — SCSI, SATA и SAS;
  • стандартные операционные системы для серверов, не подвергавшиеся модификациям и поддерживающие бинарную совместимость со всеми программными приложениями, написанными для определенной операционной системы, то есть независимые от аппаратного обеспечения.

С учетом данных предпосылок производители, в частности, Stratus, разработали конструкцию серверов, которые уже существуют в четвертом поколении. При этом усовершенствованные стандартные компоненты включаются в следующее поколение компьютеров. Далее мы покажем, как отказоустойчивые серверы реализуют высокую доступность.

ИЗБЫТОЧНОСТЬ АППАРАТНОГО ОБЕСПЕЧЕНИЯ

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

Систему Stratus ftServer можно представить в виде двух независимых и автономных компьютеров, которые между собой связаны разделенной на две части, но общей шиной PCI посредством логики сравнения. Обе системы не только установлены в одном корпусе, но и ведут себя, с точки зрения внешнего наблюдателя, как один компьютер. Поэтому мы будем говорить об одном компьютере, поделенном на две половины, каждая из которых видит все устройства PCI. Базовая идея этого подхода основывается на требованиях применения стандартных компонентов: так, по большей части можно воспользоваться системной платой, разработанной специально для данного типа процессоров. За рамки стандарта выходит только соединение между двумя половинами компьютера и логика сравнения. В сервере Stratus ftServer они реализуются посредством дополнительной, избыточной, микросхемы ASIC.

Синхронизация процессоров и оперативной памяти между обеими системными платами достигается посредством метода пошагового выполнения с блокировкой (Lock Stepping), благодаря которому компоненты пребывают в одинаковом состоянии в любой момент времени (см. Рисунок 2). Естественно, очень важно, чтобы исходное состояние обеих половин компьютера полностью совпадало, поскольку лишь при таком условии возможно функционирование Lock Stepping. Это обеспечивается особыми мерами при загрузке:

1. Сначала загружается одна половина компьютера, в то время как вторая пребывает в режиме ожидания и полном бездействии. Первый шаг после включения — самопроверка. Если тест пройден успешно, происходит обращение к первому доступному диску операционной системы и осуществляется нормальная загрузка ОС. Как только одна сторона загрузилась полностью, логика сравнения передает сообщение драйверу операционной системы о том, что сторона 1 пребывает в симплексном режиме, а сторона 2 ждет включения (Removed from Service).

ДИАГНОСТИКА

2. Теперь драйвер активирует включение, запуская самодиагностику второй платы (Diagnostics). В случае возникновения неполадок тест повторяется, а показания счетчика ошибок увеличиваются. По достижении максимального количества неудачных попыток система объявляет плату неисправной (broken).

3. Если тестирование прошло успешно, система проверяет совпадение версий микропрограммного обеспечения на обеих системных платах. В большинстве случаев версии одинаковы, к примеру, при перезапуске после предыдущего отключения. Однако иногда при замене платы на ее дубликате оказывается установлено обновленное микропрограм-мное обеспечение. В случае расхождения в версиях ПО осуществляется перезапись микропрограммного обеспечения — с работающей системной платы на новую (инициализация). Фактически, выполняется откат микропрограммного обес-печения.

СИНХРОНИЗАЦИЯ

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

5. После полного переноса содержимого оперативной памяти процессоры на обеих системных платах переходят в идентичное исходное состояние и обработка начинается заново. С этого момента обе системные платы функционируют синхронно, в режиме Lock Stepping.

В следующей публикации мы расскажем об управлении тиражируемыми интерфейсами PCI со стороны отказо-устойчивых серверов.

Ульрих Ленцстарший консультант в Stratus Technologies.


Рисунок 2. Архитектура отказоустойчивых серверов: техногия Lock Step синхронизирует избыточные процессоры.