Гетерогенные мультикомпьютерные системы.

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

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

Симметричное мультипроцессирование

Традиционно большинство расширений достигнуто за счет симметричной многопроцессорности (symmetric multiprocessing, SMP), то есть за счет добавления процессоров, памяти, дисков, сетевых карт на один сервер.

Программная модель SMP, часто называемая моделью разделяемой памяти (shared-memory model), запускает единственную копию ОС с прикладным процессом так, как если бы они находились в однопроцессорной системе.

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

SMP является в настоящее время наиболее распространенной параллельной аппаратной архитектурой. SMP-серверы базируются на промышленных стандартных процессорах Intel и Alpha AXP.

Расширение SMP-системы от одного до четырех процессоров обходится не очень дорого. Но расширение четырехпроцессорной системы до восьмипроцессорной уже относительно дороже. Объясняется это тем, что нелинейно растет сложность SMP-системы, поскольку количество взаимосвязей у компонент, каждый из которых имеет собственный интерфейс, оценивается как n2, где n – количество компонент. В идеале добавление второго процессора или увеличение в два раза количества дисков увеличивает производительность системы вдвое. Но на практике линейного роста здесь не достигается, т.к. требуется, чтобы все компоненты системы были хорошо расширяемы. Полная архитектура включает в себя аппаратную часть, операционную систему, базу данных, сетевое программное обеспечение и приложения. Взаимосвязи всех этих компонент в расширяемой системе должны учитывать любое увеличение аппаратуры, но в жизни это не так.

Можно привести пример с землекопами. Если один землекоп может выкопать яму 1м Х1м Х 1м за 10 часов, то 100 землекопов не выкопают эту яму в сто раз быстрее! Возникшие трудности совместной работы значительно превышают возможные выгоды.

Для того чтобы принять правильное решение, увеличивающее производительность ИС, требуется тщательно исследовать все имеющиеся и возможные «узкие места», проследить, каким образом рост некоторого показателя повлияет на все (!) компоненты ИС. Например, в Вашей системе узкое место – диск с базой данных. Заменим его на SCASI – контроллер. После этого узким местом может стать сеть.

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

Несмотря на указанные ограничения, SMP-системы - наиболее общая форма расширяемости. Microsoft Windows NT Server, Windows 2000 и выше, Microsoft SQL Server поддерживают SMP-архитектуру.

Кластеры.

Кластер – это набор слабо связанных, независимых компьютерных систем, которые ведут себя как единая система.

В кластерной архитектуре рабочая загрузка и базы данных распределяются по массиву сетей, процессоров, памяти и систем баз данных. Все достаточно большие системы построены именно по этому принципу. IBM MVS Sysplex, DEC VMScluster, Teradata DBC 1024 , Tandem Himalaya серии являются кластерными системами. В идеале это распределение прозрачно для клиента и приложений. Кластер программируется и управляется как одна система, но реально это – массив узлов.

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

Управляет кластером кластерная операционная система, состоящая из управляемых и управляющих блоков. Чаще реализуется централизованная схема управления: управляющая компонента устанавливается на одном компьютере, а управляемая – на нескольких. До тех пор, пока кластерная управляющая компонента не «выдает задания» управляемым компонентам, последние работают как вполне самостоятельные локальные операционные системы. Вся мощь кластера может быть задействована для решения некоторой сложной задачи. Задача должна иметь многопотоковую архитектуру. Каждый поток управляющая компонента передает одному из управляемых. Таким образом, вычисления производятся на разных компьютерах параллельно.

Кластерная архитектура дает возможность строить системы, значительно превосходящие по мощности SMP-системы.

Под управлением Microsoft Windows NT Server может строиться кластер. Правда получаемый кластер довольно ограниченный: всего два компьютера.

В кластере с разделяемыми дисками все процессоры имеют прямой доступ ко всем дискам и данным, но они не разделяют основную память. Можно считать, что диск, вообще, один, т.к. все диски собраны аппаратно на одну линию связи (шинную или коммутируемую). Дополнительный уровень программного обеспечения, называемый распределенным кэш или менеджером блокировки, предназначен для глобального управления параллельным обращением процессоров к дисковому кэш. Т.к. асинхронный доступ к данным управляется из одного места, то кластер с разделяемыми дисками имеет некоторые из пределов расширяемости, что и в SMP-системах с разделением памяти. Пример такой архитектуры – кластер Digital VMS и Oracle Parallel Query Option.

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

Частные решения для кластеров без разделения поставляются такими разработчиками, как Teradata, Tandem и др. Все эти решения зависят от экзотического аппаратного и программного обеспечения и поэтому дороги.