Что важнее — надежность или отказоустойчивость? Такой вопрос может показаться странным, поскольку большинство из нас привыкло отождествлять эти понятия.
Действительно, любые устройства или системы, обладающие высокими показателями надежности, весьма редко отказывают — собственно, потому они и считаются надежными. И все же отказы случаются даже у них, поскольку все, что сотворено руками человеческими, рано или поздно ломается. И чем сложнее система, тем выше вероятность, что в ней возникнет неисправность какого-либо элемента.
После отказа системы требуется выявить возникшую неисправность, провести тестирование компонентов, их замену и восстановление работоспособности системы в целом. В итоге система иногда достаточно долгое время простаивает. Для характеристики того, сколь долго система может находиться в нерабочем состоянии, используется показатель «готовности» (вероятность появления отказа), который дает возможность определить общее время технических простоев системы в течение года. Так, при уровне готовности 99% круглосуточно работающая система будет простаивать в среднем свыше 80 часов в году, а комплекс технических средств, используемый пять дней в неделю в течение 8 часов, — около 20 часов в году. Если же показатель готовности увеличить до уровня 99,99%, то время простоя системы, которая должна работать постоянно, составляет около 53 минут за год.
Казалось бы, такой высокий показатель отказоустойчивости вполне достаточен для большинства технических систем. Однако, когда дело касается информационных систем, то нарушение нормального функционирования любой из них может привести к значительному и невосполнимому ущербу — например, к потерям данных, на сбор и обработку которых были затрачены месяцы и годы; к финансовым потерям (как следствие, нарушения обязательств перед клиентами и заказчиками). Например, отказ и последующий простой системы обслуживания пластиковых карт или системы учета платежей Интернет-магазина означают для каждой из них потерю не только определенной части транзакций, но и доверия клиентов, что неминуемо сказывается на бизнесе компаний.
Отказ информационной системы может приводить к непредсказуемым и даже катастрофическим последствиям, если речь идет о системах управления технологическими комплексами, теряющими вследствие такого отказа свое важнейшее свойство — управляемость. Это относится к системам управления движением поездов на железной дороге или самолетов в аэропортах, системам управления телекоммуникациями или нефтеперерабатывающим предприятием. Здесь отказы информационных систем и их основных компонентов должны быть исключены, и потому для них создаются специальные отказоустойчивые комплексы.
Отказоустойчивость — это просто
Основная идея создания отказоустойчивых систем не нова и весьма проста — в каждой системе предусматривается дублирование компонентов, с возможностью переключения прикладных процессов с отказавшего компонента на исправный. Но сложность проблемы создания не подверженных отказам информационных систем состоит в том, что нарушения могут быть сопряжены не только с отказами аппаратных компонентов, но и со сбоями в работе программ, прежде всего операционных систем. Поэтому для каждого вида операционной среды создавались свои отказоустойчивые решения.
Для наиболее распространенных ОС, в частности Windows NT, в середине 90-х годов были разработаны кластерные решения, когда несколько серверов объединяются в комплекс с единой системой управления. Если один из серверов отказывает, то исполняемое на нем приложение переносится на исправный сервер и работа кластера продолжается. Преимущество такого подхода в том, что в кластер можно объединять стандартные серверы, ориентированные на работу в конкретной операционной среде. Однако повышение надежности таких компьютеров достигается лишь тщательным отбором комплектующих, а не изменением внутренней архитектуры, что не позволяет гарантировать их высокую надежность. Еще один существенный недостаток кластерных решений — это невозможность обеспечить беспрерывное исполнение критически важных задач: отказ одного сервера приводит к частичной потере данных и необходимости восстанавливать приложение с исходного момента его запуска, перезагрузив исходную информацию. На это требуется определенное время, в течение которого прикладная задача не исполняется, что с точки зрения обработки данных равносильно простою системы. Кроме того, для восстановления работоспособности вышедшего из строя сервера зачастую необходима полная перезагрузка ОС и всех приложений, что занимает довольно много времени — часы и даже сутки; в итоге общий показатель готовности кластера снижается.
Иной подход был избран несколькими производителями компьютеров, выпускающими мощные отказоустойчивые серверы масштаба предприятия. В их ряду такие компании, как Tandem, Tricord и Stratus Computer. «Сейчас в России установлено более 200 серверов фирмы Tricord, которые без сбоев работают до настоящего времени, — говорит Аурель Паскару, президент компании Hadler Networks (http://www.hadler.com), дистрибьютора и системного интегратора, поставляющего законченные решения для отечественных корпоративных заказчиков. — Хотя сама фирма Tricord ушла с рынка еще три года назад и все техническое обслуживание установленных серверов выполняет наша компания». Среди клиентов Hadler, решивших использовать отказоустойчивые серверы Tricord, — Центральный банк России, РАО «Газпром», МИД РФ, мэрия и городская дума Москвы, банк «Возрождение», ФАПСИ, МГТС г. Москвы, Красноярский металлургический завод, аэропорт Шереметьево, Государственная транспортная компания «Россия», торговая компания «Савва» и многие другие российские предприятия и организации. Большинство из них используют серверы Tricord, созданные для работы в среде ОС Novell Netware или Microsoft Windows NT.
Некоторые отечественные организации используют в своих информационных системах серверы Tricord, разработанные для среды ОС Unix, хотя таких клиентов мало — сказывается сложность эксплуатации данной операционной среды и недостаток квалифицированных специалистов. Именно поэтому в нашей стране до настоящего времени не нашли широкого распространения компьютеры компании Stratus Computer, которая еще 20 лет назад одной из первых начала поставлять на рынок «безотказные» серверы для Unix.
Признавая принципиальную возможность нарушений в работе основных компонентов компьютеров, производители отказоустойчивых систем разработали оригинальные архитектуры серверов, в которых предусматривается высокая степень избыточности главных элементов, включая центральный процессор, память, системные шины, шины ввода/вывода, дисковые контроллеры, дисковые устройства, сетевые контроллеры, источники питания и даже охлаждающие вентиляторы. Высокий показатель готовности таких компьютеров (до 99,999% и даже 99,9999%) достигается за счет того, что в них параллельно функционирует не менее двух модулей, работа которых полностью синхронизирована на уровне выполнения отдельных команд процессора. И если один из элементов выходит из строя, то функционирование сервера не прекращается — дальнейшая обработка данных выполняется на исправном дублирующем модуле, а для пользователей отказ вообще остается невидимым. В серверы встраиваются средства постоянной диагностики всех узлов, выявления и изоляции ошибок. При возникновении ошибки выполнение прикладных задач не останавливается, а переключение процесса с отказавшего модуля на работоспособный занимает один такт работы процессора. Средства мониторинга мгновенно информируют операторов о появлении неисправности, что позволяет заменить отказавший блок, восстановить ОС, приложения и синхронизировать работу модулей сервера за считанные минуты, причем в течение этого времени приложения не прекращают обработку данных. Это основное и неоспоримое преимущество отказоустойчивых серверов по сравнению с кластерными решениями.
У серверов, поставляемых Stratus Computer, есть и еще несколько важных преимуществ перед кластерными решениями. «В отличие от кластеров, которые представляют собой многомашинные комплексы, наши серверы выглядят для ОС, прикладных программ и пользователей как единственный компьютер, в котором используются стандартные компоненты, — говорит Майкл Линднер, региональный менеджер по Центральной и Восточной Европе европейского отделения Stratus. — Поэтому для них не требуется разрабатывать дополнительное ПО, не нужна особая настройка приложений и их отладка».
Говоря об отказоустойчивых компьютерах, стоит упомянуть выпущенный в середине 90-х годов компанией Marathon вычислительный комплекс Endurance 4000, показатели готовности которого близки к показателям для самых совершенных отказоустойчивых систем. В нем также использована идея дублирования процессов обработки данных — сам комплекс представляет собой две параллельно работающие пары компьютеров. Каждая пара создается на основе стандартных ПК — один из них служит вычислительным блоком, а второй выполняет функции системы ввода-вывода. С помощью интерфейсных плат Marathon работа обеих пар компьютеров полностью синхронизирована при параллельном сравнении результатов и тестировании логики процессов, что гарантирует отсутствие сбоев при обработке информации. При отказе одной пары ПК другая продолжает работу, поддерживая текущее состояние прикладных задач.
Простота и экономичность решения компании Marathon оказались настолько очевидными, что Hewlett-Packard лицензировала его и использовала для создания отказоустойчивой серверной системы на базе HP NetServer LC2000 и LH3000 с показателями готовности на уровне 99,99%, что заметно выше, чем у кластеров. Кроме систем HP в России комплексы Marathon Endurance 4000 предлагает компания «Комплексные системы», директор которой Дмитрий Росляков утверждает, что «применение Endurance 4000 в особо ответственных системах у одного из заказчиков, например, позволило за год снизить затраты на техническое обслуживание и потери при отказах более чем на 200 тыс. долл. Есть примеры использования таких комплексов в больших технологических системах, где обрабатываются данные с десятков тысяч датчиков, а система даже в случаях частичных отказов продолжает непрерывно функционировать».
Бесплатная отказоустойчивость
В числе последних разработок, представленных на рынок производителями отказоустойчивых систем, отметим предложение компании Stratus Computer, которая объявила о выпуске новой серии ftServer, серверов «постоянной готовности» для ОС Windows 2000. Компания считает, что широкое распространение систем на базе Windows NT и неминуемый переход на новую сетевую операционную систему Microsoft обеспечат широкий спрос на последнюю разработку Stratus.
Stratus и ее партнер Hadler Networks планируют в конце лета начать поставки в нашу страну первых серверов ftServer 5200, которые будут оснащаться двумя процессорами Pentium III Xeon 550 МГц и памятью, расширяемой до 2 Гбайт. Позднее, когда Intel начнет выпуск новых модификаций Pentium III Xeon 750 МГц с большим кэшем, на рынке появится четырехпроцессорный вариант серверов ftServer 6500 с этими процессорами. Причем, как отмечает Аурель Паскару, цена компьютеров ftServer 5200 составит около 30 тыс. долл., то есть примерно столько же, сколько будет стоить двухмашинный кластер brandname. «С учетом того, что клиенту, решившему приобрести кластер, придется платить за две лицензии на ОС Windows 2000 и, кроме того, приобретать два комплекта прикладных программ, стоимость кластерного решения может оказаться выше, чем ftServer, — отмечает он. — Ведь ftServer — это один компьютер, для которого нужен всего один комплект программ. Мы считаем, что покупателю ftServer высокий уровень отказоустойчивости и готовности сервера, оцениваемый как 99,999% (кстати, кластерное решение не может такого обеспечить), обойдется практически бесплатно».
Сам производитель позиционирует новые серверы не как решение, а как законченный продукт «в коробке», который достаточно установить и включить. И любые приложения, протестированные в среде Windows 2000, будут исполняться на сервере ftServer без каких-либо модификаций и доработок, которые могут потребоваться при запуске их на кластере. Это, естественно, снижает и уровень требований к квалификации обслуживающего новый сервер Stratus персонала, и уровень затрат на его обслуживание и поддержку, что немаловажно для российских заказчиков.
Последнее соображение оказывается достаточно весомым для всех российских заказчиков из сферы среднего и малого бизнеса, где в последнее время стремительно увеличивается число создаваемых информационных систем. Такие клиенты не могут позволить себе дорогостоящие решения и не в состоянии содержать штат квалифицированных специалистов для их обслуживания. Но им, так же, как крупным корпорациям, необходимы надежные решения, которые гарантировали бы их от потерь, связанных с отказами и простоями информационных систем. Stratus и ее партнер считают, что на российском рынке такими заказчиками могут выступать банки, поставщики услуг Интернета, телекоммуникационные компании, промышленные предприятия, торговые фирмы и многие другие организации, в том числе и те, которым пришло время заменять свою устаревшую техническую базу, состоящую из серверов Tricord.