{"id":36263,"date":"2019-10-31T22:10:35","date_gmt":"2019-10-31T19:10:35","guid":{"rendered":"https:\/\/prohoster.info\/blog\/aerodisk-engine-katastrofoustojchivost-chast-2-metroklaster\/"},"modified":"2019-10-31T22:10:35","modified_gmt":"2019-10-31T19:10:35","slug":"aerodisk-engine-katastrofoustojchivost-chast-2-metroklaster","status":"publish","type":"post","link":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/aerodisk-engine-katastrofoustojchivost-chast-2-metroklaster","title":{"rendered":"AERODISK Engine: Odporno\u015b\u0107 na katastrofy. Cz\u0119\u015b\u0107 2. Metroklaster","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 2. Metroklaster\" src=\"\/wp-content\/uploads\/2019\/07\/7671ec455e464b7fe98b0b8ffcd38e24.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Cze\u015b\u0107, czytelnicy Habra! W poprzednim artykule opowiedzieli\u015bmy o prostym narz\u0119dziu odporno\u015bci na awarie w systemach przechowywania AERODISK ENGINE \u2013 o replikacji. W tym artykule zag\u0142\u0119bimy si\u0119 w bardziej z\u0142o\u017cony i interesuj\u0105cy temat \u2013 metroklaster, czyli zautomatyzowane narz\u0119dzie ochrony przed katastrofami dla dw\u00f3ch centr danych, kt\u00f3re umo\u017cliwia centr\u00f3w danych prac\u0119 w trybie active-active. Opowiemy, poka\u017cemy, z\u0142amiemy i naprawimy.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2 id=\"kak-obychno-v-nachale-teoriya\">Jak zwykle, na pocz\u0105tku teoria<\/h2>\n<p><\/p>\n<p>Metroklaster to klaster rozproszony na kilku lokalizacjach w obr\u0119bie miasta lub regionu. S\u0142owo 'klaster' jasno sugeruje, \u017ce kompleks jest zautomatyzowany, czyli prze\u0142\u0105czanie w\u0119z\u0142\u00f3w klastra w przypadku awarii (failover) odbywa si\u0119 automatycznie. <\/p>\n<p><\/p>\n<p>W tym tkwi zasadnicza r\u00f3\u017cnica mi\u0119dzy metroklasterem a zwyk\u0142\u0105 replikacj\u0105. Automatyzacja operacji. Oznacza to, \u017ce w przypadku r\u00f3\u017cnych zdarze\u0144 (awaria centr danych, przerwanie \u0142\u0105czy itp.) system przechowywania samodzielnie podejmie niezb\u0119dne kroki, aby zapewni\u0107 dost\u0119pno\u015b\u0107 danych. W przypadku zwyk\u0142ych replik te dzia\u0142ania s\u0105 wykonywane w pe\u0142ni lub cz\u0119\u015bciowo r\u0119cznie przez administratora.<\/p>\n<p><\/p>\n<h3 id=\"dlya-chego-eto-nuzhno\">Po co to potrzebne?<\/h3>\n<p><\/p>\n<p>G\u0142\u00f3wnym celem, kt\u00f3ry stawiaj\u0105 sobie klienci korzystaj\u0105cy z r\u00f3\u017cnych realizacji metroklastra, jest minimalizacja RTO (Recovery Time Objective). Oznacza to minimalizacj\u0119 czasu przywracania us\u0142ug IT po awarii. Korzystaj\u0105c z tradycyjnej replikacji, czas przywracania b\u0119dzie zawsze d\u0142u\u017cszy ni\u017c czas przywracania w przypadku metroklastra. Dlaczego? To proste. Administrator musi by\u0107 w pracy i r\u0119cznie prze\u0142\u0105czy\u0107 replikacj\u0119, a metroklaster robi to automatycznie.<\/p>\n<p><\/p>\n<p>Je\u015bli nie masz dedykowanego administratora dy\u017curnego, kt\u00f3ry nie \u015bpi, nie je, nie pali i nie choruje, a przez 24 godziny na dob\u0119 monitoruje stan systemu przechowywania, to niemo\u017cliwe jest zapewnienie, \u017ce administrator b\u0119dzie dost\u0119pny do r\u0119cznego prze\u0142\u0105czania w czasie awarii. <\/p>\n<p><\/p>\n<p>Odpowiednio RTO w przypadku braku metroklastra lub nie\u015bmiertelnego administratora 99 poziomu dy\u017curnego zespo\u0142u administrator\u00f3w b\u0119dzie r\u00f3wne sumie czasu prze\u0142\u0105czania wszystkich system\u00f3w i maksymalnemu okresowi czasu, po kt\u00f3rym administrator gwarantowanie zacznie pracowa\u0107 z systemem przechowywania i pokrewnymi systemami. <\/p>\n<p><\/p>\n<p>W ten spos\u00f3b dochodzimy do oczywistego wniosku, \u017ce metroklast nale\u017cy stosowa\u0107, gdy wymagania dotycz\u0105ce RTO to minuty, a nie godziny lub dni. Oznacza to, \u017ce w przypadku najgorszego mo\u017cliwego upadku centrum danych, dzia\u0142 IT musi zapewni\u0107 biznesowi czas na przywr\u00f3cenie dost\u0119pu do us\u0142ug IT w ci\u0105gu minut, a nawet sekund.<\/p>\n<p><\/p>\n<h3 id=\"kak-eto-rabotaet\">Jak to dzia\u0142a?<\/h3>\n<p><\/p>\n<p>Na dolnym poziomie metroklast wykorzystuje mechanizm synchronnej replikacji danych, kt\u00f3ry opisali\u015bmy w poprzednim artykule (zob. <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/aerodisk\/blog\/456348\/\">link<\/a><\/noindex>). Poniewa\u017c replikacja jest synchronna, wymogi dotycz\u0105ce niej s\u0105 odpowiednie, a dok\u0142adniej:<\/p>\n<p><\/p>\n<ul>\n<li>\u015bwiat\u0142ow\u00f3d jako fizyczny no\u015bnik, Ethernet 10 gigabitowy (lub wy\u017cszy);<\/li>\n<li>odleg\u0142o\u015b\u0107 mi\u0119dzy centrami danych nie przekracza 40 kilometr\u00f3w;<\/li>\n<li>op\u00f3\u017anienie mi\u0119dzy centrami danych (mi\u0119dzy macierzami) do 5 milisekund (optymalnie 2).<\/li>\n<\/ul>\n<p><\/p>\n<p>Wszystkie te wymagania maj\u0105 charakter zalecaj\u0105cy, to znaczy metroklast b\u0119dzie dzia\u0142a\u0142, nawet je\u015bli nie b\u0119d\u0105 one spe\u0142nione, ale nale\u017cy rozumie\u0107, \u017ce konsekwencje ich niespe\u0142nienia b\u0119d\u0105 r\u00f3wne spowolnieniu pracy obu macierzy w metrokla\u015bcie.<\/p>\n<p><\/p>\n<p>Tak wi\u0119c do przesy\u0142ania danych mi\u0119dzy macierzami u\u017cywana jest synchronna replikacja, a w jaki spos\u00f3b repliki s\u0105 automatycznie prze\u0142\u0105czane, a co najwa\u017cniejsze, jak unikn\u0105\u0107 split-brain? W tym celu na wy\u017cszym poziomie u\u017cywana jest dodatkowa jednostka \u2014 arbiter. <\/p>\n<p><\/p>\n<h3 id=\"kak-rabotaet-arbitr-i-v-chem-ego-zadacha\">Jak dzia\u0142a arbiter i jakie ma zadanie?<\/h3>\n<p><\/p>\n<p>Arbiter jest ma\u0142\u0105 maszyn\u0105 wirtualn\u0105 lub klastrem sprz\u0119towym, kt\u00f3ry nale\u017cy uruchomi\u0107 na trzecim miejscu (na przyk\u0142ad w biurze) i zapewni\u0107 dost\u0119p do macierzy przez ICMP i SSH. Po uruchomieniu arbiter powinien ustawi\u0107 adres IP, a nast\u0119pnie ze strony macierzy wskaza\u0107 jego adres oraz adresy zdalnych kontroler\u00f3w uczestnicz\u0105cych w metrokla\u015bcie. Po tym arbiter jest gotowy do pracy.<\/p>\n<p><\/p>\n<p>Arbiter monitoruje wszystkie macierze w metrokla\u015bcie i w przypadku niedost\u0119pno\u015bci kt\u00f3rejkolwiek z system\u00f3w pami\u0119ci, po potwierdzeniu niedost\u0119pno\u015bci przez innego uczestnika klastra (jedn\u0105 z 'aktywnych' macierzy), podejmuje decyzj\u0119 o uruchomieniu procedury prze\u0142\u0105czania zasad replikacji i mapowania.<\/p>\n<p><\/p>\n<p>Bardzo wa\u017cny moment. Arbiter zawsze musi znajdowa\u0107 si\u0119 w miejscu innym ni\u017c te, w kt\u00f3rych znajduj\u0105 si\u0119 macierze, to znaczy ani w Centrum Danych 1, gdzie znajduje si\u0119 macierz 1, ani w Centrum Danych 2, gdzie zainstalowana jest macierz 2. <\/p>\n<p><\/p>\n<p>Dlaczego? Poniewa\u017c tylko w ten spos\u00f3b arbiter za pomoc\u0105 jednego z przetrwa\u0142ych system\u00f3w pami\u0119ci masowej mo\u017ce jednoznacznie i bezb\u0142\u0119dnie okre\u015bli\u0107 awari\u0119 dowolnej z dw\u00f3ch lokalizacji, w kt\u00f3rych zainstalowane s\u0105 systemy pami\u0119ci masowej. Jakiekolwiek inne sposoby umieszczania arbitra mog\u0105 prowadzi\u0107 do split-brain. <\/p>\n<p><\/p>\n<h3 id=\"teper-pogruzimsya-v-detali-raboty-arbitra\">Teraz zanurzmy si\u0119 w szczeg\u00f3\u0142y dzia\u0142ania arbitra<\/h3>\n<p><\/p>\n<p>Na arbitrze dzia\u0142a kilka us\u0142ug, kt\u00f3re nieprzerwanie sprawdzaj\u0105 wszystkie kontrolery system\u00f3w pami\u0119ci masowej. Je\u015bli wynik sprawdzenia r\u00f3\u017cni si\u0119 od poprzedniego (dost\u0119pny\/niedost\u0119pny), jest zapisywany w ma\u0142ej bazie danych, kt\u00f3ra dzia\u0142a tak\u017ce na arbitra.<\/p>\n<p><\/p>\n<p><strong>Przyjrzyjmy si\u0119 bli\u017cej logice pracy arbitra.<\/strong><\/p>\n<p><\/p>\n<p><u>Krok 1. Okre\u015blenie niedost\u0119pno\u015bci.<\/u> Wydarzeniem-sygna\u0142em awarii systemu pami\u0119ci masowej jest brak ping\u00f3w z obu kontroler\u00f3w jednego systemu pami\u0119ci masowej przez 5 sekund. <\/p>\n<p><\/p>\n<p><u>Krok 2. Uruchomienie procedury prze\u0142\u0105czania. <\/u>Po tym, jak arbiter zrozumie, \u017ce jeden z system\u00f3w pami\u0119ci masowej jest niedost\u0119pny, wysy\u0142a zapytanie do \u201e\u017cywego\u201d systemu pami\u0119ci masowej, aby upewni\u0107 si\u0119, \u017ce \u201emartwy\u201d system pami\u0119ci masowej rzeczywi\u015bcie nie dzia\u0142a. <\/p>\n<p><\/p>\n<p>Po otrzymaniu takiego polecenia od arbitra, drugi (\u017cywy) system pami\u0119ci masowej dodatkowo sprawdza dost\u0119pno\u015b\u0107 pierwszego systemu pami\u0119ci masowej, kt\u00f3ry uleg\u0142 awarii, a je\u015bli go nie ma, przesy\u0142a arbitrze potwierdzenie swojej hipotezy. System pami\u0119ci masowej jest rzeczywi\u015bcie niedost\u0119pny. <\/p>\n<p><\/p>\n<p>Po otrzymaniu takiego potwierdzenia arbiter uruchamia zdaln\u0105 procedur\u0119 prze\u0142\u0105czania replikacji i uruchamiania mapowania na tych replikach, kt\u00f3re by\u0142y aktywne (primary) w upad\u0142ym systemie pami\u0119ci masowej, i wysy\u0142a polecenie do drugiego systemu pami\u0119ci masowej, aby przekszta\u0142ci\u0142 te repliki z secondary w primary i uruchomi\u0142 mapowanie. A drugi system pami\u0119ci masowej wykonuje odpowiednie procedury, po czym zapewnia dost\u0119p do utraconych LUN-\u00f3w z siebie.<\/p>\n<p><\/p>\n<p>Po co dodatkowe sprawdzenie? Dla kworum. To znaczy, \u017ce wi\u0119kszo\u015b\u0107 z og\u00f3lnej nieparzystej liczby (3) uczestnik\u00f3w klastra musi potwierdzi\u0107 awari\u0119 jednego z w\u0119z\u0142\u00f3w klastra. Tylko wtedy ta decyzja b\u0119dzie dok\u0142adnie poprawna. Jest to potrzebne, aby unikn\u0105\u0107 b\u0142\u0119dnego prze\u0142\u0105czania i, co za tym idzie, split-brain. <\/p>\n<p><\/p>\n<p>Krok 2 zajmuje oko\u0142o 5 \u2013 10 sekund, w zwi\u0105zku z tym, uwzgl\u0119dniaj\u0105c czas potrzebny na okre\u015blenie niedost\u0119pno\u015bci (5 sekund), w ci\u0105gu 10 \u2013 15 sekund po awarii LUN-y z upad\u0142ym systemem pami\u0119ci masowej b\u0119d\u0105 automatycznie dost\u0119pne do pracy z \u017cywym systemem pami\u0119ci masowej. <\/p>\n<p><\/p>\n<p>Oczywi\u015bcie, aby unikn\u0105\u0107 zerwania po\u0142\u0105czenia z hostami, nale\u017cy r\u00f3wnie\u017c zadba\u0107 o odpowiednie ustawienie timeout\u00f3w na hostach. Zalecany timeout wynosi co najmniej 30 sekund. To zapewni, \u017ce host nie roz\u0142\u0105czy po\u0142\u0105czenia z macierz\u0105 dyskow\u0105 podczas zmiany obci\u0105\u017cenia w przypadku awarii i zagwarantuje brak przerwy w wej\u015bciu-wyj\u015bciu.<\/p>\n<p><\/p>\n<blockquote><p>Chwileczk\u0119, wi\u0119c je\u015bli z metroklastrem wszystko jest tak dobrze, to po co w og\u00f3le potrzebna jest zwyk\u0142a replikacja? <\/p><\/blockquote>\n<p>W rzeczywisto\u015bci wcale nie jest to takie proste. <\/p>\n<p><\/p>\n<h3 id=\"rassmotrim-plyusy-i-minusy-metroklastera\">Rozwa\u017cmy zalety i wady metroklastra<\/h3>\n<p><\/p>\n<p>Zrozumieli\u015bmy, \u017ce oczywistymi zaletami metroklastra w por\u00f3wnaniu do zwyk\u0142ej replikacji s\u0105:<\/p>\n<p><\/p>\n<ul>\n<li>Ca\u0142kowita automatyzacja, zapewniaj\u0105ca minimalny czas przywracania w przypadku katastrofy;<\/li>\n<li>I to wszystko :-).<\/li>\n<\/ul>\n<p><\/p>\n<p>A teraz, uwaga, wady:<\/p>\n<p><\/p>\n<ul>\n<li>Koszt rozwi\u0105zania. Chocia\u017c metroklaustr w systemach Airodisk nie wymaga dodatkowego licencjonowania (u\u017cywana jest ta sama licencja, co na replik\u0119), koszt rozwi\u0105zania b\u0119dzie i tak wy\u017cszy ni\u017c przy u\u017cyciu replikacji synchronizacyjnej. Nale\u017cy spe\u0142ni\u0107 wszystkie wymagania dla replikacji synchronizacyjnej, plus wymagania dla metroklastra zwi\u0105zane z dodatkowym prze\u0142\u0105czaniem i dodatkow\u0105 lokalizacj\u0105 (zob. planowanie metroklastra);<\/li>\n<li>Z\u0142o\u017cono\u015b\u0107 rozwi\u0105zania. Metroklaustr jest znacznie bardziej skomplikowany ni\u017c zwyk\u0142a replika i wymaga znacznie wi\u0119kszej uwagi oraz pracoch\u0142onno\u015bci na etapie planowania, ustawiania i dokumentowania.<\/li>\n<\/ul>\n<p><\/p>\n<p>W rezultacie. <strong>Metroklaustr to z pewno\u015bci\u0105 bardzo technologiczne i dobre rozwi\u0105zanie, kiedy naprawd\u0119 trzeba zapewni\u0107 RTO w sekundach lub minutach.<\/strong> Jednak je\u015bli takie zadanie nie istnieje, a RTO w godzinach jest akceptowalne dla biznesu, to nie ma sensu strzela\u0107 z armaty do wr\u00f3bli. Wystarczy zwyk\u0142a pracownicza replikacja, poniewa\u017c metroklaustr spowoduje dodatkowe koszty i skomplikowanie infrastruktury IT.<\/p>\n<p><\/p>\n<h2 id=\"planirovanie-metroklastera\">Planowanie metroklastra<\/h2>\n<p><\/p>\n<p>Ta sekcja nie ma na celu przedstawienia wyczerpuj\u0105cego poradnika po projektowaniu metroklastra, ale jedynie pokazuje g\u0142\u00f3wne kierunki, kt\u00f3re nale\u017cy przemy\u015ble\u0107, je\u015bli zdecydowa\u0142e\u015b si\u0119 zbudowa\u0107 taki system. Dlatego przy rzeczywistej implementacji metroklastra koniecznie anga\u017cuj producenta macierzy dyskowej (czyli nas) oraz innych system\u00f3w pokrewnych do konsultacji.<\/p>\n<p><\/p>\n<h3 id=\"ploschadki\">Lokalizacje<\/h3>\n<p><\/p>\n<p>Jak wskazano powy\u017cej, dla metroklastra wymagana jest co najmniej tr\u00f3jka lokalizacji. Dwa centra danych, w kt\u00f3rych b\u0119d\u0105 dzia\u0142a\u0107 macierze dyskowe i systemy pokrewne oraz trzecia lokalizacja, w kt\u00f3rej b\u0119dzie dzia\u0142a\u0142 arbiter.<\/p>\n<p><\/p>\n<p>Zalecana odleg\u0142o\u015b\u0107 mi\u0119dzy centrami danych wynosi nie wi\u0119cej ni\u017c 40 kilometr\u00f3w. Wi\u0119ksza odleg\u0142o\u015b\u0107 z du\u017cym prawdopodobie\u0144stwem spowoduje dodatkowe op\u00f3\u017anienia, kt\u00f3re w przypadku metroklastra s\u0105 niezwykle niepo\u017c\u0105dane. Przypominamy, \u017ce op\u00f3\u017anienia powinny wynosi\u0107 do 5 milisekund, chocia\u017c lepiej zmie\u015bci\u0107 si\u0119 w 2.<\/p>\n<p><\/p>\n<p>Op\u00f3\u017anienia zaleca si\u0119 r\u00f3wnie\u017c sprawdza\u0107 w toku planowania. Ka\u017cdy wi\u0119kszy lub mniej do\u015bwiadczony dostawca, kt\u00f3ry oferuje \u015bwiat\u0142ow\u00f3d mi\u0119dzy centrami danych, mo\u017ce szybko zorganizowa\u0107 wysokiej jako\u015bci testy. <\/p>\n<p><\/p>\n<p>Je\u015bli chodzi o op\u00f3\u017anienia do arbitra (czyli mi\u0119dzy trzeci\u0105 lokalizacj\u0105 a dwiema pierwszymi), zalecany pr\u00f3g op\u00f3\u017anie\u0144 wynosi do 200 milisekund, co oznacza, \u017ce standardowe po\u0142\u0105czenie VPN w firmie nadawa\u0142oby si\u0119 w tej sytuacji.<\/p>\n<p><\/p>\n<h3 id=\"kommutaciya-i-set\">Komutacja i sie\u0107<\/h3>\n<p><\/p>\n<p>W przeciwie\u0144stwie do schematu replikacji, gdzie wystarczy po\u0142\u0105czy\u0107 ze sob\u0105 macierze dyskowe z r\u00f3\u017cnych lokalizacji, schemat metroklastra wymaga po\u0142\u0105czenia host\u00f3w z obiema macierzami na r\u00f3\u017cnych lokalizacjach. Aby by\u0142o ja\u015bniej, w czym tkwi r\u00f3\u017cnica, obie schematy przedstawiono poni\u017cej.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"AERODISK Engine: Odporno\u015b\u0107 na katastrofy. Cz\u0119\u015b\u0107 2. Metroklaster\" src=\"\/wp-content\/uploads\/2019\/07\/12334c29a498f686e8eb946daab587c1.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"AERODISK Engine: Odporno\u015b\u0107 na katastrofy. Cz\u0119\u015b\u0107 2. Metroklaster\" src=\"\/wp-content\/uploads\/2019\/07\/46db8c81d15be3f89e1f9dbee4489e3b.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Jak wida\u0107 z diagramu, hosty lokalizacji 1 maj\u0105 dost\u0119p zar\u00f3wno do macierzy 1, jak i 2. Podobnie, hosty lokalizacji 2 maj\u0105 dost\u0119p zar\u00f3wno do macierzy 2, jak i 1. Oznacza to, \u017ce ka\u017cdy host widzi obie macierze. To warunek konieczny do dzia\u0142ania metroklastra.<\/p>\n<p><\/p>\n<p>Oczywi\u015bcie nie ma potrzeby ci\u0105gni\u0119cia ka\u017cdego hosta za pomoc\u0105 optycznego kabla do innego centrum danych, \u017cadne porty i kable by si\u0119 nie zmie\u015bci\u0142y. Wszystkie te po\u0142\u0105czenia musz\u0105 by\u0107 realizowane za po\u015brednictwem prze\u0142\u0105cznik\u00f3w Ethernet 10G+ lub Fibre Channel 8G+ (FC tylko do po\u0142\u0105cze\u0144 host\u00f3w z macierzami w celu IO, kana\u0142 replikacji jest dost\u0119pny tylko przez IP (Ethernet 10G+). <\/p>\n<p><\/p>\n<p>Teraz kilka s\u0142\u00f3w o topologii sieci. Wa\u017cnym aspektem jest poprawna konfiguracja podsieci. Nale\u017cy od razu okre\u015bli\u0107 kilka podsieci dla nast\u0119puj\u0105cych typ\u00f3w ruchu:<\/p>\n<p><\/p>\n<ul>\n<li>Podsie\u0107 do replikacji, przez kt\u00f3r\u0105 b\u0119d\u0105 synchronizowane dane mi\u0119dzy macierzami. Mo\u017ce ich by\u0107 kilka, w tym przypadku nie ma to znaczenia, wszystko zale\u017cy od obecnej (ju\u017c zaimplementowanej) topologii sieci. Je\u015bli jest ich dwie, to oczywi\u015bcie nale\u017cy skonfigurowa\u0107 routowanie mi\u0119dzy nimi.<\/li>\n<li>Podsieci do przechowywania danych, przez kt\u00f3re hosty b\u0119d\u0105 mia\u0142y dost\u0119p do zasob\u00f3w S\u0141D (je\u015bli to iSCSI). Takie podsieci powinny by\u0107 po jednej w ka\u017cdym centrum danych;<\/li>\n<li>Podsieci zarz\u0105dzaj\u0105ce, czyli trzy trasowane podsieci w trzech lokalizacjach, z kt\u00f3rych zarz\u0105dza si\u0119 S\u0141D, a tak\u017ce gdzie znajduje si\u0119 arbiter.<\/li>\n<\/ul>\n<p><\/p>\n<p>Podsieci do dost\u0119pu do zasob\u00f3w host\u00f3w nie s\u0105 tutaj rozwa\u017cane, poniewa\u017c mocno zale\u017c\u0105 od zada\u0144. <\/p>\n<p><\/p>\n<p>Podzia\u0142 r\u00f3\u017cnego ruchu na r\u00f3\u017cne podsieci jest niezwykle wa\u017cny (szczeg\u00f3lnie istotne jest oddzielenie replikacji od wej\u015bcia-wyj\u015bcia), poniewa\u017c je\u015bli ca\u0142y ruch zostanie zmieszany w jedn\u0105 \u00abgrub\u0105\u00bb podsie\u0107, jego zarz\u0105dzanie stanie si\u0119 niemo\u017cliwe, a w warunkach dw\u00f3ch centr\u00f3w danych mo\u017ce to spowodowa\u0107 r\u00f3\u017cne rodzaje kolizji sieciowych. W tej kwestii nie b\u0119dziemy si\u0119 zbytnio zag\u0142\u0119bia\u0107 w tym artykule, poniewa\u017c o planowaniu rozci\u0105gni\u0119tej mi\u0119dzy centrum danych sieci mo\u017cna przeczyta\u0107 w zasobach producent\u00f3w sprz\u0119tu sieciowego, gdzie jest to bardzo szczeg\u00f3\u0142owo opisane.<\/p>\n<p><\/p>\n<h3 id=\"konfiguraciya-arbitra\">Konfiguracja arbitra<\/h3>\n<p><\/p>\n<p>Arbiter musi zapewni\u0107 dost\u0119p do wszystkich interfejs\u00f3w zarz\u0105dzaj\u0105cych S\u0141D przez protoko\u0142y ICMP i SSH. Nale\u017cy r\u00f3wnie\u017c rozwa\u017cy\u0107 awaryjno\u015b\u0107 arbitra. Istnieje tu pewien szczeg\u00f3\u0142.<\/p>\n<p><\/p>\n<p>Awaryjno\u015b\u0107 arbitra jest bardzo po\u017c\u0105dana, ale nieobowi\u0105zkowa. Co si\u0119 stanie, je\u015bli arbiter zawiedzie w niew\u0142a\u015bciwym momencie?<\/p>\n<p><\/p>\n<ul>\n<li>Praca metroklastra w normalnym trybie nie ulegnie zmianie, poniewa\u017c arbiter nie wp\u0142ywa na prac\u0119 metroklastra w normalnym trybie (jego zadaniem jest na czas prze\u0142\u0105czy\u0107 obci\u0105\u017cenie mi\u0119dzy centrami danych)<\/li>\n<li>W przypadku, gdy arbiter z jakiegokolwiek powodu upadnie i \u00abprze\u015bpi\u00bb awari\u0119 w centrum danych, nie dojdzie do \u017cadnego prze\u0142\u0105czenia, poniewa\u017c nie ma nikogo, kto wyda\u0142by potrzebne polecenia i zorganizowa\u0142 quorum. W tym przypadku metroklauster przemieni si\u0119 w zwyk\u0142y schemat replikacji, kt\u00f3ry podczas katastrofy b\u0119dzie trzeba prze\u0142\u0105cza\u0107 r\u0119cznie, co wp\u0142ynie na RTO.<\/li>\n<\/ul>\n<p><\/p>\n<p>Co z tego wynika? Je\u017celi rzeczywi\u015bcie trzeba zapewni\u0107 minimalny wska\u017anik RTO, nale\u017cy zapewni\u0107 awaryjno\u015b\u0107 arbitra. W tym celu s\u0105 dwa warianty:<\/p>\n<p><\/p>\n<ul>\n<li>Uruchomienie wirtualnej maszyny z arbitrem na awaryjnym hyperwizorze, poniewa\u017c wszystkie dojrza\u0142e hyperwizory obs\u0142uguj\u0105 awaryjno\u015b\u0107;<\/li>\n<li>Je\u015bli na trzecim miejscu (w hipotetycznym biurze) nie chce si\u0119 instalowa\u0107 prawid\u0142owego klastra z hiperlokalizatorami, to przewidzieli\u015bmy sprz\u0119tow\u0105 wersj\u0119 arbitra, kt\u00f3ra znajduje si\u0119 w obudowie 2U, w kt\u00f3rej pracuj\u0105 dwa standardowe serwery x86 i kt\u00f3ra mo\u017ce prze\u017cy\u0107 lokaln\u0105 awari\u0119.<\/li>\n<\/ul>\n<p><\/p>\n<p>Zalecamy zdecydowanie zapewnienie odporno\u015bci na awarie arbitra, mimo \u017ce w standardowym trybie nie jest on potrzebny w metrokle\u015bcie. Ale jak pokazuje teoria i praktyka, je\u015bli chcemy zbudowa\u0107 naprawd\u0119 niezawodn\u0105 infrastruktur\u0119 odporn\u0105 na katastrofy, lepiej dmucha\u0107 na zimne. Lepiej chroni\u0107 siebie i biznes przed \"prawem pod\u0142o\u015bci\", czyli przed jednoczesnym uszkodzeniem arbitra i jednej z lokalizacji, gdzie znajduje si\u0119 macierz dyskowa.<\/p>\n<p><\/p>\n<h3 id=\"arhitektura-resheniya\">Architektura rozwi\u0105zania<\/h3>\n<p><\/p>\n<p>Bior\u0105c pod uwag\u0119 powy\u017csze wymagania, otrzymujemy nast\u0119puj\u0105c\u0105 og\u00f3ln\u0105 architektur\u0119 rozwi\u0105zania.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"AERODISK Engine: Odporno\u015b\u0107 na katastrofy. Cz\u0119\u015b\u0107 2. Metroklaster\" src=\"\/wp-content\/uploads\/2019\/07\/e60f67d6705d940f1c06b06328bf99a5.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>LUN-y nale\u017cy r\u00f3wnomiernie roz\u0142o\u017cy\u0107 pomi\u0119dzy dwoma lokalizacjami, aby unikn\u0105\u0107 silnego obci\u0105\u017cenia. Przy tym przy planowaniu w obu centrach danych nale\u017cy uwzgl\u0119dni\u0107 nie tylko podw\u00f3jn\u0105 pojemno\u015b\u0107 (kt\u00f3ra jest niezb\u0119dna do jednoczesnego przechowywania danych na dw\u00f3ch macierzach dyskowych), ale tak\u017ce podw\u00f3jn\u0105 wydajno\u015b\u0107 w IOPS i MB\/s, aby nie dopu\u015bci\u0107 do degradacji aplikacji w warunkach awarii jednego z centr\u00f3w danych.<\/p>\n<p><\/p>\n<p>Osobno zauwa\u017camy, \u017ce przy w\u0142a\u015bciwym podej\u015bciu do planowania (to znaczy pod warunkiem, \u017ce uwzgl\u0119dnili\u015bmy odpowiednie g\u00f3rne granice IOPS i MB\/s, a tak\u017ce niezb\u0119dne zasoby CPU i RAM) w przypadku awarii jednej z macierzy dyskowych w metrokle\u015bcie nie b\u0119dzie znacznego spadku wydajno\u015bci przy tymczasowej pracy na jednej macierzy.<\/p>\n<p><\/p>\n<p>Wyja\u015bnia si\u0119 to tym, \u017ce w warunkach jednoczesnej pracy dw\u00f3ch lokalizacji, dzia\u0142aj\u0105ca synchrona replikacja 'zjada' po\u0142ow\u0119 wydajno\u015bci przy zapisie, poniewa\u017c ka\u017cd\u0105 transakcj\u0119 trzeba zarejestrowa\u0107 na dw\u00f3ch macierzach (podobnie jak RAID-1\/10). Tak wi\u0119c, przy awarii jednej z macierzy, wp\u0142yw replikacji tymczasowo (dop\u00f3ki nie wznowi si\u0119 dzia\u0142aj\u0105ca macierz) znika, a my zyskujemy dwukrotny wzrost wydajno\u015bci zapisu. Po tym, jak LUN-y awaryjnej macierzy zostan\u0105 wznowione na dzia\u0142aj\u0105cej macierzy, ten dwukrotny wzrost znika z powodu obci\u0105\u017cenia z LUN-\u00f3w drugiej macierzy, wracamy do tego samego poziomu wydajno\u015bci, jaki mieli\u015bmy przed 'spadkiem', ale tylko w ramach ju\u017c jednej lokalizacji. <\/p>\n<p><\/p>\n<p>Dzi\u0119ki odpowiedniemu dobraniu wielko\u015bci mo\u017cna stworzy\u0107 warunki, w kt\u00f3rych u\u017cytkownicy nie odczuj\u0105 ca\u0142kowitego braku dzia\u0142ania macierzy. Jednak po raz kolejny podkre\u015blamy, \u017ce wymaga to bardzo uwa\u017cnego dobrania wielko\u015bci, do kt\u00f3rego mo\u017cna si\u0119 do nas zg\u0142osi\u0107 bezp\u0142atnie :-).<\/p>\n<p><\/p>\n<h2 id=\"nastroyka-metroklastera\">Konfiguracja metroklastera<\/h2>\n<p><\/p>\n<p>Konfiguracja metroklastera jest bardzo podobna do ustawienia zwyk\u0142ej replikacji, kt\u00f3r\u0105 opisali\u015bmy w <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/aerodisk\/blog\/456348\/\">poprzedniej artykule<\/a><\/noindex>. Dlatego skoncentrujmy si\u0119 tylko na r\u00f3\u017cnicach. Ustawili\u015bmy w laboratorium stanowisko oparte na wy\u017cej opisanej architekturze, tylko w minimalnej wersji: dwie macierze po\u0142\u0105czone mi\u0119dzy sob\u0105 przez 10G Ethernet, dwa prze\u0142\u0105czniki 10G i jeden host, kt\u00f3ry \u0142\u0105czy si\u0119 z oboma macierzami przez porty 10G. Arbiter dzia\u0142a na maszynie wirtualnej.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"AERODISK Engine: Odporno\u015b\u0107 na katastrofy. Cz\u0119\u015b\u0107 2. Metroklaster\" src=\"\/wp-content\/uploads\/2019\/07\/04e318609929553ed651fd702f0c7327.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Podczas konfigurowania wirtualnych adres\u00f3w IP (VIP) dla repliki nale\u017cy wybra\u0107 typ VIP \u2013 dla metroklastera.<\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/ym\/aw\/89\/ymaw89gofhplngagm5nvveg4oe0.png\"><img decoding=\"async\" alt=\"AERODISK Engine: Odporno\u015b\u0107 na katastrofy. Cz\u0119\u015b\u0107 2. Metroklaster\" src=\"\/wp-content\/uploads\/2019\/07\/974acf7aad3244c48049d09ff9b99a52.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><\/p>\n<p>Utworzyli\u015bmy dwa po\u0142\u0105czenia replikacyjne dla dw\u00f3ch LUN-\u00f3w i rozdzielili\u015bmy je mi\u0119dzy dwoma macierzami: LUN TEST Primary na macierzy1 (po\u0142\u0105czenie METRO), LUN TEST2 Primary dla macierzy2 (po\u0142\u0105czenie METRO2).<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"AERODISK Engine: Odporno\u015b\u0107 na katastrofy. Cz\u0119\u015b\u0107 2. Metroklaster\" src=\"\/wp-content\/uploads\/2019\/07\/7ff6c2bcf23bfa48974ba3ae5538e424.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Dla nich skonfigurowali\u015bmy dwa identyczne cele (w naszym przypadku iSCSI, ale wspierany jest r\u00f3wnie\u017c FC, logika konfiguracji jest ta sama).<\/p>\n<p><\/p>\n<p>Macierz1:<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"AERODISK Engine: Odporno\u015b\u0107 na katastrofy. Cz\u0119\u015b\u0107 2. Metroklaster\" src=\"\/wp-content\/uploads\/2019\/07\/e8378f8a65ea7886d9bf0b97b76394c4.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Macierz2:<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"AERODISK Engine: Odporno\u015b\u0107 na katastrofy. Cz\u0119\u015b\u0107 2. Metroklaster\" src=\"\/wp-content\/uploads\/2019\/07\/dee6c339ff0b15ec24f8d2d19d874921.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Dla po\u0142\u0105cze\u0144 replikacyjnych wykonali\u015bmy mapowania na ka\u017cdej macierzy.<\/p>\n<p><\/p>\n<p>Macierz1:<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"AERODISK Engine: Odporno\u015b\u0107 na katastrofy. Cz\u0119\u015b\u0107 2. Metroklaster\" src=\"\/wp-content\/uploads\/2019\/07\/c71dcc46058731acb7fdf44a2ae52f56.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Macierz2:<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"AERODISK Engine: Odporno\u015b\u0107 na katastrofy. Cz\u0119\u015b\u0107 2. Metroklaster\" src=\"\/wp-content\/uploads\/2019\/07\/f473a0862ccb11d55ff1b1f13d5db87e.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Skonfigurowali\u015bmy multipath i udost\u0119pnili\u015bmy na ho\u015bcie.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"AERODISK Engine: Odporno\u015b\u0107 na katastrofy. Cz\u0119\u015b\u0107 2. Metroklaster\" src=\"\/wp-content\/uploads\/2019\/07\/e3eea3967f75388cf5bd5aeb8ec4f5df.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"AERODISK Engine: Odporno\u015b\u0107 na katastrofy. Cz\u0119\u015b\u0107 2. Metroklaster\" src=\"\/wp-content\/uploads\/2019\/07\/20ce2c6f94a1ec507704b2adabe7f7fa.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<h3 id=\"nastraivaem-arbitra\">Konfigurujemy arbitra<\/h3>\n<p><\/p>\n<p>Z samym arbtirem nie trzeba robi\u0107 wiele, nale\u017cy go po prostu w\u0142\u0105czy\u0107 na trzecim obszarze, przypisa\u0107 mu IP i skonfigurowa\u0107 dost\u0119p przez ICMP oraz SSH. Sama konfiguracja odbywa si\u0119 z poziomu macierzy. Przy tym konfiguracj\u0119 arbitra wystarczy wykona\u0107 jeden raz na dowolnym z kontroler\u00f3w macierzy w metroklasterze, a ustawienia te zostan\u0105 automatycznie rozpropagowane na wszystkie kontrolery.<\/p>\n<p><\/p>\n<p>W sekcji Replikacja zdalna&gt;&gt; Metroklaster (na dowolnym kontrolerze)&gt;&gt; przycisk \u201eSkonfiguruj\u201d.<\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/sy\/h0\/x-\/syh0x-gywrz2yu8w9mk0us5mwcg.jpeg\"><img decoding=\"async\" alt=\"AERODISK Engine: Odporno\u015b\u0107 na katastrofy. Cz\u0119\u015b\u0107 2. Metroklaster\" src=\"\/wp-content\/uploads\/2019\/07\/c83c1dd267dcbe0203af23e2f10772c4.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><\/p>\n<p>Wprowadzamy IP arbitra oraz interfejsy steruj\u0105ce dw\u00f3ch kontroler\u00f3w zdalnej macierzy.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"AERODISK Engine: Odporno\u015b\u0107 na katastrofy. Cz\u0119\u015b\u0107 2. Metroklaster\" src=\"\/wp-content\/uploads\/2019\/07\/760f6f703f5f0eef1072c4c6ca393089.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Nast\u0119pnie nale\u017cy w\u0142\u0105czy\u0107 wszystkie us\u0142ugi (przycisk \u201eZrestartuj wszystko\u201d). W przypadku przysz\u0142ej rekonfiguracji us\u0142ugi nale\u017cy koniecznie ponownie uruchomi\u0107, aby ustawienia wesz\u0142y w \u017cycie.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"AERODISK Engine: Odporno\u015b\u0107 na katastrofy. Cz\u0119\u015b\u0107 2. Metroklaster\" src=\"\/wp-content\/uploads\/2019\/07\/ad25df4a17879bcddb45480368c51095.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Sprawdzamy, czy wszystkie us\u0142ugi s\u0105 uruchomione.<\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/oh\/mw\/xl\/ohmwxl5jry0dufgfamey0ddxris.jpeg\"><img decoding=\"async\" alt=\"AERODISK Engine: Odporno\u015b\u0107 na katastrofy. Cz\u0119\u015b\u0107 2. Metroklaster\" src=\"\/wp-content\/uploads\/2019\/07\/15b658834b7682c6cc3b76882ad9e4ab.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><\/p>\n<p><strong>Na tym konfiguracja metroklastera jest zako\u0144czona.<\/strong><\/p>\n<p><\/p>\n<h2 id=\"krash-test\">Test awaryjny<\/h2>\n<p><\/p>\n<p>Test awaryjny w naszym przypadku b\u0119dzie wystarczaj\u0105co prosty i szybki, poniewa\u017c funkcjonalno\u015b\u0107 replikacji (prze\u0142\u0105czanie, sp\u00f3jno\u015b\u0107 itd.) zosta\u0142a ju\u017c om\u00f3wiona w <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/aerodisk\/blog\/456348\/\">W poprzednim artykule<\/a><\/noindex>. Dlatego do przetestowania niezawodno\u015bci metroklastra wystarczy sprawdzi\u0107 automatyzacj\u0119 wykrywania awarii, prze\u0142\u0105czenia oraz brak utraty danych podczas zapisu (zatrzymania wej\u015bcia-wyj\u015bcia). <\/p>\n<p><\/p>\n<p>W tym celu emulujemy ca\u0142kowit\u0105 awari\u0119 jednej z macierzy, fizycznie wy\u0142\u0105czaj\u0105c oba jej kontrolery, uruchamiaj\u0105c wcze\u015bniej kopiowanie du\u017cego pliku na LUN, kt\u00f3ry powinien zosta\u0107 aktywowany na innej macierzy.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"AERODISK Engine: Odporno\u015b\u0107 na katastrofy. Cz\u0119\u015b\u0107 2. Metroklaster\" src=\"\/wp-content\/uploads\/2019\/07\/b1b108313472a03983bc1b8690c70369.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Wy\u0142\u0105czamy jedn\u0105 macierz. Na drugiej macierzy widzimy alarmy i komunikaty w logach informuj\u0105ce o utracie po\u0142\u0105czenia z s\u0105siednim systemem. Je\u015bli s\u0105 skonfigurowane powiadomienia za pomoc\u0105 SMTP lub monitoringu SNMP, administrator otrzyma odpowiednie powiadomienia.<\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/ae\/jo\/xv\/aejoxv6piwk4fvl-nc1leklbxce.jpeg\"><img decoding=\"async\" alt=\"AERODISK Engine: Odporno\u015b\u0107 na katastrofy. Cz\u0119\u015b\u0107 2. Metroklaster\" src=\"\/wp-content\/uploads\/2019\/07\/9af3728eec93cc2e17048ec596748cb1.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><\/p>\n<p>Dok\u0142adnie po 10 sekundach (co wida\u0107 na obu zrzutach ekranu) po\u0142\u0105czenie replikacyjne METRO (to, kt\u00f3re by\u0142o Primary na uszkodzonej macierzy) automatycznie sta\u0142o si\u0119 Primary na dzia\u0142aj\u0105cej macierzy. Dzi\u0119ki istniej\u0105cemu mapowaniu, LUN TEST pozosta\u0142 dost\u0119pny dla hosta, zapis lekko spad\u0142 (w granicach obiecanych 10 procent), ale nie zosta\u0142 przerwany. <\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/v_\/gj\/d9\/v_gjd9sgoi5hwrgjdkwxwtdomeu.jpeg\"><img decoding=\"async\" alt=\"AERODISK Engine: Odporno\u015b\u0107 na katastrofy. Cz\u0119\u015b\u0107 2. Metroklaster\" src=\"\/wp-content\/uploads\/2019\/07\/e0131eb534ed10f1ac64a19d42d0b53f.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"AERODISK Engine: Odporno\u015b\u0107 na katastrofy. Cz\u0119\u015b\u0107 2. Metroklaster\" src=\"\/wp-content\/uploads\/2019\/07\/644da1a8b2de75637b58094f549d4de0.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p><strong>Test zako\u0144czony pomy\u015blnie.<\/strong><\/p>\n<p><\/p>\n<h2 id=\"podvodim-itog\">Podsumowuj\u0105c<\/h2>\n<p><\/p>\n<p>Aktualna realizacja metroklastra w systemach pami\u0119ci AERODISK Engine serii N w pe\u0142ni pozwala rozwi\u0105zywa\u0107 zadania, w kt\u00f3rych wymagane jest wykluczenie lub minimalizacja czasu przestoju us\u0142ug IT oraz zapewnienie ich dzia\u0142ania w trybie 24\/7\/365 przy minimalnych nak\u0142adach pracy. <\/p>\n<p><\/p>\n<p>Mo\u017cna oczywi\u015bcie powiedzie\u0107, \u017ce to wszystko teoria, idealne warunki laboratoryjne i tak dalej\u2026 ALE mamy szereg zrealizowanych projekt\u00f3w, w kt\u00f3rych wdro\u017cyli\u015bmy funkcjonalno\u015b\u0107 odporno\u015bci na katastrofy, i systemy dzia\u0142aj\u0105 \u015bwietnie. Jeden z naszych do\u015b\u0107 znanych klient\u00f3w, kt\u00f3ry wykorzystuje w\u0142a\u015bnie dwie macierze w konfiguracji odpornej na katastrofy, ju\u017c wyrazi\u0142 zgod\u0119 na publikacj\u0119 informacji o projekcie, dlatego w nast\u0119pnej cz\u0119\u015bci opowiemy o wdro\u017ceniu w warunkach rzeczywistych.<\/p>\n<p><\/p>\n<p>Dzi\u0119kujemy, czekamy na owocn\u0105 dyskusj\u0119.<\/p>\n<p>\u0179r\u00f3d\u0142o: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/aerodisk\/blog\/460305\/\">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 \u0425\u0430\u0431\u0440\u0430! \u0412 \u043f\u0440\u043e\u0448\u043b\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043c\u044b \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u043b\u0438 \u043e \u043f\u0440\u043e\u0441\u0442\u043e\u043c \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435 \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 \u2013 \u043e \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0438. \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043c\u044b \u043f\u043e\u0433\u0440\u0443\u0437\u0438\u043c\u0441\u044f \u0432 \u0431\u043e\u043b\u0435\u0435 \u0441\u043b\u043e\u0436\u043d\u0443\u044e \u0438 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0443\u044e \u0442\u0435\u043c\u0443 \u2013 \u043c\u0435\u0442\u0440\u043e\u043a\u043b\u0430\u0441\u0442\u0435\u0440, \u0442\u043e \u0435\u0441\u0442\u044c \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u043e \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0437\u0430\u0449\u0438\u0442\u044b \u043e\u0442 \u043a\u0430\u0442\u0430\u0441\u0442\u0440\u043e\u0444 \u0434\u043b\u044f \u0434\u0432\u0443\u0445 \u0426\u041e\u0414-\u043e\u0432, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0435\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0426\u041e\u0414-\u0430\u043c \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 active-active. \u0420\u0430\u0441\u0441\u043a\u0430\u0436\u0435\u043c, \u043f\u043e\u043a\u0430\u0436\u0435\u043c, \u0441\u043b\u043e\u043c\u0430\u0435\u043c \u0438 \u043f\u043e\u0447\u0438\u043d\u0438\u043c. \u041a\u0430\u043a [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":27126,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-36263","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=\"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-2-metroklaster\" \/>\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 2. \u041c\u0435\u0442\u0440\u043e\u043a\u043b\u0430\u0441\u0442\u0435\u0440 | ProHoster\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/aerodisk-engine-katastrofoustojchivost-chast-2-metroklaster\" \/>\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:10:35+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:10:35+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 2. Metroklaster | ProHoster","description":"","canonical_url":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/aerodisk-engine-katastrofoustojchivost-chast-2-metroklaster","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 2. \u041c\u0435\u0442\u0440\u043e\u043a\u043b\u0430\u0441\u0442\u0435\u0440 | ProHoster","og:url":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/aerodisk-engine-katastrofoustojchivost-chast-2-metroklaster","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:10:35+00:00","article:modified_time":"2019-10-31T19:10:35+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"36263","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-01-22 02:36:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 01:47:35","updated":"2026-01-22 02:36:19","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\/36263","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=36263"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/36263\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media\/27126"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media?parent=36263"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/categories?post=36263"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/tags?post=36263"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}