насчёт ручного вмешательства - heartbeat..
-~{}~ 26.02.09 11:02:
поделюсь с тем, что есть у нас...
действующий сайт. нагрузка выросла до 100 000 посетителей / 1 млн. хитов / 12 млн запросов http
много данных - 100 Гб и постоянно увеличивается.
постоянные апдейты по табличкам из которых идут выборки.
что нам дали: два мощных сервака (+ два коммутатора) и дисковый массив 1Тб.
задача - балансировка и отказоустойчивость.
синхронизация данных не подходит из-за особенностей кеширования и постоянной заливки достаточно больших объёмов данных на сайт и в базу.
рассмотрели несколько вариантов:
2 идентичные взаимозаменяемые ноды с общим массивом.
Система подчти (mysql cluster не реализовывали) была реализована, где балансировку можно было осуществлять различными способами (DNS, ngix, mod_backhand).. Но всё упёрлось в возможность совместного доступа к массиву. Для этого была использована ORACLE FILE SYSTEM.. под нагрузкой падали обе ноды.. просто зависали и всё тут.. никаких ошибок не писалось.. бились-бились, да отдали на аудит.. заключение как мы и думали.. нужно использовать другую файловую систему, которая стоит 20 т $.
зажали....
как итог решили разделить http и mysql на 2 сервера.
но на http так же установлен и настроен мускуль но не запущен, а на mysql настроены http, но не запущены.
и с помощью heartbeat можно переводить все сервисы на одну ноду, паралельно подключая нужные разделы массива.
итог:
реализована и балансировка нагрузки и отказоустойчивость с помощью 2-х серверов. не надо заморачиваться насчёт синхронизации данных - не создаётся дополнительная нагрузка. не надо оптимизировать базу и запросы под ndb - это могло занять много времени.
узкое место - массив, но у него надёжность 99,99 - каждый винт там зеркальный.
есть, конечно, и минус - немасштабируемая система.
всё это на сусьске....