LINUX.ORG.RU
ФорумAdmin

Балансировка нагрузки и синхронизация директорий и баз данных двух одинаковых сайтов на разных серверах

 


0

2

Здравствуйте.

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

Т.е. речь идёт в общем-то не о балансировке нагрузки, а о резервном сервере с полной копией сайта.
С этой целью имеется instance на aws.amazon.com.

Распределение нагрузки между двумя серверами в рабочем режиме, когда при выходе одного из них из строя, в работу вступает второй и берет на себя нагрузку первого - не подходит. Нужно, чтобы всегда работал только один из них - в нормальной ситуации только основной, а в случае ЧП с основным - только резервный.

Дело в том, что денег на оплату инстанса на амазоне или другом хостинге у меня нет и я использую бесплатный инстанс с параметрами: 1GB оперативы, 8GB жесткий диск и ограниченное количество трафика. При превышении этих лимитов придется платить. Но сайт у меня начинающий, посетителей много не предвидится и я надеюсь уложиться в нормативы, если этот сервер будет задействован в пределах 2-6 часов в сутки.

ОС Debian 7, БД MySQL, веб-сервер Nginx, php5-fpm, почта - postfix, courier; CMS OSClass, сайт - доска объявлений.

Вопрос: как сие реализовать, в какую сторону копать, может кто-то предложит готовый вариант.

Заранее благодарю за ответы!



Последнее исправление: san-sanych (всего исправлений: 2)

Репликацию базы сделать достаточно просто, MySQL умеет это искаропки, вот тут например можно почитать.

Зеркалировать файлы уже повеселее, самый, наверное, простой способ - это s3fs куда будет писать файлы основной сайт одновременно со своими, и оттуда же их будет вытягивать при старте сервера.

Вот с тем, чтобы DNS отдавала резервный IP, когда сервер основной в дауне придется пошаманить.

Balantay
()

Создай 3 lxc контейнера, один с базой, два с бэкендами.

Балансировка с хоста на контейнеры через nginx, sync для начала через cron+rsync

anonymous
()
Ответ на: комментарий от anonymous

Как я понял, ТСу нужно, чтобы переключение происходило, когда основной сервер, скажем, падает по питанию.

Balantay
()
Ответ на: комментарий от Balantay

Balantay Спасибо за ссылку на статью о репликации БД! Изучу.

По поводу s3fs - можно чуть подробнее?

Насчет DNS: Round robin DNS - насколько я понял - это стандартный алгоритм работы DNS серверов. Так? Будут ли приложения обращаться по второму IP, если первый IP недоступен - в этом можно убедиться только на практике? Видимо, будут задержки, если это вообще будет работать в моем случае.
Какие еще могут быть варианты по поводу DNS?

Как я понял, ТСу нужно, чтобы переключение происходило, когда основной сервер, скажем, падает по питанию.

Да, именно так.

san-sanych
() автор топика
Ответ на: комментарий от Balantay

Вот с тем, чтобы DNS отдавала резервный IP, когда сервер основной в дауне придется пошаманить.

DNS сервер в амазон (много-ли тому DNS-у надо) и рулить зоной как угодно.

MrClon ★★★★★
()

с твоим бюджетом в amazon такое сделать нереально

umren ★★★★★
()
Ответ на: комментарий от san-sanych

DNS RR будет отдавать по очереди то один IP, то другой, не заботясь о том, кто там упал, а кто нет. Тут нужно скриптом следить, работает ли основной IP, и если нет - то менять IP на резервный в настройках DNS зоны.

s3fs позволяет смонтировать хранилище на амазоне как локальную директорию. То есть основной сервер должен монтировать амазоновское хранилище и параллельно со своими изменениями файлов те же изменения делать и там - по крайней мере, мне это кажется наиболее простым вариантом.

MrClon действительно, не подумал о том, что если уже есть инстанс в амазоне, то и DNS туда можно поставить.

Balantay
()
Ответ на: комментарий от Balantay

Спасибо Balantay, MrClon и всем кто ответил.

Пока информации достаточно для начала. Чуть позже займусь этими вопросами.

san-sanych
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.