Skocz do zawartości
Bartko

DirectAdmin LoadBalancing Dwa Serwery

Polecane posty

Witajcie,

 

Obecnie posiadam stronę, która działa na jednym serwerze w OVH. Chciałbym aby działała na dwóch serwerach w celu zmniejszenia ryzyka awarii.

 

Oto jak to widzę, proszę o poprawki jeśli coś źle przemyślałem.

 

1. Instaluje na obu serwerach DirectAdmina.

2. Dodaje wszędzie te same domeny, subdomeny

3. Dnsy konfiguruje identycznie na tych serwerach. Używam własnej domeny (np. myowndns.pl)

4. Maile przekierowuje na jeden z tych serwerów (zmiana wpisu A mail.domena.pl)

5. Kod strony wgrywam na oba serwery ten sam (upierdliwe, ale przeżyję to)

6. Baza danych działa na trzecim serwerze, kopie robione są na dwa pozostałe serwery

7. Własne dnsy (np. myowndns.pl) ustawiam w home.pl na IP LOAD BALANCING (ns1.myowndns.pl, ns2.myowndns.pl => IP LOAD BALANCING)

 

Czy coś pominąłem? Może wiecie jakie niespodzianki spotkam na tej drodze.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Myślenie poprawne. Powinno nawet w sumie jakoś działać...

 

Czy coś pominąłem? Może wiecie jakie niespodzianki spotkam na tej drodze.

Zakładam, że skoro DirectAdmin, to i PHP.

A skoro PHP, to używany wszem i wobec mechanizm sesji, który to dane trzyma na hdd gdzieś tam w tempie. Więc normą będą sytuacje, że w zależności od kaprysu loadbalancera user będzie raz zalogowany (gdy trafi na s1), raz niezalogowany (gdy trafi na s2 - bo tam takiej sesji nie ma w pliczkach).

 

Dodajmy, że SPoF będzie owy serwer MySQL w ilości sztuk 1).

Bo nawet, jeśli ustawisz aplikację tak, że połączy się z ową kopią w razie niedostępności main'a, to jesteś na dobrej drodze do stworzenia mega-niespójności w bazach, którą bardzo trudno będzie ci zreplikować.

 

PS: Odnośnie owego "kopiowania" aplikacji w wiele miejsc - to może lepiej współdzielony zasób NFS?

Wówczas nawet i te nieszczęsne sesje będą w miarę łatwo możliwe do osiągnięcia.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Sesję trzymam również w bazie danych, więc to akurat nie jest problemem.

 

Serwer bazodanowy załóżmy, że nie jest problemem. Załóżmy, że używam PostgreSql z wszelkiej maści replikacjami itp i niespójność nie wchodzi w grę. NFS dopiszę do rozważenia.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Gość squeezer

Jak będziesz się zastanawiał nad NFS'em, to wcześniej przetestuj sobie taką konfigurację. Wygeneruj taki ruch, jaki chciałbyś żeby to wytrzymało. Zobacz czy faktycznie wytrzyma. Z doświadczenia wiem, że NFS nie daje rady jeśli ruch na współdzielonym zasobie jest większy - duża ilość operacji na dużej ilości małych plików (pliki statyczne - obrazki, html do wystawiania przez Nginx) zabijała taką konfigurację.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Więc przebrnąłem przez większość rzeczy związanych z dwoma serwerami na jedną stronę. Maile puściłem na Google Apps, dnsami zarządzam z panelu home.pl. Na środowisku testowym wszystko wydaje się działać.

Mam tylko pytanie o kontent statyczny. Z racji, że mam tylko jedno IP LOAD BALANCING puściłem sobie pliki przez proxy apache, które kieruje na port Lighttpd i pliki serwuje Lighttpd. Czy to wpłynie na wydajność?

 

Zastanawiam się też nad synchronizacją plików dodawanych przez użytkowników (avatary, zdjęcia).

 

1. Połączenie z dwoma serwerami FTP i wgrywanie w dwa miejsca równocześnie. Gdy jeden serwer padnie znika możliwość dodawania aż do czasu naprawienia awarii. Tak samo z usuwaniem avatarów i zdjęć. Rozwiązanie proste, ale z wadami.

 

2. Jakiś NFS, Gluster czy coś podobnego. Nie znam zbytnio tematu, ale obiło mi się o uszy, że bardzo mocno obniża wydajność całej konfiguracji.

 

3. Może coś innego?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Mam tylko pytanie o kontent statyczny. Z racji, że mam tylko jedno IP LOAD BALANCING puściłem sobie pliki przez proxy apache, które kieruje na port Lighttpd i pliki serwuje Lighttpd. Czy to wpłynie na wydajność?

 

Wszystko powinna pukać do Lighttpd i lighttpd powinien zatrzymywać statici dla siebie a resztę przerzucać do apacha. Inaczej apache swoje zasoby i tak zeżre (zero zysku), a Lighttpd działa extra...

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Sorry, że odkopuję ten temat.

Autorowi postu sugerowałbym trzymanie plików statycznych w chmurze - tak jak to robi np wykop. Wtedy dostaje się mega zysk wydajności serwera, bo serwer zajmuje się tylko parsowaniem plików dynamicznych a nie zajmuje się operacjami i/o dysku ;-)

Sam stanę niedługo przed problemem instalacji klastra serwerów.

 

Wykorzystam infrastrukture OVH i ich IP load balancer, DNS w panelu OVH, mail na Google Apps.

- Serwery będą miały taką samą zawartość, nginx + php-fpm - nic więcej, stworzę w bashu prosty skrypt, który automatycznie instaluje serwer z takim oprogramowaniem

- trzymanie źródeł plików w prywatnym git, więc instalacja nowszych wersji serwisu to będzie tylko wydanie polecenia do git`a

- baza danych to albo dodatkowy serwer tylko pod bazę lub w chmurze - wszystko zależy od testów wydajnościowych

- wszystkie pliki graficzne, js i css na chmurze ( rackclod lub amazon aws )

 

Kosztowo wyjdzie to najtaniej, bo będę mógł na dłuższy czas zatrzymać się na dwóch serwerach HTTP a reszta w chmurze, a jak wiadomo to opcja znacznie obniżająca koszt utrzymywania infrastruktury ;-)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Bądź aktywny! Zaloguj się lub utwórz konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto

Zarejestruj nowe konto, to proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się


×