Witam,

na chwilę obecną mam 2 maszyny na których stoi baza MySQL Cluster oraz na jednej z nich aplikacja w PHP serwowana przez Apache'a. Ze względu na rychłe zwiększenie ruchu, będę potrzebował aby obie maszyny serwowały aplikację. Do tego, całkiem rozsądne wydaje się dodanie feature'a, aby w sytuacji, gdy jedna maszyna się wyłoży, druga starała się obsłużyć żądania swoje oraz za tamtą.

Całkiem ciekawy sposób jest opisany tu:
http://voidweb.com/2010/10/php-clustering-using-apache-httpd-mod-proxy/

oraz tu (ten jest stary, wykorzystuje UltraMonkey nierozwijane od bodajże 2006 roku, więc faworyzuję to pierwsze rozwiązanie z mod_proxy):
http://www.howtoforge.com/high_availability_loadbalanced_apache_cluster

Niestety, oba rozwiązania mi nie odpowiadają ze względu na posiadanie maszyny, która jest jedynie loadbalancerem i przez którą idzie cały ruch - mamy single point of failure (w drugiej opcji są 2 loadbalancery, ale nie mogę sobie pozwolić na marnowanie 1 maszyny, która ma służyć jako zastępczy load balancer i nic nie robić dopóki pierwszy LB się nie położy).
Rozwiązaniem mógłby być IPVS, niestety informacje na ten temat są w miare skromne, temat zgłębiam ale nie wiem czy to będzie rozwiązaniem. W sensie - jeden wirutalny adres IP, który są w stanie obsłużyć wszystkie maszyny serwujące aplikację, a obsługuje go ta maszyna, która jest najmniej obciążona. Ktoś spotkał się z takim rozwiązaniem, trafił na artykuł lub wie jak to wdrożyć? :)

A może zetknęliście się z jakimś innym fajnym pomysłem na load balancing apache'a bez pojedynczej maszyny, która służy jedynie jako loadbalancer?

Ps. Nie wiem czy odpowiedni temat, ale chyba PHP jest najbliżej problemu z dostępnych tematów.