poniedziałek, 11 października 2010

ISM - Replikacja zdalna

Replikacja zdalna jest to tworzenie repliki w innej lokacji. Druga lokacja (macierz) na którą wykonuje się replikacje może być kilka metrów od macierzy źródła lub znajdować się na innym kontynencie.
Replikowanie zdalne zabezpiecza dane przed ich utratą spowodowaną przez lokalną katastrofę ( powódz, pożar, zamieszki itd...)

Wyróżnia się dwa podstawowe typy replikacji: Synchroniczną i Asynchroniczną. Dane pomiędzy lokacjami mogą być przesyłane na kilka sposobów, poprzez: Sieć IP, Sieć SAN, za pomocą Dense Wave Division Multiplexing (DWDM) lub Synchronous Optical Network (SONET)


Replikacja Synchroniczna:

W replikacji synchronicznej każdy zapis wykonany przez hosta zostaje przesłany z macierzy źródła, na macierz cel, następnie cel potwierdza zapis danych i dopiero po tym macierz źródłowa wysyła do hosta potwierdzenie wykonania operacji. Takie działanie powoduje, że przez cały czas, na obydwu macierzach są te same dane, dodatkowo zachowywana jest kolejność zapisów. RPO jest zerowe , RTO wynosi tyle ile potrzeba do uruchomienia aplikacji po stronie celu.
Replikacja synchroniczna ma wysokie wymagania, jeżeli chodzi o przepustowość łącza, pomiędzy dwoma lokalizacjami. Musi być ono w stanie obsłużyć maksymalne obciążenia generowane przez I/O
Ten rodzaj replikacji zwykle nie jest możliwy na odległości większe niż 100-200km


Replikacja Asynchroniczna:

W tej replikacji po wysłaniu żądania zapisu przez hosta, dane zostają zapisane na macierzy źródle i od razu host otrzymuje potwierdzenie. Źródło buforuje nowe dane i periodycznie wysyła do drugiej lokacji. RPO jest niezerowe i zależne od częstości wysyłania danych do macierzy celu. Zużycie łącza jest dużo niższe i zwykle przepustowość może być mniejsza niż typowe obciążenie I/O generowane przez hosta. Na macierzy źródle należy utrzymywać bufory na dane przygotowywane do wysłania. Ten rodzaj synchronizacji może być implementowany na długich dystansach.


Rodzaje replikacji zdalnej:

Ze względu na poziom na jakim działa replikacja zdalna, podobnie jak w przypadku replikacji lokalnej możemy wyróżnić dwa jej typy:
  • Host Based Replication
    • Logical Volume Manager (LVM) based
    • Log Shipping
  • Storage Array based
    • Support both synchronous and asynchronous mode
    • Disk Buffered - Consistent PITs


Host Based Replication: LVM Based

Odbywa się na poziomie LVMowych volume grup (więcej o LVMie jest w poprzednim wpisie). LVM, na hoście źródle, wysyła poprzez sieć IP wszyskie zapisy, do swojej volume grupy, LVM na źródle zapisuje te zmiany do volume grupy docelowej. Ten typ replikacji może działać zarówno w sposób synchroniczny jak i asynchroniczny, dane są wtedy wpierw zapisywane do log file na źródle i dopiero potem wysyłane do celu. Log file jest także wykorzystywany, jako tymczasowe miejsce przechownia zmian w przypadku utraty połączenia. Ten rodzaj replikacji pozwala utrzymywać kopię danych bez potrzeby używania sieci SAN.

Zalety:
  • Różne poziomy RAID mogą być zdefiniowane na celu i źródle
Wady:
  • Długie problemy z połączeniem siecowym, powodują powstawanie wielkich log filów.
  • Negatywny wpływ na wydajność hosta


Host Based Replication: Log Shipping

Jest to rodzaj replikacji na poziomie hosta, wykorzystywany przez bazy danych. Transakcje wykonywane na źródle są zapisywane do logu, który następnie jest periodycznie wysyłany na źródło. Źródło zapisuje loga a następnie wprowadza zawarte w nim operacje do swojej bazy. RPO jest zależne od wielkości loga i częstotliwości jego wysyłania. Zaletami tego typu replikacji jest małe zużycie CPU oraz małe wymagania dotyczące przepustowości łącza.


Storage Array Based Remote Replication

W tym rodzaju replikacji podobnie jak w przypadku lokalnym (poprzedni wpis) wszystkie operacje odbywają się i są zarządzane przez macierz - powoduje to zwolnienie zasobów CPU. Do połączenia między macierzami można wykorzystać łącze dedykowane lub współdzielone.
Replikacja Storage Based może występować w wersji synchronicznej (potwierdzenie zapisu do hosta zostaje wysłane dopiero po otrzymaniu potwierdzenia o zapisaniu zmiany na macierzy celu ) lub asynchronicznej ( potwierdzenie zapisu zostaje wysłane do hosta natychmiast, a dane ze źródła na cel są wysyłane co pewien ustalony okres czasu). W replikacji asynchronicznej stosowane są różne metody zapewnienia spójności danych , niektórzy producenci dołączają do każdego żądania znacznik czasowy, tak żeby na macierzy celowej zachować kolejność z zapisów. Innym sposobem jest zapisywanie na bufor cache przez zadany okres czasu, a następnie zablokowanie bufora w stanie spójnym i przesłanie go na drugą stronę.


Storage Array Based - Disk Buffered Replication

Jest to połączenie lokalnej i zdalnej replikacji na poziomie macierzy. Najpierw spójna kopia PIT (snapshot) jest tworzona lokalnie na macierzy źródle. Następnie ta replika jest przesyłana na macierz docelową. RPO jest zależne od częstości


Replikacja na trzy lokacje.

W replikacji synchronicznej źródło i cel nie mogą być oddalone od siebie bardziej niż około 200km. Powoduje to, że taka konfiguracja jest wrażliwa na katastrofy o lokalnym zasięgu. Rozwiązaniem jest stosowanie replikacji asynchronicznej i lokacji odległych o setki czy tysiące kilometrów. W takich konfiguracjach jednak RPO jest niezerowe i często nie akceptowalne.
Rozwiązaniem jest replikacja na trzy lokacje (Three site replication).
Replikacja tego rodzaju może odbywać się na dwa sposoby:

  • Cascade/Multi-hop
  • Triangle/Multi-target
Cascade/Multi-hop:

SOURCE----------->BUNKER---------->TARGET

W tym rodzaju replikacji przepływ danych jest następujący: Ze źródła (SOURCE) dane są synchronicznie replikowane na BUNKER a z niego asynchronicznie lub metodą Disk Buffered na TARGET

Triangle/Multi-target:
W rozwiązaniu cascade/multi-hop mamy większą niezawodność, niż przy dwóch lokacjach, ale zagrożenie nie jest wyeliminowane całkowice. Utrata BUNKER powoduje, że aplikacje działają na produkcji, ale brak jakiejkolwiek replikacji na TARGET. Wady te eliminuje rozwiązanie Triangle/Multi-target, gdzie każda lokalizacja jest połączona z dwoma pozostałymi.
Schemat przepływu danych jest następujący: Ze SOURCE dane są synchronicznie replikowanie na BUNKER oraz asynchronicznie na TARGET. Pomiędzy BUNKER a REMOTE zestawiona jest również replikacja asynchorniczne z dyferencyjną resychronizacją (Asych with Differential Resynch).
Takie rozwiązanie gwarantuje, że po utracie lokacji dane nie dość że są dostępne, to jeszcze mamy rozwiązanie DR (Disaster Recovery) - czyli jesteśmy w stanie przetrwać utratę drugiej lokalizacji.


SAN Based Remote Replication

Ten rodzaj replikacji może odbywać się pomiędzy macierzami różnych producentów. Dane są przesyłane poprzez SAN/WAN. Samą replikacją steruje jedna z macierzy, nazywana "contolling array". Macierz docelowa nosi nazwę "Remote array". W SAN Based Remote Replication możliwe są dwie operacje: push i pull. Push polega na wysłaniu danych z control array do remote array , natomiast pull to przesłanie danych z remote array do control array. Obydwie te czynności nadzoruje i inicjuje control array.


Nośniki zdalnej replikacji

Aby zdalna replikacja mogła mieć miejsce między macierzami biorącymi w niej udział musi istnieć połączenie.
Przykłady takiego połączenia to:
  • ESCON i FC dla krótszych odległości
  • IP network dla dalekich dystansó
  • Sieci optyczne: DWDM i SONET


Sekcja nr 3 została oficjalnie skończona, została jeszcze część 4 opisująca zabezpieczanie i zarządzanie zasobami storage. Z racji pewnych zmian zachodzących ostatnio w moim życiu zawodowym wpisy mogą pojawiać się nieco rzadziej, choć będę chciał utrzymać poziom co najmniej jednego nowego na tydzień.
Zobaczymy czy się uda.

2 komentarze:

  1. "Pomiędzy BUNKER a REMOTE zestawiona jest również replikacja asynchorniczne z dyferencyjną resychronizacją (Asych with Differential Resynch)."

    Remote czy target?

    I co to jest replikacja asynchorniczna z dyferencyjną resychronizacją?

    OdpowiedzUsuń
  2. Remote czy target --> oczywiście błąd jest w tekście. Zdanie powinno brzmieć następująco:
    "Pomiędzy BUNKER a TARGET zestawiona jest również replikacja asynchorniczne z dyferencyjną resychronizacją (Asych with Differential Resynch)."

    Replikacja asynchroniczna z dyferencyjna resnchronizacją - po zestawieniu replikacji na nowo lub po jej przerwaniu i ponownym wznowieniu macierze wykonują operację resynchronizacji - czyli źródło wysyła do celu wszyskie swoje dane, ktore mają podlegać replikacji tak aby na obydwu stronach był ten sam stan. dopiero po tej operacji następuje normalna replikacja i wysyłanie zmienionych danych w sposób synchorniczny lub asynchroniczny. Resynchornizacja jest dość uciążliwa gdyż mocno wpływa na obciążenie sieci i macierzy (dużo danych musi zostać przesłanych).
    Ponieważ w układzie "trójkąta" z lokalizacjami SOURCE,BUNKER,TARGET zarówno BUNKER jak i TARGET są połaczone z SOURCE (bunkier synchronicznie, target asynchroniccznie) więc dane na nich mimo iż nie w sposób bezpośredni także są prawie identyczne.
    Dlatego w momencie utraty SOURCE i potrzeby uruchomienia replikacji asynchornicznej między BUNKER a TARGET proces resynchronizacji nie musi być "pełny" a jedynie obejmuje część z tych danych.
    Reasumując: Replikacja asynchroniczna z dyferencyjna resnchronizacją jest to zwykła replikacja asynchroniczna ale z mniejszą ilością danych wysyłanych w czasie resynchronizacji

    Nie wiem czy zrozumiale piszę bo trochę to "poplątane" - jakby trzeba było jeszcze coś doprecyzować, to proszę o informację :D

    OdpowiedzUsuń