Mysql failover – high availability mysql serwer
Wymagania:
- zapewnienie ciągłości pracy serwera bazodanowego MySQL w przypadku awarii jednego z dwóch nodów MySQL;
- rozwiązanie przezroczyste dla programistów, nie wymaga żadnych zmian i nie nakłada żadnych ograniczeń w porównaniu do pojedynczej instancji serwera MySQL;
- automatyczne wykrywanie awarii jednego z nodów i natychmiastowe samoczynne przełączanie usługi na sprawny node;
- synchroniczna replikacja danych miedzy dwoma nodami zapewniająca spójność i brak utraty danych w przypadku awarii jednego z nodów i przełączeniu usługi serwera MySQL na drugi;
- możliwość zastosowania wyłącznie rozwiązań open source, brak konieczności kupowania licencji;
- brak konieczności stosowania macierzy dyskowych;
- możliwość implementacji rozwiązania na dowolnych dwóch serwerach, także zwykłych komputerach klasy PC, co umożliwi np. budowę środowiska testowego na tanim sprzęcie.
Cechy zaprojektowanego i wdrożonego rozwiązania:
- klaster składający się z dwóch bliźniaczo skonfigurowanych serwerów bazodanowych;
- system Debian Linux;
- możliwość wykorzystania programowego RAIDu (0, 1, 4, 5, 6, 10 i kombinacji);
- synchroniczna replikacja danych bazy MySQL na poziomie urządzeń dyskowych odbywająca się poprzez sieć Gigabit Ethernet;
- automatyczne monitorowanie stanu obu serwerów baz danych i przełączanie usługi serwera MySQL na aktualnie sprawny i dostępny poprzez sieć IP dla serwerów aplikacyjnych serwer;
- usługa serwera MySQL dostępna jest cały czas na tym samym adresie IP i numerze portu TCP, dzięki czemu przełączenie się usługi między serwerami nie wymaga obsłużenia tej sytuacji przez programistów;
- zdublowane interfejsy sieciowe i ich automatyczny failover, wykorzystanie redundantnych switchy.
Zakres wykonanych prac:
- ustalenie wymagań;
- audyt istniejącej sieci IP, która miała być wykorzystana w projekcie;
- przygotowanie projektu wraz z uwzględnieniem koniecznych poprawek w sieci IP;
- przeprowadzenie kompleksowego wdrożeniu oraz wprowadzenie poprawek w sieci IP.