Сервер - статьи

       

Основные технологические моменты.


Решения на основе дешевых компьютеров объединенных в единый кластер давно себя зарекомендовали на загруженных Web-сайтах. С точки зрения клиента вся эта группа машин выглядит как единый экземпляр сервера, они работают идентично одиночным серверам, но в дополнении к ним обеспечивают балансировку нагрузки и передачу управления при сбое.

Кластеризация дает следующие преимущества:

  • Балансировка запросов, равномерная или определяемая правилами

  • Отказоустойчивость к сбоям

  • «Линейное» увеличение производительности

  • Прозрачное обслуживание и замена узлов кластера

Кластеры бывают трех типов:

  • High availability-clusters – HA-clusters – кластеры высокой доступности – на основе общего дискового массива. Обычно используют SCSI RAID или SAN (в единицу времени только один из узлов может владеть этим массивом, и соответственно выполнять приложение, другие находится в вечном ожидании).

  • High Performance Computing Clusters – HPC-clusters – кластеры для обеспечения производительности вычислений. Создаются для распределения одной задачи на множество компьютеров.

  • Massive Parallel Processing Clusters – MPP-clusters – кластеры для обеспечения масштабируемости сервисов. Создаются для распределения множества однотипных задач на множество компьютеров. Данный тип кластера обычно используется для организации WEB – ферм и мы его рассмотрим более подробно.

Различают две основные разновидности типов кластеризации серверов в случае MPP-clusters:

  • «вертикальная» - это когда, например, запускают несколько web приложений на одном сервере, что бы максимально оптимизировать используемые ресурсы сервера,

  • «горизонтальная» - более традиционный подход – это определение клонов приложения на нескольких машин, сформировав для них единый образ системы.

Вполне разумно использование на узлах кластера еще и transparent-proxy или http-сервера в режиме web-акселератора, что позволит создать дополнительное «вертикальное» звено, для оптимизации нагрузки

Использование систем балансировки накладывает определенные обязанности на разработчиков – использование общего или реплицированного источника данных, общего хранилища файлов (NFS), общие для всех файлы настроек и т.д. т.п.

Для «горизонтальной» балансировки можно использовать несколько технологий и продуктов, работающих на различных сетевых уровнях по модели OSI:

  • сетевом – трансляция адресов с управлением к среде передачи (подмена MAC адреса)

  • транспортном – перенаправление TCP трафика (port-mapping, NAT)

  • прикладном – работа через web-акселераторы для оптимизации HTTP запросов (apache mod_accel,mod_bakhand,mod_proxy),lighttpd,nginx).

Отдельно надо сказать про технологию DNS Round Robin, когда сервер имен на каждый новый запрос на преобразование имени в IP отдает очередной адрес из введенного ранее пула. Эта технология неэффективна и может использоваться только в смешанном варианте с другими, так как каждый провайдер имеет в своем распоряжении кэширующие DNS сервера, которые сводят на НЕТ все плюсы.

Содержание раздела