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