Одним из способов повышения надежности дисков является параллельное использование нескольких дисков — дисковых массивов RAID (Redundant Array of Inexpensive Disks — избыточный массив недорогих дисков). Идея заключается в подключении группы обычных (недорогих), как правило, однотипных дисков к RAID-контроллеру — устройству, которое представляет хост-компьютеру этот массив как один диск с улучшенными свойствами. В зависимости от алгоритма представления диска различают следующие типы (уровни) RAID [11]. RAID 1 — дисковый массив с дублированием информации, так называемая схема с зеркальным отображением данных (рис. 3.4). Два (или более) диска дублируют друг друга. Запись информации выполняется одновременно на все диски, чтение — с любого свободного. Отказ одного диска приводит только к снижению скорости чтения. Отказавший диск может быть заменен, и для ввода его в действие требуется просто копирование данных с оставшегося диска. Недостатками RAID 1 являются низкий коэффициент использования дискового пространства (всего 50 %, ниже, чем на всех дру-гих уровнях) и снижение скорости записи, т.к. она должна производиться согласо-ванно на два диска. RAID 1 прост в реализации, позволяет создать отказоустойчивую систему всего из двух дисков, самый большой его минус — высокая стоимость.
RAID 2 — схема резервирования данных с использованием кода Хэмминга для коррекции (рис. 3.5). Поток данных разбивается на слова таким образом, что коли-чество бит в слове равно количеству дисков и при записи слова каждый отдельный бит записывает ся на свой диск. Для каждого слова вычисляется код коррекции ошибок, который записывается на выделенные диски для хранения контрольной информации. Их число равно количеству бит в слове контрольной суммы. Например, если слово состоит из четырех бит, то под контрольную информацию отводится три диска. RAID 2 — один из немногих уровней, позволяющих обнаруживать двойные ошибки и исправлять одиночные. При этом он является самым избыточным среди всех уровней с контролем четности. Такая схема хранения подходит для приложений, где требуется передача большого объема данных (благодаря параллельному обращению к дискам). Однако она неприменима для задач с большим количеством запросов малого объема (из-за сравнительно большого объема операций, который требуется для перераспределения данных). RAID 2 относительно дорог, но при увеличении ко-личества дисков стоимость реализации снижается. Эта схема хранения данных при-меняется мало, поскольку плохо справляется с большим количеством запросов, сло-жна в организации и имеет незначительные преимущества перед уровнем RAID 3.
RAID 3 — отказоустойчивый массив с параллельным вводом/ выводом и диском контроля четности. Поток данных разбивается на блоки на уровне байт (хотя возможно и на уровне бит) и записывается одновременно на все диски массива, кроме диска, который выделен для хранения контрольных сумм, вычисляемых при записи данных. Поломка любого из дисков массива не приведет к потере информа-ции, ее можно восстановить вычислением операции «исключающее ИЛИ (XOR)», примененной к информации на оставшихся дисках. Этот уровень имеет намного меньшую избыточность, чем RAID 2, в схеме которого большинство дисков, храня-щих контрольную информацию, нужны для определения неисправного разряда. Поскольку отказ (ошибка чтения) каждого диска определяется его встроенным кон-троллером, RAID-контроллер обнаруживает ошибочный диск и вычисляет его бит через бит паритета. Благодаря разбиению данных на блоки RAID 3 имеет высокую производительность. При считывании информации не производится обращения к диску с контрольными суммами (в случае отсутствия сбоя), что происходит всякий раз при операции записи. Поскольку при каждой операции вво да-вывода производится обращение практически ко всем дискам массива, одновременная обработка нескольких запросов невозможна. Этот уровень подходит для приложений с файлами большого объема и малой частотой обращений (в основном это сфера мультимедиа). Использование только одного диска для хранения контрольной информации объясняет тот факт, что коэффициент использования дискового пространства достаточно высок (и как следствие этого — относительно низкая стоимость). Кроме того, достоинством RAID 3 является незначительное снижение производительности при сбое и быстрое восстановление информации. Недостатком является сложность реализации.
RAID 4 — отказоустойчивый массив независимых дисков с общим диском контроля четности, во многом схож с уровнем RAID 3. Поток данных разделяется не на уровне байтов, а на уровне блоков, каждый из которых записывается на отдельный диск. После записи группы блоков вычисляется контрольная сумма, которая записывается на выделенный для этого диск (рис. 3.6). Благодаря большему, чем у RAID 3, размеру блока возможно одновременное выполнение нескольких операций чтения. RAID 4 повышает производительность передачи файлов малого объема (за счет распараллеливания операции считывания). Но поскольку при записи должна изменяться контрольная сумма на выделенном диске, одновременное выполнение операций невозможно (налицо асимметричность операций ввода и вывода). Этот уровень имеет все недостатки RAID 3 и не обеспечивает преимущества в скорости при передаче данных большого при передаче данных большого объема. Схема хранения разрабатывалась для приложений, в которых данные изначально разбиты на небольшие блоки, поэтому нет необходимости разбивать их дополнительно. RAID 4 — неплохое решение для файл-серверов, информация с которых в основном считыва-ется и редко записывается. Эта схема хранения данных имеет невысокую стоимость, но ее реализация достаточно сложна, как и восстановление данных при сбое.
RAID 5 — отказоустойчивый массив независимых дисков с распределением контрольных сумм (массив с вращающейся четностью). Самый распространенный уровень. Блоки данных и контрольные суммы циклически записываются на все диски массива, отсутствует выделенный диск для хранения информации о четности: нет асимметричности конфигурации дисков (рис. 3.7). В случае RAID 5 все диски массива имеют одинаковый размер, но один из них невидим для операционной системы. Например, если три диска имеют размер 1 Гб, то фактически размер массива составляет 2 Гб, 1 Гб отводится на контрольную информацию. Самый большой недостаток уровней RAID от 2 до 4-го — это наличие отдельного (физического) ди-ска, хранящего информацию о четности. Операции считывания не требуют обраще-ния к этому диску, и, как следствие, скорость их выполнения достаточно высока, но при каждой операции записи на нем изменяется информация, поэтому схемы RAID 2—4 не позволяют проводить параллельные операции записи. RAID 5 лишен этого недостатка, т.к. контрольные суммы записываются на все диски массива, что делает возможным выполнение нескольких операций считывания или записи одновременно.
Максимальное количество дисков в массиве — пять (данные занимают объем, соответствующий четырем дискам, объем одного диска — с контрольными суммами. Минимальное количество дисков — три (объем двух дисков с данными, одного — с контрольной суммой).
RAID 6 — это отказоустойчивый массив независимых дисков с распределением контрольных сумм, вычисленных двумя независимыми способами.Этот уровень во многом схож с RAID 5, но наличие двух не-зависимых схем контроля четности позволя-ет сохранять работоспособность системы при одновременном выходе из строя двух накопителей. Для вычисления контрольных сумм в RAID 6 используется алгоритм, построенный на основе кода Рида—Сало-мона. При его выполнении применяются специальные таблицы, или он является итерационным процессом, использующим линейные регистры с обратной связью. Этот уровень имеет очень высокую отказоустойчивость, большую скорость считывания (данные хранятся блоками, нет выделенных дисков для хранения контрольных сумм), но из-за большого объема контрольной информации — низкую скорость записи. Он очень сложен в реализации, характеризуется низким коэффициентом использования дискового пространства (для пятидискового массива он составляет всего 60 %, ситуа-ция исправляется с ростом числа накопителей). RAID 6 по многим характеристикам проигрывает другим уровням, поэтому на сегодняшний день не реализован ни одной фирмой, производящей RAID-системы. Все модели RAID 6, которые встречаются на рынке, как правило, являются небольшими модификациями RAID 5).
RAID 7 во многом похож на RAID 4 с возможностью кеши-рования данных. В состав RAID 7 входит контроллер со встроенным микропроцессором под управлением операционной системы с защитой информации (SOS— secure operation system). Она позволяет обрабатывать все запросы на передачу данных (как между отдельными дисками, так и между массивом и компьютером) асинхронно и независимо. Блок вычисления контрольных сумм интегрирован с блоком буферизации, для хранения информации о четности используется отдельный диск, который может быть размещен на любом канале. Для повышения отказоустойчивости дисков используются четыре блока магнитных головок на каждый диск (рис. 3.8). RAID 7 имеет высокую скорость передачи данных и обработки запросов, хорошее масштаби-рование (при увеличении числа дисков повышается скорость записи). Самым большим недостатком этого уровня является стоимость его реализации.
У RAID-массивов всех уровней есть общая характеристика: перационная си- 195
стема сервера, к которому они подключены, работает с ними как с единым логи-ческим диском. Это означает, что можно объединить различные RAID-уровни для создания массива массивов, где физические диски заменены RAID-массивами второго уровня, которые необязательно должны иметь ту же схему хранения дан-ных, что и массив первого уровня. Объединение массивов позволяет создать систе-мы хранения огромной емкости. В связи с техническими трудностями восстановле-ния информации в случае сбоя RAID-массивы пятого уровня обычно содержат не более 5—6 дисков, их совокупной емкости может не хватить для хранения всей информации, но создание массива массивов решает эту проблему. Кроме того, ком-бинирование RAID-уровней позволяет использовать их преимущества и сглаживать недостатки. Обычно соединение устроено таким образом, что сервер работает с высокопроизводительным RAID-массивом, а низкопроизводительные используются для обеспечения сохранности данных. Возможны и более сложные массивы, в которых используется двухступенчатые комбинации описанных уровней:
RAID 10—массив RAID 0, собранный из зеркальных дисков RAID 1, обеспечивает высокую скорость и надежность, но ценой большой избыточности. Максимальное количество дисков — десять (восемь дисков с данными, один диск с контрольной суммой и один резервный);
RAID 30—массив RAID 0, собранный из блоков RAID 3;
RAID 50—массив RAID 0, собранный из блоков RAID 5. обеспечивает отказо-устойчивость и высокую производительность.
Итак, идея создания RAID-системы заключается в следующем: из набора обычных дисковых накопителей создается массив, который управляется специальным кон-троллером и воспринимается сервером как единый логический диск большой емко-сти (как правило, физических дисков, способных хранить такой объем информации, не существует). Высокое быстродействие системы обеспечивается возможностью параллельного выполнения нескольких операций вывода (ввода), а сохранность информации — ее дублированием или вычислением контрольных сумм. Каждый уровень RAID имеет свои особенности, поэтому подходит для выполнения только определенного круга задач. Массивы RAID могут быть реализованы для главного компьютера как аппаратно, так и программно.
Аппаратный RAID-контроллер представляет собой интеллектуальное устройство со своим мощным микропроцессором и интерфейсами для подключения дисков, а также интерфейсом подключения к главному компьютеру. RAID-контроллер может быть как внешним (отдельное устройство со своим блоком питания и отсеком для установки дисков), так и внутренним.
Большим недостатком внутренних контроллеров является их привязка к определен-ной платформе и операционной системе, подчас приходится сталкиваться с некор-ректной работой драйверов. Кроме того, эти контроллеры имеют ограниченные воз-можности по построению отказоустойчивых систем и масштабированию. Внут-ренние контроллеры RAID-массивов значительно различаются по своим характерис-тикам и стоимости. Их основные производители — компании Mylex, AMI, Adaptec.
Внешняя RAID-система характеризуется более высокой надежностью, поскольку их компоненты изначально подогнаны один к другому в отличие от сборных решений. Для настройки внешнего RAID-массива не требуется драйверов, заменить вышед-шие из строя диски значительно легче. Такие системы способны обслуживать запросы с нескольких серверов, следовательно, позволяют создавать сверхнадежные кластерные системы (к RAID-массиву подключены два сервера, выполняющие текущие задачи, при выходе из строя одного все функции берет на себя другой; про-изводительность, конечно, снижается, но кластер остается работоспособным). Внеш-нюю RAID-систему и сервер, к которому она подключена, можно разнести на значи-тельное расстояние, что спасет информацию в случае, если в серверной комнате про-изойдет ЧП (пожар, затопление и т.д.). Единственным недостатком внешних RAID-систем является их высокая стоимость.
В качестве интерфейса дисков чаще всего используют шины SCSI (Small Computer System Interface), поскольку требуется подключение большого числа устройств. Есть и RAID-контроллеры с интерфейсом ATA (Advanced Technology Attachment), но это не типично. В качестве интерфейса с хост-компьютером для внешних RAID-контроллеров могут использоваться SCSI или FCAL. Для внутренних RAID-контроллеров используется шина PCI. Функции RAID могут быть реализованы и программно средствами операционной системы (например, такая возможность предусмотрена в Windows NT). При этом в качестве интерфейсов дисков используются интерфейсы стандартных контроллеров (предпочтительно SCSI, но допустим и ΑΤΑ). Программный RAID-массив обеспечивает высокую отказоустойчивость, но требует большой вычислительной мощности для обеспечения повышенного быстродействия.
В системах непрерывной готовности применяются сочетания RAID-массивов разных уровней. На рис. 3.9. приведена масштабируемая подсистема RAID COMPAREX OpenLine D1200, используемая в универсальных ЭВМ архитектуры S/390. RAID-контроллер Ultra-SCSI разбивает информацию на блоки и распределяет ее по контроллерам Ultra-SCSI, которые размещают блоки на дисках. В системах реализованы массивы RAID 1, RAID 0 и RAID 5. Функции RAID могут быть реализованы и программно средствами операционной системы (например, такая возможность предусмотрена в Windows NT). При этом в качестве интерфейсов дисков используются интерфейсы стандартных контроллеров (предпочтительно SCSI, но допустим и ΑΤΑ). Программный RAID-массив обеспечивает высокую отказоустойчивость, но требует большой вычислительной мощности для обеспечения повышенного быстродействия.
В системах непрерывной готовности применяются сочетания RAID-массивов разных уровней. На рис. 3.9. приведена масштабируемая подсистема RAID COMPAREX OpenLine D1200, используемая в универсальных ЭВМ архитектуры S/390. RAID-контроллер Ultra-SCSI разбивает информацию на блоки и распределяет ее по контроллерам Ultra-SCSI, которые размещают блоки на дисках. В системах реализованы массивы RAID 1, RAID 0 и RAID 5. Для повышения готовности система снабжена дисками, находящимися в горячем резерве Для повышения готовности система снабжена дисками, находящимися в горячем резерве. Это позволяет заменять отказавшие диски в оперативном режиме. Для повышения отказоустойчивости все контроллеры продублированы.
характеристика: операционная си- 3.3.3. Понятие об отказоустойчивых вычислительных системах
Одной из основных задач построения вычислительных систем остается обеспечение их продолжительного функционирования, обеспечивающего надежность, готовность и удобство обслуживания. Решение этой задачи предполагает, в первую очередь, борьбу с неисправностями системы, порождаемыми отказами и сбоями в ее работе.
Повышение надежности обеспечивается путем снижения интенсивности отказов и сбоев за счет применения электронных схем и компонентов с высокой и сверхвысокой степенью интеграции, снижения уровня помех, реализации облегченных режимов работы схем, поддержки необходимых тепловых режимов их, а также за счет совершенствования методов сборки аппаратуры. Единицей измерения надежности является среднее время наработки на отказ.
Повышение готовности предполагает подавление, в определенных пределах, влияния отказов и сбоев на работу системы. Это осуществляется с помощью средств контроля и коррекции ошибок, а также средств автоматического восстановления вычислительного процесса после проявления неисправности, включая аппаратурную и программную избыточность, на основе которой реализуются различные варианты отказоустойчивых архитектур. Повышение готовности — способ сокращения времени простоя системы. Единицей измерения здесь является коэффициент готовности, который определяет вероятность пребывания системы в работоспособном состоянии в любой момент времени. Статистически коэффициент готовности неизбыточной системы при организованном ремонте определяется как отношение среднего времени наработки на отказ к сумме этого времени и среднего времени восстановления, иначе говоря, среднее время между моментом обнаружения неисправности и моментом возврата системы к полноценному функционированию. Очевидно, что основные эксплуатационные характеристики системы существенно зависят от удобства ее обслуживания, в частности, от ремонтопригодности и контролепригодности.
В литературе по вычислительной технике все чаще употребляются термины «системы высокой готовности», «устойчивые и эластичные к сбоям и отказам системы», «системы непрерывной и постоянной готовности».
Высокая готовность. В конструкциях с высоким коэффициентом готовности для минимизации планового и непланового времени простоя используют обычную компьютерную технологию. При этом конфигурация системы обеспечивает ее быс-трое восстановление, после обнаружения неисправности, для чего в ряде мест исполь-зуются избыточные аппаратные и программные средства. Время, в течение которого программа, отдельный компонент или система простаивает, колеблется от несколь-ких секунд до нескольких часов. Обычно системы высокой готовности хорошо масштабируются.
Все системы высокой готовности обеспечивают устойчивость к отказам и сбоям в работе дисков и системы электропитания благодаря применению принципа избыточ-ности: RAID-структуры, ИБП и т.п. Следует отметить, что для современных систем высокой готовности характерно использование технологии «горячей» замены отказавшего узла.
Эластичность к сбоям. Ряд поставщиков компьютерного оборудования делит весь диапазон систем высокой готовности на две части, при этом в верхней части оказы-ваются системы, эластичные к сбоям. Эластичность к сбоям определяет более корот-кое время восстановления, которое позволяет системе быстро откатиться назад при обнаружении неисправности.
Устойчивость к сбоям. Устойчивые к сбоям системы («отказоустойчивые системы») имеют в своем составе избыточную аппаратуру для всех функциональных блоков, включая процессоры, источники питания, подсистемы ввода-вывода и подсистемы дисковой памяти. Если соответствующий функциональный блок неправильно работает, всегда имеется горячий резерв и неисправность в любом блоке не может вывести систему из строя. В ряде отказоустойчивых систем избыточные аппаратные средства можно использовать для распараллеливания обычных работ. Время восстановления в таких системах не должно превышать одной секунды.
Непрерывная готовность. Лучшими среди отказоустойчивых систем являются системы, обеспечивающие непрерывную готовность. В литературе по вычислительной технике все чаще употребляются термины «системы высокой готовности», «устойчивые и эластичные к сбоям и отказам системы», «системы непрерывной и постоянной готовности».
Высокая готовность. В конструкциях с высоким коэффициентом готовности для минимизации планового и непланового времени простоя используют обычную компьютерную технологию. При этом конфигурация системы обеспечивает ее быс-трое восстановление, после обнаружения неисправности, для чего в ряде мест исполь-зуются избыточные аппаратные и программные средства. Время, в течение которого программа, отдельный компонент или система простаивает, колеблется от несколь-ких секунд до нескольких часов. Обычно системы высокой готовности хорошо масштабируются.
Все системы высокой готовности обеспечивают устойчивость к отказам и сбоям в работе дисков и системы электропитания благодаря применению принципа избыточ-ности: RAID-структуры, ИБП и т.п. Следует отметить, что для современных систем высокой готовности характерно использование технологии «горячей» замены отказавшего узла.
Эластичность к сбоям. Ряд поставщиков компьютерного оборудования делит весь диапазон систем высокой готовности на две части, при этом в верхней части оказы-ваются системы, эластичные к сбоям. Эластичность к сбоям определяет более корот-кое время восстановления, которое позволяет системе быстро откатиться назад при обнаружении неисправности.
Устойчивость к сбоям. Устойчивые к сбоям системы («отказоустойчивые системы») имеют в своем составе избыточную аппаратуру для всех функциональных блоков, включая процессоры, источники питания, подсистемы ввода-вывода и подсистемы дисковой памяти. Если соответствующий функциональный блок неправильно работает, всегда имеется горячий резерв и неисправность в любом блоке не может вывести систему из строя. В ряде отказоустойчивых систем избыточные аппаратные средства можно использовать для распараллеливания обычных работ. Время восстановления в таких системах не должно превышать одной секунды.
Непрерывная готовность. Лучшими среди отказоустойчивых систем являются системы, обеспечивающие непрерывную готовность. А стоимости простоя системы остается достаточно сложной задачей, поскольку она связана не только с потерей работоспособности системы, но существенно зависит и от организационной структуры конкретного предприятия и от места проявления неисправности.
3.3.3.1. Основные принципы построения систем непрерывной готовности
Реализация вычислений в режиме непрерывной готовности затрагивает практически все аспекты разработки системы — в ней не должно быть ни одного функционального узла, отказ которого может вывести из строя систему в целом. Существуют следующие принципы построения отказоустойчивых систем.
1. Модульность. Каждый модуль системы является единицей обслуживания и ремонта с ограничением распространения неисправности. В случае отказа модуля он заменяется на другой.
2. Быстрое проявление неисправности. Каждый модуль должен либо работать правильно, либо немедленно останавливаться.
3. Независимость отказов. Модули и связи между ними должны быть разработаны так, что отказ одного из модулей никак не влиет на работу остальных.
4. Избыточность и ремонт. В системе должны быть заранее установлены или сконфигурированы запасные модули так, что при отказе одного из модулей запасной модуль может заменить его практически немедленно. Отказавший модуль может ремонтироваться автономно, в то время как система продолжает работать.
5. Принцип дублирования дуплексных модулей.
Принцип быстрого проявления неисправности обычно реализуется с помощью двух методов: самоконтроля и сравнения. Средства самоконтроля предполагают, что при выполнении некоторой операции модуль реализует и некоторую дополнительную функцию, позволяющую подтвердить правильность полученного состояния. Примерами этого метода являются коды обнаружения неисправности при хранении данных и передаче сообщений. Метод сравнения основывается на выполнении одной и той же операции двумя или большим числом модулей и сопоставлении результатов компаратором. В случае обнаружения несовпадения результатов работа приостанавливается. Методы самоконтроля доминируют в устрой ствах памяти и устройствах связи благодаря простоте и ясности логики. Однако для сложных устройств обработки данных по экономическим соображениям используют методы сравнения.
Принцип дублирования дуплексных модулей предполагает создание некоторого «супермодуля» — комбинации двух модулей, построенных на принципах быстрого проявления неисправности. Такой «супермодуль» продолжает работать даже тогда, когда отказывает один из субмодулей. Проиллюстрируем этот принцип на примере системы S/390 компании IBM (рис. 3.10). Дублирование дуплексных модулей требует большого объема оборудования, но позволяет делать выбор одного из режимов работы: организацию либо двух независимых вычислений на принципах быстрого проявления неисправности, выполняющихся на двух парах модулей, либо одного высоконадежного вычисления, выполняющегося на всех четырех модулях.
Для существенного увеличения уровня готовности избыточная конструкция должна обеспечивать возможность ремонта и замены отказавших модулей. Таким образом, в основе систем непрерывной готовности лежит аппаратная отказоустойчивая архитектура, состоящая из дублированных функциональных узлов, причем большинство этих узлов работает в режиме пошаговой блокировки.
3.3.3.2. Дублирование функциональных узлов и режим пошаговой блокировки
Режим пошаговой блокировки предполагает, что все дублированные элементы некоторой подсистемы обрабатывают одну и ту же команду или данные в один и тот же момент времени. Например, в системах компании Stratus каждые два физических процессора (ЦП) объединяются парами и одновременно выполняют одну и ту же команду (рис. 3.11). При этом специальная схема срав нения в каждом такте проверяет, что оба ЦП получили одинаковый результат. Если ошибки отсутствуют, работа процессоров продолжается. Если обнаруживается ошибка, то работа останавливается, но простая схема сравнения не может сообщить, в каком ЦП произошел сбой. Именно поэтому работающие в режиме пошаговой блокировки пары ЦП также объединяются парами, образуя логический процессор из четырех физических ЦП.
В случае появления сбоя, т.е. ошибки на выходе одного из процессоров, встроенная в данную плату логика сравнения обнаружит несоответствие логических сигналов с выходов процессорных кристаллов и автоматически изолирует выход данной платы от системных шин (рис. 3.11, б), а данная плата приступает к процедуре самотестирования. В то же время вторая плата ЦПУ, также содержащая пару процессоров, продолжает вычисления без малейшего прерывания работы системы в целом. В случае, если самотестирование показывает, что плата исправна, она синхронизируется со второй платой и продолжает работу. В противном случае плата ЦПУ индицирует свою неисправность включением красного светодиода на передней панели, в системный журнальный файл заносится соответствующая запись и система с неисправными компонентами сама дозванивается по сети удаленного обслуживания RSN (Remote Service Network) в сервисный центр компании производителя (если таковой имеется) и сообщает о неисправности. Это позволяет обслуживающему персоналу компании определить местоположение отказавшего узла и отправить подлежащий замене узел заказчику.
Таким образом, обнаружение сбоя осуществляется аппаратным способом с помощью использования логики сравнения, а мгновенное подавление (исправление) сбоя — с помощью аппаратной реализации мажоритарного принципа определения неисправного элемента (3 из 4).
3.3.3.3. Организация непрерывной обработки
Концепция обеспечения непрерывной обработки затрагивает буквально все аспекты построения системы, для этого:
— применяются дуплексные аппаратные средства, построенные на принципах самоконтроля; осуществляется «усиление» ядра операционной системы с целью повышения устойчивости к сбоям и отказам отдельных компонентов;
— обеспечивается проведение работ по модернизации, обслуживанию и администрированию системы в оперативном режиме, что позволяет ликвидировать другие потенциальные источники простоев.
Такой комплексный подход дает возможность поддерживать постоянный доступ к приложениям и данным и предохранять их от повреждений.
Работа системы начинается с диагностики всех компонентов при включении питания. В оперативном режиме все вычисления, операции с памятью и операции ввода-вывода выполняются параллельно на дуплексных аппаратных средствах. Каждая печатная плата проверяет себя на наличие аппаратных ошибок в каждом машинном такте. Если обнаруживается сбой в логике, система немедленно останавливает неисправную плату. Плата дуплексного партнера продолжает выполнять программу в обычном режиме и с нормальной скоростью.
Таким образом, даже если отказывает плата, никакого вмешательства операционной системы не требуется. Отказавшая плата просто больше не участвует в работе, о чем автоматически сообщается в центр поддержки пользователей (Customer Assistance Center). Такой подход имеет то преимущество, что позволяет обнаружить в работе оборудования не только «жесткие» отказы, но также и временные неисправности (сбои), что обеспечивает более высокий уровень готовности системы и повышает гарантию целостности данных.
Память системы дублируется и защищается кодами с исправлением ошибок Error — correcting code, а логика контроллера памяти построена на принципах самоконтроля. Схемы поиска неисправностей проверяют память на наличие ошибок и гарантируют, что даже в редко используемых ячейках памяти не появятся некорректируемые ошибки. При этом работа этих схем поиска неисправностей скрыта от приложений и не влияет на производительность системы.
Дисковые накопители и контроллеры также дублируются, чтобы предотвратить появление неисправности, которая может повре дить данные или прервать работу системы. В случае отказа диска, все операции дискового ввода-вывода выполняются на исправном накопителе до тех пор, пока отказавшее устройство не будет заменено. После устранения неисправности система автоматически восстанавливает диск. В данном случае прикладное программное обеспечение даже не подозревает о возникновении неисправности, а также о наличии избыточной аппаратуры.
3.3.3.4. Оперативная замена компонентов системы
Все конструктивные компоненты системы могут заменяться в оперативном режиме — пользователи имеют возможность «горячей» замены неисправных компонентов без какого-либо простоя и приглашения обслуживающего персонала. Новый компонент автоматически сам переводит себя в оперативный режим. Сокращение плановых простоев является еще одним важным аспектом вычислений в режиме непрерывной готовности. Примером заменяемых заказчиком компонентов могут служить центральные процессоры. Однако и все остальные основные компоненты: модули памяти, диски, элементы системы питания и периферийные устройства защищены подобным способом.
Некоторые компании-производители предлагают технологию обслуживания заказчиков, основанную на том, что все системы заказчиков подсоединены к высоконадежной сервисной сети мирового масштаба RSN, специально созданной для этих целей.
3.3.3.5. Система непрерывной готовности на базе
компьютеров Continuum Series 400 фирмы Stratus
В состав компьютеров серии 400 входят следующие подсистемы:
• процессорные блоки;
• основание системы;
• системная шина;
• стойка расширения дисков;
• подсистема питания;
• подсистема охлаждения.
На рис. 3.12 приведена обобщенная схема системы Continuum Series 400. Процессорный блок. Одним из двух главных конструктивных узлов системы является процессорный блок. В системе имеются два идентичных процессорных блока. В каждом процессорном блоке размещается плата «ЦП-память», вентиляторы системы охлаждения и источник питания. Модуль платы «ЦП-память» представляет собой материнскую плату, содержащую логическую секцию (оснащенные кэш-памятью модули ЦП PA-RISC — Precision Architecture [for] Reduced Instruction Set Computing — точная архитектура процессора с сокращенным набором команд, а также модули памяти), и модуль контроллера консоли (с последовательными интерфейсами для связи с консолью, RSN и источником бесперебойного питания).
Секция логики. Кристалл ΡΑ-RISC представляет собой высокопроизводительный ЦП.
Модули «ЦП-кэш» реализованы в однопроцессорном и двухпроцессорном исполнении. В каждом процессорном блоке при однопроцессорном исполнении размещается один логический (два физических) ЦП, а при двухпроцессорном исполнении — два логических (четыре физических) ЦП.
Каждая плата «ЦП-память» содержит две работающие синхронно части (C-side и D-side), которые путем сравнения друг с другом обеспечивают обнаружение ошибок на плате. Расположенные в разных процессорных блоках платы-партнеры работают в режиме пошаговой блокировки. Появление неисправности на любой из плат вызывает переключение этой платы в нерабочее состояние. Подсистема ЦП и интерфейс системной шины полностью дублируются и сравниваются.
Модуль контроллера консоли. Каждый модуль контроллера консоли работает независимо от остальной части платы «ЦП-память», на которой он расположен. Этот модуль выполняет функции центрального управления всей системы:
—поддерживает три асинхронных порта: порт системной консоли, порт RSN и логический порт для связи с источником бесперебойного питания или с принтером консоли;
—служит в качестве центральной точки сбора данных в процессе обслуживания и диагностики системы;
—управляет и наблюдает за работой основного источника питания;
—обеспечивает интерфейс консольных команд;
—содержит аппаратные схемы календаря/времени и память с батарейным питанием (nonvolaflve RAM), в которой хранятся данные для загрузки системы;
содержит постоянную память (ID PROM), которая хранит такую информацию, как номер модели, серийный номер и т.п. Кроме того, в состав контроллера консоли входит постоянная память (PROM), организованная в виде нескольких разделов данных, которые содержат коды про-грамм (фирменное программное обеспечение) диагностики платы, а также операций платы, выполняемых ею при работе в оперативном режиме и режиме горячего резерва. Эти коды программ диагностики и операций (как для оперативного режима, так и для режима горячего резерва) прожигаются на плате на заводе-изготовителе.
Контроллеры консоли логически образуют пару (но не работают в режиме пошаговой блокировки), так что в этом смысле одна из плат всегда находится в оперативном режиме, в то время как другая — в состоянии горячего резерва. Контроллер консоли, работающий в оперативном режиме, является активным на шине контроллера консоли и взаимодействует с другими компонентами системы. Резервный контроллер консоли также рассматривается как активный на шине кон-троллера консоли, но не может взаимодействовать с остальной частью системы; он изолирован от всех внешних устройств за исключением шины контроллера консоли.
Если происходит отказ контроллера консоли, работающего в оперативном режиме, аппаратура автоматически выполняет операцию «переключения» на резервный. На новом оперативном контроллере консоли инициализируются все порты и операции ввода-вывода продолжаются. Переключение на горячий резерв может быть иниции-ровано вручную путем объявления или удаления оперативного контроллера консоли.
Модули памяти устанавливаются на материнскую плату. В один логический процессорный блок может быть установлено до четырех модулей памяти — максимально в системе может быть восемь модулей.
В компьютерах компании Stratus реализованы устойчивые к сбоям подсистемы па-мяти. Помимо использования метода дублирования, аппаратура способна обнару-живать многие сбои, которые не в состоянии выявить альтернативные конструкции, в основном полагающиеся только на определение четности данных либо на ЕСС-коды.
В серии Continuum используются мощные методы тестирования статических и динамических отказов памяти, что гарантируе обнаружение любых типов неисправностей. Основание системы. В основании системы находятся три основных компонента: подсистема ввода-вывода PCI, дисковые накопители (8 шт. максимум) и источники питания основания системы (2 шт.)
Основными компонентами подсистемы ввода/вывода являются:
—две карты мостов Peripheral Component Interconnect (PCIB);
—двойные шины PCI;
—до 14 карт адаптеров PCI (12 могут конфигурироваться пользователем).
Карты мостов PCI. Две карты PCIB осуществляют интерфейс между системной шиной (Xbus) Continuum 400 и двумя 8-слотовы-ми шинами PCI. PCIB обеспечивают изоляцию карт адаптеров PCI от процессорных блоков, так что неисправность процессорного блока не может нарушить работу карты PCI. Каждая карта PCIB поддерживает дублированное соединение с системной шиной Continuum 400 и обычное соединение с физически отдельной двойной 8-слотовой шиной PCI.
Карты PCIB представляют собой устройства управления и интерфейса для карт адаптеров PCI. Каждая из них осуществляет интерфейс между ЦП и одной логичес-кой шиной PCI. Мосты PCIB управляют доступом адаптеров к шинам PCI, так что адаптеры PCI, в работе которых происходит сбой, не могут захватить шину.
На каждой карте PCIB размещается сменная флэш-карта. С этих перепрограмми-руемых ПЗУ осуществляется загрузка системы. Система может загружаться с любой из флэш-карт до тех пор, пока она имеет текущую версию программы начальной загрузки. ПЗУ ЦП (CPU PROM) в процессе загрузки представляет флэш-карту в виде диска, доступного только в режиме чтения. При запуске системы ОС загружа-ется с флэш-карты, при этом предполагается, что последняя содержит правильную версию ядра ОС. Если файл на флэш-карте не совпадает с файлом, существующим на корневом диске, на корневой диск переписывается файл с флэш-карты.
При выключении системы (по специальной команде) ОС снова сравнивает содержимое файла на флэш-карте с содержимым файла на корневом диске. Если содержимое этих файлов не идентично, ОС автоматически обновляет файл на флэш-карте, указанной с помощью символической ссылки, которая была создана во время запуска системы.
Шина PCI. Шина ввода-вывода систем Continuum 400 построена в соответствии с промышленным стандартом PCI.
Каждая карта адаптера непосредственно доступна из любого процессорного блока через шину PCI. Специальная логика, реализованная в каждом процессорном блоке, обеспечивает устойчивость к сбоям при работе с шиной PCI и защищает от неисправностей карт адаптеров.
Каждая из двух логических шин PCI имеет раздельную разводку питания, так что по крайней мере одна из карт дисковых контроллеров всегда этим питанием обеспечена.
PCIB занимает один из восьми слотов на каждой логической шине PCI, так что остается только семь свободных слотов. Но поскольку для размещения задублированных карт SCSI-адаптеров также требуется по одному слоту, для организации ввода/вывода остается максимально шесть дублированных слотов PCI, которые могут конфигурироваться пользователем. (Если используется симплексный режим работы адаптеров PCI, то для организации ввода/вывода в системе Continuum 400 оказываются доступными максимально 12 слотов PCI.)
Логические схемы, управляющие работой системной шины в мостах PCI, построены на принципах самоконтроля, поэтому интерфейс Continuum 400 с подсистемой ввода-вывода устойчив к отказам. Двойные шины PCI позволяют устанавливать в них дублированные адаптеры, что минимизирует опасность выхода системы из строя в случае неисправности отдельного адаптера. На шинах PCI применяется внутренняя и внешняя проверка шлейфов.
В случае отказа PCIB, шины PCI, карты адаптера PCI или разъема для поддержки связности системы без прерывания ее работы могут использоваться программные средства переключения на горячий резерв, например, избыточный сетевой интерфейс (RNI). Конечно, возможность переключения на горячий резерв зависит от того, поддерживается ли она программным обеспечением соответствующих сетевых уровневых протоколов.
Системная шина представляет собой четыре распределенных шины «точка—точка», которые не дублируются. Это основное от личие от системной шины Continuum Series 600/1200, представляющей собой логически единую дублированную шину с расщеплением транзакций и мульти-плексированием адреса и данных, разделяемую всеми платами.
Хотя физически Xbus реализована на четырех шинах «точка— точка», протокол представляет ее как единую шину. В каждом конкретном цикле в системе межсоединений обрабатывается не более одной транзакции. Эта транзакция может выполняться всеми четырьмя шинами в случае дуплексного режима работы или только двумя шинами в случае симплексного режима работы.
Сигналы шины защищены картой памяти, четностью и проверкой шлейфа, причем сигналы управления защищены с помощью кодов с исправлением ошибок и проверкой шлейфа.
Транзакция ЦП—ЦП выполняется с помощью операции взаимодействия равноправ-ных подсистем, при этом она разбивается на две отдельных транзакции, поскольку XBus не имеет полностью взаимосвязанных шин данных. В первой транзакции ЦП передает посылку PCIB. Во второй — PCIB передает информацию другому ЦП.
XBus поддерживает протокол обнаружения ошибок. В отличие от системной шины серии 600/1200 XBus пытается не только обнаружить ошибки шины, но также диагностировать источник ошибок.
Подсистема питания включает три основных сборочных узла:
• дублированные модули ввода напряжения питания;
• источники питания процессорных блоков;
• источники питания основания системы.
Каждый процессорный блок содержит источник питания. Неисправность в источнике питания приводит к отказу всего процессорного блока, но не к прерыванию работы системы.
В основании системы имеются два источника питания подсистемы ввода/вывода. Каждый блок обеспечивает дублированное активное питание дисковым накопителям и не дублированное питание половине подсистемы ввода-вывода. В случае отказа источника половина слотов PCI оказываются в нерабочем состоянии, но система продолжает работать.
В системах Continuum 400 не поддерживается никаких встроенных систем бесперебойного питания. ИБП обеспечивает пере менное питающее напряжение и связан с системой с помощью последовательного интерфейса, подсоединяемого к одному из асинхронных портов контроллера консоли. Фирменное ПО контроллера консоли взаимодействует с ИБП и обеспечивает как индикацию отказа питания, так и выключение питания системы.
Система охлаждения. Каждый процессорный блок системы на базе охлаждается с помощью двух или трех вентиляторов, расположенных на его задней стенке. Отказ вентилятора в каком-либо процессорном блоке приводит к отключению последнего.
Карты PCI, расположенные в основании системы, охлаждаются путем выкачивания воздуха вентиляторами охлаждения процессорных блоков. Дисковые накопители охлаждаются двумя вентиляторами, расположенными на задней стенке источников питания основания системы. Информация о температуре снимается с помощью датчиков и используется для управления скоростью вентиляторов.