URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 71462
[ Назад ]

Исходное сообщение
"Сайт на 2-х серверах."

Отправлено Сергей Петров , 15-Янв-07 19:11 
Здравствуйте. Возник такой вопрос.

Предположим, существует очень важный сайт и нужно чтобы он работал 24x7x365. Физически он находится на хорошем сервере, raid, блоки питания с заменой on the fly, хороший провайдер и т.д. Более или менее понятно, что нужно делать если нужно планово остановить этот сервер (чуть ниже я опишу, как мне кажется можно делать плановую остановку сервера), но что делать, если все-таки этот сервер физически ломается и происходит внеплановая остановка?

Плановая остановка:
При таком типе остановке мы просто заранее изменяем dns урла на второй сервер (Репликацию баз я не рассматриваю, но понятно, что это необходимо сделать). После того, как зона разошлась рубим основной сервер и делаем с ним все что душе угодно.

Внеплановая остановка:
Вот тут для меня все совершенно непонятно. Как вы считаете, что нужно делать, чтобы сайт работал все время, даже в том случае, если ломается основной сервер?

Буду очень признателен любым мыслям и ссылкам. Спасибо!


Содержание

Сообщения в этом обсуждении
"Сайт на 2-х серверах."
Отправлено Lamer , 15-Янв-07 21:41 
если попроще надо попробуй CARP


"Сайт на 2-х серверах."
Отправлено Сергей Петров , 15-Янв-07 22:08 
>если попроще надо попробуй CARP


Имеешь в виду Common Address Redundancy Protocol? Ок. Спасибо. Посмотрю, что это такое.

Еще какие-то варианты есть? Спасибо.


"Сайт на 2-х серверах."
Отправлено Сергей Петров , 15-Янв-07 22:22 
>если попроще надо попробуй CARP


Почитал немного. Имхо это немного не то, я хочу чтобы 2 сервера располагались в разных сетях у разных провайдеров (чтобы минимизировать возможность "отваливания" нета). Что можно посоветовать в таком случае?

Спасибо.


"Сайт на 2-х серверах."
Отправлено FarID , 16-Янв-07 00:14 
http://cr.yp.to/djbdns/balance.html

"Сайт на 2-х серверах."
Отправлено Lamer , 16-Янв-07 06:28 
>http://cr.yp.to/djbdns/balance.html

это тоже совсем не то, что ему надо

в сторону распределенного кластера копать надо
на это можно взглянуть http://www.drbd.org/

отсюда http://www.opennet.ru/prog/sml/150.shtml начни копать


"Сайт на 2-х серверах."
Отправлено magr , 16-Янв-07 10:40 
>Здравствуйте. Возник такой вопрос.
>
>Предположим, существует очень важный сайт и нужно чтобы он работал 24x7x365. Физически
>он находится на хорошем сервере, raid, блоки питания с заменой on
>the fly, хороший провайдер и т.д. Более или менее понятно, что
>нужно делать если нужно планово остановить этот сервер (чуть ниже я
>опишу, как мне кажется можно делать плановую остановку сервера), но что
>делать, если все-таки этот сервер физически ломается и происходит внеплановая остановка?
>
>
>Плановая остановка:
>При таком типе остановке мы просто заранее изменяем dns урла на второй
>сервер (Репликацию баз я не рассматриваю, но понятно, что это необходимо
>сделать). После того, как зона разошлась рубим основной сервер и делаем
>с ним все что душе угодно.
>
>Внеплановая остановка:
>Вот тут для меня все совершенно непонятно. Как вы считаете, что нужно
>делать, чтобы сайт работал все время, даже в том случае, если
>ломается основной сервер?
>
>Буду очень признателен любым мыслям и ссылкам. Спасибо!


Один из подходов (которым пользуются крупные компании)
http://www.akamai.com/dl/technical_publications/GloballyDist...


"Сайт на 2-х серверах."
Отправлено мимо проходил , 19-Янв-07 17:57 
А с ротацией записей в ДНСах не получится? Дико извиняюсь за полную техническую неграмотность =)


"Сайт на 2-х серверах."
Отправлено Gennadi , 20-Янв-07 15:40 
Попробуй прокси DeleGate   http://www.delegate.org/

Установи его на шлюзе

1. Сгрузи http://www.delegate.org/anonftp/DeleGate/bin/linux/9.4.2/lin...

2. gunzip linux-dg.gz | mv linux-dg delegated | chmod 755 delegated | cp delegated /usr/local/bin

3- Выполни команду:

delegated -P80 SERVER=http://твой-сервер1/ ADMIN=admin@mydomain.ru PERMIT="http:*:твой-сервер1"

Теперь все запросы направляются на http://твой-сервер1/

4. Что бы выключить прокси - выполни команду:

delegated -P80 -Fkill

5. Выполни команду:

delegated -P80 SERVER=http://твой-сервер2/ ADMIN=adnub@mydomain.ru PERMIT="http:*:твой-сервер2"

Теперь все запросы направляются на http://твой-сервер2/


Для наглядности!

На своём шлюзе я выполнил команду:

delegated -P80 SERVER=http://www.opennet.ru/ ADMIN=admin@gennadi.dyn.ee PERMIT="http:*:gennadi.dyn.ee"

Смотри результат здесь:

http://gennadi.dyn.ee



"Сайт на 2-х серверах."
Отправлено Gennadi , 20-Янв-07 16:36 
Осталось только скриптик сваять что-то типа:


if [ "cервер овечает" ]
then
    echo "OK!"

else

  delegated -P80 -Fkill
  delegated -P80 SERVER=http://твой-сервер2/ ADMIN=admin@mydomain.ru PERMIT="http:*:твой-сервер2"
  echo"Server1 is down!" | mailx -s "WARNING!" admin@mydomain.ru
fi