Ogólnie można powiedzieć, że redundancja oznacza wprowadzenie dodatkowych zasobów lub mechanizmów zapasowych, które zwiększą niezawodność systemu i zapewniają ciągłość działania w przypadku awarii. Celem redundancji jest uniknięcie przestojów, utraty danych czy przerwania usług nawet wtedy, gdy jeden z elementów systemu przestanie działać.
Rodzaje redundancji
Sprzętowa
Obejmuje zduplikowanie kluczowych komponentów sprzętowych (serwerów, dysków twardych, zasilaczy, routerów itp.). W przypadku awarii jednego z elementów, drugi (zapasowy) przejmuje jego zadania np. zapasowe macierze dyskowe (SAN), używane w centrach danych i dużych systemach przechowywania danych. W takim rozwiązaniu dane są przechowywane na wielu macierzach dyskowych, które działają jako niezależne jednostki, ale są wzajemnie zduplikowane lub synchronizowane.
Danych
Polega na tworzeniu kopii zapasowych danych, które mogą być użyte w przypadku awarii systemu lub utraty oryginalnych danych. Przykładem może być RAID (Redundant Array of Independent Disks), który umożliwia przechowywanie danych w sposób, który pozwala na ich odzyskanie w przypadku awarii jednego z dysków.
Sieciowa
Zduplikowanie kluczowych elementów sieci, takich jak przełączniki, routery czy łącza internetowe, aby zapewnić ciągłość działania sieci w przypadku awarii któregokolwiek z tych elementów np. więcej niż jedno połączenie do internetu od różnych dostawców, aby w przypadku awarii jednego połączenie można było skorzystać z drugiego.
Oprogramowania
Zapewnienie ciągłości działania aplikacji przez zduplikowanie systemów oprogramowania lub klastrów aplikacyjnych. W przypadku awarii jednej instancji aplikacji, druga instancja automatycznie przejmuje jej działanie.
Przykłady redundancji w praktyce
Load balancing i failover
W systemach, gdzie używa się load balancingu, można dodać redundancję poprzez uruchomienie dodatkowych serwerów, które będą gotowe do przejęcia ruchu w razie awarii któregokolwiek z serwerów. Kiedy jeden serwer przestaje działać, load balancer automatycznie przekierowuje żądania do pozostałych, sprawnych serwerów (tzw. failover).
Zasilanie awaryjne
Dobrym przykładem może być zastosowanie zasilania awaryjnego (UPS-ów) lub generatorów prądu, aby zapewnić ciągłość zasilania dla serwerów.
Klastrowanie serwerów
W przypadku serwerów aplikacyjnych czy baz danych często stosuje się klastry, które działają równolegle. Jeśli jeden serwer w klastrze przestaje działać, inne serwery mogą kontynuować pracę bez zakłóceń.
Przypomnijmy zalety redundancji
Wysoka dostępność (High Availability)
Systemy są mniej podatne na awarie i mogą działać nieprzerwanie.
Bezpieczeństwo danych
Dzięki redundancji kopii zapasowych ryzyko utraty danych jest zminimalizowane.
Ochrona przed awariami
Redundancja zapewnia, że nawet w przypadku awarii jednego z komponentów system może kontynuować działanie.
Są też i wady
Koszty
Zawsze trzeba określić zasadność danego rozwiązania bo zastosowanie redundancji wiąże się z dodatkowymi kosztami, zarówno sprzętowymi (dodatkowe serwery, dyski), jak i operacyjnymi (utrzymanie, monitoring).
Złożoność
Skoro redundancja wiąże się z dodatkowymi kosztami, zarówno sprzętowymi (dodatkowe serwery, dyski), jak i operacyjnymi (utrzymanie, monitoring) to nasze systemy staną się bardziej złożone i będą wymagały bardziej skomplikowanej konfiguracji oraz zarządzania.
Podsumowanie:
Podsumowując, redundancja to jeden z kluczowych elementów przy projektowaniu systemów informatycznych. Dzięki niej można zagwarantować niezawodność, ciągłość działania oraz bezpieczeństwo danych w sytuacjach awaryjnych, co w dzisiejszym świecie jest sprawą priorytetową dla każdego biznesu.