Mam niestety tylko pomysly, brak wiedzy praktycznej, choc temat jest ciekawy. Moja propozycja: 1 host rozsylacz - portafi wykryc awarie serwera i kierowac za,dania do innego - rozdziela obciazenie n serwerow [ ] / | \ .... \ [ ]<->[ ]<->[ ] ... [ ] pozostaje tylko i az problem synchronizacji dancyh pomiedzy n serwerami.
Czyli Linux Virtual Server.W tym miejscu przydaloby sie zewnetrzne zrodlo danych. Mozna postawic serwer z macierza dyskowa (ew. zdublowany), ktory udostepnia zasoby serwera "roboczym". Taka konfiguracja pokazana jest na stronie
http://www.linuxvirtualserver.org/HighAvailability.html
drbd - RAID 1 over tcp/ip for Linux utilities
Jest to sposob, jednak jego podstawowa wada jest jednostronne dzialanie. Musi istniec master i slave. W normalniej konfiguracji dziala tylko jeden, drugi wlacza sie w przypadku padu mastera. Rozwiazanie sprawdzi sie np. przy dublowaniu serwera z zasobami lub routera rodzielajacego ruch. Jak natomiast zrobic cos takiego, zeby kilka maszyn korzystalo z tego samego zrodla danych, moglo czytac/zapisywac i pozostale maszyny by to "widzialy".
Ciekawym projektem jest CODA, ale z tego co czytalem zastosowanie go w obciazonych serwerach raczej nie jest dobrym pomyslem (przynajmniej autorzy projektu nie znaja takiego wdrozenia).
Ostatecznie mozna dane udostepniac po NFS, ale nie wiem jak z wydajnoscia takiego rozwiazania.
Jezeli wydajnosc nie jest problemem, to moze lepiej zainwestowac w dobry serwer ktorego awaryjnosc jest akceptowalna, anizeli konstruowac klastry, ktorymi chyba trudniej zarzadzac? ( pozostaja jeszcze wzledy ekonomiczne)
A co w momencie, gdy mamy bardzo wymagajaca wirtualke ? Taka ktora zabije nawet lepsze serwery ? W moim przypadku bardziej obciazenie bedzie dokuczliwe niz awarie serwerow. Chcialbym wiec zaprojektowac rozwiazanie maloawaryjne, ale wydajne. Co do wzgledow ekonomicznych to masz racje. To sa na razie plany :(.
Moze jest ktos na liscie moglby sie podzielic swoim doswiadczeniem w budowie takich maszyn.
-- Maciej Gasiorowski