w_pw 1 Zgłoś post Napisano Maj 27, 2013 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 :-) 1 Udostępnij ten post Link to postu Udostępnij na innych stronach
Pan Kot 1535 Zgłoś post Napisano Maj 28, 2013 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. 1 Udostępnij ten post Link to postu Udostępnij na innych stronach
Miłosz 2311 Zgłoś post Napisano Maj 29, 2013 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. 2 Udostępnij ten post Link to postu Udostępnij na innych stronach
Gość Zgłoś post Napisano Maj 29, 2013 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