Skocz do zawartości
w_pw

Lokalny serwer www + bezpieczeństwo danych

Polecane posty

Witam,

 

Posiadam lokalny serwer www wraz z MySQL uruchomiony na systemie CentOS. Serwer jest uruchomiony na wirtualnej maszynie postawionej na Citrix Xen Server.

 

Na serwerze znajduje się dla mnie bardzo ważna aplikacja działająca w Intranecie. Sprawa rozrosła się do takiego stopnia, że "padnięcie" tego serwera może doprowadzić do mojej prywatnej katastrofy ;-)

 

Potrzebuję takiego rozwiązania:

  • 2 równoznaczne serwery www, takie, żeby operacja na jednym miała od razu odzwierciedlenie na drugim. Serwery mają następujące adresy: Serwer A - IP: 10.0.0.2, Serwer B - IP: 10.0.0.3
  • W przeglądarce wpisuję 10.0.0.1 i tam działa moja strona www.
  • Wyłączenie z prądu jednego serwera nie "unieruchamia" mojej strony - ja dostaję tylko informację, że serwer A nie działa, strona jest ściągana z serwera B
  • Co 24h backup plików i MySQL na zewnętrzny serwer, np. FTP
  • Porządny serwer plików - możliwość podpinania kolejnych dysków

 

Myślałem o rozwiązaniu opartym na rSync i herbeat-HA lub VMware ESX.

 

Jak ten temat najlepiej ugryźć i jak to rozwiązać? Kosz licencji oprogramowania, serwerów w ramach zdrowego rozsądku nie ma znaczenia.

 

Liczę na ciekawe pomysły :-)

  • Upvote 1

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Zacznijmy od podstawowej warstwy czyli DNS. DNS to jest coś co nie może nigdy zginąć więc musisz je ulokować w zaufanym dla siebie miejscu np. cloudflare czy u swojego operatora domeny (o ile mu ufasz w kwestii stabilności).

 

Do głównej domeny dodajesz 2 pola A z adresem IP Twoich dwóch webserverów. Przy założeniu, że działają w identyczny sposób i mają te same pliki łączone rsynciem nie będzie problemu.

 

Pierwszy problem zaczyna się w przypadku mysql'a. Jedna z opcji to mysql clustering -> http://www.mysql.com/products/cluster/, który Ci wrzuci identyczną bazę w dwa miejsca, czyli na dwa niezależne serwery. Wtedy na serwerach WWW definiujesz sobie lokalnego hosta np. serwer.mysql i skrypt, który sprawdza czy aktualne IP serwer.mysql odpowiada, jeśli nie to przestawia IP serwer.mysql na kolejne z listy (ip_mysql_2) i co kolejne wykonanie skryptu próbuje wrócić do ip_mysql_1. To oczywiście rozwiązanie "własne". Innym sposobem jest już w/w przez Ciebie Linux-HA. Generalnie opcji jest dużo.

 

Rzeczy najbardziej istotne:

Stabilny i zaufany serwer DNS

2 pola A danej domeny

 

To, jak później się z tym pobawisz w sercu infrastruktury nie ma zbytnio różnicy bo każde rozwiązanie będzie działać. Najważniejsze to mieć dobry start.

  • Upvote 1

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Jeśli w lanie po ip wchodzi na maszynę, to nie jest mu potrzebny dns ;)

 

@w_pw

Poczytaj o keepalived, możesz nim przerzucać "główny" adres ip między dwiema maszynami. Do tego na storage jakiś system plików z replikacją, np GlusterFS. No i replikacja bazy danych.

Do backupu kup sobie jakiś NAS z lepszymi dyskami, aby przynajmniej raid 1 był. Po sieci będziesz sobie rsynca plików wysyłał i dump mysqla.

  • Upvote 2

Udostępnij ten post


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

Roundrobin ? Jak już to zmiana via API, ale lepszym rozwiązaniem jest usługa z failover.

 

Przy bazie danych być może wystarczy replikacja master aktywny i master pasywny, jeżeli ten mulit-master jest potrzebny to percona/mariadb galera.

Jeżeli nie ma wiele operacji na plikach i jest ich stosunkowo mało to wystarczy rsync, w innym przypadku zostanie połączenie dwóch maszyn przez drbd jednak tu trzeba rozważyć kwestie skalowalności/wydajności.

 

Można pokombinować zbijając koszty budowania "małej chmurki" tylko trzeba wiedzieć więcej o projekcie i pomyśleć.

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ę


×