Кластерные системы

Содержание

Слайд 2

План История Кластеры типа Beowulf Кластеры типа MOSIX Кластеры типа SSI

План

История
Кластеры типа Beowulf
Кластеры типа MOSIX
Кластеры типа SSI
Балансирующие кластеры
Высоконадежные кластеры
Виртуальные машины

Слайд 3

Литература http://www.clusterresources.com http://www.mosix.org http://www.openmosix.org http://bproc.sourceforge.net/ http://www.linuxvirtualserver.org/

Литература

http://www.clusterresources.com
http://www.mosix.org
http://www.openmosix.org
http://bproc.sourceforge.net/
http://www.linuxvirtualserver.org/

Слайд 4

Кластеры типа Beowulf Типа Beowulf Компьютеры широкого использования Распределенный образ операционной

Кластеры типа Beowulf

Типа Beowulf
Компьютеры широкого использования
Распределенный образ операционной системы
Централизованная модель
Гетерогенность
Возможные расширения
Общая

память
Миграция процессов
Чекпоинт/рестарт
Слайд 5

Схема

Схема

Слайд 6

Узлы кластера рабочие узлы (worker node) выполнение рассчета хранения данных (storage

Узлы кластера

рабочие узлы (worker node)
выполнение рассчета
хранения данных (storage node)
хранение доступных

данныех
узлы управления (management node) 
программное обеспечение для администрирования системы
базы данных системной информации (NIS master, LDAP master)
узлы доступа (login node)
вход пользователей из Интернет
узлы распределения нагрузки (workload management node)
Сервер и планировщик системы управления нагрузкой
Коммуникации
Сеть быстрого обмена данными
Сеть мониторинга
Слайд 7

Работа узлов в кластере Работа кластера как одной системы определяется программным

Работа узлов в кластере

Работа кластера как одной системы определяется программным обеспечением
Узлы

кластера должны "доверять" друг другу
возможность запускать программы на разных узлах кластера без ввода пароля
Файлы данных должны быть доступны всем узлам
Модель программирования
Обмен сообщениями (MPI, PVM)
Общая память
На многопроцессорных узлах
При наличии соответствующей сети (SCI, QSNet)
Комбинированная
Слайд 8

Запуск программ на кластере Для запуска на любом узле кластера Ssh,

Запуск программ на кластере

Для запуска на любом узле кластера
Ssh, rsh
Агенты системы

распределения нагрузки
Запуск параллельных программ
Ssh или rsh для запуска соответствующего процесса на удаленной машине
Слайд 9

Входные узлы Входной узел Брандмауэр Маршрутизатор для узлов кластера Кэширующий DNS

Входные узлы

Входной узел
Брандмауэр
Маршрутизатор для узлов кластера
Кэширующий DNS
Запуск программ на рабочих узлах
Интерфейс

системы мониторинга
Часто пользователи не имеют прямого доступа ни на какие узлы, кроме входных

Входной узел
Брандмауер
Маршрутизация
Запуск программ

Рабочие узлы
Выполнение программ

Интернет

Слайд 10

Базы данных системной информации Узел управления содержит авторитетные копии баз данных

Базы данных системной информации

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

информации
Список пользователей
Список групп
Новая информация добавляется и изменяется только на узле управления
Остальные узлы
Обращаются к базе данных при необходимости
Могут содержать реплики главной базы данных
При любом акте авторизации или аутентификации
Обращения идут к к главному серверу
Может выполняться кэширование на локальных узлах (NSCD)

Узел управления
NIS master
LDAP server

Все остальные узлы
NIS client (slave)
LDAP client (slave)

Слайд 11

Система мониторинга Рабочие узлы Агенты сбора информации Узел коллектора (входной или

Система мониторинга

Рабочие узлы
Агенты сбора информации
Узел коллектора (входной или управления)
Агрегация и анализ

информации
Узел управления
Система включения-выключения узлов
Слайд 12

GANGLIA

GANGLIA

Слайд 13

Система распределения нагрузки Задачи Максимально эффективное использование ресурсов кластера Максимальная скорость

Система распределения нагрузки

Задачи
Максимально эффективное использование ресурсов кластера
Максимальная скорость вычислений
Удовлетворение требований пользователей

в необходимых ресурсах
Память
Дисковое место
Специальные ресурсы (стример)
Слайд 14

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

Повышение эффективности использования ресурсов

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

в очередь
Система выполняет задачи в очереди в порядке приоритетности
Распределение нагрузки
Запуск программ оптимальным (в плане скорости) образом
Контроль использования ресурсов
При превышении лимитов задача завершается принудительно
Слайд 15

Реализации систем пакетного режима NQS – network queuing system PBS –

Реализации систем пакетного режима

NQS – network queuing system
PBS – portable batch

system
torque
LL – load leveler
BQS - Batch Queing System
CONDOR
LSF
Слайд 16

PBS Агент менеджера ресурсов (pbs_mom) – machine oriented miniserver Сбор информации

PBS

Агент менеджера ресурсов (pbs_mom) – machine oriented miniserver
Сбор информации о загруженности

своего узла
Запуск программ на своем узле
Остановка задач на своем узле
Сервер (pbs_server)
Агрегация информации от агентов
Поддержка очередей
Запуск задач посредством агентов на заданных серверах
Планировщик
Выдача информации серверу об оптимальном выборе ресурсов для разных задач

Узел управления
server
scheduler

Рабочие узлы
Агент
Менеджера ресурсов

Слайд 17

Структурная схема PBS Рабочий узел Агент (зависимый от машины мини-сервер) Запуск

Структурная схема PBS

Рабочий узел
Агент (зависимый от машины
мини-сервер)
Запуск задач,
сбор информации о

ресурсах

Рабочий узел
Агент (зависимый от машины
мини-сервер)
Запуск задач,
сбор информации о ресурсах

Узел управления
Сервер (независимый)
Организация очередей
Аргегация информации
Запуск задач с помощью агентов

Узел управления
Планировщик (независимый)
Планирование выполнения задач
Для получения
оптимальной эффективности

Слайд 18

Агент менеджера ресурсов Клиент-серверная идеология Может подсоединяться к серверу и планировщику

Агент менеджера ресурсов

Клиент-серверная идеология
Может подсоединяться к серверу и планировщику для

передачи информации
Слушает порт с возможностью подсоединения
Периодически передает серверу информацию о загруженности и занятых ресурсах
Выполняет указания сервера и планировщика по запуску и остановке задач
813 ? S 29:34 /usr/local/torque/sbin/pbs_mom
11866 ? S 0:00 \_ -bash
11867 ? S 0:01 \_ pbs_demux
11920 ? S 0:00 \_ /bin/bash -x /var/spool/torque/mom_priv/jobs/8097.cluste.SC
11940 ? S 0:00 \_ mpirun -np 4 /usr/local/gromacs/i686-pc-linux-gnu/bin/mdrun_mpi
Слайд 19

Информация о ресурсах s6 state = free np = 6 ntype

Информация о ресурсах

s6
state = free
np = 6
ntype =

cluster
jobs = 0/8054.cluster.univ.kiev.ua, 1/8054.cluster.univ.kiev.ua, 2/8092.cluster.univ.kiev.ua, 3/8092.cluster.univ.kiev.ua
status = arch=linux,uname=Linux ss20-6.univ.kiev.ua 2.4.29 #4 SMP Sat Mar 12 18:51:26 EET 2005 i686,sessions=11486 11485 13077 13179 13180,nsessions=5,nusers=1,idletime=75517,totmem=3137424kb,availmem=2764512kb,physmem=1032920kb,ncpus=4,loadave=2.81,gres=sse2:1+old:1+sse:1+ia32:1,netload=4091552988,size=12243388kb:16513960kb,state=free,rectime=1121093394
s16
state = free
np = 6
ntype = cluster
jobs = 0/8106.cluster.univ.kiev.ua, 1/8105.cluster.univ.kiev.ua
status = arch=linux,uname=Linux ss20-16.univ.kiev.ua 2.6.12 #2 SMP Sat Jun 25 11:53:19 EEST 2005 x86_64,sessions=2057 27304 27314 27315 14563 25193,nsessions=6,nusers=3,idletime=257369,totmem=4153400kb,availmem=3755768kb,physmem=2056928kb,ncpus=4,loadave=1.90,gres=new:1+ia32e:1+x86_64:1+sse2:1+sse3:1+sse2:1+sse:1+ia32:1,netload=344160256,size=18281492kb:30254032kb,state=free,rectime=1121093374
s17
state = free
np = 6
ntype = cluster
jobs = 0/8054.cluster.univ.kiev.ua, 1/8054.cluster.univ.kiev.ua, 2/8092.cluster.univ.kiev.ua, 3/8092.cluster.univ.kiev.ua
status = arch=linux,uname=Linux ss20-17.univ.kiev.ua 2.4.29 #3 SMP Wed Feb 23 12:42:34 EET 2005 i686,sessions=14044 14043 17177 17178,nsessions=4,nusers=1,idletime=80182,totmem=5193984kb,availmem=4895448kb,physmem=1032504kb,ncpus=4,loadave=2.15,gres=sse2:1+old:1+sse:1+ia32:1,netload=1580948483,size=1097220kb:4128448kb,state=free,rectime=1121093374
Слайд 20

Сервер Организация очередей Агрегация использования ресурсов Очередь (класс) В каждую очередь

Сервер

Организация очередей
Агрегация использования ресурсов
Очередь (класс)
В каждую очередь попадают задачи с

определенными требованиями по ресурсам
Задачи с одинаковыми требованиями выполняются последовательно
Сервер указывает агентам, что запускать
Слайд 21

Очереди # # Create and define queue mono_long # create queue

Очереди

#
# Create and define queue mono_long
#
create queue mono_long
set queue mono_long queue_type

= Execution
set queue mono_long Priority = 4
set queue mono_long max_running = 23
set queue mono_long resources_max.nodect = 1
set queue mono_long resources_min.walltime = 36:00:00
set queue mono_long resources_default.walltime = 72:00:00
set queue mono_long max_user_run = 10
set queue mono_long enabled = True
set queue mono_long started = True
#
# Create and define queue stereo_short
#
create queue stereo_short
set queue stereo_short queue_type = Execution
set queue stereo_short Priority = 4
set queue stereo_short resources_max.walltime = 64:00:00
set queue stereo_short resources_min.nodect = 2
set queue stereo_short max_user_run = 4
set queue stereo_short enabled = True
set queue stereo_short started = True
#
# Create and define queue stereo_long
#

server: cluster.univ.kiev.ua
Queue Memory CPU Time Walltime Node Run Que Lm State
---------------- ------ -------- -------- ---- --- --- -- -----
mono_short -- -- 36:00:00 1 0 0 -- E R
default -- -- -- -- 0 0 -- E R
mono_long -- -- -- 1 4 0 23 E R
stereo_short -- -- 64:00:00 -- 0 0 -- E R
stereo_long -- -- -- -- 3 1 -- E R
alien -- -- -- -- 0 0 -- E R
--- ---
7 1

Слайд 22

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

Планировщик

На основе информации
менеджера ресурсов
Требований пользователя
Ограничений
Запланировать выполнение всех задач с

максимальной эффективностью
Слайд 23

Реализации планировщиков PBS_SCHEDULER Входит в систему PBS MAUI Самый распространенный кластерный

Реализации планировщиков

PBS_SCHEDULER
Входит в систему PBS
MAUI
Самый распространенный кластерный планировщик
Организация качества обслуживания
Приоритеты
Вытеснение
Назначение ограничений

Слайд 24

Сценарий запуска (паспорт задачи) Задача может быть запущена на любом узле

Сценарий запуска (паспорт задачи)

Задача может быть запущена на любом узле кластера
Чтобы

все запустилось правильно пользователь должен указать как запускать задачу
Имя и путь к программе
Необходимые ресурсы
PBS предоставляет пользователю переменные среды
Имена машин на которых были запущены задачи
Имена машин и каталог из которых бала запущена задача

Слайд 25

Пример запуска Сценарий #PBS cat $PBS_NODEFILE sleep 20 Запуск qsub -lnodes=2:ppn=2

Пример запуска

Сценарий
#PBS
cat $PBS_NODEFILE
sleep 20
Запуск
qsub -lnodes=2:ppn=2 tst
8115.cluster.univ.kiev.ua
Выполнение
[saa@cluster pbs]$ qstat
Job id Name User

Time Use S Queue
---------------- ---------------- ---------------- -------- - -----
8054.cluster dopc_ann_4 yesint 00:01:29 R stereo_long
8092.cluster dopc_f2n8_ann yesint 00:00:55 R stereo_long
8097.cluster eEF1A2_n5 kanibolotsky 00:00:01 R stereo_long
8102.cluster eEF1A2_n10 kanibolotsky 0 Q stereo_long
8103.cluster ...01_restart-07 platon 47:06:22 R mono_long
8104.cluster ...02_restart-07 platon 47:30:02 R mono_long
8105.cluster ...04_restart-06 platon 47:19:13 R mono_long
8106.cluster ...03_restart-06 platon 22:02:52 R mono_long
8115.cluster tst saa 00:00:00 R stereo_short
Результат
s16
s16
s15
s15
Слайд 26

Особенности кластера типа beowulf Преимущества Гетерогенность – не помеха Независимость от

Особенности кластера типа beowulf

Преимущества
Гетерогенность – не помеха
Независимость от программного и аппаратного

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

bproc Общее пространство процессов для beowulf кластеров (SSI) Процессы выполняются на

bproc

Общее пространство процессов для beowulf кластеров (SSI)
Процессы выполняются на удаленных узлах

и могут мигрировать между узлами, хотя видятся как запущенные на входном узле
Миграция путем полной копии ресурсов (виртуальной памяти, открытых файлов)
Слайд 28

Кластер типа MOSIX MOSIX – Multicomputer Operating System for Unix Кластер

Кластер типа MOSIX

MOSIX – Multicomputer Operating System for Unix
Кластер с одной

копией операционной системы
Динамическая балансировка нагрузки путем миграции процессов с вытеснением
Слайд 29

Компоненты Децентрализованная схема Каждый узел имеет одинаковую структуру и все узлы

Компоненты

Децентрализованная схема
Каждый узел имеет одинаковую структуру и все узлы равноправны
Каждый узел

имеет
Информационный агент
Передача информации об использовании ресурсов своего узла
Прием информации о ресурсах других узлов
Агент миграции
Принимает запросы от других узлов на миграцию процессов с них
Запускает мигрировавшие процессы
Планировщик
Принимает решение о миграции процессов со своего узла
Слайд 30

Концепция домашнего узла Каждый процесс остается связанным с той машиной, на

Концепция домашнего узла

Каждый процесс остается связанным с той машиной, на которой

он был запущен
При миграции процесс разбивается на две части
Deputy – режим ядра, связанный с домашним узлом
Remote – режим ядра и режим задачи, связанный с удаленным узлом
При выполнении системного вызова удаленной частью процесса, вызов транслируется на домашний узел по сети
Слайд 31

Выполнение системного вызова

Выполнение системного вызова

Слайд 32

Интерфейс

Интерфейс

Слайд 33

Особенности Преимущества Эффективен для гетерогенных кластеров Не требует специфических настроек Динамическая

Особенности

Преимущества
Эффективен для гетерогенных кластеров
Не требует специфических настроек
Динамическая масштабируемость
Возможность использования существующих ресурсов

для создания метакластеров
Недостатки
Требует однотипного (не сильно отличающегося) аппаратного и программного обеспечения
Не удовлетворяет требованиям стабильности и безопасности
Концепция домашнего узла – ограничивает возможности
Слайд 34

SSI Linux Полнофункциональный кластер с общим образом операционной системы Общее пространство

SSI Linux

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

файловая система
Общие средтства коммуникации
Интегрирует в себе многие другие проекты
Слайд 35

Структурная схема

Структурная схема

Слайд 36

Балансирующие кластеры Кластер серверов видится как одна машина Внутри запросы к

Балансирующие кластеры

Кластер серверов видится как одна машина
Внутри запросы к общему

адресу распределяются между серверами, входящими в кластер
Слайд 37

Linux Virtual Server NAT Direct route IP tunnel

Linux Virtual Server

NAT
Direct route
IP tunnel

Слайд 38

Высоконадежные кластеры Отказоустойчивость (fault-tolerance) При возникновении сбоев может сам восстановиться Высокая

Высоконадежные кластеры

Отказоустойчивость (fault-tolerance)
При возникновении сбоев может сам восстановиться
Высокая готовность (high availability)
При

обнаружении ошибки быстро готов к выполнению работы
Слайд 39

Условия обеспечения высокой надежности Обнаружение отказов Избыточность – высокая готовность Запасные

Условия обеспечения высокой надежности

Обнаружение отказов
Избыточность – высокая готовность
Запасные компоненты, готовые сразу

же включиться в работу
Журналирование (транзакции) - отказоустойчисвость
Сохранение промежуточных действий с возможностью вернуться к последней успешной операции
Механизм устранения неисправных компонент
Слайд 40

Обнаружение отказов Keep-alive, hello, heartbeat Периодически отправляемая информация о состоянии каждого

Обнаружение отказов

Keep-alive, hello, heartbeat
Периодически отправляемая информация о состоянии каждого узла (компоненты)


Если сообщения от компоненты не поступают или поступают с неверными параметрами, то фиксируется отказ компоненты
Слайд 41

Устранение неисправной компоненты Stomish Shoot Other Machine In The Head Задача

Устранение неисправной компоненты

Stomish
Shoot Other Machine In The Head
Задача – быстро

устранить неисправную машину
Метод – выключение питания с помощью управляемого выключателя питания
Исполнитель – одна из машин кластера
Временный координатор

Анализ
heartbeat

Определение
неисправной
компоненты

Голосование

stomith

Слайд 42

Избыточность Избыточность данных Зеркалирование – создание полной копии Репликация – восстановление

Избыточность

Избыточность данных
Зеркалирование – создание полной копии
Репликация – восстановление из копии
Multipass –

обеспечение нескольких путей к данным
Избыточность функций
Дублирование – несколько серверов, процессов, сетевых адаптеров и др. устройств с одинаковыми функциями
Слайд 43

Журналирование Журналирование данных Перед тем, как записывать данные на постоянное место,

Журналирование

Журналирование данных
Перед тем, как записывать данные на постоянное место, они записываются

во временное хранилище - журнал
После этого данные записываются на постоянное место
Транзакции
Несколько последовательных операций выполняются как одна атомарная операция
Checkpoint/restart
Создается копия структур данных процесса
Слайд 44

CHPOX – CHeckPOinting linuX Сохранение текущего состояния процесса в дисковый файл

CHPOX – CHeckPOinting linuX

Сохранение текущего состояния процесса в дисковый файл
Восстановление процессов

из файла в точке, где они были записаны
Процессы после восстановления продолжают выполняться
Слайд 45

Схема работы Резервирование Восстановление регистрация Перехват сигнала Отправка сигнала Сохранение ресурсов

Схема работы

Резервирование

Восстановление

регистрация

Перехват сигнала

Отправка сигнала

Сохранение ресурсов

Нормальное продолжение

Загрузка ресурсов

Продолжение выполнения

Слайд 46

Пример работы

Пример работы

Слайд 47

Виртуальные машины Эмуляция аппаратного обеспечения компьютера с помощью программных средств Создание

Виртуальные машины

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

что операционная система выполняется на аппаратном обеспечении
Слайд 48

Примеры виртуальных машин Xen – виртуализация ресурсов компьютера Qemu – эмулятор

Примеры виртуальных машин

Xen – виртуализация ресурсов компьютера
Qemu – эмулятор аппаратного обеспечения
VMWare

– эмулятор аппаратного обеспечения
UML – user mode Linux