Классификация методов построения распределенных вычислительных систем




Костюков Антон Александрович

аспирант
Пензенский государственный университет, Россия, г. Пенза


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

Ключевые слова: распределённые вычислительные системы, стратегии конфигурирования, кластерные системы, вертикальное масштабирование




Библиографическое описание: Костюков А.А. КЛАССИФИКАЦИЯ МЕТОДОВ ПОСТРОЕНИЯ РАСПРЕДЕЛЕННЫХ ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМ [Текст] // Научный поиск в современном мире: сборник материалов 11-й международной науч.-практ. конф., (г. Махачкала, 31 января 2016 г.) - Махачкала: Издательство “Апробация", 2016 – С.27-29


На сегодняшний день, кластерный подход можно назвать самым распространенным в проектировании сложных сетевых вычислительных систем. Он позволяет добиться большей общей производительности (синергетики) вычислительных ресурсов, путем распараллеливания задач по узлам обработки. Наиболее высокую эффективность приносит практика «умного» распределения задач по обработчикам [1, с.27], при подобном подходе повышается качество распределения задач по ресурсам, но общая производительность и доступность системы всё ещё может находиться на неприемлемом уровне. Для приведения в соответствие алгоритмической, программной (системной) [2, c.77], и аппаратной составляющих необходимо выделить основные способы классификации методов построения распределенных вычислительных систем.

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

Способ маршрутизации балансировщика нагрузки

Подобная классификация проводится по факту использования протокола какого-либо уровня OSI. Балансировщики нагрузки должны однозначно идентифицировать каждый узел в системе при помощи уникального адреса узла, который может находиться на различных уровнях, в зависимости от архитектуры РВС. Уникальный адрес узла может быть либо IP-адресом узла, либо MAC-адресом. Основную роль в РВС обычно играет сетевой коммутатор или маршрутизатор. Основные архитектуры РВС классифицируются по уровню стека протоколов Модели OSI, на котором работает балансировщик нагрузки (коммутатор), иными словами каким стеком протоколов пользуется коммутатор для перенаправления пакетов нужному узлу. В большинстве своем деление происходит на маршрутизаторы четвертого уровня и седьмого уровня.

Маршрутизатор четвертого уровня. Выполняет моментальное соединение, так как целевой узел определяется в момент подключения клиента (когда поступает запрос на установление связи TCP/IP), при поступлении на сервер пакета TCP SYN. Такой подход достаточно эффективен, поскольку пакеты клиента не интерпретируются на прикладном уровне. Но недостатком такого подхода является то, что маршрутизатор не осведомлен о содержании тела запроса. Балансировщик нагрузки работая на четвертом уровне анализирует пакеты на уровне TCP/IP. HTTP запрос не принимается во внимание при выборе целевого узла для назначения задачи обработки. Данный подход называется content-blind (слепой к содержанию) или immediate binding (непосредственное связывание).

Маршрутизаторы седьмого уровня. Маршрутизатор установив полное соединение с клиентом по TCP, анализирует HTTP-запрос на прикладном уровне и затем переадресовывает его на целевой узел. Данный механизм маршрутизации менее эффективен без дополнительной диспетчеризации. Балансировщик нагрузки седьмого уровня принимает решения о маршрутизации запроса на основе тела HTTP пакета. При этом данный метод включает в себя анализ URL запроса, трудозатраты запроса и расположения требуемой информации в сети. Данный подход называется content-aware то есть «осведомленный о содержании» или delayed binding (с отложенным связыванием). Многие программные продукты проприетарного типа поддерживают данный вид анализа. Дисциплины второго типа можно отнести к динамическим. Применение маршрутизации на седьмом уровне оправданы, если его возможности используются маршрутизатором, поэтому статические дисциплины реализуют балансировщики нагрузки на четвертом уровне, а динамические как те, так и другие. РВС также классифицируются на основе механизма, используемого для реадресации пакетов к целевому узлу, а исходящих пакетов клиенту. Основное отличие находится в направлении ответа от сервера клиенту. На рисунке 1 иллюстрируется работа балансировщиков нагрузки работающий на седьмом и четвертом уровнях OSI соответственно.

 

 

 

 

 

 

 

 

Рис. 1а Работа балансировщика на седьмом уровне. Обмен информацией с клиентом (SYN — запрос на соединение, ACK — подтверждение соединения)

 

 

 

 

 

 

 

 

Рис. 1б Работа балансировщика на четвертом уровне. Обмен информацией с клиентом (SYN — запрос на соединение, ACK — подтверждение соединения)

 

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

Виды механизмов для маршрутизации пакетов внутри РВС.

Однонаправленная маршрутизация (one-way routing). Балансировщик нагрузки заменяет в заголовке пакета свой IP адрес на IP адрес целевого узла. Ответ сервера возвращается к клиенту без посредников. Сервер заменяет свой IP на VIP, чтобы ответ исходил от адреса, на который был послан запрос. Это позволяет снизить нагрузку на балансировщик, так как выходной поток пакетов, значительно превышает входной. Однако это действие требует манипуляций на уровне ОС сервера, поскольку подмена IP происходит на уровне сетевом уровне OSI.

Двунаправленная маршрутизация (two-way routing). Выходной поток от сервера походит через балансировщик нагрузки, который в данном методе и производит подмену IP адреса. Данный метод не является предпочтительным, так как в данном случае балансировщик нагрузки становится узким местом в сети. Маршрутизация через балансировщик нагрузки (packet forwarding by the dispatcher). Данный подход реализован в IBM Network Dispatcher. Диспетчеризация пакетов происходит на уровне MAC адреса, без изменения заголовка IP пакета, для которого не требуется пересчитывать контрольную сумму. Балансировщик нагрузки и узлы, при данном подходе должны находиться в одной локальной сети, объединённые общей подсетью.

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

 

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

1.  Костюков А.А. Технические науки – от теории к практике / Сб. ст. по материалам LIII междунар. науч.-практ. конф. No 12 (48). Новосибирск: Изд. АНС «СибАК», 2015. 24-30 с.

2.  ОЦЕНКА КАЧЕСТВА ПРОГРАММ НА ОСНОВЕ МЕТРИК Карпов А., Макарычев П.П. В сборнике: УНИВЕРСИТЕТСКОЕ ОБРАЗОВАНИЕ (МКУО-2013) сборник статей XVII Международной научно-методической конференции, посвященной 70-летию образования университета. Под редакцией В. И. Волчихина, Р. М. Печерской. 2013. С. 77-79.Таненбаум Э. Распределённые системы. Принципы и парадигмы. – СПб.: Питер, 2003. – ISBN: 5-272-00053-6.

3.  Юревич Ю.Г. WSGI, Введение WSGI - стандарт обмена данными между веб-сервером (backend) и веб-приложением (frontend) / Юревич Ю.Г. - Санкт-Петербург: ДМК Питер, 2010 – 200 с.

4.  Brewer, Eric A. Towards robust distributed systems // Proceedings of the XIX annual ACM symposium on Principles of distributed computing. — Portland, OR: ACM, 2000.

Предстоящие заочные международные научно-практические конференции
XVII Международная научно-практическая конференция «Теоретические и практические проблемы  развития современной науки»
XVII Международная научно-практическая конференция «Теоретические и практические проблемы развития современной науки»
XVIII Международная научно-практическая конференция «Научный поиск в современном мире»
XVIII Международная научно-практическая конференция «Научный поиск в современном мире»
XIX Международная научно-практическая конференция «Научный поиск в современном мире»
XIX Международная научно-практическая конференция «Научный поиск в современном мире»