Что такое кластерный хостинг?

Обычный хостинг вынуждает вас делиться. Делиться диском, делиться памятью, делиться ресурсами сервера. И всё бы ничего, если бы от такого «братского» деления никто не страдал. Но бывают случаи, когда сайты других клиентов, размещенные на одном сервере с вашим, перегружают систему и в результате сервер «падает», от чего, естественно, страдают все, чьи сайты были размещены на этом сервере. К тому же, вы и сами можете оказаться таким «плохим соседом», ведь даже на обычно малопосещаемый сайт при хорошей рекламной кампании или в результате вирусного эфекта, может в один момент ринуться множество посетителей. Сервер может не справиться с нагрузкой и сайты станут недоступны, а все усилия по поднятию посещаемости пойдут насмарку.

Казалось бы – покупай VPS или бери в аренду физический сервер – и проблема решена. Но, во-первых, не все могут позволить себе платить настолько больше, а во-вторых, не все сайты требуют столь серьезных ресурсов постоянно.

Значит, необходимо надежное решение, которое позволит сайту выдержать наплыв посетителей, при этом относительно недорогое, сравнимое по стоимости с обычным хостингом. Панацеи, конечно, не существует, но одним из возможных решений может выступить кластерный хостинг.

Кластерный хостинг – это определенная организация серверной архитектуры, которая подразумевает группу серверов, объединенных в одно целое для поддержания защищенности, стабильности и надежности хранения информации пользователя.

Есть несколько способов организации кластерного хостинга:

1) Распределение основных сервисов между отдельными физическими серверами, таким образом разделяются MySQL сервер, почтовый сервер, веб сервер и .т.д. Такая схема достаточно проста. Каждый сервер выполняет только однотипные задачи, не страдая от перегрузок. Но у такого решения есть слабое место: связи между серверами. Небольшая проблема с MySQL.. и.. все сайты лежат.

Кластер из веб сервера, MySQL сервера и почтового сервера

Следующие способы реализации кластера базируются на принципе «один за всех и все за одного». Каждый сервер может заменить своего «товарища» в любой момент, поскольку их работа полностью дублируется.

2) Подразумевает распределение всех задач между серверами кластера спомощью специального программного обеспечения.

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

Кластер с распределением задач между серверами

Если же рабочие сервера падают, их страхуют дополнительные сервера, которые также постоянно синхронизируются с основными.

На первый взгляд, такой подход не имеет недостатков: распределение нагрузки, 2 сервера «на подхвате» в случае падения основных. Единственное, но немаловажное «но»: такая структура требует использование 5 серверов, что существенно повышает затраты на организацию кластера и, следовательно, влечет за собой высокую стоимость кластерного хостинга для конечного пользователя.

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

Кластер с HeartBeat и DRBD

Именно этот метод мы выбрали для Hostpro.

Для всех внешних пользователей кластер выглядит как один сервер со статичным IP адресом. Запросы обрабатываются основным сервером, при этом все операции отражаются (mirroring) на другом сервере с помощью специального блочного устройства DRBD. Таким образом, дополнительный сервер имеет всю ту же информацию, что и основной, и в любое время может «подставить плечо», если основной сервер упадет. Для мониторинга состояния сервера и переключения выполнения задач на дополнительный сервер используется программное обеспечение HeartBeat.

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

При этом такая организация кластера достаточно экономична и не сильно бьет по карману конечного потребителя кластерного хостинга.

  • Познавательно написано! Надобыотметить на ХабрХабре. :)

  • Давно искал эту инфу, Спасибо за Вашу работу.

  • Почему вы закрыли это направление?

  • Данное направление приобрело более интересный вариант. Нами был запущен облачный серверс, внутри которого уже организован кластер, ваш сайт(сервер) может работать с разных машин, переключение происходитполностью прозрачно.
    Сейчас используется технология кластеризации по типу fail-over-cluster , однако мы в ближайшее время зупустим кластер с балансировщиком нагрузки. Который также будет доступен на тарифах облачного хостинга.

  • Безусловно интересное.
    Но cloud это развитие VPS, а кластерный хостинг — развитие shared-хостинга. И у них разные клиенты и требования к администрированию.

  • Не заставляйте нас выдавать все секреты :) Будет и для shared.

  • Влад

    Так когда будет для shared??

  • Для shared будет на следующей неделе.