Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Газизов / Лекции КИС

.pdf
Скачиваний:
290
Добавлен:
19.03.2016
Размер:
2.79 Mб
Скачать

Корпоративные ИС. Лекции. 2010г.

наиболее распространенным и поэтому применяется во многих случаях. Вот несколько наиболее типичных примеров использования репликации транзакций:

для получения отчетов о произведенных операциях с филиалов. При этом у вас будет множество издателей (серверы в филиалах) и один подписчик (сервер в центральном офисе);

для создания запасного сервера для повышения отказоустойчивости или снятия нагрузки с основного сервера;

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

при сборе данных с разных серверов в базе данных на одном сервере (т. е. для организации хранилища данных).

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

Первый подтип — репликация транзакций с возможностью внесения изменений на подписчиках (transactional replication with updatable subscriptions). По умолчанию в репликации транзакций разрешается внесение изменений только на издателе, но иногда возникают ситуации, когда нужно разрешить внесение изменений и на подписчиках. Заметим, что если на подписчиках изменения нужно вносить постоянно, то, возможно, в этой ситуации лучше подойдет репликация слиянием.

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

немедленное извещение об изменениях (immediate updating). При выборе этого режима должно существовать постоянно доступное сетевое соединение между издателем и подписчиком. Как только на подписчике вносятся изменения, он немедленно уведомляет о них издателя. Тот, в свою очередь, получив информацию об этих изменениях, уведомляет о них других подписчиков;

извещение об изменениях с использованием очередей (queued updating). Постоянно доступное сетевое соединение при этом не нужно. Информация о внесенных на подписчиках изменениях помещается в очередь и по определенному расписанию передается издателю, который уведомляет о них остальных подписчиков.

Еще один подтип репликации транзакций (он появился только в SQL Server 2005) — это одноранговая репликация (peer replication), в которой изменения можно вносить на любой из серверов, участвующих в репликации. Вся информация будет автоматически синхронизирована между ними.

Третий главный тип репликации — это репликация слиянием (merge replication). Это самый сложный тип репликации, и используется он очень редко.

80

Корпоративные ИС. Лекции. 2010г.

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

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

Еще одна ситуация, для которой предназначена репликация слиянием, — репликация центральной базы данных SQL Server 2005 с базами данных SQL Server Mobile на наладонных компьютерах (например, торговых представителей). Фактически это вариант предыдущего примера, но более приближенный к реальной жизни.

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

81

Корпоративные ИС. Лекции. 2010г.

Кластерные системы

Концепция кластерных систем

Рисунок 1. Кластерная система

LAN — Local Area Network, локальная сеть

SAN — Storage Area Network, сеть хранения данных

Кластер — это группа вычислительных машин, которые связаны между собою

ифункционируют как один узел обработки информации.

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

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

К общим требованиям, предъявляемым к кластерным системам, относятся:

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

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

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

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

5.Удобство обслуживания Естественно, что при частных реализациях одни из требований ставятся во

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

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

82

Корпоративные ИС. Лекции. 2010г.

Рисунок 2. есно связанная мультипроцессорная система

Рисунок 3. Умеренно связанная мультипроцессорная система

Рисунок 4. Слабо связанная мультипроцессорная система

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

83

Корпоративные ИС. Лекции. 2010г.

Разделение на системы высокой доступности и системы высокой готовности.

В функциональной классификации кластеры можно разделить на "Высокоскоростные" (High Performance, HP), "Системы Высокой Готовности" (High Availability, HA), а также "Смешанные Системы".

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

обработка изображений: рендеринг, распознавание образов

научные исследования: физика, биоинформатика, биохимия, биофизика

промышленность (геоинформационные задачи, математическое моделирование)

Кластеры, которые относятся к системам высокой готовности, используются везде, где стоимость возможного простоя превышает стоимость затрат, необходимых для построения кластерной системы, например:

биллинговые системы

банковские операции

электронная коммерция

управление предприятием

Смешанные системы объединяют в себе особенности как первых, так и вторых. Позиционируя их, следует отметить, что кластер, который обладает параметрами как High Performance, так и High Availibility, обязательно проиграет в быстродействии системе, ориентированной на высокоскоростные вычисления, и в возможном времени простоя системе, ориентированной на работу в режиме высокой готовности.

84

Корпоративные ИС. Лекции. 2010г.

Высокопроизводительные кластерные системы

Рисунок 5. Высокоскоростной кластер

Почти в любой ориентированной на параллельное вычисление задаче невозможно избегнуть необходимости передавать данные от одной подзадачи другой.

Таким образом, быстродействие High Performance кластерной системы определяется быстродействием узлов и связей между ними. Причем влияние скоростных параметров этих связей на общую производительность системы зависит от характера выполняемой задачи. Если задача требует частого обмена данными с подзадачами, тогда быстродействию коммуникационного интерфейса следует уделять максимум внимания. Естественно, чем меньше взаимодействуют части параллельной задачи между собою, тем меньше времени потребуется для ее выполнения. Что диктует определенные требования также и на программирование параллельных задач.

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

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

85

Корпоративные ИС. Лекции. 2010г.

Кластерные системы высокой готовности

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

Рисунок 6. Кластерная система с отсутствием точек отказов

При построении систем высокой готовности, главная цель — обеспечить минимальное время простоя.

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

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

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

а также важно, чтобы она была удобна в обслуживании и разрешала проводить замену компонент без останова

Пренебрежение любым из указанных параметров, может привести к потере функциональности системы.

Давайте коротко пройдемся по всем трём пунктам.

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

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

86

Корпоративные ИС. Лекции. 2010г.

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

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

Смешанные архитектуры

Рисунок 7. Высокоскоростной отказоустойчивый кластер

Сегодня часто можно встретить смешанные кластерные архитектуры, которые одновременно являются как системами высокой готовности, так и высокоскоростными кластерными архитектурами, в которых прикладные задачи распределяются по узлам системы. Наличие отказоустойчивого комплекса, увеличение быстродействия которого осуществляется путем добавления нового узла, считается самым оптимальным решением при построении вычислительной системы. Но сама схема построения таких смешанных кластерных архитектур приводит к необходимости объединения большого количества дорогих компонент для обеспечения высокого быстродействия и резервирования одновременно. И так как в High Performance кластерной системе наиболее дорогим компонентом является система высокоскоростных коммуникаций, ее дублирование приведет к значительным финансовым затратам. Следует отметить, что системы высокой готовности часто используются для OLTP задач, которые оптимально функционируют на симметричных мультипроцессорных системах. Реализации таких кластерных систем часто ограничиваются 2-х узловыми вариантами, ориентированными в первую очередь на обеспечение высокой готовности. Но в

87

Корпоративные ИС. Лекции. 2010г.

последнее время использование недорогих систем количеством более двух в качестве компонент для построения смешанных HA/HP кластерных систем становится популярным решением.

Средства реализации High Availability кластеров

High Availability кластеры можно распределить на:

Shared Nothing Architecture (архитектура без разделения ресурсов)

Shared Disk Architecture (архитектура с общими дисками)

Рисунок 12. Архитектура без разделения ресурсов

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

Рисунок 13. Архитектура с общими дисками

Архитектура с общими дисками классически используется для построения кластерных систем высокой готовности, ориентированных на обработку больших объемов данных. Такая система состоит из общей системы хранения данных и узлов

88

Корпоративные ИС. Лекции. 2010г.

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

В случае если в задаче удается логически разделить данные для того чтобы запрос из некого подмножества запросов можно было бы обработать с использованием части данных, то система без разделения ресурсов может оказаться более эффективным решением.

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

Самыми популярными коммерческими системами сегодня являются двухузловые отказоустойчивые кластеры. Различают Активный-Активный (ActiveActive) и Активный-Пассивный (Active-Passive) модели реализации отказоустойчивых кластерных систем в отношении распределения программных ресурсов.

Рисунок 15. Модель Активный-Активный

В модели Активный-Активный мы практически получаем вместе с отказоустойчивым решением — решение высокоскоростное, так как одна задача работает на нескольких серверах одновременно. Такой вариант реализован,

например, в Oracle Prallel Server, MS SQL 2000, IBM DB2. То есть, реализация такой модели возможна лишь в случае написания прикладного программного обеспечения с ориентацией на функционирование в кластерном режиме. В модели АктивныйАктивный возможно масштабирование скорости работы задачи путем добавления нового узла, если конечно программным обеспечением поддерживается

89