Обеспечение отказоустойчивости веб-сервера (сайта), зеркалирование данных - блог компании Миранор Обеспечение отказоустойчивости веб-сервера (сайта), зеркалирование данных - сайт компании Миранор

RSS-подписка

RSS-подписка
RSS-подписка

понедельник, 4 июля 2011 г.

Обеспечение отказоустойчивости сайта и балансировка нагрузки серверов с применением Round-robin DNS

Предпосылки

Если у вас очень популярный сайт, со временем сервер, на котором он расположен, достигнет предельной нагрузки, в результате которой больше не сможет обрабатывать входящие запросы.
На языке IT это явление называется Слэшдот-эффект (мощный всплеск посещаемости веб-сайта). Добавление оперативной памяти, апгрейд процессоров и использование быстрых дисков и шин поможет в краткосрочной перспективе, но в результате вы все равно обнаружите, что одна машина не сможет выдерживать требуемую нагрузку.
Один из способов обеспечения отказоустойчивости сайта – это балансировка нагрузки серверов. Путем добавления второй (или третьей) машины в доступный пул оборудования, вы можете не только увеличить производительность, но и повысить отказоустойчивость сервера. Если у вас есть машина горячего резерва (или несколько), работающая(ие) постоянно, то в случае, когда основной сервер испытывает проблемы, другие могут выполнять его работу без простоя.


Балансировка нагрузки серверов с помощью Round-robin DNS

Возможно, самый простой способ преодоления Слэшдот-эффекта – это метод балансировки нагрузки серверов с помощью Round-robin DNS. При этом входящие запросы к веб-сайту могут быть отправлены на любое количество машин.
В BIND 9 есть возможность для одного домена создать несколько А-записей. Например, предположим, что мы используем в файле зоны домена для example.com:

www 60 IN A 10.0.0.1
www 60 IN A 10.0.0.2

При определении А-записи для www.example.com в DNS, в половине случаев пользователи увидят:

host www.example.com
www.example.com has address 10.0.0.1
www.example.com has address 10.0.0.2

.... а в другой половине:

host www.example.com
www.example.com has address 10.0.0.2
www.example.com has address 10.0.0.1

Поскольку большинство приложений используют только первый адрес, возвращаемый DNS, то этот метод работает достаточно хорошо. Запросы распределяются между веб-серверами примерно пополам, и, таким образом, нагрузка на каждый из них уменьшается приблизительно в два раза.
В примере TTL установлен равным 60 секундам, для того чтобы предотвратить влияние кэширующих серверов DNS. Это должно помочь поддержанию более или менее равного количества запросов к каждому серверу.
Технология Round-robin DNS используется для балансировки нагрузки только в случае, когда произведена настройка зеркального копирования (зеркалирования) данных для всех серверов. Если это не так, то браузер может сначала показать одну версию страницы сайта, а после нажатия кнопки «Обновить» - другую.

ОРИГИНАЛ

Обсуждение статьи и дополнительная информация на нашем форуме:

Отказоустойчивость сервера

1 комментарий:

  1. Интересная заметка, никогда не знал, что при создание 2ух A записей, трафик распределяется попалам.

    ОтветитьУдалить