{"id":35387,"date":"2019-10-31T22:04:01","date_gmt":"2019-10-31T19:04:01","guid":{"rendered":"https:\/\/prohoster.info\/blog\/aerodisk-engine-katastrofoustojchivost-chast-1\/"},"modified":"2019-10-31T22:04:01","modified_gmt":"2019-10-31T19:04:01","slug":"aerodisk-engine-katastrofoustojchivost-chast-1","status":"publish","type":"post","link":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/aerodisk-engine-katastrofoustojchivost-chast-1","title":{"rendered":"AERODISK Engine: Odporno\u015b\u0107 na katastrofy. Cz\u0119\u015b\u0107 1","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"AERODISK Engine: Odporno\u015b\u0107 na katastrofy. Cz\u0119\u015b\u0107 1\" src=\"\/wp-content\/uploads\/2019\/06\/7749b28518da6543acd41dce646844c0.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Witam, czytelnicy Habr! Tematem tego artyku\u0142u b\u0119dzie realizacja rozwi\u0105za\u0144 zwi\u0105zanych z odporno\u015bci\u0105 na awarie w systemach magazynowania AERODISK Engine. Pocz\u0105tkowo chcieli\u015bmy napisa\u0107 o obu rozwi\u0105zaniach: replikacji i metroklastrach w jednym artykule, ale niestety artyku\u0142 okaza\u0142 si\u0119 zbyt obszerny, dlatego podzielili\u015bmy go na dwie cz\u0119\u015bci. Przejd\u017amy od prostego do z\u0142o\u017conego. W tym artykule skonfigurujemy i przetestujemy synchronizowan\u0105 replikacj\u0119 \u2013 wy\u0142\u0105czymy jedno centrum danych oraz przerwiemy \u0142\u0105cze komunikacyjne mi\u0119dzy centrami danych i zobaczymy, co si\u0119 wydarzy.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>Nasi klienci cz\u0119sto zadaj\u0105 nam r\u00f3\u017cne pytania dotycz\u0105ce replikacji, dlatego zanim przejdziemy do konfiguracji i testowania wdro\u017ce\u0144 replik, kr\u00f3tko opowiemy, czym jest replikacja w systemie magazynowania.<\/p>\n<p><\/p>\n<h2 id=\"nemnogo-teorii\">Troch\u0119 teorii<\/h2>\n<p><\/p>\n<p>Replikacja w systemie magazynowania to ci\u0105g\u0142y proces zapewnienia to\u017csamo\u015bci danych jednocze\u015bnie w kilku systemach magazynowania. Technicznie replikacja jest realizowana dwiema metodami.<\/p>\n<p><\/p>\n<p><strong>Replikacja synchronizowana<\/strong> to kopiowanie danych z g\u0142\u00f3wnego systemu magazynowania do rezerwowego z obowi\u0105zkowym potwierdzeniem obu system\u00f3w, \u017ce dane zosta\u0142y zapisane i potwierdzone. Dopiero po potwierdzeniu z obu stron (z obu system\u00f3w magazynowania) dane s\u0105 uznawane za zapisane i mog\u0105 by\u0107 u\u017cywane. W ten spos\u00f3b zapewniona jest gwarantowana to\u017csamo\u015b\u0107 danych we wszystkich systemach magazynowania uczestnicz\u0105cych w replikacji.<\/p>\n<p><\/p>\n<p>Zalety tej metody:<\/p>\n<p><\/p>\n<ul>\n<li>Dane s\u0105 zawsze identyczne we wszystkich systemach magazynowania<\/li>\n<\/ul>\n<p><\/p>\n<p>Wady:<\/p>\n<p><\/p>\n<ul>\n<li>Wysoki koszt rozwi\u0105zania (szybkie \u0142\u0105cza komunikacyjne, drogie w\u0142\u00f3kna optyczne, transceivery d\u0142ugofalowe itp.)<\/li>\n<li>Ograniczenia dotycz\u0105ce odleg\u0142o\u015bci (w granicach kilku dziesi\u0105tek kilometr\u00f3w)<\/li>\n<li>Brak ochrony przed logicznym uszkodzeniem danych (je\u015bli dane zostan\u0105 uszkodzone (\u015bwiadomie lub przypadkowo) w g\u0142\u00f3wnym systemie magazynowania, to automatycznie i natychmiast stan\u0105 si\u0119 uszkodzone w rezerwowym, poniewa\u017c dane s\u0105 zawsze identyczne (taki paradoks))<\/li>\n<\/ul>\n<p><\/p>\n<p><strong>Replikacja asynchronizowana<\/strong> to r\u00f3wnie\u017c kopiowanie danych z g\u0142\u00f3wnego systemu magazynowania do rezerwowego, ale z pewnym op\u00f3\u017anieniem i bez konieczno\u015bci potwierdzania zapisu po stronie drugiej. Z danymi mo\u017cna pracowa\u0107 od razu po zapisie w g\u0142\u00f3wnym systemie magazynowania, a w rezerwowym systemie magazynowania dane b\u0119d\u0105 dost\u0119pne po pewnym czasie. W tym przypadku to\u017csamo\u015b\u0107 danych, jak wiadomo, nie jest zapewniona wcale. Dane w rezerwowym systemie magazynowania zawsze s\u0105 nieco \"w przesz\u0142o\u015bci\".<\/p>\n<p><\/p>\n<p>Zalety replikacji asynchronizowanej:<\/p>\n<p><\/p>\n<ul>\n<li>Niska cena rozwi\u0105zania (wszystkie kana\u0142y \u0142\u0105czno\u015bci, optyka opcjonalnie)<\/li>\n<li>Brak ogranicze\u0144 co do odleg\u0142o\u015bci<\/li>\n<li>Na zapasowym systemie przechowywania dane nie ulegaj\u0105 uszkodzeniu w przypadku ich uszkodzenia na g\u0142\u00f3wnym (przynajmniej przez pewien czas). Je\u015bli dane zostan\u0105 uszkodzone, zawsze mo\u017cna zatrzyma\u0107 replik\u0119, aby zapobiec uszkodzeniu danych na zapasowym systemie przechowywania.<\/li>\n<\/ul>\n<p><\/p>\n<p>Wady:<\/p>\n<p><\/p>\n<ul>\n<li>Dane w r\u00f3\u017cnych centrach danych zawsze s\u0105 niedok\u0142adnie identyczne<\/li>\n<\/ul>\n<p><\/p>\n<p>Dlatego wyb\u00f3r trybu replikacji zale\u017cy od zada\u0144 biznesowych. Je\u015bli krytyczne jest, aby w zapasowym centrum danych by\u0142y dok\u0142adnie te same dane co w g\u0142\u00f3wnym (tj. wym\u00f3g biznesowy dotycz\u0105cy RPO=0), nale\u017cy zainwestowa\u0107 i pogodzi\u0107 si\u0119 z ograniczeniami replikacji synchronicznej. A je\u015bli op\u00f3\u017anienia w stanie danych s\u0105 akceptowalne lub po prostu brak pieni\u0119dzy, w zdecydowany spos\u00f3b nale\u017cy zastosowa\u0107 metod\u0119 asynchroniczn\u0105.<\/p>\n<p><\/p>\n<p>Osobno wyr\u00f3\u017cniamy taki tryb (dok\u0142adniej, ju\u017c topologi\u0119) jak metroklaster. W trybie metroklastera stosuje si\u0119 replikacj\u0119 synchroniczn\u0105, lecz w odr\u00f3\u017cnieniu od zwyk\u0142ej repliki, metroklaster pozwala obu systemom przechowywania dzia\u0142a\u0107 w trybie aktywnym. To znaczy, nie ma podzia\u0142u na aktywne i zapasowe centra danych. Aplikacje dzia\u0142aj\u0105 jednocze\u015bnie na dw\u00f3ch systemach przechowywania, kt\u00f3re fizycznie znajduj\u0105 si\u0119 w r\u00f3\u017cnych centrach danych. Czas przestoj\u00f3w w przypadku awarii w takiej topologii jest bardzo kr\u00f3tki (RTO, zazwyczaj minuty). W tym artykule nie b\u0119dziemy omawia\u0107 naszej implementacji metroklastera, poniewa\u017c jest to bardzo du\u017cy i obszerny temat, dlatego po\u015bwi\u0119cimy mu osobny artyku\u0142, jako kontynuacj\u0119 tego. <\/p>\n<p><\/p>\n<p>Bardzo cz\u0119sto, gdy m\u00f3wimy o replikacji za pomoc\u0105 system\u00f3w przechowywania, wiele os\u00f3b zadaje s\u0142uszne pytanie: &gt; \u201eWiele aplikacji ma swoje w\u0142asne \u015brodki replikacji, dlaczego wi\u0119c u\u017cywa\u0107 replikacji w systemie przechowywania? Czy to lepsze czy gorsze?\u201d<\/p>\n<p><\/p>\n<p>Nie ma jednoznacznej odpowiedzi, dlatego przedstawiamy argumenty ZA i PRZECIW:<\/p>\n<p><\/p>\n<p>Argumenty ZA replikacj\u0119 systemu przechowywania:<\/p>\n<p><\/p>\n<ul>\n<li>Prostota rozwi\u0105zania. Jednym narz\u0119dziem mo\u017cesz replikowa\u0107 ca\u0142\u0105 macierz danych, niezale\u017cnie od rodzaju obci\u0105\u017cenia i aplikacji. Je\u015bli u\u017cywasz replikacji od aplikacji, konieczne b\u0119dzie skonfigurowanie ka\u017cdej aplikacji osobno. Je\u015bli jest ich wi\u0119cej ni\u017c 2, to jest to skrajnie czasoch\u0142onne i kosztowne (replikacja aplikacji wymaga zazwyczaj osobnej i odp\u0142atnej licencji na ka\u017cd\u0105 aplikacj\u0119. Ale o tym wi\u0119cej poni\u017cej).<\/li>\n<li>Mo\u017cna replikowa\u0107 cokolwiek \u2013 dowolne aplikacje, dowolne dane \u2013 i zawsze b\u0119d\u0105 one sp\u00f3jne. Wiele (wi\u0119kszo\u015b\u0107) aplikacji nie ma \u015brodk\u00f3w do replikacji, a replikacja ze strony macierzy dyskowej to jedyny spos\u00f3b na zapewnienie ochrony przed katastrofami.<\/li>\n<li>Nie trzeba przep\u0142aca\u0107 za funkcjonalno\u015b\u0107 replikacji aplikacji. Zazwyczaj jest ona do\u015b\u0107 droga, podobnie jak licencje na replikacj\u0119 macierzy dyskowych. Jednak za licencj\u0119 na replikacj\u0119 macierzy dyskowej trzeba zap\u0142aci\u0107 jednorazowo, podczas gdy licencj\u0119 na replikacj\u0119 aplikacji trzeba kupowa\u0107 dla ka\u017cdej aplikacji z osobna. Je\u015bli takich aplikacji jest du\u017co, to zaczyna to kosztowa\u0107, a cena licencji na replikacj\u0119 macierzy dyskowych staje si\u0119 kropl\u0105 w morzu.<\/li>\n<\/ul>\n<p><\/p>\n<p>Argumenty PRZECIW replikacji macierzy dyskowych:<\/p>\n<p><\/p>\n<ul>\n<li>Replikacja za pomoc\u0105 aplikacji ma wi\u0119cej funkcjonalno\u015bci z punktu widzenia samych aplikacji, aplikacja lepiej zna swoje dane (co jest oczywiste), dlatego jest wi\u0119cej sposob\u00f3w na ich obs\u0142ug\u0119.<\/li>\n<li>Producenci niekt\u00f3rych aplikacji nie gwarantuj\u0105 sp\u00f3jno\u015bci swoich danych, je\u015bli replikacja odbywa si\u0119 za pomoc\u0105 zewn\u0119trznych \u015brodk\u00f3w. *<\/li>\n<\/ul>\n<p><\/p>\n<p>* - kontrowersyjna teza. Na przyk\u0142ad znana firma produkuj\u0105ca systemy zarz\u0105dzania bazami danych przez d\u0142ugi czas oficjalnie twierdzi\u0142a, \u017ce ich system bazy danych mo\u017ce by\u0107 prawid\u0142owo replikowany tylko za pomoc\u0105 ich \u015brodk\u00f3w, a pozosta\u0142a replikacja (w tym z macierzy dyskowych) to \u201enieprawda\u201d. Jednak \u017cycie pokaza\u0142o, \u017ce tak nie jest. Najprawdopodobniej (ale niekoniecznie) by\u0142a to po prostu nie najszczersza pr\u00f3ba sprzeda\u017cy kolejnych licencji klientom. <\/p>\n<p><\/p>\n<p>W rezultacie w wi\u0119kszo\u015bci przypadk\u00f3w replikacja ze strony macierzy dyskowej jest lepsza, poniewa\u017c jest to prostsza i ta\u0144sza opcja, ale s\u0105 skomplikowane przypadki, gdy wymagana jest specyficzna funkcjonalno\u015b\u0107 aplikacji i nale\u017cy pracowa\u0107 z replikacj\u0105 na poziomie aplikacji. <\/p>\n<p><\/p>\n<h2 id=\"s-teoriey-zakonchili-teper-praktika\">Teori\u0119 mamy za sob\u0105, teraz praktyka<\/h2>\n<p><\/p>\n<p>B\u0119dziemy konfigurowa\u0107 replikacj\u0119 w naszym laboratorium. W warunkach laboratoryjnych emulowali\u015bmy dwa centra danych (w rzeczywisto\u015bci dwa stojaki obok siebie, kt\u00f3re wydaj\u0105 si\u0119 znajdowa\u0107 w r\u00f3\u017cnych budynkach). Stanowisko sk\u0142ada si\u0119 z dw\u00f3ch macierzy dyskowych Engine N2, kt\u00f3re s\u0105 ze sob\u0105 po\u0142\u0105czone \u015bwiat\u0142owodami. Do obu macierzy pod\u0142\u0105czony jest fizyczny serwer z systemem Windows Server 2016 korzystaj\u0105cy z Ethernetu 10Gb. Stanowisko jest do\u015b\u0107 proste, ale to nie zmienia jego istoty.<\/p>\n<p><\/p>\n<p>Schematycznie wygl\u0105da to nast\u0119puj\u0105co:<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"AERODISK Engine: Odporno\u015b\u0107 na katastrofy. Cz\u0119\u015b\u0107 1\" src=\"\/wp-content\/uploads\/2019\/06\/044f81f6145cd05695c236e21a3d9aba.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Logicznie replikacja jest zorganizowana w nast\u0119puj\u0105cy spos\u00f3b:<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"AERODISK Engine: Odporno\u015b\u0107 na katastrofy. Cz\u0119\u015b\u0107 1\" src=\"\/wp-content\/uploads\/2019\/06\/87e88c44d68c32bdad776b626ed01bdd.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Teraz przyjrzymy si\u0119 mo\u017cliwo\u015bciom replikacji, kt\u00f3re mamy w tej chwili.<br \/>\nObs\u0142ugiwane s\u0105 dwa tryby: asynchroniczny i synchroniczny. Oczywiste jest, \u017ce tryb synchroniczny jest ograniczony odleg\u0142o\u015bci\u0105 i kana\u0142em komunikacyjnym. W szczeg\u00f3lno\u015bci dla trybu synchronicznego konieczne jest u\u017cycie \u015bwiat\u0142owodu jako medium oraz Ethernetu 10 gigabitowego (lub wy\u017cszego). <\/p>\n<p><\/p>\n<p>Maksymalny zasi\u0119g dla synchronizacji replikacji wynosi 40 kilometr\u00f3w, a op\u00f3\u017anienia kana\u0142u optycznego mi\u0119dzy centrami danych nie mog\u0105 przekracza\u0107 2 milisekund. Generalnie b\u0119dzie dzia\u0142a\u0107 r\u00f3wnie\u017c z wi\u0119kszymi op\u00f3\u017anieniami, ale w\u00f3wczas mog\u0105 wyst\u0105pi\u0107 znacz\u0105ce op\u00f3\u017anienia przy zapisie (co r\u00f3wnie\u017c jest zrozumia\u0142e). Dlatego je\u015bli planujesz synchronizacj\u0119 replikacji mi\u0119dzy centrami danych, warto sprawdzi\u0107 jako\u015b\u0107 optyki i op\u00f3\u017anienia.<\/p>\n<p><\/p>\n<p>Dla asynchronicznej replikacji wymagania nie s\u0105 tak rygorystyczne. A dok\u0142adniej, nie ma ich wcale. Mo\u017cna u\u017cywa\u0107 dowolnego dzia\u0142aj\u0105cego po\u0142\u0105czenia przez Ethernet.<\/p>\n<p><\/p>\n<p>Na chwil\u0119 obecn\u0105 w macierzach AERODISK ENGINE wspierana jest replikacja dla urz\u0105dze\u0144 blokowych (LUN-\u00f3w) przez protok\u00f3\u0142 Ethernet (przez mied\u017a lub optyk\u0119). Dla projekt\u00f3w, gdzie konieczna jest replikacja przez SAN-fabryk\u0119 za pomoc\u0105 Fibre Channel, aktualnie opracowujemy odpowiednie rozwi\u0105zanie, ale na razie nie jest ono gotowe, wi\u0119c w naszym przypadku \u2013 tylko Ethernet.<\/p>\n<p><\/p>\n<p>Replikacja mo\u017ce dzia\u0142a\u0107 pomi\u0119dzy dowolnymi macierzami z serii ENGINE (N1, N2, N4) z system\u00f3w ni\u017cszych na wy\u017csze i odwrotnie.<\/p>\n<p><\/p>\n<p>Funkcjonalno\u015b\u0107 obu tryb\u00f3w replikacji jest ca\u0142kowicie identyczna. Poni\u017cej szczeg\u00f3\u0142y na temat dost\u0119pnych opcji: <\/p>\n<p><\/p>\n<ul>\n<li>Replikacja \u201eone to one\u201d lub \u201ejeden do jednego\u201d, co oznacza klasyczn\u0105 opcj\u0119 z dwoma centrami danych: g\u0142\u00f3wnym i zapasowym.<\/li>\n<li>Replikacja \u201eone to many\u201d lub \u201ejeden do wielu\u201d, tzn. jeden LUN mo\u017cna replikowa\u0107 na kilka macierzy jednocze\u015bnie.<\/li>\n<li>Aktywacja, dezaktywacja oraz \u201eodwr\u00f3cenie\u201d replikacji, odpowiednio, dla w\u0142\u0105czenia, wy\u0142\u0105czenia lub zmiany kierunku replikacji.<\/li>\n<li>Replikacja jest dost\u0119pna zar\u00f3wno dla pul RDG (Raid Distributed Group), jak i dla DDP (Dynamic Disk Pool). Przy tym LUN puli RDG mo\u017cna replikowa\u0107 tylko do innego RDG. Z DDP podobnie.<\/li>\n<\/ul>\n<p><\/p>\n<p>Jest jeszcze wiele drobnych szczeg\u00f3\u0142\u00f3w, ale ich wymienianie nie ma wi\u0119kszego sensu, b\u0119dziemy je wspomina\u0107 w miar\u0119 konfiguracji.<\/p>\n<p><\/p>\n<h2 id=\"nastroyka-replikacii\">Konfiguracja replikacji<\/h2>\n<p><\/p>\n<p>Proces konfiguracji jest dosy\u0107 prosty i sk\u0142ada si\u0119 z trzech etap\u00f3w.<\/p>\n<p><\/p>\n<ol>\n<li>Konfiguracja sieci<\/li>\n<li>Konfiguracja magazynu<\/li>\n<li>Konfiguracja regu\u0142 (powi\u0105za\u0144) i mapowania<\/li>\n<\/ol>\n<p><\/p>\n<p>Wa\u017cnym aspektem konfiguracji replikacji jest to, \u017ce pierwsze dwa etapy nale\u017cy powt\u00f3rzy\u0107 na zdalnej macierzy, trzeci etap \u2013 tylko na g\u0142\u00f3wnej.<\/p>\n<p><\/p>\n<h3 id=\"nastroyka-setevyh-resursov\">Konfiguracja zasob\u00f3w sieciowych<\/h3>\n<p><\/p>\n<p>Pierwszym krokiem jest skonfigurowanie port\u00f3w sieciowych, przez kt\u00f3re b\u0119dzie przesy\u0142any ruch replikacji. W tym celu nale\u017cy w\u0142\u0105czy\u0107 porty i przypisa\u0107 im <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/pl\/lir\/ipv4\/\"   title=\"adresy IP\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"629\">adresy IP<\/a> w sekcji adapter\u00f3w Front-end. <\/p>\n<p><\/p>\n<p>Nast\u0119pnie musimy utworzy\u0107 pul\u0119 (w naszym przypadku RDG) oraz wirtualny IP do replikacji (VIP). VIP to p\u0142ywaj\u0105cy adres IP przypisany do dw\u00f3ch \u201efizycznych\u201d adres\u00f3w kontroler\u00f3w macierzy dyskowej (port\u00f3w, kt\u00f3re w\u0142a\u015bnie skonfigurowali\u015bmy). B\u0119dzie to g\u0142\u00f3wny interfejs replikacji. Mo\u017cna r\u00f3wnie\u017c operowa\u0107 na VLAN-ie, je\u015bli potrzebujesz pracowa\u0107 z oznaczonym ruchem.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"AERODISK Engine: Odporno\u015b\u0107 na katastrofy. Cz\u0119\u015b\u0107 1\" src=\"\/wp-content\/uploads\/2019\/06\/ca0a86542d8fe4bb9eb7498b66eede43.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Proces tworzenia VIP dla repliki niewiele r\u00f3\u017cni si\u0119 od tworzenia VIP do wej\u015bcia-wyj\u015bcia (NFS, SMB, iSCSI). VIP w tym przypadku tworzymy standardowy (bez VLAN), ale koniecznie wskazujemy, \u017ce jest on do replikacji (bez tego wska\u017anika nie b\u0119dziemy mogli doda\u0107 VIP do regu\u0142y w nast\u0119pnym kroku).<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"AERODISK Engine: Odporno\u015b\u0107 na katastrofy. Cz\u0119\u015b\u0107 1\" src=\"\/wp-content\/uploads\/2019\/06\/054a5d2a9695aed19aafbd2efe833196.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>VIP musi znajdowa\u0107 si\u0119 w tej samej podsieci co IP port\u00f3w, mi\u0119dzy kt\u00f3rymi \u201ep\u0142ywa\u201d.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"AERODISK Engine: Odporno\u015b\u0107 na katastrofy. Cz\u0119\u015b\u0107 1\" src=\"\/wp-content\/uploads\/2019\/06\/fb96d1609425dcebb5345435ac7f6857.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Powtarzamy te ustawienia na zdalnej macierzy, oczywi\u015bcie z innym adresem IP.<br \/>\nVIP-y z r\u00f3\u017cnych macierzy mog\u0105 znajdowa\u0107 si\u0119 w r\u00f3\u017cnych podsieciach, wa\u017cne, aby mi\u0119dzy nimi istnia\u0142a routowalno\u015b\u0107. W naszym przypadku jest to w\u0142a\u015bnie taki przyk\u0142ad (192.168.3.XX i 192.168.2.XX)<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"AERODISK Engine: Odporno\u015b\u0107 na katastrofy. Cz\u0119\u015b\u0107 1\" src=\"\/wp-content\/uploads\/2019\/06\/3d43b4339277e50413cc9944c53e0d62.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Na tym przygotowanie cz\u0119\u015bci sieciowej zosta\u0142o zako\u0144czone.<\/p>\n<p><\/p>\n<h3 id=\"nastraivaem-hranilischa\">Konfigurujemy storage<\/h3>\n<p><\/p>\n<p>Konfiguracja storage'u pod replik\u0119 r\u00f3\u017cni si\u0119 od standardowej tylko tym, \u017ce mapowanie wykonujemy przez specjalne menu \u201eMapowanie replikacji\u201d. W pozosta\u0142ych kwestiach wszystko pozostaje takie samo jak w standardowej konfiguracji. Teraz po kolei.<\/p>\n<p><\/p>\n<p>W wcze\u015bniej utworzonej puli R02 nale\u017cy utworzy\u0107 LUN. Tworzymy go, nazywaj\u0105c LUN1.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"AERODISK Engine: Odporno\u015b\u0107 na katastrofy. Cz\u0119\u015b\u0107 1\" src=\"\/wp-content\/uploads\/2019\/06\/263fa2d3a06318d4e7da280b869123ca.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Musimy r\u00f3wnie\u017c utworzy\u0107 identyczny LUN na zdalnej macierzy o tej samej pojemno\u015bci. Tworzymy. Aby unikn\u0105\u0107 zamieszania, zdalny LUN nazwiemy LUN1R <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"AERODISK Engine: Odporno\u015b\u0107 na katastrofy. Cz\u0119\u015b\u0107 1\" src=\"\/wp-content\/uploads\/2019\/06\/bbd302358c2bd825a234da94b2410770.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Gdyby\u015bmy potrzebowali wzi\u0105\u0107 LUN, kt\u00f3ry ju\u017c istnieje, to na czas konfiguracji repliki ten produkcyjny LUN nale\u017ca\u0142oby odmontowa\u0107 od hosta, a na zdalnej macierzy po prostu utworzy\u0107 pusty LUN o tej samej pojemno\u015bci.<\/p>\n<p><\/p>\n<p>Konfiguracja storage'u zosta\u0142a zako\u0144czona, przechodzimy do tworzenia regu\u0142y replikacji.<\/p>\n<p><\/p>\n<h3 id=\"nastroyka-pravil-replikacii-ili-replikacionnyh-svyazey\">Konfiguracja regu\u0142 replikacji lub powi\u0105za\u0144 replikacyjnych<\/h3>\n<p><\/p>\n<p>Po utworzeniu LUN-\u00f3w na macierzy, kt\u00f3ra w danym momencie b\u0119dzie podstawowa (Primary), konfigurujemy regu\u0142\u0119 replikacji LUN1 na macierzy1 w LUN1R na macierzy2.<\/p>\n<p><\/p>\n<p>Konfiguracja odbywa si\u0119 w menu \u201eZdalna replikacja\u201d<\/p>\n<p><\/p>\n<p>Tworzymy regu\u0142\u0119. W tym celu musimy wskaza\u0107 odbiorc\u0119 replikacji. Tam r\u00f3wnie\u017c podajemy nazw\u0119 po\u0142\u0105czenia i typ replikacji (synchronizacyjna lub asynchroniczna).<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"AERODISK Engine: Odporno\u015b\u0107 na katastrofy. Cz\u0119\u015b\u0107 1\" src=\"\/wp-content\/uploads\/2019\/06\/a36bdc437d4a619f47b75d5ba50971ed.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>W polu \u201esystemy zdalne\u201d dodajemy nasz\u0105 macierz dyskow\u0105 2. Aby doda\u0107, nale\u017cy u\u017cy\u0107 zarz\u0105dzaj\u0105cych adres\u00f3w IP macierzy dyskowej (MGR) oraz nazwy zdalnego LUN, w kt\u00f3rym b\u0119dziemy przeprowadza\u0107 replikacj\u0119 (w naszym przypadku LUN1R). Adresy IP s\u0105 potrzebne tylko na etapie dodawania po\u0142\u0105czenia, ruch replikacji nie b\u0119dzie przez nie przekazywany, do tego zostanie wykorzystany wcze\u015bniej skonfigurowany VIP. <\/p>\n<p><\/p>\n<p>Ju\u017c na tym etapie mo\u017cemy doda\u0107 wi\u0119cej ni\u017c jeden zdalny system do topologii \u201ejeden do wielu\u201d: naciskamy przycisk \u201edodaj w\u0119ze\u0142\u201d, jak na poni\u017cszym rysunku. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"AERODISK Engine: Odporno\u015b\u0107 na katastrofy. Cz\u0119\u015b\u0107 1\" src=\"\/wp-content\/uploads\/2019\/06\/dbe98818d2c2d34250544db4266337ea.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>W naszym przypadku zdalny system jest jeden, wi\u0119c ograniczamy si\u0119 do tego.<\/p>\n<p><\/p>\n<p>Regu\u0142a gotowa. Zauwa\u017c, \u017ce dodawana jest automatycznie we wszystkich uczestnikach replikacji (w naszym przypadku jest ich dw\u00f3ch). Takich regu\u0142 mo\u017cna stworzy\u0107 dowoln\u0105 liczb\u0119, dla dowolnej liczby LUN-\u00f3w i w obie strony. Na przyk\u0142ad, aby zr\u00f3wnowa\u017cy\u0107 obci\u0105\u017cenie, mo\u017cemy replikowa\u0107 cz\u0119\u015b\u0107 LUN-\u00f3w z macierzy dyskowej 1 na macierz dyskow\u0105 2, a inn\u0105 cz\u0119\u015b\u0107 odwrotnie \u2013 z macierzy dyskowej 2 na macierz dyskow\u0105 1.<\/p>\n<p><\/p>\n<p>Macierz dyskowa 1. Tu\u017c po utworzeniu rozpocz\u0119\u0142a si\u0119 synchronizacja.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"AERODISK Engine: Odporno\u015b\u0107 na katastrofy. Cz\u0119\u015b\u0107 1\" src=\"\/wp-content\/uploads\/2019\/06\/86e1770336d40207ed9b3b6dc4249279.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Macierz dyskowa 2. Widzimy t\u0119 sam\u0105 regu\u0142\u0119, ale synchronizacja ju\u017c si\u0119 zako\u0144czy\u0142a.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"AERODISK Engine: Odporno\u015b\u0107 na katastrofy. Cz\u0119\u015b\u0107 1\" src=\"\/wp-content\/uploads\/2019\/06\/f15b69af4de726d5c337d789c37b9cf8.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>LUN1 na macierzy dyskowej 1 pe\u0142ni rol\u0119 Primary, co oznacza, \u017ce jest aktywny. LUN1R na macierzy dyskowej 2 pe\u0142ni rol\u0119 Secondary, co oznacza, \u017ce jest w trybie gotowo\u015bci na wypadek awarii macierzy dyskowej 1.<br \/>\nTeraz mo\u017cemy pod\u0142\u0105czy\u0107 nasz LUN do hosta.<\/p>\n<p><\/p>\n<p>B\u0119dziemy robi\u0107 pod\u0142\u0105czenie przez iSCSI, chocia\u017c mo\u017cna r\u00f3wnie\u017c przez FC. Konfiguracja mapowania LUN-a iSCSI w replicie praktycznie nie r\u00f3\u017cni si\u0119 od standardowego scenariusza, dlatego szczeg\u00f3\u0142owo tego nie om\u00f3wimy. W razie czego, ten proces zosta\u0142 opisany w artykule \u201e<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/tssolution\/blog\/432876\/\">Szybka konfiguracja<\/a><\/noindex>\u00bb. <\/p>\n<p><\/p>\n<p>Jedyn\u0105 r\u00f3\u017cnic\u0105 jest to, \u017ce mapowanie tworzymy w menu \u201eMapowanie replikacji\u201d<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"AERODISK Engine: Odporno\u015b\u0107 na katastrofy. Cz\u0119\u015b\u0107 1\" src=\"\/wp-content\/uploads\/2019\/06\/62ceee2f7356a4716bb50b85ea31f0d6.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Skonfigurowali\u015bmy mapowanie, przekazali\u015bmy LUN hostowi. Hosta zobaczy\u0142 LUN.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"AERODISK Engine: Odporno\u015b\u0107 na katastrofy. Cz\u0119\u015b\u0107 1\" src=\"\/wp-content\/uploads\/2019\/06\/0bb675e5fead8d0222b03fa084223f7e.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Formatujemy go w lokalny system plik\u00f3w.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"AERODISK Engine: Odporno\u015b\u0107 na katastrofy. Cz\u0119\u015b\u0107 1\" src=\"\/wp-content\/uploads\/2019\/06\/09c707bf8037ea381cd7ec88b97c9b62.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Wszystko, w tym miejscu konfiguracja jest zako\u0144czona. Nast\u0119pnie przeprowadzimy testy.<\/p>\n<p><\/p>\n<h2 id=\"testirovanie\">Testowanie<\/h2>\n<p><\/p>\n<p>B\u0119dziemy testowa\u0107 trzy g\u0142\u00f3wne scenariusze.<\/p>\n<p><\/p>\n<ol>\n<li>Standardowe prze\u0142\u0105czanie r\u00f3l z Secondary &gt; Primary. Standardowe prze\u0142\u0105czanie r\u00f3l jest potrzebne na wypadek, je\u015bli na przyk\u0142ad w g\u0142\u00f3wnym centrum danych musimy przeprowadzi\u0107 jakie\u015b prace konserwacyjne, a w tym czasie, aby dane by\u0142y dost\u0119pne, przenosimy obci\u0105\u017cenie do zapasowego centrum danych.<\/li>\n<li>Awaryjne prze\u0142\u0105czenie r\u00f3l Secondary &gt; Primary (awaria centrum danych). To g\u0142\u00f3wny scenariusz, dla kt\u00f3rego istnieje replikacja, kt\u00f3ry mo\u017ce pom\u00f3c przetrwa\u0107 ca\u0142kowit\u0105 awari\u0119 centrum danych, nie wstrzymuj\u0105c dzia\u0142alno\u015bci firmy na d\u0142u\u017cszy czas.<\/li>\n<li>Przerwanie kana\u0142\u00f3w komunikacyjnych mi\u0119dzy centrami danych. Sprawdzamy poprawne dzia\u0142anie dw\u00f3ch system\u00f3w storage\u2019owych w warunkach, gdy z jakiego\u015b powodu kana\u0142 komunikacyjny mi\u0119dzy centrami danych jest niedost\u0119pny (na przyk\u0142ad, gdy koparka wykopa\u0142a w niew\u0142a\u015bciwym miejscu i uszkodzi\u0142a ciemn\u0105 optyk\u0119).<\/li>\n<\/ol>\n<p><\/p>\n<p>Na pocz\u0105tek zaczniemy pisa\u0107 dane na nasz LUN (piszemy pliki z losowymi danymi). Od razu sprawdzamy, co wykorzystuje kana\u0142 komunikacyjny mi\u0119dzy systemami storage\u2019owymi. To \u0142atwe do zauwa\u017cenia, otwieraj\u0105c monitorowanie obci\u0105\u017cenia port\u00f3w, kt\u00f3re odpowiadaj\u0105 za replikacj\u0119.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"AERODISK Engine: Odporno\u015b\u0107 na katastrofy. Cz\u0119\u015b\u0107 1\" src=\"\/wp-content\/uploads\/2019\/06\/bba2e0b14669a2c8ccef8a2d3eb336ed.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Na obu systemach storage\u2019owych znajduj\u0105 si\u0119 teraz \u201eu\u017cyteczne\u201d dane, mo\u017cemy zacz\u0105\u0107 test.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"AERODISK Engine: Odporno\u015b\u0107 na katastrofy. Cz\u0119\u015b\u0107 1\" src=\"\/wp-content\/uploads\/2019\/06\/62b0614cee954738e878609feb3a5e08.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Na wszelki wypadek sprawdzimy sumy kontrolne jednego z plik\u00f3w i zapiszemy.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"AERODISK Engine: Odporno\u015b\u0107 na katastrofy. Cz\u0119\u015b\u0107 1\" src=\"\/wp-content\/uploads\/2019\/06\/48e7dde27ef2371e722c72c6dc998c8f.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<h3 id=\"shtatnoe-pereklyuchenie-roley\">Standardowe prze\u0142\u0105czenie r\u00f3l<\/h3>\n<p><\/p>\n<p>Operacj\u0119 prze\u0142\u0105czenia r\u00f3l (zmiany kierunku replikacji) mo\u017cna wykona\u0107 z dowolnego systemu storage\u2019owego, ale i tak trzeba b\u0119dzie przej\u015b\u0107 na oba, poniewa\u017c na Primary nale\u017cy wy\u0142\u0105czy\u0107 mapowanie, a na Secondary (kt\u00f3ra stanie si\u0119 Primary) w\u0142\u0105czy\u0107 je.<\/p>\n<p><\/p>\n<p>Mo\u017cliwe, \u017ce teraz pojawia si\u0119 logiczne pytanie: dlaczego tego nie zautomatyzowa\u0107? Odpowiadamy: to proste, replikacja to proste narz\u0119dzie zapewnienia odporno\u015bci na awarie, oparte wy\u0142\u0105cznie na operacjach r\u0119cznych. Dla automatyzacji tych operacji istnieje tryb metroklastra, kt\u00f3ry jest ca\u0142kowicie zautomatyzowany, ale jego konfiguracja jest znacznie bardziej skomplikowana. O konfiguracji metroklastra napiszemy w nast\u0119pnej artykule.<\/p>\n<p><\/p>\n<p>Na g\u0142\u00f3wnym systemie storage\u2019owym wy\u0142\u0105czamy mapowanie, aby gwarantowa\u0107 zatrzymanie zapisu.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"AERODISK Engine: Odporno\u015b\u0107 na katastrofy. Cz\u0119\u015b\u0107 1\" src=\"\/wp-content\/uploads\/2019\/06\/f5afc222a966a1e1dd1d804b06b7963e.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Nast\u0119pnie na jednym z system\u00f3w storage\u2019owych (nie ma znaczenia, czy na g\u0142\u00f3wnym czy rezerwowym) w menu \u201eZdalna replikacja\u201d wybieramy nasze po\u0142\u0105czenie REPL1 i klikamy \u201eZmie\u0144 rol\u0119\u201d.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"AERODISK Engine: Odporno\u015b\u0107 na katastrofy. Cz\u0119\u015b\u0107 1\" src=\"\/wp-content\/uploads\/2019\/06\/7346bd30c549d2e263b5c37fbc412f05.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Po kilku sekundach LUN1R (rezerwowy system storage\u2019owy) staje si\u0119 Primary.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"AERODISK Engine: Odporno\u015b\u0107 na katastrofy. Cz\u0119\u015b\u0107 1\" src=\"\/wp-content\/uploads\/2019\/06\/d87a7cf770a262c1c3bfb97bb75cf47d.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Robimy mapowanie LUN1R z systemem storage\u2019owym 2.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"AERODISK Engine: Odporno\u015b\u0107 na katastrofy. Cz\u0119\u015b\u0107 1\" src=\"\/wp-content\/uploads\/2019\/06\/c1b2a04cd8ce34df833f720ba0932ae2.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Po tym nasz dysk E: automatycznie \u0142\u0105czy si\u0119 z hostem, tylko tym razem \u201eprzylecia\u0142\u201d z LUN1R.<\/p>\n<p><\/p>\n<p>Na wszelki wypadek por\u00f3wnujemy sumy kontrolne.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"AERODISK Engine: Odporno\u015b\u0107 na katastrofy. Cz\u0119\u015b\u0107 1\" src=\"\/wp-content\/uploads\/2019\/06\/b938253769cc660c66d7e42452f8909c.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Identycznie. Test zaliczony.<\/p>\n<p><\/p>\n<h3 id=\"avariynoe-pereklyuchenie-otkaz-cod-a\">Awaryjne prze\u0142\u0105czenie. Awaria centrum danych<\/h3>\n<p><\/p>\n<p>W tej chwili g\u0142\u00f3wnym systemem storage\u2019owym po standardowym prze\u0142\u0105czeniu jest system storage\u2019owy 2 oraz LUN1R, odpowiednio. Aby zasymulowa\u0107 awari\u0119, wy\u0142\u0105czamy zasilanie na obu kontrolerach systemu storage\u2019owego 2.<br \/>\nDost\u0119p do niej jest ju\u017c niemo\u017cliwy.<\/p>\n<p><\/p>\n<p>Sprawdzamy, co dzieje si\u0119 w SCD 1 (obecnie zapasowym).<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"AERODISK Engine: Odporno\u015b\u0107 na katastrofy. Cz\u0119\u015b\u0107 1\" src=\"\/wp-content\/uploads\/2019\/06\/b38bc0b6004976a92ac0a94babfedddf.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Widzimy, \u017ce Primary LUN (LUN1R) jest niedost\u0119pny. W logach, na panelu informacyjnym oraz w regule replikacji pojawi\u0142 si\u0119 komunikat o b\u0142\u0119dzie. W zwi\u0105zku z tym dane z hosta s\u0105 teraz niedost\u0119pne.<\/p>\n<p><\/p>\n<p>Zmiana roli LUN1 na Primary.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"AERODISK Engine: Odporno\u015b\u0107 na katastrofy. Cz\u0119\u015b\u0107 1\" src=\"\/wp-content\/uploads\/2019\/06\/aebb3adbdc037e559aa9d33350dec36c.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Tworzymy mapowanie do hosta.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"AERODISK Engine: Odporno\u015b\u0107 na katastrofy. Cz\u0119\u015b\u0107 1\" src=\"\/wp-content\/uploads\/2019\/06\/a98e09d40e218552ce0c917e13fac6b6.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Upewniamy si\u0119, \u017ce dysk E pojawi\u0142 si\u0119 na ho\u015bcie.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"AERODISK Engine: Odporno\u015b\u0107 na katastrofy. Cz\u0119\u015b\u0107 1\" src=\"\/wp-content\/uploads\/2019\/06\/5a01e43c692227460cd74d155efcd519.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Sprawdzamy hasz.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"AERODISK Engine: Odporno\u015b\u0107 na katastrofy. Cz\u0119\u015b\u0107 1\" src=\"\/wp-content\/uploads\/2019\/06\/63520595bf8bda6e0bec27ed935f3714.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Wszystko w porz\u0105dku. Awaria centrum danych, kt\u00f3re by\u0142o aktywne, SCD przetrwa\u0142a pomy\u015blnie. Szacunkowy czas, jaki sp\u0119dzili\u015bmy na pod\u0142\u0105czeniu \u201eprze\u0142\u0105czenia\u201d replikacji i po\u0142\u0105czeniu LUN-a z zapasowego centrum danych wynosi\u0142 oko\u0142o 3 minut. Oczywi\u015bcie w realnej produkcji wszystko jest znacznie bardziej skomplikowane i poza dzia\u0142aniami zwi\u0105zanymi z SCD nale\u017cy wykona\u0107 wiele innych operacji w sieci, na hostach, w aplikacjach. W rzeczywisto\u015bci ten czas b\u0119dzie znacznie d\u0142u\u017cszy.<\/p>\n<p><\/p>\n<p>Chcia\u0142oby si\u0119 napisa\u0107, \u017ce wszystko, test zako\u0144czony pomy\u015blnie, ale nie spieszmy si\u0119. G\u0142\u00f3wne SCD \u201ele\u017cy\u201d, wiemy, \u017ce gdy \u201eupad\u0142o\u201d, by\u0142o w roli Primary. Co si\u0119 stanie, je\u015bli nagle si\u0119 w\u0142\u0105czy? B\u0119d\u0105 dwie role Primary, co oznacza uszkodzenie danych? Sprawdzimy to teraz.<br \/>\nIdziemy nagle w\u0142\u0105czy\u0107 le\u017c\u0105ce SCD. <\/p>\n<p><\/p>\n<p>Uruchamia si\u0119 przez kilka minut i po kr\u00f3tkiej synchronizacji wraca do dzia\u0142ania, ale ju\u017c w roli Secondary.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"AERODISK Engine: Odporno\u015b\u0107 na katastrofy. Cz\u0119\u015b\u0107 1\" src=\"\/wp-content\/uploads\/2019\/06\/c332b05c9a2ed31873d1e738009fcb12.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Wszystko w porz\u0105dku. Nie wyst\u0105pi\u0142 split-brain. Pomy\u015bleli\u015bmy o tym i zawsze po awarii SCD w\u0142\u0105cza si\u0119 w roli Secondary, niezale\u017cnie od tego, w jakiej roli by\u0142a \u201eza \u017cycia\u201d. Teraz mo\u017cna z ca\u0142\u0105 pewno\u015bci\u0105 stwierdzi\u0107, \u017ce test awarii centrum danych przeszed\u0142 pomy\u015blnie.<\/p>\n<p><\/p>\n<h3 id=\"otkaz-kanalov-svyazi-mezhdu-cod-ami\">Awaria po\u0142\u0105cze\u0144 mi\u0119dzy centrami danych<\/h3>\n<p><\/p>\n<p>G\u0142\u00f3wne zadanie tego testu to upewnienie si\u0119, \u017ce SCD nie zacznie si\u0119 dziwnie zachowywa\u0107, je\u015bli tymczasowo znikn\u0105 po\u0142\u0105czenia mi\u0119dzy dwoma SCD, a nast\u0119pnie pojawi\u0105 si\u0119 ponownie.<br \/>\nZatem. Od\u0142\u0105czamy kable mi\u0119dzy SCD (wyobra\u017amy sobie, \u017ce wykopa\u0142 je koparka).<\/p>\n<p><\/p>\n<p>Na Primary widzimy, \u017ce brak po\u0142\u0105czenia z Secondary.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"AERODISK Engine: Odporno\u015b\u0107 na katastrofy. Cz\u0119\u015b\u0107 1\" src=\"\/wp-content\/uploads\/2019\/06\/42646193c62eeaa9f0e4e649e5a3be23.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Na Secondary widzimy, \u017ce brak po\u0142\u0105czenia z Primary. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"AERODISK Engine: Odporno\u015b\u0107 na katastrofy. Cz\u0119\u015b\u0107 1\" src=\"\/wp-content\/uploads\/2019\/06\/14a28c3930bb6ac83e5bd10976577d18.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Wszystko dzia\u0142a normalnie, a my dalej zapisujemy dane na g\u0142\u00f3wnym SCD, to znaczy, \u017ce ju\u017c si\u0119 r\u00f3\u017cni\u0105 od zapasowego, to znaczy \u201erozjecha\u0142y si\u0119\u201d.<\/p>\n<p><\/p>\n<p>Po kilku minutach \u201enaprawiamy\u201d po\u0142\u0105czenie. Gdy tylko SCD si\u0119 zobacz\u0105, automatycznie w\u0142\u0105cza si\u0119 synchronizacja danych. Po stronie administratora nic nie jest wymagane.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"AERODISK Engine: Odporno\u015b\u0107 na katastrofy. Cz\u0119\u015b\u0107 1\" src=\"\/wp-content\/uploads\/2019\/06\/386a6e4b86166373a3858543572e3ac9.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Po pewnym czasie synchronizacja ko\u0144czy si\u0119.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"AERODISK Engine: Odporno\u015b\u0107 na katastrofy. Cz\u0119\u015b\u0107 1\" src=\"\/wp-content\/uploads\/2019\/06\/e879fdebdc78505a74880f275de8f868.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Po\u0142\u0105czenie zosta\u0142o przywr\u00f3cone, \u017cadne nietypowe sytuacje nie spowodowa\u0142y zerwania \u0142\u0105czno\u015bci, a po w\u0142\u0105czeniu automatycznie nast\u0105pi\u0142a synchronizacja.<\/p>\n<p><\/p>\n<h2 id=\"vyvody\">Wnioski<\/h2>\n<p><\/p>\n<p>Om\u00f3wili\u015bmy teori\u0119 \u2013 co i dlaczego jest potrzebne, gdzie znajduj\u0105 si\u0119 zalety, a gdzie wady. Nast\u0119pnie skonfigurowali\u015bmy synchronizacj\u0119 replik mi\u0119dzy dwoma macierzy dyskowymi. <\/p>\n<p><\/p>\n<p>Dalej przeprowadzono g\u0142\u00f3wne testy na normalne prze\u0142\u0105czanie, awari\u0119 centrum danych i zerwanie \u0142\u0105czno\u015bci. W ka\u017cdym przypadku macierz dyskowa dzia\u0142a\u0142a poprawnie. Brak utraty danych, operacje administracyjne zosta\u0142y ograniczone do minimum w scenariuszu r\u0119cznym.<\/p>\n<p><\/p>\n<p>Nast\u0119pnym razem skomplikujemy sytuacj\u0119 i poka\u017cemy, jak ca\u0142a ta logika dzia\u0142a w zautomatyzowanym metrokle\u015bcie w trybie active-active, tzn. kiedy obie macierze dyskowe s\u0105 g\u0142\u00f3wne, a zachowania podczas awarii s\u0105 w pe\u0142ni zautomatyzowane.<\/p>\n<p><\/p>\n<p>Prosimy o pisanie komentarzy, b\u0119dziemy wdzi\u0119czni za konstruktywn\u0105 krytyk\u0119 i m\u0105dre rady.<\/p>\n<p><\/p>\n<p>Do zobaczenia.<\/p>\n<p>\u0179r\u00f3d\u0142o: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/aerodisk\/blog\/456348\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0440\u0438\u0432\u0435\u0442, \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u0438 \u0445\u0430\u0431\u0440\u0430! \u0422\u0435\u043c\u043e\u0439 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438 \u0431\u0443\u0434\u0435\u0442 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0441\u0440\u0435\u0434\u0441\u0442\u0432 \u043a\u0430\u0442\u0430\u0441\u0442\u0440\u043e\u0444\u043e\u0443\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u043e\u0441\u0442\u0438 \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0445 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f AERODISK Engine. \u0418\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u043c\u044b \u0445\u043e\u0442\u0435\u043b\u0438 \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0432 \u043e\u0434\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043f\u0440\u043e \u043e\u0431\u0430 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430: \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u044e \u0438 \u043c\u0435\u0442\u0440\u043e\u043a\u043b\u0430\u0441\u0442\u0435\u0440, \u043d\u043e, \u043a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u0441\u0442\u0430\u0442\u044c\u044f \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0430\u0441\u044c \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0431\u043e\u043b\u044c\u0448\u043e\u0439, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u044b \u0440\u0430\u0437\u0431\u0438\u043b\u0438 \u0441\u0442\u0430\u0442\u044c\u044e \u043d\u0430 \u0434\u0432\u0435 \u0447\u0430\u0441\u0442\u0438. \u041f\u043e\u0439\u0434\u0435\u043c \u043e\u0442 \u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e \u043a \u0441\u043b\u043e\u0436\u043d\u043e\u043c\u0443. \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043c\u044b \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u043c \u0438 \u043f\u0440\u043e\u0442\u0435\u0441\u0442\u0438\u0440\u0443\u0435\u043c \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u0443\u044e [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":26548,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-35387","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u0440\u0438\u0432\u0435\u0442, \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u0438 \u0445\u0430\u0431\u0440\u0430!\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/aerodisk-engine-katastrofoustojchivost-chast-1\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"pl_PL\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47AERODISK Engine: \u041a\u0430\u0442\u0430\u0441\u0442\u0440\u043e\u0444\u043e\u0443\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u043e\u0441\u0442\u044c. \u0427\u0430\u0441\u0442\u044c 1 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0440\u0438\u0432\u0435\u0442, \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u0438 \u0445\u0430\u0431\u0440\u0430!\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/aerodisk-engine-katastrofoustojchivost-chast-1\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:04:01+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:04:01+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47AERODISK Engine: Odporno\u015b\u0107 na katastrofy. Cz\u0119\u015b\u0107 1 | ProHoster","description":"Cze\u015b\u0107, czytelnicy Habr!","canonical_url":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/aerodisk-engine-katastrofoustojchivost-chast-1","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"pl_PL","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47AERODISK Engine: \u041a\u0430\u0442\u0430\u0441\u0442\u0440\u043e\u0444\u043e\u0443\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u043e\u0441\u0442\u044c. \u0427\u0430\u0441\u0442\u044c 1 | ProHoster","og:description":"\u041f\u0440\u0438\u0432\u0435\u0442, \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u0438 \u0445\u0430\u0431\u0440\u0430!","og:url":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/aerodisk-engine-katastrofoustojchivost-chast-1","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:04:01+00:00","article:modified_time":"2019-10-31T19:04:01+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"35387","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-02-08 20:27:18","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 02:04:24","updated":"2026-02-08 20:27:18","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/35387","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/comments?post=35387"}],"version-history":[{"count":1,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/35387\/revisions"}],"predecessor-version":[{"id":157820,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/35387\/revisions\/157820"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media\/26548"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media?parent=35387"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/categories?post=35387"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/tags?post=35387"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}