Разработка отказоустойчивого кластера высокопроизводительных вычислительных систем
История развития вычислительной техники. Понятие высокой готовности и отказоустойчивости системы. Разработка функциональной схемы отказоустойчивого кластера и структурной схемы виртуального стенда. Технико-экономическое обоснование объекта проектирования.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 26.02.2013 |
Размер файла | 2,7 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Оглавление
- Введение
- Глава 1. Обзор литературы и постановка задачи
- 1.1 История развития вычислительной техники
- 1.2 Параллельные вычисления
- 1.2.1 Кластеры и MPP - системы
- 1.3 Понятие высокой готовности и отказоустойчивости системы
- 1.4 Подсистемы внешней памяти высокой готовности
- 1.5 Требования, предъявляемые к системам высокой готовности
- 1.5.1 Требования начальной установки системы
- 1.5.2 Требования к системному программному обеспечению
- 1.5.3 Требования высокой готовности к прикладному программному обеспечению
- 1.5.4 Требования к сетевой организации и к коммуникациям
- 1.6 Постановка задачи
- Глава 2. Разработка функциональной схемы отказоустойчивого кластера
- 2.1 Описание отказоустойчивого кластера
- 2.2 Структурная схема отказоустойчивого двухузлового кластера
- 2.2.1 Узлы кластера
- 2.2.2 Система хранения данных
- 2.2.3 Соединение СХД с узлами кластера
- 2.2.4 Межузловое соединение кластера
- Глава 3 Разработка структурной схемы виртуального стенда
- 3.1 Виртуализация
- 3.1.1 Виртуализация ресурсов
- 3.1.2 Виртуализация платформ
- 3.2 Платформа виртуализации Hyper-V
- 3.3 Cтруктурная схема виртуального стенда
- 3.3.1 Хост- сервер
- 2.3.2 Виртуальная машина ВМ1
- 2.3.3 Виртуальная машина ВМ2
- 2.3.4 Виртуальная машина ВМ3
- 2.3.5 Виртуальная машина ВМ4
- 2.3.6 Виртуальная машина ВМ5
- 2.3.7 Сетевые соединения.
- Глава 4. Экспериментальные исследования
- 4.1 Описание тестового программного обеспечения
- 4.1.1 Ping
- 4.1.2 SiSoftware Sandra 2012
- 4.2 Результаты исследования
- 4.2.1 Эксперимент 1
- 4.2.2 Эксперимент 2
- 4.2.3 Эксперимент 3
- 4.2.3 Эксперимент 4
- 4.2.4 Эксперимент 5
- 4.2.5 Эксперимент 6
- Вывод
- Глава 5. Организационно-экономическая часть
- 5.1 Технико-экономическое обоснование объекта проектирования
- 5.2 Организационная часть
- 5.2.1 Состав конструкторской группы и должностные оклады
- 5.2.2 Перечень этапов опытно-конструкторских работ при разработке виртуального стенда
- 5.3 Экономическая часть
- 5.3.1 Расчёт сметы затрат на разработку виртуального стенда
- 5.3.2 Расчет затрат на расходные материалы
- 5.3.3 Расчет заработной платы инженерно-технических работников
- 5.3.4 Расчёт страховых взносов
- 5.3.5 Затраты на содержание и эксплуатацию оборудования
- 5.3.6 Смета затрат
- Вывод
- Глава 6. Безопасность и экологичность проектных решений
- 6.1 Цель и решаемые задачи
- 6.2 Вредные и опасные факторы при работе с ПЭВМ
- 6.3 Характеристика объекта исследования
- 6.4 Мероприятия по безопасности труда и сохранению работоспособности.
- 6.4.1 Обеспечение требований эргономики и технической эстетики
- 6.4.1.1 Размещение оборудования и планировка помещения
- 6.4.1.2 Эргономические решения по организации рабочего места пользователя ПЭВМ
- 6.4.2 Обеспечение оптимальных параметров воздуха рабочих зон
- 6.4.2.1 Нормирование параметров микроклимата
- 6.4.2.2 Нормирование уровней вредных химических веществ
- 6.4.2.3 Нормирование уровней аэроионизации
- 6.4.3 Создание рационального освещения
- 6.4.4 Защита от шума
- 6.4.5 Обеспечение режимов труда и отдыха
- 6.4.6 Обеспечение электробезопасности
- 6.4.7 Защита от статического электричества
- 6.4.8. Обеспечение допустимых уровней электромагнитных полей
- 6.4.9 Обеспечение пожаробезопасности
- 6.4.9.1 Обеспечение безопасной эвакуации персонала
- 6.4.9.2 Средства извещения и сигнализации о пожаре
- 6.4.9.3 Способы и средства тушения пожара
- 6.4.9.4 Молниезащита объекта
- 6.4.10 Мероприятия и средства по защите окружающей среды
- 6.4.10.1 Загрязнение окружающей среды автомобильным транспортом
- 6.4.10.2 Утилизация компьютеров и оргтехники
- 6.5 Инженерные расчеты
- 6.5.1 Расчет эвакуационного выхода
- 6.5.2 Расчет приточно-вытяжной вентиляции
- Заключение
- Список литературы
- Введение
- С момента появления первых компьютеров одной из основных проблем, стоящих перед разработчиками, была производительность вычислительной системы. За время развития компьютерной индустрии производительность вычислительных систем стремительно возрастала, однако появление все более ресурсоемких задач , рост числа пользователей и расширение области применения вычислительных систем предъявляют новые требования к мощности используемой техники, что и привело к появлению высокопроизводительных компьютеров (HPC - High Performance Computing) или как их еще называют суперкомпьютеров (от англ. supercomputer, -- вычислительная машина, значительно превосходящая по своим техническим параметрам большинство существующих компьютеров)..
- Наряду с расширением области применения по мере совершенствования HPC происходит усложнение и увеличение количества задач в областях, традиционно использующих высокопроизводительную вычислительную технику. В настоящее время выделен круг фундаментальных и прикладных проблем, эффективное решение которых возможно только с использованием сверхмощных вычислительных ресурсов. Этот круг включает следующие задачи:
· предсказания погоды, климата и глобальных изменений в атмосфере;
· науки о материалах;
· построение полупроводниковых приборов;
· сверхпроводимость;
· структурная биология;
· разработка фармацевтических препаратов;
· генетика;
· квантовая хромодинамика;
· астрономия;
· транспортные задачи;
· гидро- и газодинамика;
· управляемый термоядерный синтез;
· эффективность систем сгорания топлива;
· геоинформационные системы;
· разведка недр;
· наука о мировом океане;
· распознавание и синтез речи;
· распознавание изображений.
Одной из важнейших характеристик высокопроизводительных вычислительных систем является доступность, которое включает три составляющие - надежность (reliability), готовность (availability) и удобство обслуживания (serviceability). При этом под надежностью обычно понимается минимизация вероятности возникновения отказа или сбоя в работе системы, готовностью - возможность дальнейшего функционирования системы при возникновении неисправности каких-либо компонентов, а удобством обслуживания - возможность проведения ремонтных и регламентных работ с минимизацией простоя или вообще без прекращения доступа пользователей к информационному ресурсу. Обычно, говоря о доступности информационных систем, употребляют термин "отказоустойчивость", имея в виду надежность и готовность. Повышение отказоустойчивости системы требует избыточного аппаратного и программного обеспечения. .
Прогресс в суперкомпьютерных технологиях последних лет и распространение этих технологий во все новые сферы человеческой деятельности свидетельствуют о том, что суперкомпьютеры - это мощный инструмент, который позволяет форсировать продвижение научно-технологической мысли во многих отраслях. Ведущие страны мира создали и используют этот инструмент для решения особо сложных задач науки, образования, экономики, для долгосрочных прогнозов, в том числе экологической обстановки, для обеспечения национальной безопасности. В последнее десятилетие произошли заметные сдвиги в организации научного процесса: вследствие широкого внедрения вычислительной техники заметно усилилось направление компьютерного моделирования и эксперимента, что позволяет значительно повысить эффективность процессов научного и технологического поиска. Становится возможным моделировать сложные физико-химические процессы и ядерные реакции, глобальные атмосферные явления, развитие экономики и промышленности.
Высокопроизводительные вычислительные системы расширяют пределы, ограничивающие возможности инженеров и ученых, но реализованные в этих системах технологии важны не только для исследовательских лабораторий -- в конечном итоге они позволяют улучшить нашу повседневную жизнь. Моделирование электромагнитных полей, вычислительная гидродинамика и анализ методом конечных элементов -- вот лишь несколько примеров приложений, которые когда-то считались прерогативой суперкомпьютеров для научных целей, а сегодня используются многими компаниями для разработки и производства самых разных товаров: от картофельных чипсов до сотовых телефонов и автомобилей.
Глава 1. Обзор литературы и постановка задачи
1.1 История развития вычислительной техники
В наше время жизнь без компьютеров не представляется возможной. Внедрение вычислительной техники проникло почти во все жизненные аспекты, как личные, так и профессиональные. Развитие компьютеров было достаточно быстрым. Началом эволюционного развития компьютеров стал 1930 год, когда двоичная арифметика была разработана и стала основой компьютерных вычислений и языков программирования. В 1939 году были изобретены электронно-вычислительные машины, выполняющие вычисление в цифровом виде. Появление вычислительных устройств приходится на 1942 год, когда было изобретено устройство, которое могло механически добавлять числа. Вычисления производились с использованием электронных ламп.
Появившаяся в 1941 году модель Z3 Конрада Цузе в немецкой Лаборатории Авиации в Берлине была одним из наиболее значительных событий в развитии компьютеров, потому что эта машина поддерживала вычисления как с плавающей точкой, так и двоичную арифметику. Это устройство рассматривают как самый первый компьютер, который был полностью работоспособным.
Первое поколение современных компьютеров появилось в 1943, когда были разработаны Марк I и машина Колосс. С финансовой поддержкой от IBM (International Business Machines Corporation) Марк был сконструирован и разработан в Гарвардском университете. Это был электромеханический программируемый компьютер общего назначения. Первое поколение компьютеров было построено с использованием соединенных проводов и электронных ламп (термоэлектронных ламп). Данные хранились на бумажных перфокартах. Колосс использовался во время Второй мировой войны, чтобы помочь расшифровать зашифрованные сообщения. [1]
Чтобы выполнить задачу расшифровки, Колосс сравнил два потока данных, прочитанных на высокой скорости с перфоленты. Колосс оценивал поток данных, считая каждое совпадение, которое было обнаружено, основываясь на программируемой Булевой функции. Для сравнения с другими данными был создан отдельный поток.
Другой компьютер общего назначения этой эры был ENIAC ( Electronical Numerical Integrator and Computer - Электронный Числовой Интегратор и Компьютер), который был построен в 1946. ENIAC был первым компьютером, способным решать полный спектр вычислительных проблем. ENIAC содержал 18 000 термоэлектронных ламп, весил более чем 27 тонн, и потреблял электроэнергии 25 киловатт в час. ENIAC выполнял 100 000 вычислений в секунду. Изобретение транзистора означало, что неэффективные термоэлектронные лампы могли быть заменены более мелкими и надежными компонентами. Это было следующим главным шагом в истории вычислений.
Компьютеры Transistorized отметили появление второго поколения компьютеров, которые доминировали в конце 1950-ых и в начале 1960-ых. Несмотря на использование транзисторов и печатных схем, эти компьютеры были все еще большими и дорогостоящими. В основном они использовались университетами и правительством. Интегральная схема или чип были развиты Джеком Килби.Изобретение Килби вызвало взрыв в развитии компьютеров третьего поколения. Даже при том, что первая интегральная схема была произведена в сентябре 1958, чипы не использовались в компьютерах до 1963.
В ноябре 1971 компания Intel выпустила первый в мире коммерческий микропроцессор Intel 4004. Это был первый полный центральный процессор на одном чипе и стал первым коммерчески доступным микропроцессором. Данная разработка способствовала появлению компьютерных платформ четвертого поколения.[1]
1.2 Параллельные вычисления
В настоящее время тенденция в развитии микропроцессоров и систем, построенных на их основе, направлена на все большее повышение их производительности. Вычислительные возможности любой системы достигают своей наивысшей производительности благодаря двум факторам: использованию высокоскоростных элементов и параллельному выполнению большого числа операций.
Существует несколько вариантов классификации систем параллельной обработки данных. Самой ранней и наиболее известной является классификация архитектур вычислительных систем, предложенная в 1966 году М. Флинном ( базируется на понятии потока, под которым понимается последовательность элементов, команд или данных, обрабатываемая процессором. На основе числа потоков команд и потоков данных выделяют классы архитектур). Мы же рассмотрим классификацию многопроцессорных и многомашинных систем на основе другого признака - степени разделения вычислительных ресурсов системы.
В этом случае выделяют следующие 4 класса систем:
системы с симметричной мультипроцессорной обработкой (Symmetric MultiProcessing), или SMP-системы;
системы, построенные по технологии неоднородного доступа к памяти (Non-Uniform Memory Access), или NUMA-системы;
кластеры;
системы вычислений с массовым параллелизмом (Massively Parallel Processor), или MPP-системы.[2]
1.2.1 Кластеры и MPP - системы
Кластер представляет собой систему из нескольких компьютеров (в большинстве случаев серийно выпускаемых), имеющих общий разделяемый ресурс для хранения совместно обрабатываемых данных (обычно набор дисков или дисковых массивов) и объединенных высокоскоростной магистралью (рис 1.1).[3]
В кластерной системе некоторое распределенное приложение параллельно на нескольких узлах обрабатывает общий набор данных, как правило, таким образом, чтобы у пользователя возникла иллюзия работы на одной машине.
Обычно в кластерных системах не обеспечивается единая операционная среда для работы общего набора приложений на всех узлах кластера. То есть каждый компьютер кластера - это автономная система с отдельным экземпляром ОС и своими, принадлежащими только ей системными ресурсами: набором заведенных пользователей, системными буферами, областью свопинга и т. п. Приложение, запущенное на нем, может видеть только общие диски или отдельные участки памяти. На узлах кластера работают специально написанные для такой конфигурации приложения, параллельно обрабатывающие общий набор данных. На каждой из машин они представлены рядом процессов, программ, взаимодействующих с помощью кластерного программного обеспечения. Таким образом, кластерное ПО - это лишь средство для взаимодействия узлов и синхронизации доступа к общим данным. Кластер как параллельная система формируется на прикладном уровне, а не на уровне операционной системы.[3]
Рис. 1.1 Структура кластера
В настоящее время такие системы имеют две основные области применения: параллельные серверы баз данных и высоконадежные вычислительные комплексы. Рынок параллельных СУБД и есть фактически рынок кластеров приложений. Высоконадежные комплексы представляют собой группу узлов, на которых независимо друг от друга выполняются некоторые важные приложения, требующие постоянной, непрерывной работы. То есть в такой системе на аппаратном уровне фактически поддерживается основной механизм повышения надежности - резервирование. Причем узлы находятся в так называемом "горячем" резерве, и каждый из них в любой момент готов продолжить вычисления при выходе из строя какого-либо узла. При этом все приложения с отказавшего узла автоматически переносятся на другие машины комплекса. Такая система также формально является кластером, хотя в ней отсутствует параллельная обработка общих данных. Эти данные обычно монопольно используются выполняемыми в рамках кластера приложениями и должны быть доступны для всех узлов.
Если в кластере его узлы разделяют некоторые ресурсы, то параллельные системы другого класса - системы вычислений с массовым параллелизмом (MPP) - строятся из отдельных полностью независимых компьютеров, соединенных только высокоскоростной магистралью или коммуникационными каналами (рис. 4). Это могут быть либо просто несколько серийно выпускаемых UNIX-машин, соединенных с помощью высокопроизводительной сетевой среды, либо специально сконструированная система из отдельных функциональных блоков, объединенных коммутатором.
Рис. 1.2 Структура MPP - системы
В такой системе адресное пространство состоит из отдельных адресных пространств, которые логически не связаны между собой и доступ к которым не может быть осуществлен аппаратно другим процессором. [4]
При этом для обмена данными используется механизм передачи сообщений между процессорами. Поэтому эти машины часто называют машинами с передачей сообщений. Пользователь может определить логический номер процессора, к которому он подключен, и организовать обмен сообщениями с другими процессорами.
На машинах MPP-архитектуры используются два варианта работы операционной системы. В одном из них полноценная операционная система работает только на управляющей машине (front-end); на каждом отдельном модуле функционирует сильно урезанный вариант ОС, обеспечивающий работу только расположенной в нем ветви параллельного приложения. Во втором варианте на каждом модуле работает полноценная, как правило, UNIX-подобная ОС, устанавливаемая отдельно.[5]
Программирование в такой системе - достаточно сложная задача.
Она требует специального инструментария и особого системного программного обеспечения для работы параллельных приложений, которые ориентированы на функционирование параллельных процессов, распределенных по узлам MPP-системы, с обменом сообщениями между ними.
Повышение производительности машин с массовым параллелизмом путем увеличения в них числа процессоров имеет определенные ограничения. Чем большее число процессоров входит в состав MPP-системы, тем длиннее каналы передачи управления и данных, а значит, и тем меньше тактовая частота. Происшедшее возрастание нормы массивности для больших машин до 512 и даже 64К процессоров обусловлено не ростом размеров машины, а увеличением степени интеграции схем, позволившей за последние годы резко повысить плотность размещения элементов в устройствах. Топология сети межпроцессорного обмена в такого рода системах может быть различной.
Главным преимуществом MPP-систем является их хорошая масштабируемость: в отличие от SMP-систем, здесь каждый процессор имеет доступ только к своей локальной памяти, в связи с чем не возникает необходимости в потактовой синхронизации процессоров. Практически все рекорды по производительности на сегодня устанавливаются на машинах именно такой архитектуры, состоящих из нескольких тысяч процессоров.
Основными недостатками систем данного типа являются следующие: отсутствие общей памяти заметно снижает скорость межпроцессорного обмена, поскольку нет общей среды для хранения данных, предназначенных для обмена между процессорами; требуется специальная техника программирования для реализации обмена сообщениями между процессорами; каждый процессор может использовать только ограниченный объем локального банка памяти; вследствие указанных архитектурных недостатков требуются значительные усилия для того, чтобы максимально задействовать системные ресурсы, следствием чего является высокая цена программного обеспечения для MPP-систем с раздельной памятью.[6]
Подведем некоторые итоги, касающиеся областей применимости систем параллельной обработки данных различных типов.
SMP-системы потенциально обладают достаточными возможностями для обеспечения необходимой для большинства применений производительности: вполне естественно увеличивать число процессоров, а не ставить рядом еще один компьютер. Добавление одного процессора гарантированно увеличивает производительность, а добавление, например, узла в кластер адекватного ускорения не даст. Более того, в некоторых случаях общая производительность системы может даже упасть, когда узлы кластера начинают активно конкурировать за доступ к общим ресурсам, и взаимные блокировки сводят на нет преимущества параллельной обработки.
NUMA-системы создаются для вполне определенных целей - обеспечения масштабных расчетов. Системы, использующие эту архитектуру, прежде всего применяются для уникальных высококачественных и высокопроизводительных прикладных программ, требующих более восьми процессоров. Однако они имеют высокую стоимость и требуют уникального ПО (прикладные программы и ОС).
Для современных систем помимо вполне традиционных требований по производительности, масштабируемости, цене дополнительные высокие требования предъявляются к надежности их работы. Именно по этим соображениям вычислительные комплексы на основе кластеров или MPP-машин завоевывают все большую популярность.
MPP-системы обладают рядом преимуществ, главным из которых является лучшая среди всех рассмотренных архитектур масштабируемость. Именно поэтому MPP-компьютеры обычно используются при больших ресурсоемких вычислениях. Конечно, они применяются и при построении больших баз данных, и в отказоустойчивых вычислительных комплексах. Но здесь их использование довольно ограничено. Это отчасти связано с тем, что они все-таки дороже кластеров и имеют достаточно большую начальную цену. Кластер же можно построить из относительно дешевых машин произвольной конфигурации.
Приведенная классификация систем параллельной обработки данных достаточно условна. Разработчики вычислительных систем не проектируют машину какого-то специального класса, а стараются создать более производительную архитектуру. Кроме этого, сам пользователь может с использованием стандартных компонентов спроектировать комплекс, архитектурно и функционально наиболее подходящий для решения конкретной задачи.[7]
1.3 Понятие высокой готовности и отказоустойчивости системы
Одной из основных проблем построения вычислительных систем во все времена остается задача обеспечения их продолжительного функционирования. Эта задача имеет три составляющих: надежность, готовность и удобство обслуживания. Все эти три составляющих предполагают, в первую очередь, борьбу с неисправностями системы, порождаемыми отказами и сбоями в ее работе. Эта борьба ведется по всем трем направлениям, которые взаимосвязаны и применяются совместно.
Повышение надежности основано на принципе предотвращения неисправностей путем снижения интенсивности отказов и сбоев за счет применения электронных схем и компонентов с высокой и сверхвысокой степенью интеграции, снижения уровня помех, облегченных режимов работы схем, обеспечения тепловых режимов их работы, а также за счет совершенствования методов сборки аппаратуры. Единицей измерения надежности является среднее время наработки на отказ (MTBF - Mean Time Between Failure).
Повышение готовности предполагает подавление в определенных пределах влияния отказов и сбоев на работу системы с помощью средств контроля и коррекции ошибок, а также средств автоматического восстановления вычислительного процесса после проявления неисправности, включая аппаратурную и программную избыточность, на основе которой реализуются различные варианты отказоустойчивых архитектур. Повышение готовности - есть способ борьбы за снижение времени простоя системы. Единицей измерения здесь является коэффициент готовности, который определяет вероятность пребывания системы в работоспособном состоянии в любой произвольный момент времени. Статистически коэффициент готовности определяется как MTBF/(MTBF+MTTR), где MTTR (Mean Time To Repair) - среднее время восстановления (ремонта), т.е. среднее время между моментом обнаружения неисправности и моментом возврата системы к полноценному функционированию.[7]
Таким образом, основные эксплуатационные характеристики системы существенно зависят от удобства ее обслуживания, в частности от ремонтопригодности, контролепригодности и т.д.
В последние годы в литературе по вычислительной технике все чаще употребляется термин "системы высокой готовности", "системы высокой степени готовности", "системы с высоким коэффициентом готовности". Все эти термины по существу являются синонимами, однако как и многие термины в области вычислительной техники, термин "высокая готовность" понимается по-разному отдельными поставщиками и потребителями вычислительных систем. Совершенно аналогично, некоторые слова, связанные с термином "высокая готовность", такие, например, как "кластеризация", также употребляются в различных значениях. Важно иметь стандартный набор определений для того, чтобы предложения различных поставщиков можно было сравнивать между собой на основе одинаковых терминов.[8]
Ниже приведены общепринятые в настоящее время определения, которые мы будем использовать для различных типов систем, свойством которых является та или иная форма снижения планового и непланового времени простоя:
Высокая Готовность (High Availability). Настоящие конструкции с высоким коэффициентом готовности для минимизации планового и непланового времени простоя используют обычную компьютерную технологию. При этом конфигурация системы обеспечивает ее быстрое восстановление после обнаружения неисправности, для чего в ряде мест используются избыточные аппаратные и программные средства. Длительность задержки, в течение которой программа, отдельный компонент или система простаивает, может находиться в диапазоне от нескольких секунд до нескольких часов, но более часто в диапазоне от 2 до 20 минут. Обычно системы высокой готовности хорошо масштабируются, предлагая пользователям большую гибкость, чем другие типы избыточности.[9]
Эластичность к отказам (Fault Resiliency). Ряд поставщиков компьютерного оборудования делит весь диапазон систем высокой готовности на две части, при этом в верхней его части оказываются системы эластичные к отказам. Ключевым моментом в определении эластичности к отказам является более короткое время восстановления, которое позволяет системе быстро откатиться назад после обнаружения неисправности.
Устойчивость к отказам (Fault Tolerance). Отказоустойчивые системы имеют в своем составе избыточную аппаратуру для всех функциональных блоков, включая процессоры, источники питания, подсистемы ввода/вывода и подсистемы дисковой памяти. Если соответствующий функциональный блок неправильно функционирует, всегда имеется горячий резерв. В наиболее продвинутых отказоустойчивых системах избыточные аппаратные средства можно использовать для распараллеливания обычных работ. Время восстановления после обнаружения неисправности для переключения отказавших компонентов на избыточные для таких систем обычно меньше одной секунды.[9]
Непрерывная готовность (Continuous Availability). Вершиной линии отказоустойчивых систем являются системы, обеспечивающие непрерывную готовность. Продукт с непрерывной готовностью, если он работает корректно, устраняет любое время простоя как плановое, так и неплановое. Разработка такой системы охватывает как аппаратные средства, так и программное обеспечение и позволяет проводить модернизацию (upgrade) и обслуживание в режиме on-line. Дополнительным требованием к таким системам является отсутствие деградации в случае отказа. Время восстановления после отказа не превышает одной секунды.[9]
Устойчивость к стихийным бедствияи (Disaster Tolerance). Широкий ряд продуктов и услуг связан с обеспечением устойчивости к стихийным бедствиям. Иногда устойчивость к стихийным бедствиям рассматривается в контексте систем высокой готовности. Смысл этого термина в действительности означает возможность рестарта или продолжения операций на другой площадке, если основное месторасположение системы оказывается в нерабочем состоянии из-за наводнения, пожара или землетрясения. В простейшем случае, продукты, устойчивые к стихийным бедствиям, могут просто представлять собой резервные компьютеры, расположенные вне основного местоположения системы, сконфигурированные по спецификациям пользователя и доступные для использования в случае стихийного бедствия на основной площадке. В более сложных случаях устойчивость к стихийным бедствиям может означать полное (зеркальное) дублирование системы вне основного местоположения, позволяющее принять на себя работу немедленно после отказа системы на основной площадке.
Все упомянутые типы систем высокой готовности имеют общую цель - минимизацию времени простоя. Имеется два типа времени простоя компьютера: плановое и неплановое. Минимизация каждого из них требует различной стратегии и технологии. Плановое время простоя обычно включает время, принятое руководством, для проведения работ по модернизации системы и для ее обслуживания. Неплановое время простоя является результатом отказа системы или компонента. Хотя системы высокой готовности возможно больше ассоциируются с минимизацией неплановых простоев, они оказываются также полезными для уменьшения планового времени простоя.[10]
Возможно наибольшим виновником планового времени простоя является резервное копирование данных. Некоторые конфигурации дисковых подсистем высокой готовности, особенно системы с зеркальными дисками, позволяют производить резервное копирование данных в режиме on-line. Следующим источником снижения планового времени простоя является организация работ по обновлению (модернизации) программного обеспечения. Сегодня некоторые отказоустойчивые системы и все системы с непрерывной готовностью позволяют производить модернизацию программного обеспечения в режиме on-line. Некоторые поставщики систем высокой готовности также обещают такие же возможности в течение ближайших нескольких лет.[4]
В общем случае, неплановое время простоя прежде всего снижается за счет использования надежных частей, резервных магистралей или избыточного оборудования. Однако даже в этом случае система может требовать достаточно большого планового времени простоя.
Специальное программное обеспечение является существенной частью систем высокой готовности. При обнаружении неисправности системы оно обеспечивает управление конфигурацией аппаратных средств и программного обеспечения, а также в случае необходимости процедурами начальной установки, и перестраивает где надо структуры данных.
Высокая готовность не дается бесплатно. Общая стоимость подобных систем складывается из трех составляющих: начальной стоимости системы, издержек планирования и реализации, а также системных накладных расходов.[14]
Для реализации системы высокой готовности пользователи должны в начале закупить собственно систему (или системы), включающую один или несколько процессоров в зависимости от требуемой вычислительной мощности и предполагаемой конфигурации, дополнительное программное обеспечение и дополнительное дисковое пространство.
Чтобы реализовать конфигурацию системы высокой готовности наиболее эффективным способом, особенно при использовании кластерных схем, требуется достаточно большое предварительное планирование. Например, чтобы иметь возможность переброски критичного приложения в случае отказа одного процессора на другой, пользователи должны определить, какие приложения являются наиболее критичными, проанализировать все возможные отказы и составить подробные планы восстановления на все случаи отказов.
Накладные расходы систем высокой готовности связаны с необходимостью поддержки довольно сложных программных продуктов, обеспечивающих высокую готовность. Для обеспечения дублирования записей на зеркальные диски в случае отсутствия специальных, предназначенных для этих целей процессоров, требуется поддержка дополнительной внешней памяти.[14]
Стоимость системы высокой готовности в значительной степени зависит от выбранной конфигурации и ее возможностей. Ниже приведена некоторая информация, позволяющая грубо оценить различные типы избыточности.
Высокая Готовность. Дополнительная стоимость систем высокой готовности меняется в пределах от 10 до 100 процентов, обычно стремясь к середине этого диапазона. Дополнительная стоимость системы высокой готовности зависит от той степени, с которой пользователь способен использовать резервную систему для обработки своих приложений. Стоимость системы высокой готовности может реально превысить 100 процентов за счет программного обеспечения и необходимой начальной установки в случае применения резервной системы, которая не используется ни для чего другого. Однако обычно резервная система может быть использована для решения некритичных задач, значительно снижая стоимость.
Высокая эластичность. Дополнительная стоимость систем высокой эластичности к отказам, принадлежащих к верхнему уровню диапазона систем высокой готовности, лежит в пределах от 20 до 100 процентов, снова обычно стремясь к середине этого диапазона. Схемы высокой эластичности более сложны и предполагают более высокую стоимость планирования и большие накладные расходы, чем системы, принадлежащие нижнему уровню диапазона систем высокой готовности. В некоторых случаях однако, пользователь может в большей степени использовать общие процессорные ресурсы, тем самым уменьшая общую стоимость.
Непрерывная готовность. Надбавка к стоимости для систем с непрерывной готовностью находится в диапазоне от 20 до 100 или более процентов и обычно приближается к верхнему пределу этого диапазона. Программное обеспечение для обеспечения режима непрерывной готовности более сложное, чем для систем, обеспечивающих высокую эластичность к отказам. Большинство компонентов системы, такие как процессоры, источники питания, контроллеры и кабели, должны дублироваться, а иногда и троироваться. Пользователи систем непрерывной готовности, как и пользователи высоко эластичных к отказам систем, имеют возможность использовать весь набор ресурсов системы большую часть времени, по сравнению с пользователями более простых систем, принадлежащих нижнему уровню диапазона систем высокой готовности.[4]
Устойчивость к стихийным бедствиям. Надбавка к стоимости для систем, устойчивым к стихийным бедствиям, может сильно варьироваться. С одной стороны, она может составлять, например, только несколько процентов стоимости системы при резервировании времени запасного компьютера, находящегося вне основной площадки. С другой стороны, стоимость системы может увеличиться в несколько раз, если необходимо обеспечить действительно быстрое переключение на другую систему, находящуюся на удаленной площадке с помощью высокоскоростных сетевых средств. Большинство предложений по системам, устойчивым к стихийным бедствиям, требуют существенного объема планирования.
Для того, чтобы снизить стоимость системы, следует тщательно оценивать действительно необходимый уровень готовности (т.е. осуществлять выбор между высокой готовностью, устойчивостью к отказам и/или устойчивостью к стихийным бедствиям) и вкладывать деньги только за обеспечение безопасности наиболее критичных для деятельности компании приложений и данных.[14]
1.4 Подсистемы внешней памяти высокой готовности
Первым шагом на пути обеспечения высокой готовности является защита наиболее важной части системы, а именно - данных. Разные типы конфигураций избыточной внешней памяти обеспечивают разную степень защиты данных и имеют разную стоимость.
Имеются три основных типа подсистем внешней памяти с высокой готовностью. Для своей реализации они используют технологию Избыточных Массивов Дешевых Дисков (RAID - Redundant Arrays of Inexpensive Disks). Наиболее часто используются следующий решения: RAID уровня 1 или зеркальные диски, RAID уровня 3 с четностью и RAID уровня 5 с распределенной четностью. Эти три типа внешней памяти в общем случае имеют практически почти мгновенное время восстановления в случае отказа. Кроме того, подобные устройства иногда позволяют пользователям смешивать и подбирать типы RAID в пределах одного дискового массива. В общем случае дисковые массивы представляются прикладной задаче как один диск.[14]
Технология RAID уровня 1 (или зеркалирования дисков) основана на применении двух дисков так, что в случае отказа одного из них, для работы может быть использована копия, находящаяся на дополнительном диске. Программные средства поддержки зеркальных дисков обеспечивают запись всех данных на оба диска. Недостатком организации зеркальных дисков является удвоение стоимости аппаратных средств и незначительное увеличение времени записи, поскольку данные должны быть записаны на оба диска. Положительные стороны этого подхода включают возможность обеспечения резервного копирования в режиме on-line, а также замену дисков в режиме on-line, что существенно снижает плановое время простоя. Как правило, структура устройств с зеркальными дисками устраняет также единственность точки отказа, поскольку для подключения обоих дисков обычно предусматриваются два отдельных кабеля, а также два отдельных контроллера ввода/вывода.[6]
В массивах RAID уровня 3 предусматривается использование одного дополнительного дискового накопителя, обеспечивающего хранение информации о четности (контрольной суммы) данных, записываемых на каждые два или четыре диска. Если один из дисков в массиве отказывает, информация о четности вместе с данными, находящимися на других оставшихся дисках, позволяет реконструировать данные, находившиеся на отказавшем накопителе.
Массив RAID уровня 5 является комбинацией RAID уровня 0, в котором данные расщепляются для записи на несколько дисков, и RAID уровня 3, в которых имеется один дополнительный диск. В RAID уровня 5 полезная информация четырех дисков и контрольная информация распределяется по всем пяти дискам так, что при отказе одного из них, оставшиеся четыре обеспечивают считывание необходимых данных. Методика расщепления данных позволяет также существенно увеличить скорость ввода/вывода при передаче больших объемов данных.[6]
Диапазон возможных конструкций современных дисковых массивов достаточно широк. Он простираются от простых подсистем без многих дополнительных возможностей до весьма изощренных дисковых подсистем, которые позволяют пользователям смешивать и подбирать уровни RAID внутри одного устройства. Наиболее мощные дисковые подсистемы могут также содержать в своем составе процессоры, которые разгружают основную систему от выполнения рутинных операций ввода/вывода, форматирования дисков, защиты от ошибок и выполнения алгоритмов RAID. Большинство дисковых массивов снабжаются двумя портами, что позволяет пользователям подключать их к двум различным системам.[5]
Добавка к стоимости дисковой подсистемы для организации зеркальных дисков стремится к 100%, поскольку требуемые диски должны дублироваться в избыточной конфигурации 1:1. Дополнительная стоимость дисков для RAID уровней 3 и 5 составляет либо 33% при наличии диска четности для каждых двух дисков, либо более часто 20% при наличии диска четности для каждых четырех накопителей. Кроме того, следует учитывать стоимость специального программного обеспечения, а также стоимость организации самого массива. Некоторые компании предлагают программные средства для организации зеркальных дисков при использовании обычных дисковых подсистем. Другие предлагают возможности зеркальной организации в подсистемах RAID, специально изготовленных для этих целей. Подсистемы, использующие RAID уровней 3 и 5, отличаются по стоимости в зависимости от своих возможностей.
Реализация внешней памяти высокой готовности может приводить также к увеличению системных накладных расходов. Например, основной процессор системы вынужден обрабатывать две операции при каждой записи информации на зеркальные диски, если эти диски не являются частью зеркального дискового массива, который имеет свои собственные средства обработки. Однако наиболее сложные дисковые массивы позволяют снизить накладные расходы за счет использования процессоров ввода/вывода, являющихся частью аппаратуры дискового массива.[14]
В настоящее время для устройств внешней памяти характерна тенденция уменьшения соотношения стоимости на единицу емкости памяти (1, 0.5 и менее долларов за мегабайт). Эта тенденция делает сегодняшние избыточные решения по внешней памяти даже менее дорогими, по сравнению со стоимостью подсистем с обычными дисками, выпускавшимися только год назад. Поэтому использование подсистемы RAID очень быстро становится одним из базовых требований обычных систем, а не специальным свойством систем высокой готовности.
1.5 Требования, предъявляемые к системам высокой готовности
В настоящее время одним из ключевых требований пользователей HPC - систем является возможность их наращивания с целью обеспечения более высокой степени готовности. Главными характеристиками систем высокой готовности по сравнению со стандартными системами являются пониженная частота отказов и более быстрый переход к нормальному режиму функционирования после возникновения неисправности посредством быстрого восстановления приложений и сетевых сессий до того состояния, в котором они находились в момент отказа системы. Следует отметить, что во многих случаях пользователей вполне может устроить даже небольшое время простоя в обмен на меньшую стоимость системы высокой готовности по сравнению со значительно более высокой стоимостью обеспечения режима непрерывной готовности.[4]
1.5.1 Требования начальной установки системы
Большинство систем высокой готовности требуют включения в свой состав процедур начальной установки (System Setup), обеспечивающих конфигурацию кластера для подобающего выполнения процедур переключения, необходимых в случае отказа. Пользователи могут запрограммировать "скрипты" начальной установки самостоятельно или попросить системного интегратора или поставщика проделать эту работу. В зависимости от того, насколько сложна начальная установка системы, и в зависимости от типа системы, с которой мигрирует пользователь, написание "скриптов", которые управляют действиями системы высокой готовности в случае отказа, может занять от одного - двух дней до нескольких недель или даже месяцев для опытных программистов. Многие поставщики обеспечивают несколько стандартных "скриптов" начальной установки. Кроме того, некоторые из них предоставляют сервисные услуги по начальной установке конфигурации, которые включают программирование сценариев переключения на горячий резерв в случае отказа, а также осуществляют работу с заказчиком по написанию или модификации "скриптов". Пользователи могут самостоятельно создавать "скрипты", однако для реализации подобающей конфигурации требуется высококвалифицированный программист - знаток UNIX и C.[4]
Время простоя при переключении системы на резервную для систем высокой готовности может меняться в диапазоне от нескольких секунд до 20-40 и более минут. Процедура переключения на резерв включает в себя следующие этапы: резервная машина обнаруживает отказ основной и затем следует предписаниям скрипта, который вероятнее всего включает перезапуск системы, передачу адресов пользователей, получение и запуск необходимых приложений, а также выполнение определенных шагов по обеспечению корректного состояния данных. Время восстановления зависит главным образом от того, насколько быстро вторая машина сможет получить и запустить приложения, а также от того, насколько быстро операционная система и приложения, такие как базы данных или мониторы транзакций, смогут получить приведенные в порядок данные.
В общем случае аппаратное переключение на резерв занимает по порядку величины одну - две минуты, а система перезагружается за следующие одну - две минуты. В большинстве случаев от 5 до 20 минут требуется на то, чтобы получить и запустить приложение с полностью восстановленными данными. В противном случае пользователи инструктируются о необходимости заново ввести последнюю транзакцию.
Накладные системные расходы зависят от типа используемой системы и от сложности процедур ее начальной установки. Для простых процедур начальной установки при переходе на резерв они очень небольшие: от долей процента до 1.5%. Однако, чтобы получить истинную стоимость накладных расходов к этим накладным расходам необходимо добавить еще потери, связанные с недоиспользованием процессорной мощности резервной системы. Хотя покупатели стремятся использовать резервную систему для некритических приложений, она оказывается менее загруженной по сравнению с основной системой. Истинно кластерные системы, такие как VAXclasters компании DEC или кластер LifeKeeper Claster отделения NCR компании AT&T, являются примерами намного более сложного управления по сравнению с простыми процедурами начальной установки при переключении на резерв, и полностью используют все доступные процессоры. Однако организация таких систем влечет за собой и большие накладные расходы, которые увеличиваются с ростом числа узлов в кластере.
1.5.2 Требования к системному программному обеспечению
Поставщики, предлагающие системы с горячим резервом, обычно в своих версиях системы UNIX предоставляют также некоторые дополнительные свойства высокой готовности, обеспечивающие быструю загрузку и/или перезагрузку резервной системы в случае переключения при возникновении неисправности.[4]
Журнализация файловой системы
Следствием журнализации изменений файловой системы является то, что файлы всегда находятся в готовом для использования состоянии. Когда система отказывает, журнализованная файловая система гарантирует, что файлы сохранены в последнем согласованном состоянии. Это позволяет осуществлять переключение на резервную систему без какой-либо порчи данных, а также либо вообще без каких-либо потерь данных, либо с потерей только одной последней транзакции. Такой подход отличается от систем, которые осуществляют журнализацию только метаданных файловой системы - процедура, которая помогает управлять целостностью файловой системы, но не целостностью данных.
Изоляция неисправного процесса
Для активно используемых компонентов программного обеспечения, таких как файловая система, часто применяется технология изоляции неисправных процессов, гарантирующая изоляцию ошибок в одной системе и невозможность их распространения за пределы этой системы.
Мониторы обработки транзакций
Иногда для управления переключением на резерв используются мониторы транзакций, гарантирующие отсутствие потерь данных. При этом для незавершенных транзакций может быть произведен откат назад и базы данных возвращаются к известному согласованному состоянию. Для системы UNIX наиболее известными мониторами транзакций являются Tuxedo компании USL, Encina компании Transarc, CICS/6000 компании IBM и Top End компании NCR.[3]
Другие функции программного обеспечения
В современных системах все возрастающую роль играет диагностика в режиме on-line, позволяющая предвосхищать проблемы, которые могут привести к простою системы. В настоящее время она специфична для каждой системы. В будущем, возможно, диагностика станет частью распределенного управления системой.
1.5.3 Требования высокой готовности к прикладному программному обеспечению
Первыми открытыми системами, построенными в расчете на высокую готовность, были приложения баз данных и систем коммуникаций. Базы данных высокой готовности гарантируют непрерывный доступ к информации, которая является жизненно важной для функционирования многих корпораций и стержнем сегодняшней информационной экономики. Программное обеспечение систем коммуникаций высокой готовности усиливает средства горячего резервирования систем и составляет основу для распределенных систем высокой готовности и систем, устойчивых к стихийным бедствиям.
Высокая готовность баз данных. Несколько компаний, поставляющих базы данных, такие как Oracle, Sybase, Informix имеют в составе своих продуктов программное обеспечение, позволяющее выполнять быструю реконструкцию файлов в случае отказа системы. Это снижает время простоя для зеркальных серверов и кластерных решений.
Продукт Oracle7 Parallel Server позволяет нескольким системам одновременно работать с единым представлением базы данных Oracle. Балансировка нагрузки и распределенный менеджер блокировок, которые позволяют множеству систем обращаться к базе данных в одно и то же время, увеличивают потенциальную готовность базы данных.
Первоначально модель вычислительного кластера была разработана компанией DEC в конце 80-х годов. Она известна под названием VMS-кластеров (или VAX-кластеров), которые представляли собой объединенные в кластер миникомпьютеры VAX, работающие под управлением операционной системы VMS. Компания DEC была первым поставщиком Oracle Parallel Server на VMS-кластерах в 1991 году. После появления версии Oracle 7, у компании Oracle появился интерес к концепции базы данных на UNIX-кластерах и в 1991 году она опубликовала программный интерфейс приложений (API) для своего менеджера блокировок. Публикация этого API означала открытое приглашение всех поставщиков вычислительных систем для организации поддержки на их платформах Oracle 7 Parallel Server. В результате основные поставщики UNIX-кластеров в настоящее время поддерживают этот продукт.
Кроме того, существуют продукты третьих фирм, дополняющие возможности баз данных известных производителей и обеспечивающие увеличение степени высокой готовности. Например, компания Afic Computer Incorporated (New York) продает продукт под названием Multi Server Option (MSO), который позволяет пользователям осуществлять через сеть TCP/IP одновременную запись в любое количество распределенных зеркальных баз данных Sybase. Информация распространяется широковещательным способом одновременно ко всем базам данных. MSO обеспечивает также балансировку нагрузки по множеству серверов. Если один из серверов отказывает, программное обеспечение перенаправит запрос на дублирующую базу данных в течение не более 30 секунд.[3]
1.5.4 Требования к сетевой организации и к коммуникациям
Системы высокой готовности требуют также высокой готовности коммуникаций. Чем быстрее коммуникации между машинами, тем быстрее происходит восстановление после отказа. Некоторые конфигурации систем высокой готовности имеют дублированные коммуникационные связи. В результате связь перестает быть точкой, отказ которой может привести к выходу из строя всей системы. Существующая в настоящее время тенденция в направлении сетей LAN и WAN с повышенной пропускной способностью обеспечивает как локальные, так и удаленные компьютеры более быстрыми коммуникациями, что приводит в итоге к более быстрому восстановлению в распределенных системах.
Современная сетевая технология сама по себе требует устранения таких точек, выход из строя которых, может привести к отказу всей сети. Сегодня при создании сетей характерно использование более сложных сетевых устройств от различных поставщиков, таких как маршрутизаторы и сетевые хабы. Маршрутизаторы, которые определяют путь данных в сетях, могут вычислить новый путь в случае отказа связи. Хабы могут иметь конфигурации с избыточными устройствами и могут изолировать отказы в физической сети для предотвращения отказа всей сети. Важную роль в поддержании оптимального функционирования систем играют также сетевые анализаторы, позволяющие вызвать системного менеджера по любому симптому, который может потенциально привести к простою.
Высокая готовность сетевой организации всегда очень зависит от размера сети. По мере своего разрастания сеть стремится приобрести свойства встроенной надежности: чем больше сеть, тем более желательно использование альтернативных маршрутов, чтобы отказ одного компонента блокировал только какую-то небольшую ее часть.
Подобные документы
Проектирование аппаратной составляющей отказоустойчивого кластерного сервера для компании. Расчет полезной и полной пропускной способности сети. Требования к системе управления, дисковой подсистеме, сетевой инфраструктуре, надежности и отказоустойчивости.
курсовая работа [161,5 K], добавлен 04.12.2013Разработка алгоритма работы. Выбор и обоснование структурной схемы. Разработка функциональной схемы блока ввода и блока вывода. Проектирование принципиальной схемы блока ввода и блока вывода, расчет элементов. Разработка программного обеспечения.
курсовая работа [1,7 M], добавлен 25.12.2011История развития системы исчисления, первые специальные приборы для реализации простейших вычислительных операций. Первые поколения компьютеров, принцип работы, устройство и функции. Современный этап развития вычислительной техники и ее перспективы.
презентация [2,1 M], добавлен 28.10.2009История развития кафедры информатики и вычислительной техники Тульского педагогического института, его современное состояние. Руководители кафедры и ее педагогический состав. Разработка системы навигации и структура сайта кафедры, его стилевое решение.
курсовая работа [30,0 K], добавлен 22.05.2009Обоснование и выбор методологии проектирования, структурной схемы системы и разработки модели системы. Разработка сетевого плана выполнения работ, расчет технических характеристик. Описание выбора языка программирования, web–сервера и базы данных MySQL.
дипломная работа [719,0 K], добавлен 20.09.2013Контроль и управление технологическим процессом очистки диффузионного сока. Разработка функциональной схемы автоматизации. Выбор средств управления и разработка структурной схемы. Расчет системы управления. Формализованные задачи и алгоритмы управления.
курсовая работа [206,8 K], добавлен 21.04.2012История развития вычислительной техники, основные характеристики. Основное отличие вычислительной системы от компьютера, виды архитектур. Классификация уровней программного параллелизма. Главные особенности векторной, матричной обработки регистров.
курсовая работа [36,0 K], добавлен 21.07.2012Технико-экономическое обоснование разработки вычислительной сети. Функции пользователя в сети. Выбор конфигурации. Проектирование структурной схемы. Планирование и анализ угроз информационной безопасности. Моделирование сети. Перспективы развития.
курсовая работа [556,7 K], добавлен 10.12.2008Разработка информационно-аналитической системы анализа и оптимизации конфигурации вычислительной техники. Структура автоматизированного управления средствами вычислительной техники. Программное обеспечение, обоснование экономической эффективности проекта.
дипломная работа [831,1 K], добавлен 20.05.2013Описание функциональной схемы контроллера системы отопления, обеспечивающего многопозиционный контроль температуры и управление ветками отопления и котлом. Разработка принципиальной схемы. Обоснование выбора. Алгоритм работы устройства. Листинг программы.
курсовая работа [1,1 M], добавлен 26.12.2012