"Построение кластера высокой доступности на основе осрв qnx neutrino"



страница2/9
Дата04.11.2016
Размер2.34 Mb.
Просмотров2679
Скачиваний0
ТипПояснительная записка
1   2   3   4   5   6   7   8   9

Анализ предметной области.

Для начала разберемся зачем нужны кластеры и что это вообще такое.


Разберем основные термины.
Имеется четыре категории ошибок в компьютерной системе: программные ошибки, аппаратные ошибки, ошибки состояния и временные ошибки.

Программные ошибки – ошибки проектирования или реализации ПО. Деление на ноль, попытка доступа к элементу массива по индексу, который слишком большой или слишком маленький, или некорректная реализация математического уравнения – примеры программных ошибок.

Аппаратные ошибки вызываются отказами лежащей в основе аппаратуры. Примерами являются остановки процессора в мультипроцессорной системе и неспособность сенсора посылать данные.

Ошибки состояния являются результатом различия между системным восприятием внешней среды и действительной средой.

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

Маскирование неисправности представляет собой метод, который предотвращает ситуацию, когда неисправность вводит ошибки в систему.

Обнаружение неисправности представляет собой способность обнаруживать неисправности в системе. Могут быть обнаружены только последствия неисправности или ошибки. Причина, по которой происходит неисправность, должна быть выведена из результата.
Отказоустойчивость представляет собой способность системы продолжать выполнять свою задачу после возникновения неисправностей. Она может быть достигнута с использованием многих способов. Маскирование неисправностей – один подход, другой – обнаружение и обработка ошибки, чтобы либо сохранить, либо восстановить функционирование системы.
При введении термина «отказоустойчивость» предполагается, что система устойчива к отказам своих компонент, рассматриваемых в этом смысле как «неделимые блоки».
Структура унифицированного отказоустойчивого вычислителя определяется его назначением и должна обеспечивать сохранение работоспособности в условиях одиночных сбоев и отказов.
Функционирование аппаратуры в условиях обратимых дефектов требует таких решений, которые в течение активного рабочего цикла выполняемой задачи либо обеспечивают парирование сбоев, либо их маскирование и восстановление процесса управления. Полное тестирование и реконфигурация аппаратной части может происходить только в течение пассивного цикла выполняемой задачи. Повышение надежности основано на принципе предотвращения неисправностей путем снижения интенсивности отказов и сбоев за счет применения электронных схем и компонентов с высокой и сверхвысокой степенью интеграции, снижения уровня помех, облегченных режимов работы схем, обеспечения тепловых режимов их работы, а также за счет совершенствования методов сборки аппаратуры. Единицей измерения надежности является среднее время наработки на отказ (MTBF - Mean Time Between Failure).
Принципы, лежащие в основе методов достижения отказоустойчивости, и оказывающие решающее влияние на его конфигурацию:
1) Избыточность ресурса (аппаратного, временного, программного);

2) Наличие дополнительных аппаратных и программных средств, управляющих восстановлением вычислительного процесса после отказов;

3) Достоверность выходных сигналов каждого неделимого блока;

4) Удаление из рабочей конфигурации только неисправных неделимых блоков;

5) Функциональная и системная однородность групп неделимых блоков;

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

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

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


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

- модульность;

- резервирование;

- контроль;

- реконфигурацию;

- восстановление.


Для обеспечения отказоустойчивости используются два подхода – кластерный и мажоритарный. В первом случае на каждом из узлов отказоустойчивого вычислителя выполняются разные приложения, но при отказе одного из узлов приложения этого узла мигрируют на работоспособный узел. Во втором случае все три узла работают синхронно на одних и тех же данных, проводят взаимное сравнение своих результатов и отключают неисправный процессор. Если процессоры не само - тестируемые, то минимальная конфигурация должна содержать 3 процессора, и с ростом их числа отказоустойчивость повышается.
Кластер — это разновидность параллельной или распределенной системы, которая:

- состоит из нескольких связанных между собой компьютеров;

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

1) высокого уровня доступности (High Availability), иначе называемого уровнем готовности;

2) высокой степени масштабируемости;

3) удобства администрирования по сравнению с разрозненным набором компьютеров или серверов.


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

- Высокая готовность

-Высокое быстродействие

-Масштабирование

-Общий доступ к ресурсам

-Удобство обслуживания


Программное обеспечение унифицированного отказоустойчивого вычислителя реализует кластерную систему высокой готовности (high availability), поэтому первое требование ставится во главу угла.
Сегодня в мире распространены несколько типов систем высокой готовности. Среди них кластерная система является воплощением технологий, которые обеспечивают высокий уровень отказоустойчивости при самой низкой стоимости. Отказоустойчивость кластера обеспечивается дублированием всех жизненно важных компонент. Максимально отказоустойчивая система должна не иметь ни единой точки, то есть активного элемента, отказ которого может привести к потере функциональности системы. Такую характеристику как правило называют – NSPF (No Single Point of Failure, - англ., отсутствие единой точки отказа).
При построении систем высокой готовности, главная цель - обеспечить минимальное время простоя.

Для того чтобы система обладала высокими показателями готовности, необходимо:

1) чтобы ее компоненты были максимально надежными;

2) чтобы она была отказоустойчивая, желательно, чтобы не имела точек отказов;

3) а также важно, чтобы она была удобна в обслуживании и разрешала проводить замену компонент без останова.
Пренебрежение любым из указанных параметров, может привести к потере функциональности системы.
Что касается обеспечения максимальной надежности, то она осуществляется путем использования электронных компонент высокой и сверхвысокой интеграции, поддержания нормальных режимов работы, в том числе тепловых.
Отказоустойчивость обеспечивается путем использования специализированных компонент (ECC, Chip Kill модули памяти, отказоустойчивые блоки питания, и т.п.), а также с помощью технологий кластеризации. Благодаря кластеризации достигается такая схема функционирования, когда при отказе одного из компьютеров задачи перераспределяются между другими узлами кластера, которые функционируют исправно.
Кластерная архитектура рассчитана на следующую конфигурацию:

1) все узлы кластера имеют независимую оперативную память;



2) в части доступности устройств ввода-вывода и, прежде всего дисков, возможны следующие конфигурации:
а) кластер с разделяемыми дисками (shared disk) подразумевает, что любой узел имеет прозрачный доступ к любой файловой системе общего дискового пространства. Помимо разделяемой дисковой подсистемы на узлах кластера могут иметься локальные диски, но в этом случае они используются, главным образом, для загрузки ОС на узле. Такой кластер должен иметь специальную подсистему, называемую «распределенный менеджер блокировок» (Distributed Lock Manager, DLM), для устранения конфликтов при одновременной записи в файлы с разных узлов кластера;
б) Кластер без разделения ресурсов (shared nothing), как и следует из названия, не имеет общих устройств ввода/вывода . Правда, здесь есть одна тонкость: речь идет об отсутствии общих дисков на логическом, а не на физическом уровне. Это означает, что на самом деле дисковая подсистема может быть подключена сразу ко всем узлам. Если на дисковой подсистеме имеется несколько файловых систем (или логических/физических дисков), то в любой конкретный момент времени доступ к определенной файловой системе предоставляется только одному узлу. К другой файловой системе доступ может иметь (т. е. владеть ресурсом) совсем другой узел. Такая схема применяется для того, чтобы в случае отказа одного узла ресурс мог быть передан другому узлу.
с) в соответствии с еще одной схемой локальные диски узлов кластера зеркалируются (дублируются). Очевидно, что такой подход годится только для задач, решение которых не возлагает значительной нагрузки на дисковые подсистемы.
Как уже было сказано выше, основными характеристиками кластера являются высокий уровень готовности, масштабируемость и представление кластера как единого целого с точки зрения внешней среды.
Уровень готовности характеризует готовность системы к функционированию в течение длительного времени без остановки и измеряется в процентном отношении времени нахождения системы в работоспособном состоянии к общему времени. Иногда он характеризуется временем простоя системы за год.
Высоким уровнем готовности считается обычно уровень 99, 9 % и выше, хотя такая градация носит достаточно условный характер. С уровнем готовности связано понятие отказоустойчивости. Обычно под отказоустойчивой понимают систему с уровнем готовности 99, 999 % и выше. Используемый иногда термин «истинная отказоустойчивость» подразумевает практически безостановочную работу системы (99, 9999 % и выше).
Важно понимать, что заявляемый производителями уровень готовности относится лишь к аппаратной части кластера и операционной системе и обычно не учитывает надежность ПО, особенно сторонних разработчиков. Более того, чтобы обеспечить высокий уровень производительности, каналы подключения к дисковым массивам, сетевой среде и между узлами должны быть отказоустойчивыми и дублированными. Вдобавок дублировать следует также сами дисковые массивы, маршрутизаторы и коммутаторы сети, источники бесперебойного питания и т. д. Особенно важное значение имеет использование в качестве дисковых подсистем массивов RAID, причем для повышения отказоустойчивости и производительности специалисты советуют применять RAID - 10. Разумеется, чем больше компьютеров в кластере, тем теоретически выше уровень доступности.
Обращаясь к теме масштабирования кластеров, следует отметить, что грамотное размещение на узлах кластера даже обычных (не кластерных) приложений позволяет не только существенно повысить запас прочности, но и увеличить общую производительность по сравнению с одним сервером.
Количество узлов в кластере зависит от конкретной реализации, оно колеблется от двух до нескольких десятков, и, как уже было сказано, каждый узел может быть многопроцессорным. Добавление нового узла в кластер обычно проходит безболезненно и не требует перегрузки других узлов. Таким образом, при нехватке вычислительных ресурсов кластер можно на ходу увеличить «в размерах».
Весьма важной особенностью кластера является так называемый единый образ системы (Single System Image, SSI), благодаря которому пользователи могут видеть серверы в кластере как единое целое. Для пользователя кластер — это большой сервер, на котором работает множество приложений, хотя в действительности они функционируют на различных узлах.
Единый образ системы исключительно важен и для администратора, так как позволяет управлять кластером как одной системой. Разумеется, с помощью соответствующих утилит администратор может управлять и отдельными узлами.
Особый интерес представляет доступ клиентов к кластеру в момент отказа узла.

Кластеру назначается один или несколько общих виртуальных IP - адресов. Эти виртуальные IP - адреса используются для доступа к кластеру как единому целому. Кроме того, каждому узлу назначается свой индивидуальный IP - адрес.


Помимо общих виртуальных IP - адресов каждому сетевому ресурсу кластера (это может быть система для файлового сервиса или приложение с соответствующим ему дисковым пространством) назначается свой виртуальный IP - адрес. В нормально работающем кластере такие виртуальные IP - адреса принадлежат узлам, на которых выполняется приложение или сетевая служба, т. е. при обращении к виртуальному IP - адресу откликается определенный узел. При отказе того или иного узла кластерные ресурсы вместе с соответствующими виртуальными IP - адресами переходят к другим узлам.
Что же происходит при отказе узла или отдельной сетевой службы, с точки зрения клиента? Все зависит от того, какими протоколами и приложениями пользуется клиент в данный момент. Если они относятся к категории сервисов, не отслеживающих состояние соединения, то клиент попросту не заметит ничего, вернее, он может столкнуться с некоторой задержкой в выполнении запросов, вследствие того, что на миграцию служб требуется определенное время.
Если же сервисы отслеживают состояние соединения, то их работа зависит от конкретной реализации. В общем случае от клиента может потребоваться заново установить соединение. Однако в ряде случаев повторного открытия соединений может и не потребоваться, поскольку клиентское ПО само автоматически переустановит соединение.
Программное обеспечение унифицированного отказоустойчивого вычислителя в сочетании с предлагаемыми аппаратными средствами должно обеспечить надежность 99,999% , в этом случае приложение должно иметь непроизводительные потери времени не более чем 5,25 минуты в год, независимо от количества программных сбоев, отключений электропитания, отказов оборудования, ошибок оператора и других неожиданных неприятностей. Даже если приложение останавливается только на один час в год (например, для модернизации), это значит, что степень его готовности составляет всего "четыре девятки" - 99,99%.
Судя по этим цифрам, очевидно, что высокая готовность является системной проблемой. Таким образом, для получения системы высокой готовности все ее компоненты, включая операционную систему, аппаратную платформу и код приложений, должны разрабатываться с учетом требований высокой готовности. Например, это относится к следующим вопросам. Как операционная система обрабатывает ошибки драйвера (которые часто приводят к полному отказу системы)? Может ли ОС немедленно перезапустить драйвер без сброса системы? Или в этом случае вся система должна быть перезагружена?

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



Каталог: data -> 2013
2013 -> Федеральное государственное автономное образовательное
2013 -> «Визуальный образ персонажей массового кинематогрфа в историческом контексте»
2013 -> 2 раздел анализ предметной области 5
2013 -> Магистерская диссертация
2013 -> Влияние вовлеченности на готовность платить за коллекционные товары
2013 -> Выражение гендерных характеристик в англоязычном "глянцевом" дискурсе
2013 -> Продакт Плейсмент и перспективы его развития в сети Интернет
2013 -> 1Лекции первого полугодия
2013 -> «Правовое рассмотрение компьютерного мошенничества», Ницца, 22 октября 1992 года, грамота «весьма достойно»


Поделитесь с Вашими друзьями:
1   2   3   4   5   6   7   8   9


База данных защищена авторским правом ©nethash.ru 2019
обратиться к администрации

войти | регистрация
    Главная страница


загрузить материал