Кластер серверов

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 13:52, 31 января 2019.

Кластер серверов – группа серверов, объединённых высокоскоростными каналами связи, представляющая с точки зрения пользователя единый аппаратный ресурс. Кластер - слабо связанная совокупность нескольких вычислительных систем, работающих совместно для выполнения общих приложений, и представляющихся пользователю единой системой. Один из первых архитекторов кластерной технологии Грегори Пфистер дал кластеру следующее определение: «Кластер – это разновидность параллельной или распределённой системы, которая:

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

Возможности

Возможностями при использовании кластерами серверов являются:

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

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

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

Модели формирования

Принято считать, что кластеры серверов делятся на две модели:

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

В обоих случаях, существуют определенные и вполне эффективные инструменты для решения проблем, поэтому выбор конкретной модели кластера неограничен ничем, кроме требований к архитектуре системы.[Источник 1]

Виды

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

  • отказоустойчивые кластеры (High-availability clusters, HA, кластеры высокой доступности)
  • кластеры с балансировкой нагрузки (Load balancing clusters)
  • вычислительные кластеры (High performance computing clusters, HPC)
  • системы распределенных вычислений

Отказоустойчивые кластеры

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

Такие требования к надежности и отказоустойчивости кластерных систем обусловлены спецификой их использования. Приведем небольшой пример. Кластер обслуживает систему электронных платежей, поэтому если клиент в какой-то момент останется без обслуживания для компании-оператора, это ему будет дорого стоить. Другими словами, система должна работать в непрерывном режиме 24 часа в сутки и семь дней в неделю (7Ѕ24). При этом отказоустойчивости в 99% явно не достаточно, так как это означает, что почти четыре дня в году информационная система предприятия или оператора будет неработоспособной.

Это может показаться не таким уж и большим сроком, учитывая профилактические работы и техническое обслуживание системы. Но сегодняшнему клиенту абсолютно безразличны причины, по которым система не работает. Ему нужны услуги. Итак, приемлемой цифрой для отказоустойчивости становится 99,999%, что эквивалентно 5 минутам в год. Таких показателей позволяет достичь сама архитектура кластера. Приведем пример серверного кластера: каждый сервер в кластере остается относительно независимым, то есть его можно остановить и выключить (например, для проведения профилактических работ или установки дополнительного оборудования), не нарушая работоспособность кластера в целом. Тесное взаимодействие серверов, образующих кластер (узлов кластера), гарантирует максимальную производительность и минимальное время простоя приложений за счет того, что:

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

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

Масштабируемость

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

Горизонтальное масштабирование предоставляет возможность добавлять в систему дополнительные компьютеры и распределять работу между ними. Таким образом, производительность новой системы в целом выходит за пределы предыдущей. Естественным ограничением такой системы будет программное обеспечение, которые вы решите на ней запускать. Самым простым примером использования такой системы является распределение различных приложений между разными компонентами системы. Например, вы можете переместить ваши офисные приложения на один кластерный узел приложения для Web на другой, корпоративные базы данных – на третий. Однако здесь возникает вопрос взаимодействия этих приложений между собой. И в этом случае масштабируемость обычно ограничивается данными, используемыми в приложениях. Различным приложениям, требующим доступ к одним и тем же данным, необходим способ, обеспечивающий доступ к данным с различных узлов такой системы. Решением в этом случае становятся технологии, которые, собственно, и делают кластер кластером, а не системой соединенных вместе машин. При этом, естественно, остается возможность вертикального масштабирования кластерной системы. Таким образом, за счет вертикального и горизонтального масштабирования кластерная модель обеспечивает серьезную защиту инвестиций потребителей.

В качестве варианта горизонтального масштабирования стоит также отметить использование группы компьютеров, соединенных через коммутатор, распределяющий нагрузку (технология Load Balancing). Здесь стоит отметить невысокую стоимость такого решения, в основном слагаемую из цены коммутатора (6 тыс. долл. и выше – в зависимости от функционального оснащения) и хост-адаптер (порядка нескольких сот долларов за каждый; хотя, конечно, можно использовать и обыкновенные сетевые карты). Такие решения находят основное применение на Web-узлах с высоким трафиком, где один сервер не справляется с обработкой всех поступающих запросов. Возможность распределения нагрузки между серверными узлами такой системы позволяет создавать на многих серверах единый Web-узел.

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

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

Проект Beowulf появился в 1994 году – возникла идея создавать параллельные вычислительные системы (кластеры) из общедоступных компьютеров на базе Intel и недорогих Ethernet-сетей, устанавливая на эти компьютеры Linux и одну из бесплатно распространяемых коммуникационных библиотек (PVM, а затем MPI). Оказалось, что на многих классах задач и при достаточном числе узлов такие системы дают производительность, сравнимую с суперкомпьютерной. Как показывает практика, построить такую систему довольно просто. Все, что для этого нужно, это высокопроизводительный коммутатор и несколько подсоединенных к нему рабочих станций (серверов) с установленной операционной системой Linux. Однако этого недостаточно. Для того чтобы эта груда железа ожила, необходимо специальное программное обеспечение для параллельных вычислений. Наиболее распространенным интерфейсом параллельного программирования в модели передачи сообщений является MPI (Message Passing Interface).

Название «Интерфейс передачи сообщений» говорит само за себя. Это хорошо стандартизованный механизм для построения параллельных программ в модели обмена сообщениями. Существуют бесплатные и коммерческие реализации почти для всех суперкомпьютерных платформ, а также для сетей рабочих станций UNIX и Windows NT. В настоящее время MPI – наиболее широко используемый и динамично развивающийся интерфейс своего класса. Рекомендуемая бесплатная реализация MPI – пакет MPICH, разработанный в Аргоннской Национальной Лаборатории. Стандартизацией MPI занимается MPI Forum. Последняя версия стандарта – 2.0. В этой версии к MPI добавлены такие важные функции, как динамическое управление процессами, односторонние коммуникации (Put/Get), параллельный ввод-вывод.

Постоянный спрос на высокие вычислительные мощности обусловил появление привлекательного для многих производителей рынка. Некоторые из них разработали собственные технологии соединения компьютеров в кластер. Наиболее известные из них – Myrinet производства MyriCom и cLAN фирмы Giganet. Myrinet является открытым стандартом. Для его реализации MyriCom предлагает широкий выбор сетевого оборудования по сравнительно невысоким ценам. На физическом уровне поддерживаются сетевые среды SAN (System Area Network), LAN (CL-2) и оптоволокно.

Технология Myrinet дает высокие возможности масштабирования сети и в настоящее время очень широко используется при построении высокопроизводительных кластеров. Giganet занимается разработкой программных и аппаратных средств для непосредственного взаимодействия центральных процессорных устройств серверов кластера на гигабитных скоростях, минуя функции ОС. Стоимость решения составляет: около 2500 долл. – за 8-портовый коммутатор, 150 долл. – за адаптер для Myrinet, около 6250 долл. – за 8-портовый коммутатор и 800 долл. – за адаптер для Giganet. Последняя, кстати, получила на выставке Microsoft Tech Ed 2000 премию «Best of Show». В качестве примера приведем реализацию Beowulf-кластера в Институте высокопроизводительных вычислений и баз данных Министерства науки и технической политики РФ.

Кластер, получивший название «ПАРИТЕТ», создан на базе общедоступных комплектующих для персональных компьютеров и рабочих станций и обеспечивает суммарную пиковую производительность 3,2 GFLOP/sec. Кластер состоит из четырех двухпроцессорных вычислительных узлов, на базе процессоров Intel Pentium II/450MHz. На каждом узле установлена оперативная память объемом 512 Мбайт и 10-гигабайтный жесткий диск на интерфейсе Ultra Wide SCSI. Вычислительные узлы кластера объединены высокопроизводительным коммутатором Myrinet (каналы с пропускной способностью 1,28 Гбайт/с, полный дуплекс). Имеется также резервная сеть, используемая для управления и конфигурирования (100 Mbit Fast Ethernet). На узлах вычислительного кластера установлена операционная система Linux (дистрибутив Red Hat 5,2). Для программирования параллельных приложений используются интерфейсы передачи сообщений MPI/PVM.[Источник 2]

Источники

  1. Кластер серверов // СТЭК [2002–2018]. Дата изменения: 05.12.2012. URL: https://www.stekspb.ru/autsorsing-it-infrastruktury/it-glossary/server-cluster/ (дата обращения: 25.11.2018).
  2. Кластеры и кластеризация // КомпьютерПресс [1999–2018]. Дата изменения: 01.10.2000. URL: https://compress.ru/article.aspx?id=11943 (дата обращения: 25.11.2018).