Что такое кластеры в компьютере
Кластер — группа компьютеров, объединённых высокоскоростными каналами связи, представляющая с точки зрения пользователя единую машину.
Один из первых архитекторов кластерной технологии Грегори Пфистер (Gregory F. Pfister) дал кластеру следующее определение: «Кластер — это разновидность параллельной или распределённой системы, которая:
- состоит из нескольких связанных между собой компьютеров;
- используется как единый, унифицированный компьютерный ресурс».
Иными словами, кластер компьютеров представляет собой несколько объединённых компьютеров, управляемых и используемых как единое целое. Они называются узлами и могут быть одно- или мультипроцессорными. В классической схеме при работе с приложениями все узлы разделяют внешнюю память на массиве жёстких дисков, используя внутренние дисковые накопители для специальных функций (например, системных).
Обычно различают следующие основные виды кластеров:
- отказоустойчивые кластеры (High-availability clusters, HA)
- кластеры с балансировкой нагрузки (Load balancing clusters)
- вычислительные кластеры (Сompute clusters)
Самые производительные кластеры
Дважды в год организацией TOP500 публикуется список пятисот самых производительных вычислительных систем в мире, среди которых в последнее время часто преобладают кластеры. Самым быстрым кластером является IBM Roadrunner (Лос-Аламосская национальная лаборатория, США, созданный в 2008 году), его максимальная производительность (на июль 2008) составляет 1,026 Петафлопс. Самая быстрая система в Европе (на июль 2008) — суперкомпьютер, BlueGene/P находится в Германии, в исследовательском центре города Юлих, земля Северный Рейн-Вестфалия, максимально достигнутая производительность 167,3 Терафлопс.
Кластерные системы занимают достойное место в списке самых быстрых, при этом значительно выигрывая у суперкомпьютеров в цене. На июль 2008 года на 7 месте рейтинга TOP500 находится кластер SGI Altix ICE 8200 (Chippewa Falls, Висконсин, США).
Сравнительно дешёвую альтернативу суперкомпьютерам представляют кластеры, основанные на концепции Beowulf, которые строятся из обыкновенных недорогих компьютеров на основе бесплатного программного обеспечения. Один из практических примеров такой системы — Stone Soupercomputer (Оак Ридж, Теннесси, США, 1997).
Крупнейший кластер, принадлежащий частному лицу (из 1000 процессоров), был построен Джоном Коза (John Koza).
Схемы архитектур кластеров серверов 1С
Алгоритмы балансировки нагрузки
Различные алгоритмы балансировки предназначены для разных целей и достижения разных выгод. Можно назвать следующие алгоритмы балансировки:
- Round Robin – запросы распределяются по кластеру серверов последовательно.
- Least Connections – новый запрос посылается на сервер с наименьшим числом подключений клиентов, однако при этом учитывается и вычислительная мощность каждого сервера.
- Least Time – запросы посылаются на сервер, выбираемый по формуле, которая комбинирует быстроту ответа и наименьшее число активных запросов.
- Hash – распределяет запросы на основании определяемого пользователем ключа, например, IP-адреса клиента или URL запрашиваемого сайта.
- Random with Two Choices – выбираются два сервера по методу произвольного выбора и затем запрос посылается на один из них, который выбирается по критерию наименьшего числа подключений.
Кластеры высокой доступности
Обозначаются аббревиатурой HA (англ. High Availability — высокая доступность). Создаются для обеспечения высокой доступности сервиса, предоставляемого кластером. Избыточное число узлов, входящих в кластер, гарантирует предоставление сервиса в случае отказа одного или нескольких серверов. Типичное число узлов — два, это минимальное количество, приводящее к повышению доступности. Создано множество программных решений для построения такого рода кластеров. В частности, для GNU/Linux, Solaris существует проект бесплатного ПО Linux-HA.
Программные средства
Широко распространённым средством для организации межсерверного взаимодействия является библиотека MPI, поддерживающая языки C и Fortran. Она используется, например, в программе моделирования погоды MM5.
В мире GNU/Linux популярны несколько программ:
- MPICH и др. — специализированные средства для распараллеливания работы программ. distcc допускает параллельную компиляцию в GNU Compiler Collection. , Linux-HA — узловое ПО для распределения запросов между вычислительными серверами.
- openMosix, Kerrighed, OpenSSI — полнофункциональные кластерные среды, встроенные в ядро, автоматически распределяющие задачи между однородными узлами. OpenSSI, openMosix и Kerrighed создают среду единой операционной системы между узлами.
Кластерные механизмы планируется встроить и в ядро DragonFly BSD, недавнее ответвление от среду единой операционной системы.
Компанией Windows. Он создан на основе технологии, выкупленной у Digital Equipment Corporation, поддерживает до 8 узлов в кластере, а также работу в сети SAN. Набор API-интерфейсов служит для поддержки распределяемых приложений, есть заготовки для работы с программами, не предусматривающими работы в кластере.
Вычислительный кластер – это набор соединенных между собой компьютеров (серверов), которые работают вместе и могут рассматриваться как единая система. В отличие от грид-вычислений, все узлы компьютерного кластера выполняют одну и ту же задачу и управляются одной системой управления.
Серверы кластера обычно соединяются между собой по быстродействующей локальной сети, причем на каждом из серверов работает собственный экземпляр операционной системы. В большинстве случаев все вычислительные узлы кластера используют одинаковое оборудование и одну и ту же операционную систему. Однако в некоторых инсталляциях, например, с использованием платформы приложений для организации кластеров OSCAR (Open Source Cluster Application Resources), могут использоваться различные операционные системы или разное серверное оборудование.
Кластеры обычно развертываются для большей производительности и доступности, чем то, что можно получить от одного компьютера, пусть даже очень мощного. Часто такое решение более экономично, чем отдельные компьютеры.
Кластеры с балансировкой нагрузки
Балансировка нагрузки – это эффективное распределение входящего сетевого трафика в группе (кластере) серверов.
Современные веб-сайты должны одновременно обслуживать сотни тысяч и даже миллионы запросов от пользователей или клиентов и не слишком задерживать их в получении контента: текста, видео или данных приложений. Чем больше серверов будут обслуживать эти запросы, тем лучше будет качество воспринимаемого сервиса для клиентов. Однако может возникнуть ситуация, когда одни серверы сайта будут работать с перегрузкой, а другие будут почти простаивать.
Балансировщик нагрузки направляет запросы клиентов равномерно на все серверы кластера, которые способны ответить на те или иные запросы. Таким образом, балансировщик максимизирует процент использования вычислительной емкости, а также обеспечивает то, что ни один сервер не оказывается перегруженным, вызывая общую деградацию производительности кластера.
Если какой-то сервер отказывает, то балансировщик перенаправляет трафик на оставшиеся серверы. Когда новый сервер добавляется к группе (кластеру), то балансировщик автоматически перераспределяет нагрузку на всех серверах с учетом вновь вступившего в работу.
Таким образом, балансировщик нагрузки выполняет следующие функции:
- Распределяет запросы клиентов и нагрузку сети эффективным образом в во всем кластере серверов.
- Обеспечивает высокую доступность и надежность посылкой запросов только на те серверы, которые находятся в режиме онлайн.
- Обеспечивает гибкость, добавляя или удаляя серверы по мере надобности.
Работа балансировщика нагрузки
Кластеры распределения нагрузки
Принцип их действия строится на распределении запросов через один или несколько входных узлов, которые перенаправляют их на обработку в остальные, вычислительные узлы. Первоначальная цель такого кластера — производительность, однако, в них часто используются также и методы, повышающие надёжность. Подобные конструкции называются серверными фермами. Программное обеспечение (ПО) может быть как коммерческим (OpenVMS, MOSIX, Platform LSF HPC, Solaris Cluster, Moab Cluster Suite, Maui Cluster Scheduler), так и бесплатным (OpenMosix, Sun Grid Engine, Linux Virtual Server).
Виды кластеров
Различают следующие основные виды кластеров:
- кластеры высокой доступности (High-availability clusters, HA);
- кластеры с балансировкой нагрузки (Load balancing clusters);
- высокопроизводительные кластеры (High performance computing clusters, HPC).
Вычислительный кластер / High-Performance Computing cluster
Кластер построен на основе нескольких серверов, объединенных высокоскоростными линиями передач и специальным ПО. На выходе образуется единая система для комплексных вычислений. Каждый сервер в таком кластере обрабатывает задачу, которая автоматически выделяется ему из общего объема работы.
Применение: аналитика, сбор и обработка данных для Big Data, системы искусственного интеллекта, нейронные сети.
Преимущества: высокая производительность в ресурсоемких задачах, выполнение параллельных вычислений.
Специалисты компании ITELON имеют необходимый опыт и компетенцию для подбора высокопроизводительного кластерного решения для вашего бизнеса. Они разработают и внедрят отказоустойчивую высокопроизводительную систему, используя оборудование ведущих вендоров и современные технологии виртуализации. Мы рекомендуем использовать серверы HPE ProLiant DL380 Gen10 (2U), Dell PowerEdge R740 (2U), Fujitsu PRIMERGY RX2540 M4, Lenovo System x3650 M5 (2U).
Кластер серверов — это распределённая система, которая состоит из нескольких связанных между собой компьютеров (серверов) и используется как единый, унифицированный вычислительный ресурс.
Известны такие основные виды кластеров:
· Кластеры высокой доступности HA (High-availability), которые также называют отказоустойчивыми кластерами;
· Кластеры с балансировкой нагрузки LBC (Load balancing clusters);
К кластерам иногда относят также grid-системы распределённых вычислений, которые могут состоять из территориально разнесенных и некоторым образом связанных между собой компьютеров или серверов, выполняющих одну вычислительную задачу. Однако, они взаимодействуют между собой значительно меньше, чем серверы в кластерах, поэтому относить их к кластерам не совсем корректно.
Основные возможности кластера серверов:
- может работать как на нескольких, так и на одном компьютере (рабочих серверах);
- каждый сервер кластера может поддерживать работу как одного, так и нескольких рабочих процессов, которые обслуживают подключения клиентов в данном кластере;
- включение новых клиентов в рабочие процессы кластера происходит на основе анализа и прогнозирования загруженности рабочих процессов и серверов;
- процессы кластера могут быть запущены как сервис и как приложение.
Сервер 1С и сервер SQL на одном аппаратном сервере с SharedMemory.
В случае ограничения ресурсов на предприятии, можно использовать схему расположения сервера 1С и SQL на одном аппаратном сервере без виртуализации с общей памятью SharedMemory.
Рис. 4. Сервер 1С и сервер SQL на одном аппаратном сервере с SharedMemory.
Примеры реализации вычислительного кластера
В лаборатории вычислительного интеллекта создан вычислительный кластер для решения сложных задач анализа данных, моделирования и оптимизации процессов и систем.
Кластер представляет собой сеть из 11 машин с распределенной файловой системой NFS. Общее число ядер CPU в кластере – 61, из них высокопроизводительных – 48. Максимальное число параллельных высокоуровневых задач (потоков) – 109. Общее число ядер графического процессора CUDA GPU – 1920 (NVidia GTX 1070 DDR5 8Gb).
На оборудовании кластера успешно решены задачи анализа больших данных (Big Data): задача распознавания сигнала от процессов рождения суперсимметричных частиц, задача классификации кристаллических структур по данным порошковой дифракции, задача распределения нагрузки электросетей путем определения выработки электроэнергии тепловыми и гидроэлектростанциями с целью минимизации расходов, задача поиска оптимального расположения массива кольцевых антенн и другие задачи.
Архитектура вычислительного кластера
Другой вычислительный НРС-кластер дает возможность выполнять расчеты в любой области физики и проводить многодисциплинарные исследования.
Графические результаты расчета реактивного двигателя, полученные на НРС-клатере (источник: БГТУ «ВОЕНМЕХ»)
На рисунке показана визуализация результатов расчета реактивного двигателя, зависимость скорости расчетов и эффективности вычислений от количества ядер процессора.
Кластер серверов представляет собой группу из нескольких машин, которые объединены в единый аппаратно-программный ресурс. Для соединения отдельных серверов в кластер применяются высокоскоростные каналы связи. Пользователи и приложения видят их как единую высокопроизводительную и надежную систему. В зависимости от назначения выделяют три вида кластеров.
Кластер с балансировкой нагрузки / Load balancing cluster
В пределах этого кластера нагрузка, которую создают сервисы и приложения, равномерно распределяется между доступными машинами. Так исключается простой одного сервера, пока второй работает на пределе возможностей. Для распределения запросов в кластере используется один или несколько входных вычислительных узлов, через которые задачи перенаправляются с одной машины на другую.
Применение: ЦОД, комплексы для ERP/CRM-систем, сервисы биллинга в телекоммуникационных системах.
Преимущества: масштабируемость, возможность использования недорогих серверов стандартной архитектуры.
Системы распределенных вычислений (grid)
Такие системы не принято считать кластерами, но их принципы в значительной степени сходны с кластерной технологией. Их также называют grid-системами. Главное отличие — низкая доступность каждого узла, то есть невозможность гарантировать его работу в заданный момент времени (узлы подключаются и отключаются в процессе работы), поэтому задача должна быть разбита на ряд независимых друг от друга процессов. Такая система, в отличие от кластеров, не похожа на единый компьютер, а служит упрощённым средством распределения вычислений. Нестабильность конфигурации, в таком случае, компенсируется большим числом узлов.
Классификация кластеров
Программная и аппаратная балансировка нагрузки
Балансировщики нагрузки бывают двух типов: программные и аппаратные. Программные балансировщики можно установить на любой сервер достаточной для задачи емкости. Поставщики аппаратных балансировщиков просто загружают соответствующее программное обеспечение балансировки нагрузки на серверы со специализированными процессорами. Программные балансировщики менее дорогие и более гибкие. Можно также использовать облачные решения сервисов балансировки нагрузки, такие как AWS EC2.
Кластер 1С с катастрофоустойчивой синхронной репликацией SQL AlwaysOn
Кластеризация баз SQL AlwaysOn использует принцип автоматической онлайн-синхронизации таблиц между основным и резервным SQL-серверами. Катастрофоустойчивость обеспечивается благодаря использованию двух независимых серверов SQL. Репликация SQL Always On доступна только в версии Microsoft SQL Enterprise.
Рис. 2. Схема катастрофоустойчивого кластера серверов 1С 8.3 SQL AlwaysOn (источник: 1С).
В последнее время предприятия стали гораздо больше внимания уделять вопросу безопасности данных в соответствии с требованиями ФЗ-152, а также для минимизации возможности взлома баз данных и пр. Поэтому в такой схеме часто используют шифрование баз данных при репликации.
Содержание
Самые производительные
Дважды в год организацией IBM Roadrunner (Лос-Аламосская национальная лаборатория, США, созданный в 2008), его максимальная производительность (на июль 2008) составляет 1,026 2008) — суперкомпьютер, BlueGene/P находится в Федеративной Республике Германия, в исследовательском центре города Юлих, земля Северный Рейн-Вестфалия, максимально достигнутая производительность 167,3 Висконсин, США).
Сравнительно дешёвую альтернативу суперкомпьютерам представляют кластеры, основанные на концепции Beowulf, которые строятся из обыкновенных недорогих компьютеров на основе бесплатного программного обеспечения. Один из практических примеров такой системы — Stone Soupercomputer (Оак Ридж, шт. Теннесси, США, 1997).
Крупнейший кластер, принадлежащий частному лицу (из 1000 процессоров), был построен Джоном Козой (John Koza).
Вычислительные кластеры
Кластеры используются в вычислительных целях, в частности в научных исследованиях. Для вычислительных кластеров существенными показателями являются высокая производительность процессора на операциях над числами с плавающей точкой (Flops) и низкая латентность объединяющей сети, и менее существенными — скорость операций ввода-вывода, которая в большей степени важна для баз данных и web-сервисов. Вычислительные кластеры позволяют уменьшить время расчетов, по сравнению с одиночным компьютером, разбивая задание на параллельно выполняющиеся ветки, которые обмениваются данными по связывающей сети. Одна из типичных конфигураций — набор компьютеров, собранных из общедоступных компонентов, с установленной на них операционной системой Linux, и связанных сетью Myrinet, Beowulf. Специально выделяют высокопроизводительные кластеры (Обозначаются англ. аббревиатурой HPC Cluster — High-performance computing cluster). Список самых мощных высокопроизводительных компьютеров (также может обозначаться англ. аббревиатурой HPC) можно найти в мировом рейтинге TOP500. В России ведется рейтинг самых мощных компьютеров СНГ TOP50 Суперкомпьютеры.
История
История создания кластеров неразрывно связана с ранними разработками в области компьютерных сетей. Одной из причин для появления скоростной связи между компьютерами стали надежды на объединение вычислительных ресурсов. В начале 1970-х гг. группой разработчиков протокола TCP/IP и лабораторией Xerox PARC были закреплены стандарты сетевого взаимодействия. Появилась и операционная система Hydra («Гидра») для компьютеров DEC, созданный на этой основе кластер был назван C.mpp (Питтсбург, шт. Пенсильвания, США, 1971). Тем не менее, только около 1983 г. были созданы механизмы, позволяющие с лёгкостью пользоваться распределением задач и файлов через сеть, по большей части это были разработки на основе Sun Microsystems.
Первым коммерческим проектом кластера стал ARCNet, созданный компанией Datapoint в 1977 г. Прибыльным он не стал, и поэтому строительство кластеров не развивалось до 1984 г., когда DEC построила свой VAXcluster на основе операционной системы HP Alpha и 1994, класс HA) и
История создания кластеров из обыкновенных персональных компьютеров во многом обязана проекту Parallel Virtual Machine. В 1989 г. это ПО для объединения компьютеров в виртуальный суперкомпьютер открыло возможность мгновенного создания кластеров. В результате суммарная производительность всех созданных тогда дешёвых кластеров обогнала по производительности сумму мощностей «серьёзных» коммерческих систем.
Создание кластеров на основе дешёвых персональных компьютеров, объединённых сетью передачи данных, продолжилось в 1993 г. силами Американского аэрокосмического агентства (NASA), затем в 1995 г. получили развитие кластеры Beowulf, специально разработанные на основе этого принципа. Успехи таких систем подтолкнули развитие grid-сетей, которые существовали ещё с момента создания
Кластеры высокой доступности
Обозначаются аббревиатурой HA (англ. High Availability — высокая доступность). Создаются для обеспечения высокой доступности сервиса, предоставляемого кластером. Избыточное число узлов, входящих в кластер, гарантирует предоставление сервиса в случае отказа одного или нескольких серверов. Типичное число узлов — два, это минимальное количество, приводящее к повышению доступности. Создано множество программных решений для построения такого рода кластеров.
Отказоустойчивые кластеры и системы вообще строятся по трем основным принципам:
- с холодным резервом или активный/пассивный. Активный узел выполняет запросы, а пассивный ждет его отказа и включается в работу, когда таковой произойдет. Пример — резервные сетевые соединения, в частности, Алгоритм связующего дерева. Например связка DRBD и HeartBeat.
- с горячим резервом или активный/активный. Все узлы выполняют запросы, в случае отказа одного нагрузка перераспределяется между оставшимися. То есть кластер распределения нагрузки с поддержкой перераспределения запросов при отказе. Примеры — практически все кластерные технологии, например, Microsoft Cluster Server. OpenSource проект OpenMosix.
- с модульной избыточностью. Применяется только в случае, когда простой системы совершенно недопустим. Все узлы одновременно выполняют один и тот же запрос (либо части его, но так, что результат достижим и при отказе любого узла), из результатов берется любой. Необходимо гарантировать, что результаты разных узлов всегда будут одинаковы (либо различия гарантированно не повлияют на дальнейшую работу). Примеры — RAID и Triple modular redundancy.
Конкретная технология может сочетать данные принципы в любой комбинации. Например, Linux-HA поддерживает режим обоюдной поглощающей конфигурации (англ. takeover ), в котором критические запросы выполняются всеми узлами вместе, прочие же равномерно распределяются между ними. [1]
Отказоустойчивый кластер / High-Availability cluster (HA)
Это кластер высокой доступности, в котором при отказе одного сервера его функции перенимают на себя другие машины в кластере. Таким образом, сервисы и приложения продолжают работать без остановки благодаря аппаратной избыточности. Чтобы построить отказоустойчивую структуру, требуется минимум два физических сервера с системами хранения данных. В рамках СХД дисковое пространство распределяется между всеми серверами, а для управления виртуальными машинами используют специальное ПО – гипервизор. Виртуальные машины, запущенные на серверах кластера, работают по следующему принципу: если одна из них выходит из строя, в работу автоматически включается вторая.
Применение: везде, где требуется непрерывная работа бизнес-сервисов и поддержка важных баз данных (банк, биржа, круглосуточное производство), электронные торговые площадки.
Преимущества: надежность, высокая доступность сервисов и приложений, сокращение потерь из-за простоев в работе.
Кластеры распределения нагрузки
Принцип их действия строится на распределении запросов через один или несколько входных узлов, которые перенаправляют их на обработку в остальные, вычислительные узлы. Первоначальная цель такого кластера — производительность, однако, в них часто используются также и методы, повышающие надёжность. Подобные конструкции называются серверными фермами. Программное обеспечение (ПО) может быть как коммерческим (OpenVMS Cluster, Platform LSF HPC, Sun Grid Engine, Moab Cluster Suite, Maui Cluster Scheduler), так и бесплатным (Linux Virtual Server, Mosix).
Компоненты кластера
Вычислительные кластеры обычно состоят из следующих компонентов:
- узел доступа;
- вычислительные узлы;
- файловый сервер;
- файловая или объектная СХД с общим доступом;
- локальная сеть LAN.
Высокопроизводительные кластеры (HPC)
Высокопроизводительные вычисления HPC (High-performance computing) – это способность обрабатывать данные и выполнять сложные расчеты с высокой скоростью. Это понятие весьма относительное. Например, обычный лэптоп с тактовой частотой процессора в 3 ГГц может производить 3 миллиарда вычислений в секунду. Для обычного человека это очень большая скорость вычислений, однако она меркнет перед решениями HPC, которые могут выполнять квадриллионы вычислений в секунду.
Одно из наиболее известных решений HPC – это суперкомпьютер. Он содержит тысячи вычислительных узлов, которые работают вместе над одной или несколькими задачами, что называется параллельными вычислениями.
HPC очень важны для прогресса в научных, промышленных и общественных областях.
Такие технологии, как интернет вещей IoT (Internet of Things), искусственный интеллект AI (artificial intelligence), и аддитивное производство (3D imaging), требуют значительных объемов обработки данных, которые экспоненциально растут со временем. Для таких приложений, как живой стриминг спортивных событий в высоком разрешении, отслеживание зарождающихся тайфунов, тестирование новых продуктов, анализ финансовых рынков, – способность быстро обрабатывать большие объемы данных является критической.
Чтобы создать HPC-кластер, необходимо объединить много мощных компьютеров при помощи высокоскоростной сети с широкой полосой пропускания. В этом кластере на многих узлах одновременно работают приложения и алгоритмы, быстро выполняющие различные задачи.
Чтобы поддерживать высокую скорость вычислений, каждый компонент сети должен работать синхронно с другими. Например, компонент системы хранения должен быть способен записывать и извлекать данные так, чтобы не задерживать вычислительный узел. Точно так же и сеть должна быстро передавать данные между компонентами НРС-кластера. Если один компонент будет подтормаживать, он снизит производительность работы всего кластера.
Существует много технических решений построения НРС-кластера для тех или иных приложений. Однако типовая архитектура НРС-кластера выглядит примерно так, как показано на рисунке ниже.
Вычислительные кластеры
Кластеры используются в вычислительных целях, в частности в научных исследованиях. Для вычислительных кластеров существенными показателями являются высокая производительность процессора в операциях над числами с плавающей точкой (flops) и низкая латентность объединяющей сети, и менее существенными — скорость операций ввода-вывода, которая в большей степени важна для баз данных и web-сервисов. Вычислительные кластеры позволяют уменьшить время расчетов, по сравнению с одиночным компьютером, разбивая задание на параллельно выполняющиеся ветки, которые обмениваются данными по связывающей сети. Одна из типичных конфигураций — набор компьютеров, собранных из общедоступных компонентов, с установленной на них операционной системой Linux, и связанных сетью Ethernet, Myrinet, InfiniBand или другими относительно недорогими сетями. Такую систему принято называть кластером Beowulf. Специально выделяют высокопроизводительные кластеры (Обозначаются англ. аббревиатурой HPC Cluster — High-performance computing cluster). Список самых мощных высокопроизводительных компьютеров (также может обозначаться англ. аббревиатурой HPC) можно найти в мировом рейтинге TOP500. В России ведется рейтинг самых мощных компьютеров СНГ. [1]
Результаты тестирования схем архитектур кластеров серверов 1С
Результаты тестирования по т.н. «тесту Гилева» и методике специализированного центра тестирования «Тест центр» с использованием инструментария 1С: КИП приведены в таблице ниже.
«Тест Гилева» оценивает скорости работы в одном потоке, включая скорость отрисовки интерфейса пользователя на мониторе, обслуживание ресурсов виртуальной среды, повторный ввод документов, и т.п.
С помощью теста «Тест центр» можно моделировать работу 1С:Предприятие без участия реальных пользователей, что позволяет оценивать применимость, производительность и масштабируемость информационной системы в реальных условиях.
Кластер — группа компьютеров, объединённых высокоскоростными каналами связи и представляющая с точки зрения пользователя единый аппаратный ресурс.
Один из первых архитекторов кластерной технологии Грегори Пфистер дал кластеру следующее определение: «Кластер — это разновидность параллельной или распределённой системы, которая:
- состоит из нескольких связанных между собой компьютеров;
- используется как единый, унифицированный компьютерный ресурс».
Обычно различают следующие основные виды кластеров:
- отказоустойчивые кластеры (High-availability clusters, HA, кластеры высокой доступности)
- кластеры с балансировкой нагрузки (Load balancing clusters)
- вычислительные кластеры (High perfomance computing clusters)
Кластер серверов, организуемых программно
Кластер серверов (в информационных технологиях) — группа серверов, объединённых логически, способных обрабатывать идентичные запросы и использующихся как единый ресурс. Чаще всего серверы группируются посредством локальной сети. Группа серверов обладает большей надежностью и большей производительностью, чем один сервер. Объединение серверов в один ресурс происходит на уровне программных протоколов.
В отличие от аппаратного кластера компьютеров, кластеры организуемые программно, требуют:
- наличия специального программного модуля (Cluster Manager), основной функцией которого является поддержание взаимодействия между всеми серверами — членами кластера:
- синхронизации данных между всеми серверами — членами кластера;
- распределение нагрузки (клиентских запросов) между серверами — членами кластера;
- если клиентская программа не умеет распознавать кластер, она будет работать только с тем сервером, к которому обратилась изначально, а при попытке Cluster Manager перераспределить запрос на другие серверы, клиентская программа может вообще лишиться доступа к этому серверу (результат зависит от конкретной реализации кластера).
Применение
В большинстве случаев, кластеры серверов функционируют на раздельных компьютерах. Это позволяет повышать производительность за счёт распределения нагрузки на аппаратные ресурсы и обеспечивает отказоустойчивость на аппаратном уровне.
Однако, принцип организации кластера серверов (на уровне программного протокола) позволяет исполнять по нескольку программных серверов на одном аппаратном. Такое использование может быть востребовано:
- при разработке и тестировании кластерных решений;
- при необходимости обеспечить доступность кластера только с учётом частых изменений конфигурации серверов — членов кластера, требующих их перезагрузки (перезагрузка производится поочерёдно) в условиях ограниченных аппаратных ресурсов.
История
История создания кластеров неразрывно связана с ранними разработками в области компьютерных сетей. Одной из причин для появления скоростной связи между компьютерами стали надежды на объединение вычислительных ресурсов. В начале 1970-х гг. группой разработчиков протокола TCP/IP и лабораторией Xerox PARC были закреплены стандарты сетевого взаимодействия. Появилась и операционная система Hydra («Гидра») для компьютеров PDP-11 производства DEC, созданный на этой основе кластер был назван C.mpp (Питтсбург, шт. Пенсильвания, США, 1971). Тем не менее, только около 1983 г. были созданы механизмы, позволяющие с лёгкостью пользоваться распределением задач и файлов через сеть, по большей части это были разработки в SunOS (операционной системе на основе BSD от компании Sun Microsystems).
Первым коммерческим проектом кластера стал ARCNet, созданный компанией Datapoint в 1977 г. Прибыльным он не стал, и поэтому строительство кластеров не развивалось до 1984 г., когда DEC построила свой VAXcluster на основе операционной системы VAX/VMS. ARCNet и VAXcluster были рассчитаны не только на совместные вычисления, но и совместное использование файловой системы и периферии с учётом сохранения целостности и однозначности данных. VAXCluster (называемый теперь VMSCluster) — является неотъемлемой компонентой операционной системы HP OpenVMS, использующих процессоры Alpha и Itanium.
Два других ранних кластерных продукта, получивших признание, включают Tandem Hymalaya (1994, класс HA) и IBM S/390 Parallel Sysplex (1994).
История создания кластеров из обыкновенных персональных компьютеров во многом обязана проекту Parallel Virtual Machine. В 1989 г. это ПО для объединения компьютеров в виртуальный суперкомпьютер открыло возможность мгновенного создания кластеров. В результате суммарная производительность всех созданных тогда дешёвых кластеров обогнала по производительности сумму мощностей «серьёзных» коммерческих систем.
Создание кластеров на основе дешёвых персональных компьютеров, объединённых сетью передачи данных, продолжилось в 1993 г. силами Американского аэрокосмического агентства (NASA), затем в 1995 г. получили развитие кластеры Beowulf, специально разработанные на основе этого принципа. Успехи таких систем подтолкнули развитие grid-сетей, которые существовали ещё с момента создания UNIX.
Кластеры высокой доступности
Кластеры высокой доступности НА (high-availability cluster) известны также как отказоустойчивые (failover) кластеры, построенные по схеме сети с большой избыточностью (redundancy). Они применяются для критических серверных приложений, например сервера баз данных. Компьютерный кластер может называться НА-кластером, если он обеспечивает доступность приложений не менее, чем «пять девяток», т. е. приложение должно быть доступно (uptime) в течение 99,999 % времени за год.
Чрезвычайно высокая доступность в НА-кластерах достигается за счет использования специального программного обеспечения и аппаратных решений со схемами обнаружения отказов, а также благодаря работе по подготовке к отказам.
ПО для НА-кластеров обычно заблаговременно конфигурирует узел на резервном сервере и запускает на нем приложение в фоновом режиме так, чтобы основной экземпляр приложения мог немедленно переключиться на свою реплику на резервном компьютере при отказе основного.
НА-кластеры обычно используются для терминальных серверов, серверов баз данных, почтовых серверов, а также для серверов общего доступа к файлам. Они могут быть развернуты как на одном местоположении («серверной ферме»), так и в географически разнесенных местоположениях.
Но не следует думать, что технология кластера высокой доступности, или вообще кластеризация, могут служить заменой резервному копированию (backup), а также решениям катастрофоустойчивости (disaster recovery).
Кластер 1С "active-active" с одним сервером баз данных
Если в первую очередь требуется повышенная производительность, то лучше использовать увеличение числа вычислительных кластеров 1С с единственным сервером баз данных для повышения скорости обмена данными.
Рис. 3. Кластер 1С "active-active" с одним сервером баз данных.
Содержание
Системы распределенных вычислений (grid)
Такие системы не принято считать кластерами, но их принципы в значительной степени сходны с кластерной технологией. Их также называют grid-системами. Главное отличие — низкая доступность каждого узла, то есть невозможность гарантировать его работу в заданный момент времени (узлы подключаются и отключаются в процессе работы), поэтому задача должна быть разбита на ряд независимых друг от друга процессов. Такая система, в отличие от кластеров, не похожа на единый компьютер, а служит упрощённым средством распределения вычислений. Нестабильность конфигурации, в таком случае, компенсируется больши́м числом узлов.
1С:Предприятие 8.1
В следующей версии 8.3 была улучшена масштабируемость, отказоустойчивость, балансировка нагрузки, а также усовершенствован механизм резервирования кластеров.
Масштабируемость. Масштабируемость кластера серверов в версии 8.3 реализуется следующими способами:
- увеличение количества менеджеров в кластере и распределение сервисов между ними;
- увеличение количества рабочих процессов на рабочем сервере;
- увеличение количества рабочих серверов, из которых состоит кластер;
- использование нескольких менеджеров одновременно.
Три основных способа повышения отказоустойчивости:
- резервирование самого кластера;
- резервирование рабочих процессов;
- повышение устойчивости к обрыву канала связи.
Несколько кластеров могут объединяться в группу резервирования с автоматической синхронизацией. В случае выхода из строя активного кластера, его заменяет следующий рабочий кластер группы. После восстановления отказавшего кластера, он вновь становится активным после синхронизации данных.
В версии 8.2 резервирование кластеров производилось по схеме Active/Passive для рабочего и резервного кластера. В случае недоступности рабочего кластера клиентские вызовы автоматически перенаправлялись на резервный кластер.
В новой версии 1С:Предприятие 8.3 схема Active/Passive для кластеров больше не используется, и имеется только один распределённый кластер, в которой запросы на отказавший узел распределяются между оставшимися рабочими узлами.
Классификация кластеров
Кластер 1С
Кластер серверов 1С:Предприятия 8 – это логическая система, представляющая собой совокупность процессов, которые обслуживают множество баз данных.
Традиционно платформа 1С работала в режиме «клиент-сервер» и данные хранились в базе данных под управлением SQL-сервера Microsoft. Бизнес-логика при этом работала на машине-клиенте.
В версии 1С:Предприятие 8.0 впервые была использована архитектура «клиент – сервер приложений – СУБД».
Сервер 1С в платформе 8.0 построен по модели компонентного объекта СОМ+ (Component Object Model), разработанной Microsoft для того, чтобы взаимодействующие компоненты объекта могли совместно использоваться во многих программах.
Платформу 1С:Предприятие 8.0 было легко настраивать, однако, её масштабируемость, доступность и балансировка нагрузки оставляли желать лучшего.
Поэтому в версии 1С:Предприятие 8.1 была использована концепция вычислительного кластера. Сервер 1С в этой версии является платформенно-независимым, и может работать как на Windows, так и на Linux.
Процессы сервера в версии 8.1 разбиты на три вида:
- рабочий процесс, обслуживающий клиентов и исполняющий прикладной код;
- процесс агента сервера, запускающий все другие виды процессов, а также ведущий список кластеров на сервере;
- управляющий процесс «менеджер кластера».
В составе кластера может быть более одного рабочего процесса, причём, рабочие процессы могут исполняться на разных физических серверах, что позволяет обеспечить требуемую масштабируемость.
Рис. 1. Кластер 1С:Предприятие 8.1 (источник: 1С).
Центральный сервер кластера – один из компьютеров, которые входят в состав кластера. Центральный сервер обслуживает клиентские соединения, управляет работой всего кластера и хранит его реестр.
Клиентское приложение обращается к центральному серверу кластера для установки соединения с рабочим процессом. На основе анализа загруженности рабочих процессов, центральный сервер устанавливает соединение клиентского приложения к соответствующему рабочему процессу. Данный процесс может быть активирован на любом сервере кластера, в т.ч и на центральном сервере. Обслуживание соединения и аутентификация пользователя поддерживаются этим рабочим процессом до прекращения работы клиента с базой данных.
Процесс агента сервера (ragent) обеспечивает работу компьютера как составной части кластера. Процесс ragent также ведёт реестр кластеров, которые находятся на рабочем сервере.
Программные средства
Широко распространённым средством для организации межсерверного взаимодействия является библиотека MPI, поддерживающая языки C и Fortran. Она используется, например, в программе моделирования погоды MM5.
Операционная система Solaris предоставляет программное обеспечение Solaris Cluster, которое служит для обеспечения высокой доступности и безотказности серверов, работающих под управлением Solaris. Для OpenSolaris существует реализация с открытым кодом под названием OpenSolaris HA Cluster.
Среди пользователей GNU/Linux популярны несколько программ:
-
, MPICH и др. — специализированные средства для распараллеливания работы программ. distcc допускает параллельную компиляцию в GNU Compiler Collection. , Linux-HA — узловое ПО для распределения запросов между вычислительными серверами. , openMosix, Kerrighed, OpenSSI — полнофункциональные кластерные среды, встроенные в ядро, автоматически распределяющие задачи между однородными узлами. OpenSSI, openMosix и Kerrighed создают среду единой операционной системы между узлами.
Кластерные механизмы планируется встроить и в ядро DragonFly BSD, ответвлившуюся в 2003 году от FreeBSD 4.8. В дальних планах также превращение её в среду единой операционной системы.
Компанией Microsoft выпускается HA-кластер для операционной системы Windows. Существует мнение, что он создан на основе технологии Digital Equipment Corporation, поддерживает до 16 (с 2010 года) узлов в кластере, а также работу в сети SAN (Storage Area Network). Набор API-интерфейсов служит для поддержки распределяемых приложений, есть заготовки для работы с программами, не предусматривающими работы в кластере.
Windows Compute Cluster Server 2003 (CCS), выпущенный в июне 2006 года разработан для высокотехнологичных приложений, которые требуют кластерных вычислений. Издание разработано для развертывания на множестве компьютеров, которые собираются в кластер для достижения мощностей суперкомпьютера. Каждый кластер на Windows Compute Cluster Server состоит из одного или нескольких управляющих машин, распределяющих задания и нескольких подчиненных машин, выполняющих основную работу. В ноябре 2008 представлен Windows HPC Server 2008, призванный заменить Windows Compute Cluster Server 2003.
Читайте также: