Типы кластеров. Кластеры высокой доступности

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

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

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

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

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

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

Характерные признаки кластеров можно свести к 12 показателям: возможности по исследованию и развитию; квалификация рабочей силы; развитие трудового потенциала; близость поставщиков; наличие капитала; доступ к специализированным услугам; отношения с поставщиками оборудования; ассоциирующиеся структуры; интенсивность формирования сетей; предпринимательская энергия; инновации и обучение; коллективное видение и руководство.

Кластеризация – это автоматическое разбиение элементов некоторого множества на группы в зависимости от их схожести. Синонимами термина "кластеризация" являются "автоматическая классификация", "обучение без учителя" и "таксономия".

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

Характеристиками кластера можно назвать два признака:

· внутренняя однородность;

· внешняя изолированность.

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

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

Кластеризация экономики обладает следующими основными преимуществами:

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

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

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

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

Первоначально производство бытовой электроники было организовано на базе лицензионных соглашений, Корея повысила собственные расходы на НИОКР и перешла к стратегии партнерских отношений с иностранными фирмами, в т.ч. с малыми и средними инновационными предприятиями в США, научными центрами в России и т.д. Для России интерес представляет роль правительства в создании промышленной политики, национальной и региональных систем инноваций. До вступления Южной Кореи в ВТО (1995) широко использовались прямые субсидии, низкопроцентные займы и налоговые льготы, после вступления правительство перешло к менее явным формам поддержки индустриальных кластеров.

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

Список литературы:

1. Асаул, А. Н. Строительный кластер – новая региональная производственная система /А. Н. Асаул // Экономика строительства. – 2004. – № 6. – С. 16–25.

2. Внукова, Н. Н. Концептуальные основы формирования трансграничных финансовых кластеров / Н. Н. Внукова // Экономическое возрождение России. – 2010. – № 1(23). – С. 100–108.

3. Ленчук Е.Б. Власкин Г.А. Кластерный подход в стратегии инновационного развития зарубежных стран// Проблемы прогнозирования – 2010, N 5. – С.38-51. - (Наука и технология)

4. Левин И. И все-таки она летает... G. Becattini. Il calabrone Italia. Bologna, "Mulino", 2008. М.: Свободная мысль, 2009.

Понятие «кластер» может варьироваться в зависимости от возлагаемых на него ролей. Цель данной статьи — ознакомить читателя с полным спектром кластерных решений, представленных на рынке, и помочь определиться в выборе варианта для тех или иных задач. Рассмотрим каждый вид кластеров на конкретных примерах решений от Microsoft.

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

Для решения используется метод балансировки нагрузки (Network Load Balancing, NLB). Он заключается в построении фермы объединенных сетевыми интерфейсами серверов (узлов), на которых выполняется общее серверное приложение. Под общ-ностью подразумеваются одинаковые параметры безопасности и конфигурации приложения на всех узлах. В то же время общие данные вынесены за пределы фермы и расположены на отдельных серверах или сетевых хранилищах.

Использование NLB позволяет не столько повысить скорость выполнения отдельного серверного приложения (время одного запроса бесконечно мало в сравнении с количеством запросов), сколько перераспределять нагрузку между несколькими узлами с идентичными приложениями. Для этого в общей сети фермы, которая объединяет узлы между собой и обеспечивает доступ пользователей к узлам, NLB регистрирует общий — публичный — IP-адрес будущего кластера. Именно этот IP-адрес будет доступен пользователям для обращения к серверным приложениям. Кроме того, все узлы фермы добавляются в кластер с собственными — приватными — IP-адресами.


Упрощенно механизм работы NLB-кластера выглядит следующим образом: при первом обращении пользователя на публичный IP-адрес, запрос перенаправляется на один из узлов кластера по приватному IP-адресу, где и обрабатывается конкретным серверным приложением. Связка «адрес пользователя — приватный адрес узла» (на практике параметров привязки намного больше) сохраняется службой NLB и при следующем обращении соединение происходит с тем узлом, на котором был обработан его предыдущий запрос. Запрос от другого пользователя перенаправляется на следующий узел кластера (или по какому-то другому принципу — нагрузке, приоритетов портов, — это зависит от конкретной реализации и настроек NLB).

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

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



В качестве примера представим веб-ферму на базе NLB-кластера с веб-приложением, куда пользователь вносит данные. Помимо переадресации запросов на конкретные узлы, других задач NLB не выполняет, поэтому по умолчанию все данные пользователя сохранятся на том узле кластера, к которому его подключила система при первом обращении. Если пользователь отключился от веб-приложения и вернулся через 15 минут — нет никакой гарантии, что он будет перенаправлен на тот же узел, следовательно, он может не увидеть введенные ранее данные. Кроме того, современные веб-приложения активно используют понятие «состояния сессии» для сохранения глобальных переменных (например, результат аутентификации пользователя при регистрации через веб-форму) или передачи параметров и массивов данных при переходе между веб-страницами. По умолчанию сессия сохраняется в рабочем процессе серверного веб-приложения, т.е. в случае сбоя узла, перезагрузки рабочего процесса или других нештатных ситуаций данные текущей сессии будут утеряны безвозвратно. При следующем обращении пользователя, чей текущий узел отключился, запрос будет переведен NLB на другой узел. Однако этот узел не будет «знать», какую аутентификацию прошел пользователь, в какой части сайта он находился. В результате вместо формы с заполненными данными на экране пользователя появится приглашение на ввод пароля или первая страница сайта. Поэтому для нормального функционирования кластера NLB, его узлы помимо публичной сети должны иметь и внутреннюю сеть, где будут присутствовать серверы общих ресурсов — базы данных, файловые хранилища, хранилища состояний сессий и т.п., — доступные одновременно всем серверным приложениям на всех узлах. И эти приложения должны «знать» о том, каким образом хранить общие данные на внешнем ресурсе.

Пример построения фермы веб-серверов

Требуемые программные продукты: Microsoft Windows Server 2008 любых редакций. Начиная с самой младшей редакции, Web Edition, и заканчивая Datacenter Edition, Windows Server 2008 поддерживает службу Windows Network Load Balancing (WNLB) и может выступать в роли узла кластера NLB. Для предыдущих версий Windows Server (2003, 2003 R2) смотри соответствующие спецификации. Максимальное поддерживаемое число узлов в кластере — 32.

Требуемое аппаратное обеспечение: рекомендуемые Microsoft конфигурации к выбранной редакции ОС (беспокоиться о требованиях службы WNLB к памяти не следует — понадобится от 1 до 32 МБ в зависимости от нагрузки; в среднем — 2 МБ) и требования программного обеспечения, которое будет выполняться как задача; сетевой коммутатор с поддержкой протокола IGMP (желательно) или, если поддержка мультикастинга сетевым оборудованием не обеспечивается, — два сетевых адаптера на каждом узле.

Алгоритм процесса развертывания следующий:

1. Установить на всех узлах будущего NLB-кластера службу Network Load Balancing, добавляется как Feature сервера Windows Server 2008.

2. Запустить оснастку управления Network Load Balancing Manager на любом из узлов и запустить мастер создания NLB-кластера командой New Cluster.

3. Мастер после указания имени первого узла позволяет определить сетевой интерфейс узла, где будет работать публичная сеть, приоритеты узла и, собственно, IP-адрес(а) и FQDN будущего кластера, режим работы кластера (юникаст, мультикаст, аппаратный IGMP) и, самое главное, правила распределения запросов между узлами кластера. Правило по умолчанию — это равномерное распределение всех запросов на все IP-адреса кластера независимо от порта, с «привязкой» конкретного отвечающего узла к IP-адресу клиента.

4. По завершении работы мастера, кластер конфигурируется и запускается в указанной конфигурации с одним узлом (определенным в мастере создания). Команда Add Host To Cluster запускает мастер добавления новых узлов в кластер. При этом не обязательно загружать консоль Network Load Balancing Manager на подключаемом узле. Мастер автоматически связывается с указанным сервером, проверяет наличие установленной службы NLB и только после этого конфигурирует службу и добавляет узел в указанный кластер.

К слову, даже без использования стороннего ПО служба NLB поддерживает различные «хитрые» конфигурации. Например, она способна одновременно поддерживать и кластер для определенных приложений, и работу серверов как отдельных узлов по любому адресу/порту с балансировкой только при сбое. Также в NLB один сервер может одновременно выступать узлом в различных кластерах.



Конечно, не следует рассматривать NLB-кластер как панацею от всех бед, связанных с производительностью и высокой нагрузкой. По сути, функция NLB заключается в выполнении одной простой задачи — распределения обращений между узлами, поэтому такой кластер ничего не «знает» об особенностях тех или иных приложений и не учитывает их в своей работе. В результате многие службы — и простые, как File Sharing, Active Directory Domain Controller, и сложные, например, Windows Terminal Services, Microsoft SQL Server (либо СУБД других производителей) — не будут работать в режиме NLB-кластера, поскольку для распределения нагрузки между их сервисами требуется больше, чем просто распределение запросов. Для каждой из служб существуют сервисы балансировки нагрузки. Например, сервис Distributed File System (DFS) обеспечивает распределение данных и запросов пользователей между файловыми серверами в сети, а для SQL Server — специальные настройки репликации данных между серверами и механизмы контроля целостности на уровне приложений.

Кроме того, поскольку подход NLB по сути — сетевой, то критерий функционирования узлов для него ограничивается работой стека TCP/IP на узлах кластера. А работает ли на определенном порту узла какой-либо сервис (тот же IIS), NLB не проверяет и будет успешно передавать все http-запросы на узел, где служба IIS остановлена. Другими словами, работа службы NLB — отдать пакет узлу, а кто и как, и будет ли вообще его обрабатывать — ее уже не волнует.

Кластеры высокой доступности


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

Кластеры высокой доступности обеспечивают гарантированную работу целевого приложения на одном из своих серверных узлов, объединенных высокоскоростной сетью для обмена состояниями процессов и общей дисковой СХД. В случае выхода из строя узла с приложением, вмешательства оператора, снижения производительности приложения до некоторого порога и т.п., целевое приложение запускается на другом доступном узле кластера. Поскольку данные приложения хранятся на общем дисковом массиве, они остаются доступными и при старте на другом узле, а сетевое имя и адрес маршрутизируется кластером между узлами. В отличие от NLB-кластера, который, по сути, является точкой обращения к приложениям, программы в HA-кластере представлены как отдельные сетевые серверные ресурсы. Каждый из таких сервисов имеет собственные IP-адрес и имя, отличные от IP-адресов/имен кластера и узлов. Кластеры высокой доступности обеспечивают надежное выполнение серверных приложений, но не повышают их производительность. Часто — даже наоборот, скорость работы несколько снижается, поскольку возникают накладные расходы на менеджмент ресурсов узла.

Таким образом, HA-кластер можно назвать «приложениецентричной» службой. Для нее важно, чтобы приложение получало все необходимые ресурсы — процессорное время, память, дисковую подсистему, сетевые соединения. Благодаря столь обширному контролю, пользователи всегда имеют доступ к приложению, которое мигрирует в случае сбоя отдельного узла на следующий свободный по задаваемому администраторами алгоритму. То есть, пожертвовав некоторым количеством серверов, которые в определенный момент простаивают «на подхвате» (пассивный режим, в отличие от активного режима того узла, где работает конкретная задача), можно быть уверенным, что аппаратный или программный сбой отдельного сервера не прервет бизнес-процессы организации.

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

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

Пример построения HA-кластера



Таким образом, в отличие от NLB-кластера, здесь потребуется специ-фическое оборудование — общая дисковая подсистема.

Требуемые программные продукты: Microsoft Windows Server 2008 в редакциях Enterprise или Datacenter — только они поддерживают работу кластера высокой доступности с применением Windows Server Failover Clustering. Количество узлов в кластере — 16, все узлы должны быть участниками одного домена Active Directory. Без Active Directory установить HA-кластер под управлением Windows Server Failover Clustering невозможно. Программное обеспечение, которое будет выполняться как задача, должно поддерживать работу в HA-кластере (или обеспечивать возможность переноса конфигурации, состояний между узлами).

Требуемое аппаратное обеспечение: рекомендуемые Microsoft конфигурации к выбранной редакции ОС, требования ПО (с учетом вероятности работы нескольких приложений на одном узле); два высокоскоростных (не менее 100 Мбит) сетевых интерфейса. Первый — для публикации в общей сети ресурсов кластера и приложений, другой — как внутренний интерфейс обмена данными между службами Windows Server Failover Clustering узлов для информирования о сбоях и режимах работы; общая дисковая подсистема, подключенная ко всем узлам, построенная на технологиях Fiber Channel, SCSI, iSCSI и в которой присутствует дисковое хранилище, оснащенное по крайней мере двумя свободными логическими дисковыми устройствами (одно — для общих данных служб кластеризации узлов Windows Server Failover Clustering, второе — непосредственно для данных кластеризуемого приложения). Если предполагается исполнение на узлах более одного приложения или приложение требует нескольких дисков, число логических устройств можно увеличить.

Алгоритм процесса развертывания:

1. Добавить серверы, которые будут работать как узлы HA-кластера, в домен Active Directory.



2. Подключить и настроить аппаратные компоненты, требуемые для работы кластера на каждом из узлов (особенно касается дисковой подсистемы).

3. Установить на всех узлах службу Windows Server Failover Clustering, которая добавляется как свойство сервера Windows Server 2008.

4. Запустить на одном из узлов оснастку Failover Cluster Management. Командой Validate a Configuration запустить мастер проверки конфигурации оборудования будущего кластера. Мастеру указываются имена всех узлов, которые будут задействованы в кластере, он автоматически находит всё требуемое оборудование и проверяет его в различных режимах работы. Процесс проверки занимает от 15 минут до нескольких часов. Рекомендуется внести все изменения, которые будут предложены мастером по окончании работы.

5. В оснастке Failover Cluster Management запустить командой Create a Cluster мастер создания кластера. После указания имен всех будущих узлов кластера и проверки наличия на них службы Windows Server Failover Clustering, мастер потребует только IP-адрес и имя будущего кластера. Процесс непосредственного создания кластера занимает буквально минуту.

6. После создания кластера в Failover Cluster Management будет отображена структура нового кластера. После проверки конфигурации, подготавливаем целевое приложение или сервис для работы в отказоустойчивом режиме. (Если требуется сервер БД, то на данном шаге его необходимо установить в кластерном режиме на каждый из узлов кластера, где он должен работать. Если работа сервера не будет нормироваться отдельными узлами, лучше устанавливать на все узлы. Процесс кластерной установки сервера БД только копирует исполнимые файлы приложения, а дальнейшая настройка и конфигурирование выполняется непосредственно в оснастке.)



7. В оснастке Failover Cluster Management в разделе Services and Applications запускаем мастер создания приложения High Availability Wizard. Выбираем из списка установленных служб требующуюся, определяем IP-адрес и имя будущего сервера баз данных, указываем, какие из доступных дисков общего хранилища предоставляем для данного приложения. Мастер создает приложение, которое запускается в режим онлайн.

Если на HA-кластере работает несколько задач, нужно быть готовыми к тому, что они не всегда совместимы между собой на одном узле или не позволяют двухузловому кластеру работать в режиме активный/активный. Поэтому в решениях отказоустойчивой кластеризации на Windows Server 2008 рекомендуется использовать средства встроенной виртуализации Windows Hyper-V. Виртуальная машина с точки зрения кластеризации является обычным сервисом, выполнение которого следует остановить на одном узле, сохранив его данные в общем хранилище, и запустить на другом узле. При этом виртуальная машина не просто сохраняет данные (собственно, ее основные данные и так находятся в общем хранилище кластера) — сервис виртуализации приостанавливает работу переносимой виртуальной машины и сохраняет состояние оперативной памяти в виде файла на диске. Далее этот файл восстанавливается на другом узле как память запущенной там ранее остановленной виртуальной машины. Таким образом можно добиться более безопасного и изолированного исполнения нескольких несовместимых служб на одном узле, а также более полного использования аппаратных ресурсов, поскольку несколько виртуальных машин позволяют эффективнее распределять процессорное время между виртуальными процессорами. О вычислительных кластерах на базе решений Microsoft см. приложение PCWeek Review №3 «Ресурсоёмкие вычисления».

Существует немало классификаций кластеров в зависимости от разных признаков. Вот некоторые из них.

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

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

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

По мнению К.З.Адамовой кластеры рациональнее всего разделить на следующие типы :

  • 1. «Маршаллианские» кластеры - кластеры, в которых мелкие фирмы в одной и той же отрасли используют экономию от масштаба благодаря совместному (вследствие компактного расположения) использованию общих ресурсов. Типично для обувной промышленности Италии, швейных производств Турции, Индии. В настоящее время реализуется программа по формированию подобного сельскохозяйственно-пищевого кластера в Грузии.
  • 2. «Ступицы и спицы» (hub-and-spoke) или «радиальные» кластеры. Такие кластеры создаются крупными сборочными предприятиями автомобильной и электронной отраслей промышленности (как, например, в Детройте или Северной Италии). Ключевая черта подобных кластеров состоит в том, что крупная фирма (одна или несколько) выполняет роль «центра», «корневого бизнеса» для региональной экономики. При этом взаимоотношения между «центром» и прочими компонентами кластера могут быть и жесткими, и слабыми. Связи обычно носят иерархический характер, с выраженно доминирующим «центром». Основой механизма существования подобных кластеров является применение субконтрактации и аутсорсинга.
  • 3. «Спутниковый» кластер представляет собой совокупность компаний, ориентированных на поставку товаров, услуг и работ предприятию, внешнему по отношению к кластеру. Такой тип кластеров часто возникает в результате успешной политики привлечения в регион иностранных инвестиций (перемещение производства комплектующих). Фирмы в таких кластерах относительно независимы как от других производителей в той же технологической цепочке, так и от конкурентов в регионе. В то же время конкуренция между «спутниками» ограничена, в том числе и потому, что они зачастую производят различные виды продукции.
  • 4. «Прикованный к государству» кластер (англ. state anchored cluster) - кластер, в котором экономическая активность в регионе привязана к государственному предприятию, такому, как военная база, оборонный завод, университет, или органу государственного управления, связанного с государственным (оборонным) заказом.

Следующая классификация основана на принципе образования кластера и подразделяет последние на два основных типа.

К первому относятся технокластеры (techno clusters), ориентированные на высокие технологии и создаваемые на базе ведущих университетов и исследовательских центров (как научно-промышленный парк Hsinchu в сфере компьютерных технологий во всемирно известной Силиконовой Долине в Калифорнии). Это,т.н. кластеры «от ВУЗа».

Ко второму типу - кластеры, исторически сложившиеся на более традиционных (часто специфически отраслевых) видах деятельности и имеющие определенные преимущества именно за счет ноу-хау (historic knowhow-based clusters). Это кластеры «от предсприятия».

Условное деление на классы предложено Язеком Радаевским и Дугласом Эдлайном:

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

Класс II. Система имеет эксклюзивные или не широко распространенные детали. Этим можно достичь очень хорошей производительности, но при более высокой стоимости.

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

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

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

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

В 1994 году Томас Стерлинг (Sterling) и Дон Беккер (Becker) создали 16-и узловой кластер из процессоров Intel DX4, соединенных сетью 10Мбит/с Ethernet с дублированием каналов. Они назвали его «Beowulf » по названию старинной эпической поэмы. Кластер возник в центре NASA Goddard Space Flight Center для поддержки необходимыми вычислительными ресурсами проекта Earth and Space Sciences. Проектно-конструкторские работы над кластером быстро превратились в то, что известно сейчас под названием проект Beowulf. Проект стал основой общего подхода к построению параллельных кластерных компьютеров и описывает многопроцессорную архитектуру, которая может с успехом использоваться для параллельных вычислений. Beowulf-кластер, как правило, является системой, состоящей из одного серверного узла (который обычно называется головным узлом), а также одного или нескольких подчинённых узлов (вычислительных узлов), соединённых посредством стандартной компьютерной сети. Система строится с использованием стандартных аппаратных компонент, таких как ПК, запускаемых под Linux, стандартных сетевых адаптеров (например, Ethernet) и коммутаторов. Нет особого программного пакета, называемого «Beowulf». Вместо этого имеется несколько кусков программного обеспечения, которые многие пользователи нашли пригодными для построения кластеров Beowulf. Beowulf использует такие программные продукты как операционную систему Linux, системы передачи сообщений PVM, MPI, системы управления очередями заданий и другие стандартные продукты. Серверный узел контролирует весь кластер и обслуживает файлы, направляемые к клиентским узлам.

    Транспьютерные системы.

Транспьютер (англ. transputer ) - элемент построения многопроцессорных систем, выполненный на одном кристалле большой интегральной схемы, продукт английской компании INMOS Ltd. (ныне - подразделение STMicroelectronics ).

Термин транспьютер происходит от слов Transistor и Computer . Такой генезис должен, по мнению разработчиков, подчёркивать возможность построения сложных вычислительных комплексов на базе транспьютеров, где их роль уподоблялась бы роли транзисторов, выступающих основным элементом при проектировании электронных схем. Другая интерпретация: trans-put-er -тот, кто передаёт , указывает на присутствие встроенных скоростных устройств ввода/вывода для обмена с соседними процессорами.

Параллельная система может создаваться из набора транспьютеров, которые функционируют независимо и взаимодействуют через последовательные каналы связи. Такие системы можно проектировать и программировать на языке Occam , основанном на концепции взаимодействующих процессов (англ.), или на других языках (например, Concurrent C, Concurrent Fortran), имеющих соответствующие средства.

Язык программирования Occam был разработан компанией INMOS на основе теории Энтони Хоара (англ. C . A . R . Hoare ) о взаимодействии процессов. Occam является алголо -подобным языком высокого уровня; при этом язык оптимизирован с точки зрения эффективности его трансляции в систему команд транспьютера. Первоначально INMOS даже предлагала воспринимать Occam в качестве транспьютерного ассемблера, но позже выпустила пакет низкоуровневых средств для разработчиков компиляторов, а также включила в Occam предписание GUY, позволяющее вставлять код на уровне процессора.

Транспьютеры успешно использовались в различных областях - от встроенных систем до суперЭВМ. В настоящее время транспьютеры не производятся, будучи вытесненными похожими разработками конкурентов, особенно Texas Instruments (TMS320) и Intel (80860 ). Принято считать, что концепция транспьютеров оказала заметное влияние на развитие микропроцессорной техники 1980 -1990-х годов . Так, термин линк (link) - физический канал связи между параллельно работающими процессорами - пришёл из транспьютеров, а протокол транспьютерного линка стал стандартом IEEE.

Цель дипломного проекта - Разработка лабораторного комплекса «Кластерные технологии» в рамках дисциплины «Высокопроизводительные вычислительные системы» для обучения студентов кафедры АСУ.

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

Анализ кластерных технологий в контексте лабораторного практикума

Типы кластеров

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

Один из первых архитекторов кластерной технологии Gregory F. Pfister [Грегори Пфистер] дал кластеру следующее определение: «Кластер -- это разновидность параллельной или распределённой системы, которая:

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

· используется как единый, унифицированный компьютерный ресурс».

Обычно различают следующие основные виды кластеров:

· отказоустойчивые кластеры (High-availability clusters, HA, кластеры высокой доступности)

· кластеры с балансировкой нагрузки (Load balancing clusters)

· вычислительные кластеры (Computing clusters)

· grid-системы.

Кластеры высокой доступности

Обозначаются аббревиатурой HA (англ. High Availability -- высокая доступность). Создаются для обеспечения высокой доступности сервиса, предоставляемого кластером. Избыточное число узлов, входящих в кластер, гарантирует предоставление сервиса в случае отказа одного или нескольких серверов. Типичное число узлов -- два, это минимальное количество, приводящее к повышению доступности. Создано множество программных решений для построения такого рода кластеров.

Отказоустойчивые кластеры и системы вообще строятся по трем основным принципам:

· с холодным резервом или активный/пассивный. Активный узел выполняет запросы, а пассивный ждет его отказа и включается в работу, когда таковой произойдет. Пример -- резервные сетевые соединения, в частности, Алгоритм связующего дерева. Например, связка DRBD и HeartBeat.

· с горячим резервом или активный/активный. Все узлы выполняют запросы, в случае отказа одного нагрузка перераспределяется между оставшимися. То есть кластер распределения нагрузки с поддержкой перераспределения запросов при отказе. Примеры -- практически все кластерные технологии, например, Microsoft Cluster Server. OpenSource проект OpenMosix.

· с модульной избыточностью. Применяется только в случае, когда простой системы совершенно недопустим. Все узлы одновременно выполняют один и тот же запрос (либо части его, но так, что результат достижим и при отказе любого узла), из результатов берется любой. Необходимо гарантировать, что результаты разных узлов всегда будут одинаковы (либо различия гарантированно не повлияют на дальнейшую работу). Примеры -- RAID и Triple modular redundancy.

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

Кластеры распределения нагрузки

Принцип их действия строится на распределении запросов через один или несколько входных узлов, которые перенаправляют их на обработку в остальные, вычислительные узлы. Первоначальная цель такого кластера -- производительность, однако, в них часто используются также и методы, повышающие надёжность. Подобные конструкции называются серверными фермами. Программное обеспечение (ПО) может быть как коммерческим (OpenVMS, MOSIX, Platform LSF HPC, Solaris Cluster Moab Cluster Suite, Maui Cluster Scheduler), так и бесплатным (OpenMosix, Sun Grid Engine, Linux Virtual Server).

Вычислительные кластеры

Кластеры используются в вычислительных целях, в частности в научных исследованиях. Для вычислительных кластеров существенными показателями являются высокая производительность процессора в операциях над числами с плавающей точкой (flops) и низкая латентность объединяющей сети, и менее существенными -- скорость операций ввода-вывода, которая в большей степени важна для баз данных и web-сервисов. Вычислительные кластеры позволяют уменьшить время расчетов, по сравнению с одиночным компьютером, разбивая задание на параллельно выполняющиеся ветки, которые обмениваются данными по связывающей сети. Одна из типичных конфигураций -- набор компьютеров, собранных из общедоступных компонентов, с установленной на них операционной системой Linux, и связанных сетью Ethernet, Myrinet, InfiniBand или другими относительно недорогими сетями. Такую систему принято называть кластером Beowulf. Специально выделяют высокопроизводительные кластеры (Обозначаются англ. аббревиатурой HPC Cluster -- High-performance computing cluster). Список самых мощных высокопроизводительных компьютеров (также может обозначаться англ. аббревиатурой HPC) можно найти в мировом рейтинге TOP500. В России ведется рейтинг самых мощных компьютеров СНГ.

Системы распределенных вычислений (grid)

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