Кластер (группа серверов)
Материал из Википедии — свободной энциклопедии
-
У этого термина существуют и другие значения, см. Кластер.
Кластер (в информацонных технологиях) — группа серверов (программных или аппаратных), объединённых логически, и способных обрабатывать идентичные запросы. Чаще всего серверы группируются посредством локальной сети. Группа обладает большей надежностью или производительностью, чем один сервер, функционирующий на одном компьютере повышенной мощности, и к тому же часто является более дешёвым решением.
Содержание |
[править] Категории
[править] Кластеры высокой надежности
Обозначаются англ. аббревиатурой HA (High availability — высокая надежность). Создаются для обеспечения максимальной надежности. Избыточное число узлов, входящих в кластер, гарантирует предоставление сервиса в случае отказа одного или нескольких серверов. Типичное число узлов — два, это минимальное количество, приводящее к увеличению надежности. Создано множество программных решений для построения такого рода кластеров. В частности, для Linux существует проект бесплатного ПО Linux-HA.
[править] Кластеры распределения нагрузки
Принцип их действия строится на распределении запросов через один или несколько входных узлов, которые перенаправляют их на обработку в остальные, вычислительные узлы. Первоначальная цель такого кластера — производительность, однако, в них часто используются также и методы, повышающие надежность. Подобные конструкции называются серверными фермами. Программное обеспечение (ПО) может быть как коммерческим (Platform LSF HPC, Sun Grid Engine, Moab Cluster Suite, Maui Cluster Scheduler), так и бесплатным (Linux Virtual Server).
[править] Кластеры повышенной производительности
Обозначаются англ. аббревиатурой HPC (High performance cluster). Позволяют увеличить скорость расчетов, разбивая задание на параллельно выполняющиеся потоки. Используются в научных исследованиях. Одна из типичных конфигураций - набор серверов с установленной на них операционной системой Linux, такую схему принято называть кластером Beowulf. Для HPC создается специальное ПО, способное эффективно распараллеливать задачу.
Эффективные связи между серверами в кластере позволяют им поддерживать связь и оперативно обмениваться данными, поэтому такие кластеры хорошо приспособлены для выполнения процессов, использующих общие данные.
[править] Системы для распределенных вычислений
Такие системы не принято считать кластерами, но их принципы в значительной степени сходны с кластерной технологией. Их также называют grid-системами. Главное отличие — низкая доступность каждого узла, т.е. невозможность гарантировать его работу в заданный момент времени (узлы подключаются и отключаются в процессе работы), поэтому задача должна быть разбита на ряд независимых друг от друга процессов. Такая система, в отличие от кластеров, не похожа на единый компьютер, а служит упрощенным средством распараллеливания вычислений.
[править] Самые производительные
Дважды в год организацией TOP500 публикуется список 500 самых производительных вычислительных систем в мире, среди которых всегда оказываются и кластеры. Самым быстрым является, однако, не кластер, а суперкомпьютер BlueGene/L (Рочестер, шт. Миннесота, США, создан в 2004), построенный для нужд Министерства энергетики США, его производительность 280,6 Tflop. На втором месте находится еще один BlueGene/L с производительностью 91,29 Tflop.
Кластерные системы занимают достойное место в списке самых быстрых, при этом значительно выигрывая у суперкомпьютеров в цене. На 28 месте (12,25 Tflops) находится кластер (Блаксбург, шт. Виргиния, США), состоящий из 1100 серверов Apple XServe G5 с двумя процессорами каждый. Изначально он был построен на персональных компьютерах Power Mac общей стоимостью 5,2 млн долл. Впоследствии они были заменены на более компактные серверы, а Power Mac распроданы.
Сравнительно дешевую альтернативу суперкомпьютерам представляют кластеры, основанные на концепции Beowulf, которые строятся из обыкновенных недорогих компьютеров на основе бесплатного программного обеспечения. Один из практических примеров такой системы — Stone Soupercomputer (Оак Ридж, шт. Теннесси, США, 1997).
Крупнейший кластер, принадлежащий частному лицу (из 1000 процессоров), был построен Джоном Козой (John Koza).
[править] История
История создания кластеров неразрывно связана с ранними разработками в области компьютерных сетей. Одной из причин для появления скоростной связи между компьютерами стали надежды на объединение вычислительных ресурсов. В начале 1970-х гг. группой разработчиков протокола TCP/IP и лабораторией Xerox PARC были закреплены стандарты сетевого взаимодействия. Появилась и операционная система Hydra ("Гидра") для компьютеров PDP-11 производства DEC, созданный на этой основе кластер был назван C.mpp (Питтсбург, шт. Пенсильвания, США, 1971). Тем не менее, только около 1983 г. были созданы механизмы, позволяющие с легкостью пользоваться распределением задач и файлов через сеть, по большей части это были разработки на основе BSD Unix в версии 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.
[править] Программные средства
Широко распространенным средством для организации межсерверного взаимодействия является библиотека MPI, поддерживающая языки C и Fortran. Она спользуется, например, в программе моделирования погоды MM5.
В мире GNU/Linux популярны несколько программ:
- Beowulf, distcc, MPICH и др. - специализированные средства для распараллеливания работы программ. distcc допускает параллельную компиляцию в GNU Compiler Collection.
- Linux Virtual Server, Linux-HA - узловое ПО для рапределения запросов между вычислительными серверами.
- MOSIX, openMosix, Kerrighed, OpenSSI - полнофункциональные кластерные среды, встроенные в ядро, автоматически распараллеливающие задачи между однородными узлами. OpenSSI, openMosix и Kerrighed создают среду единой операционной системы между узлами.
Кластерные механизмы планируется встроить и в ядро DragonFly BSD, недавнее ответвление от FreeBSD 4.8. В дальних планах также превращение ее в среду единой операционной системы.
Компанией Microsoft выпускается HA-кластер для операционной системы Windows. Он создан на основе технологии, выкупленной у Digital Equipment Corporation, поддерживает до 8 узлов в кластере, а также работу в сети SAN. Набор API-интерфейсов служит для поддержки распараллеливаемых приложений, есть заготовки для работы с программами, не предусматривающими работы в кластере.