Skocz do zawartości
witek010

Przełączanie między serwerami - load balancing

Polecane posty

Cześć,


Mam stronę internetową na serwerze VPS w ovh. Nie mogę dopuścić do tego, aby była awaria i strona nie była dostępna. Dlatego chcę się zabezpieczyć drugim serwerem i w razie problemów "przełączyć" się na drugi serwer. Czy takie coś jest możliwe? Czy load balancer spełni takie wymagania? Jak podejść do zaprojektowania takiego rozwiązania?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Load balancer spełni taką funkcję, ale wtedy awaria load balancera stawia Cię w tej samej sytuacji, co awaria serwera teraz. Dalej masz single point of failure.

 

Inną opcją jest użycie DNS z krótkim TTL. W przypadku awarii dodajesz/wyjmujesz serwery z listy aktywnych.

 

Wreszcie, niektórzy operatorzy oferują floating IP czy failover IP, które możesz przełączyć do innego, sprawnego serwera.

 

Ale najłatwiej nauczyć się żyć z krótkimi przerwami ;)

Udostępnij ten post


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

Nie ma szans na takim środowisku o rozsądne rozwiązanie.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Load balancer spełni taką funkcję, ale wtedy awaria load balancera stawia Cię w tej samej sytuacji, co awaria serwera teraz. Dalej masz single point of failure.

 

Inną opcją jest użycie DNS z krótkim TTL. W przypadku awarii dodajesz/wyjmujesz serwery z listy aktywnych.

 

Wreszcie, niektórzy operatorzy oferują floating IP czy failover IP, które możesz przełączyć do innego, sprawnego serwera.

 

Ale najłatwiej nauczyć się żyć z krótkimi przerwami ;)

 

Ok. Ale zakładając, że trzeba wprowadzić jakieś rozwiązanie to Twoim zdaniem jakie będzie najlepsze?

 

 

Wszystko fajnie, a bazy, sesje, tmpeki? Tak to synchronizować? Mysql można przez replikacje ale jest pewnie opóźnienie i zżera pewnie zasoby.

 

Sesja to pół biedy. Najwyżej ktoś zostanie wylogowany.

Udostępnij ten post


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

Z rozwiązań OVH jedyne co mi przychodzi do głowy to vrack, ale to chyba nie dla VPS'ów. Może zamiast przełączać serwer docelowy gdy już padnie z jednego na drugi to robić to non stop na zasadzie najprostszego DNS roundrobin? IMHO to najlepsze rozwiązanie dla Ciebie. Synchronizacja sesji to nie problem i można to zrobić na miliard sposobów.

Edit:
Ewentualnie podaj więcej szczegółów które mogą posłużyć do wstępnego resource plan'u. Fajnie byłoby np. skorzystać z kilku VPS'ów - np. jeden na bazę danych i jeden aplikacji który wszystko mieli i podaje na dwa fronty (z np. nginx'em). Tak to się robi generalnie, a z dwóch vps'ów to raczej ciężko stworzyć sensowne rozwiązanie ;-)

Edytowano przez Spoofy (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Z rozwiązań OVH jedyne co mi przychodzi do głowy to vrack, ale to chyba nie dla VPS'ów. Może zamiast przełączać serwer docelowy gdy już padnie z jednego na drugi to robić to non stop na zasadzie najprostszego DNS roundrobin? IMHO to najlepsze rozwiązanie dla Ciebie. Synchronizacja sesji to nie problem i można to zrobić na miliard sposobów.

 

Edit:

Ewentualnie podaj więcej szczegółów które mogą posłużyć do wstępnego resource plan'u. Fajnie byłoby np. skorzystać z kilku VPS'ów - np. jeden na bazę danych i jeden aplikacji który wszystko mieli i podaje na dwa fronty (z np. nginx'em). Tak to się robi generalnie, a z dwóch vps'ów to raczej ciężko stworzyć sensowne rozwiązanie ;-)

 

Jeśli będzie taka potrzeba to nie musi być OVH. Mogę przenieść stronę na inny serwer.

 

Jakich szczegółów potrzebujesz, aby coś ustalić? Czyli lepiej 4 vpsy? Jeden na mysql, drugi na rozdzielanie i dwa na aplikacje?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

hmmm na 4 VPS może być? Możesz wtedy skorzystać z naszych usług.
Na dwóch masz http, a na dwóch masz baze w jakiejśtam replikacji (master-master albo master-slave w zależności co i jak mysql obsługuje) - te z www chowasz za loadbalancerem (ewentualnie musisz jakoś współdzielić sesje, pliki itp. do tego pewnie możesz użyć np. glustera).

Dwa vps'y od frontendu podpinasz pod loadbalancer. I on rozkłada ruch na te vps'y.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Najbardziej opłacalnym rozwiązaniem pod kwestią opłacalność / zaufanie będzie zrobienie jak już wyżej koledzy wspomnieli DNS RR na dwa serwery + krótki TTL, każdy ulokowany na wspólnym distributed filesystemie, przykładem może być GlusterFS, ale także dowolny inny. MySQL synchronizujesz replikacją master-master.

 

Jeśli dodatkowo chciałbyś to zautomatyzować to dobrym pomysłem jest postawienie tego za cloudflarem. Na obydwu serwerach możesz zrobić skrypty, które nawzajem się będą pingować + pingować jakiś niezależny inny serwer (np. DNS). Jeśli jeden z nich nie będzie mógł spingować drugiego, a będzie mógł spingować DNSa, może przez cloudflare'owe API wysłać requesta o tymczasowe wyłącznie DNS RR na rzecz samego siebie, a potem tą zmianę cofnąć. W bashu kilkadziesiąt linijek.

 

Dzięki temu niedostępność serwisu będzie wynosiła max kilkadziesiąt sekund, a jak ktoś ma farta (50%) to może jej w ogóle nie odczuć.

 

Polecam również ten link.

Edytowano przez Archi (zobacz historię edycji)
  • Upvote 1

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ę


×