Official Blog
Co stoi za ciągłością działania: jak MailPlus High Availability buduje odporność systemu
Team Synology Polska
4 May, 2026

Co stoi za ciągłością działania: jak MailPlus High Availability buduje odporność systemu

W Synology korzystamy z MailPlus, który wspiera ponad 1500 pracowników i obsługuje ponad 170 000 wiadomości e-mail dziennie. Uważnie monitorujemy jego dostępność, aby mieć pewność, że spełnia wymagania niezawodności w środowisku produkcyjnym.

Na przestrzeni czasu MailPlus konsekwentnie osiągał poziom dostępności na poziomie 99,99%. Dla porównania, typowe SLA na poziomie 99,9% dopuszcza do około 43 minut przestoju w skali miesiąca, podczas gdy 99,99% ogranicza ten czas do około 4 minut miesięcznie, czyli mniej niż minuty tygodniowo.

Taki poziom dostępności to efekt świadomych decyzji architektonicznych, przede wszystkim wdrożenia MailPlus High Availability (HA). W przeciwieństwie do klasycznych konfiguracji aktywno-pasywnych, MailPlus HA działa w oparciu o klaster aktywno-aktywny. Oba serwery jednocześnie obsługują ruch, co pozwala na przeprowadzanie aktualizacji lub prac serwisowych na jednym węźle bez przerywania działania dla użytkowników, ponieważ drugi nadal obsługuje zapytania. Takie podejście znacząco ogranicza zarówno planowane, jak i nieplanowane przestoje.

W tym artykule przyjrzymy się bliżej zasadom projektowym i mechanizmom stojącym za MailPlus HA oraz temu, jak współpracują ze sobą, aby zapewnić nieprzerwaną obsługę poczty e-mail.

Niezawodna synchronizacja: zapewnienie spójności w czasie rzeczywistym

Utrzymanie dwóch serwerów pocztowych w idealnej synchronizacji nie sprowadza się do prostego kopiowania danych. Skrzynki pocztowe są w ciągłym ruchu, nowe wiadomości przychodzą, a użytkownicy w tym samym czasie czytają, przenoszą lub usuwają e-maile. Pierwszym wyzwaniem inżynieryjnym było więc zaprojektowanie mechanizmu synchronizacji, który nadąża za tak dynamicznym środowiskiem, jest wystarczająco wydajny i jednocześnie precyzyjny, aby rejestrować każdą zmianę w czasie rzeczywistym.

Celowana synchronizacja dzięki izolacji katalogów

W wielu systemach dane wszystkich użytkowników trafiają do jednej, centralnej bazy. Choć jest to wygodne z punktu widzenia zarządzania, niesie ze sobą istotne ryzyko. W przypadku uszkodzenia bazy lub awarii problem może objąć cały system i przerwać działanie usług dla wszystkich użytkowników. Co więcej, odzyskiwanie i diagnozowanie takich sytuacji bywa złożone i czasochłonne.

Dlatego MailPlus stosuje inne podejście. Zamiast monolitycznego repozytorium użytkowników, dane poczty i ustawienia każdego użytkownika są przechowywane w osobnym katalogu. Katalogi te są zarządzane indywidualnie. Metadane mogą być nadal indeksowane lub śledzone przez centralny komponent w celu zwiększenia wydajności, ale kluczowe dane pocztowe i pliki użytkownika pozostają odseparowane.

Takie podejście daje dwie istotne korzyści:

  • Ograniczenie zakresu potencjalnej awarii: jeśli skrzynka jednego użytkownika ulegnie uszkodzeniu lub pojawi się problem z synchronizacją, nie wpływa to na pozostałych użytkowników.
  • Precyzyjna synchronizacja: gdy zmieniają się dane konkretnego użytkownika, na przykład pojawia się nowa wiadomość lub aktualizacja ustawień, synchronizujemy wyłącznie ten wycinek danych pomiędzy serwerami. Dzięki temu nie ma potrzeby przenoszenia całego zbioru poczty, co pozwala utrzymać wydajność nawet przy rosnącej liczbie użytkowników i wolumenie wiadomości.

Synchronizacja oparta na zadaniach i uporządkowanych kolejkach

Wydajność i dokładność synchronizacji w dużej mierze zależą od sposobu, w jaki zmiany są rejestrowane i przetwarzane. Zamiast klasycznej replikacji danych w czasie rzeczywistym, MailPlus HA stosuje podejście oparte na zadaniach. Każda zmiana jest wychwytywana, zamieniana na zadanie i umieszczana w uporządkowanej kolejce synchronizacji.

Każda operacja w skrzynce pocztowej, taka jak odebranie nowej wiadomości, przeniesienie e-maila czy usunięcie folderu, jest zapisywana jako osobne zadanie. Zadania te są przetwarzane sekwencyjnie, a oba serwery wymieniają się aktualizacjami i potwierdzają ich poprawne zastosowanie, zanim przejdą do kolejnego kroku.

Takie podejście pomaga również w obsłudze konfliktów synchronizacji. Jeśli na przykład chwilowy problem z siecią sprawi, że użytkownicy będą jednocześnie korzystać z obu serwerów, mogą pojawić się sprzeczne zmiany, na przykład ten sam e-mail zostanie przeniesiony do dwóch różnych lokalizacji. MailPlus rozstrzyga takie sytuacje na podstawie kombinacji znaczników czasu oraz kolejności zadań, wybierając działanie, które ma pierwszeństwo, i zapewniając spójny wynik.

Śledząc wyłącznie rzeczywiste zmiany i zachowując ich właściwą kolejność, MailPlus zapewnia synchronizację, która jest jednocześnie wydajna i niezawodna, bez zbędnego narzutu i bez utraty spójności danych.

Odzyskiwanie po split-brain: samonaprawa i uzgadnianie danych

Split-brain to jeden z najbardziej krytycznych scenariuszy awarii w klastrach wysokiej dostępności. Dochodzi do niego wtedy, gdy połączenie między dwoma serwerami zostaje przerwane, ale oba nadal działają. W takiej sytuacji każdy z nich traci możliwość wykrycia drugiego i może błędnie uznać, że to on powinien pełnić rolę aktywnego węzła. W efekcie powstają dwa „główne” serwery, które niezależnie przyjmują nowe wiadomości i przetwarzają działania użytkowników.

Gdy połączenie zostaje przywrócone, pojawia się problem niespójnych danych między serwerami. Konflikty mogą dotyczyć tych samych wiadomości lub operacji wykonanych równolegle, co w skrajnych przypadkach prowadzi do trudnych do odtworzenia rozbieżności, a nawet utraty danych.

Debata: prewencja kontra naprawa

Tradycyjne podejście do zapobiegania split-brain opiera się na zewnętrznych mechanizmach, takich jak serwer obserwujący (tzw. witness) czy reguły oparte na kworum, które decydują, który serwer ma pozostać w roli aktywnej. Choć takie rozwiązania są skuteczne w wielu scenariuszach, zwiększają złożoność architektury i wprowadzają dodatkowe potencjalne punkty awarii. Przykładowo, jeśli serwer witness przestanie działać, odporność całego systemu może zostać osłabiona.

MailPlus podchodzi do tego problemu w sposób warstwowy. Oprócz mechanizmów zapobiegających konfliktom, wprowadza również wbudowaną logikę ich rozwiązywania w momencie, gdy do niespójności już dojdzie. Ten dodatkowy mechanizm bezpieczeństwa działa jak zabezpieczenie awaryjne, zapewniając spójność danych nawet wtedy, gdy działania prewencyjne nie są w stanie w pełni ochronić systemu.

Spójność danych dzięki uzgadnianiu zmian świadomemu kontekstowi

Nasze podejście opiera się na dwukierunkowym mechanizmie uzgadniania danych, który bezpiecznie rozwiązuje zmiany po wystąpieniu zdarzenia split-brain.

Automatyczne przypisanie ról

Podczas konfiguracji MailPlus HA system zapisuje odpowiednie metadane na obu serwerach, aby określić ich priorytet. Oba węzły aktywnie obsługują dostarczanie poczty, jednak tylko serwer pierwotny może modyfikować ustawienia systemowe. W przypadku utraty połączenia serwer wtórny kontynuuje dostarczanie wiadomości, jednocześnie przechodząc w tryb tylko do odczytu dla konfiguracji. Po przywróceniu łączności system automatycznie przywraca pierwotnie przypisaną rolę serwera głównego.

Porównanie różnic

Zamiast nadpisywania danych jednego serwera danymi drugiego, system przeprowadza analizę różnic. Porównuje zmiany po obu stronach, uwzględniając działania użytkowników takie jak nowe wiadomości, usunięcia czy przenoszenie e-maili. Na tej podstawie identyfikuje unikalne dane istniejące na każdym z serwerów.

Uzgadnianie danych

Następnie system dokonuje uzgodnienia zmian w sposób, który pozwala zachować wszystkie poprawne dane użytkowników. Przykładowo, jeśli serwer A wskazuje, że wiadomość została usunięta, a serwer B rejestruje odpowiedź na tę wiadomość, odpowiedź zostaje zachowana. Podobnie, jeśli oba serwery niezależnie odebrały nowe wiadomości w czasie rozdzielenia, wszystkie zostają uwzględnione. Takie podejście pozwala uniknąć utraty istotnych informacji i utrzymać spójność danych.

System pocztowy, na którym możesz polegać

Wdrażając MailPlus HA, otrzymujesz coś więcej niż tylko serwer awaryjny. To system zaprojektowany z myślą o odporności, oparty na wielu warstwach zabezpieczeń. Od solidnej synchronizacji w czasie rzeczywistym, która dba o spójność danych, po automatyczne mechanizmy odzyskiwania zdolne rozwiązywać sytuacje typu split-brain. Całość została zbudowana tak, aby utrzymywać ciągłość działania i integralność danych bez potrzeby ręcznej interwencji.

Naszym celem jest zapewnienie Ci komfortu działania w modelu „ustaw i zapomnij”, z pewnością, że w tle pracuje inteligentny i odporny system, który nieustannie czuwa nad stabilnością usługi.