İki qovşağın çoxluğu - şeytan detallardadır

Hey Habr! Məqalənin tərcüməsini diqqətinizə təqdim edirəm "İki qovşaq - Şeytan təfərrüatlardadır" Andrew Beekhof tərəfindən.

Bir çox insanlar iki qovşaqlı klasterlərə üstünlük verirlər, çünki onlar konseptual olaraq daha sadə görünür və həmçinin üç qovşaqlı həmkarlarından 33% ucuzdur. İki qovşağın yaxşı bir çoxluğunu bir araya gətirmək olduqca mümkün olsa da, əksər hallarda düşünülməmiş ssenarilərə görə belə bir konfiqurasiya bir çox açıq-aydın problemlər yaradacaqdır.

İstənilən yüksək əlçatanlıq sistemi yaratmaq üçün ilk addım, tez-tez belə qısaldılmış fərdi uğursuzluq nöqtələrini tapmaq və aradan qaldırmağa çalışmaqdır. SPoF (bir uğursuzluq nöqtəsi).

Nəzərə almaq lazımdır ki, hər hansı bir sistemdə fasilələrlə bağlı bütün mümkün riskləri aradan qaldırmaq mümkün deyil. Bu, riskə qarşı tipik müdafiənin sistemin mürəkkəbliyinin artmasına və yeni uğursuzluq nöqtələrinin yaranmasına gətirib çıxaran bəzi ehtiyatların tətbiqi olmasından irəli gəlir. Buna görə də, biz əvvəlcə bir kompromis əldə edirik və əlaqəli və buna görə də getdikcə daha az ehtimal olunan hadisələr zəncirlərinə deyil, ayrı-ayrı uğursuzluq nöqtələri ilə əlaqəli hadisələrə diqqət yetiririk.

Mübadilələri nəzərə alaraq, biz yalnız SPoF axtarmırıq, həm də riskləri və nəticələrini tarazlaşdırırıq, bunun nəticəsində nəyin kritik və nəyin qeyri-mümkün olduğuna dair nəticə hər bir yerləşdirmə üçün fərqli ola bilər.

Hər kəs müstəqil elektrik xətləri olan alternativ elektrik təchizatçılarına ehtiyac duymur. Baxmayaraq ki, monitorinqi nasaz transformator aşkar edəndə paranoyya ən azı bir müştəriyə bəhrə verib. Müştəri nasaz transformator partlayana qədər enerji şirkətini xəbərdar etməyə çalışan telefon zəngləri etdi.

Təbii başlanğıc nöqtəsi sistemdə birdən çox düyünün olmasıdır. Bununla belə, sistem uğursuzluqdan sonra xidmətləri sağ qalan qovşaqlara köçürməzdən əvvəl, ümumiyyətlə, köçürülən xidmətlərin başqa yerə aktiv olmadığından əmin olmalıdır.

Əgər uğursuzluq hər iki qovşağın eyni statik veb-sayta xidmət göstərməsi ilə nəticələnirsə, iki qovşaqlı klasterin heç bir mənfi tərəfi yoxdur. Bununla belə, nəticə hər iki tərəfin müstəqil olaraq ortaq iş növbəsini idarə etməsi və ya təkrarlanan verilənlər bazasına və ya paylaşılan fayl sisteminə koordinasiya edilməmiş yazma girişi təmin etməsidirsə, işlər dəyişir.

Buna görə də, bir node uğursuzluğu nəticəsində məlumatların pozulmasının qarşısını almaq üçün - biz adlanan bir şeyə etibar edirik "dissosiasiya" (qılıncoynatma).

Dissosiasiya prinsipi

Dissosiasiya prinsipinin mərkəzində sual durur: rəqabət aparan qovşaq məlumatların korlanmasına səbəb ola bilərmi? Məlumatların pozulması ehtimal olunan bir ssenari olduğu halda, yaxşı həll qovşağı həm daxil olan sorğulardan, həm də davamlı yaddaşdan təcrid etmək olardı. Dissosiasiya üçün ən ümumi yanaşma, nasaz qovşaqları ayırmaqdır.

Dissosiasiya üsullarının iki kateqoriyası var, mən bunları çağıracağam düz и dolayı, lakin onları eyni dərəcədə adlandırmaq olar aktiv и passiv. Birbaşa üsullara IPMI (İntelligent Platform Management Interface) və ya iLO (onlara fiziki giriş olmadıqda serverləri idarə etmək üçün mexanizm) cihazı ilə qarşılıqlı əlaqə kimi sağ qalan həmyaşıdların hərəkətləri daxildir, halbuki dolayı üsullar uğursuzluğa əsaslanır. bir şəkildə onun qeyri-sağlam vəziyyətdə olduğunu (və ya ən azı digər üzvlərin sağalmasına mane olduğunu) tanımaq və siqnal vermək üçün node aparat nəzarətçisi uğursuz nodu ayırmaq ehtiyacı haqqında.

Kvorum həm birbaşa, həm də dolayı üsullardan istifadə edərkən kömək edir.

Birbaşa dissosiasiya

Birbaşa dissosiasiya halında, şəbəkə nasazlığı halında dissosiasiya yarışlarının qarşısını almaq üçün kvorumdan istifadə edə bilərik.

Kvorum anlayışı ilə, qovşaqların dissosiasiyaya və/və ya bərpaya başlamaq lazım olub-olmadığını avtomatik bilməsi üçün sistemdə kifayət qədər məlumat var (hətta həmyaşıdlarına qoşulmadan da).

Kvorum olmadıqda, şəbəkə bölünməsinin hər iki tərəfi haqlı olaraq qarşı tərəfin öldüyünü güman edəcək və digərini ayırmağa çalışacaq. Ən pis halda, hər iki tərəf bütün klasteri bağlamağı bacarır. Alternativ ssenari ölüm matçı, sonsuz qovşaqlar dövrəsi, həmyaşıdlarını görməmək, onları yenidən işə salmaq və həmyaşıdları eyni məntiqə əməl etdikdə yalnız yenidən yükləmək üçün bərpaya başlamaqdır.

Dissosiasiya ilə bağlı problem ondan ibarətdir ki, ən çox istifadə olunan cihazlar bərpa üçün hədəf almaq istədiyimiz eyni uğursuzluq hadisələri səbəbindən əlçatmaz olur. Əksər IPMI və iLO kartları nəzarət etdikləri hostlarda quraşdırılır və defolt olaraq eyni şəbəkədən istifadə edirlər ki, bu da hədəf hostların digər hostların oflayn olduğuna inanmasına səbəb olur.

Təəssüf ki, avadanlığın alınması zamanı IPMI və iLo cihazlarının işləmə xüsusiyyətləri nadir hallarda nəzərə alınır.

Dolayı dissosiasiya

Kvorum dolayı dissosiasiyanı idarə etmək üçün də vacibdir; düzgün aparılarsa, kvorum sağ qalanlara müəyyən müddətdən sonra itirilmiş qovşaqların təhlükəsiz vəziyyətə keçəcəyini güman etməyə imkan verə bilər.

Bu konfiqurasiya ilə, kvorum itirilmədikdə, aparat nəzarətçi taymeri hər N saniyədən bir sıfırlanır. Taymeri (adətən bir neçə dəfə N) müddəti başa çatarsa, o zaman cihaz qeyri-rəsmi enerjini dayandırır (bağlanmır).

Bu yanaşma çox effektivdir, lakin kvorum olmadan onu idarə etmək üçün klaster daxilində kifayət qədər məlumat yoxdur. Şəbəkənin kəsilməsi ilə həmyaşıd qovşağının nasazlığı arasındakı fərqi söyləmək asan deyil. Bunun vacib olmasının səbəbi, iki hal arasında fərq qoyma qabiliyyəti olmadan hər iki halda eyni davranışı seçmək məcburiyyətində qalmağınızdır.

Bir rejimi seçməklə bağlı problem, mövcudluğu maksimuma çatdıran və məlumat itkisinin qarşısını alan heç bir hərəkət kursunun olmamasıdır.

  • Əgər siz həmyaşıd qovşağının aktiv olduğunu, lakin əslində uğursuz olduğunu fərz etməyi seçsəniz, klaster uğursuz həmyaşıd qovşağından xidmətlərin itkisini kompensasiya etmək üçün işləyəcək xidmətləri lazımsız olaraq dayandıracaq.
  • Əgər siz bir qovşağın işləmədiyini güman etmək qərarına gəlsəniz, lakin bu, sadəcə bir şəbəkə nasazlığı idi və əslində uzaq qovşaq işləkdirsə, onda ən yaxşı halda əldə edilən məlumat dəstlərinin gələcək əl ilə uzlaşdırılması üçün qeydiyyatdan keçmisiniz.

Hansı evristik istifadə etməyinizdən asılı olmayaraq, hər iki tərəfin uğursuzluğuna səbəb olacaq və ya klasterin sağ qalan qovşaqları bağlamasına səbəb olacaq bir uğursuzluq yaratmaq mənasızdır. Kvorumdan istifadə etməmək klasteri öz arsenalındakı ən güclü vasitələrdən birindən həqiqətən məhrum edir.

Əgər başqa alternativ yoxdursa, ən yaxşı yanaşma əlçatanlığı qurban verməkdir (burada müəllif CAP teoreminə istinad edir). Zədələnmiş məlumatların yüksək əlçatanlığı heç kimə kömək etmir və müxtəlif məlumat dəstlərini əl ilə tutuşdurmaq da əyləncəli deyil.

Yetərsay

Kvorum əla səslənir, elə deyilmi?

Yeganə mənfi cəhət odur ki, onu N üzvü olan bir klasterdə əldə etmək üçün qalan qovşaqlarınızın N/2+1 arasında əlaqə olmalıdır. Hansı ki, bir node uğursuz olduqdan sonra iki node klasterində mümkün deyil.

Bu, nəticədə bizi iki qovşaqla bağlı əsas problemə gətirir:
İki node klasterində kvorum mənasızdır və onsuz əlçatanlığı maksimuma çatdıran və məlumat itkisinin qarşısını alan fəaliyyət kursunu etibarlı şəkildə müəyyən etmək mümkün deyil.
Krossover kabellə birləşdirilmiş iki qovşaqdan ibarət sistemdə belə, şəbəkənin kəsilməsi ilə digər qovşağın nasazlığını qəti şəkildə ayırd etmək mümkün deyil. Bir ucunun söndürülməsi (ehtimal, əlbəttə ki, qovşaqlar arasındakı məsafəyə mütənasibdir) əlaqənin sağlamlığının tərəfdaş düyününün sağlamlığına bərabər olduğu hər hansı bir fərziyyəni ləğv etmək üçün kifayət edəcəkdir.

İki qovşaqlı klasterin işlənməsi

Bəzən müştəri üçüncü node ala bilmir və ya almaq istəmir və biz alternativ axtarmağa məcbur oluruq.

Seçim 1 - Dublikat dissosiasiya üsulu

Düyünün iLO və ya IPMI cihazı uğursuzluq nöqtəsini təmsil edir, çünki uğursuz olarsa, sağ qalanlar qovşağı təhlükəsiz vəziyyətə gətirmək üçün ondan istifadə edə bilməzlər. 3 və ya daha çox qovşaqdan ibarət çoxluqda kvorumu hesablamaq və aparat nəzarətçisindən (əvvəllər müzakirə edildiyi kimi dolayı disassosiasiya mexanizmi) istifadə etməklə bunu azalda bilərik. İki qovşaq vəziyyətində, bunun əvəzinə şəbəkə enerji paylama vahidlərindən (PDU) istifadə etməliyik.

Uğursuzluqdan sonra sağ qalan şəxs ilkin olaraq ilkin dissosiasiya cihazı ilə əlaqə saxlamağa çalışır (yerləşdirilmiş iLO və ya IPMI). Bu uğurlu olarsa, bərpa həmişəki kimi davam edir. Yalnız iLO/IPMI cihazı uğursuz olarsa, PDU-ya daxil olur; giriş uğurlu olarsa, bərpa davam edə bilər.

PDU-nu klaster trafikindən fərqli bir şəbəkəyə yerləşdirdiyinizə əmin olun, əks halda bir şəbəkə nasazlığı həm dissosiasiya cihazlarına girişi bloklayacaq və həm də xidmətlərin bərpasını bloklayacaq.

Burada soruşa bilərsiniz - PDU yeganə uğursuzluq nöqtəsidirmi? Bunun cavabı, əlbəttə ki, belədir.

Bu risk sizin üçün əhəmiyyətlidirsə, siz tək deyilsiniz: hər iki qovşağı iki PDU-ya qoşun və klaster proqram təminatına qovşaqları yandırarkən və söndürərkən hər ikisindən istifadə etməsini söyləyin. Bir PDU ölərsə, klaster indi aktiv olaraq qalır və bərpanı bloklamaq üçün digər PDU və ya IPMI cihazının ikinci nasazlığı tələb olunacaq.

Seçim 2 - Arbitr əlavə etmək

Bəzi ssenarilərdə dublikat dissosiasiya metodu texniki cəhətdən mümkün olsa da, siyasi baxımdan çətindir. Bir çox şirkətlər administratorlar və proqram sahibləri arasında müəyyən fərqlər olmasını xoşlayır və təhlükəsizlik baxımından şüurlu şəbəkə administratorları PDU giriş parametrlərini heç kimlə bölüşməkdə həmişə həvəsli deyillər.

Bu halda tövsiyə edilən alternativ kvorum hesablamasını tamamlaya bilən neytral üçüncü tərəf yaratmaqdır.

Bir nasazlıq halında, xidmətləri bərpa etmək üçün bir qovşaq öz həmyaşıdının və ya arbitrinin efir dalğalarını görə bilməlidir. Əgər hər iki qovşaq arbitri görə bilir, lakin bir-birini görə bilmirsə, arbitr də əlaqəni kəsmə funksiyasını ehtiva edir.

Bu seçim, həmyaşıdları və arbitr qovşağı ilə əlaqəni itirdikdə maşını öldürmək üçün konfiqurasiya edilmiş aparat nəzarətçisi taymeri kimi dolayı disassosiasiya üsulu ilə birlikdə istifadə edilməlidir. Beləliklə, sağ qalan şəxs, texniki nəzarət taymerinin müddəti bitdikdən sonra həmyaşıd qovşağının təhlükəsiz vəziyyətdə olacağını güman edə bilər.

Arbitrlə üçüncü qovşaq arasındakı praktik fərq ondan ibarətdir ki, arbitr işləmək üçün daha az resurs tələb edir və potensial olaraq birdən çox klasterə xidmət edə bilər.

Variant 3 - İnsan amili

Son yanaşma, sağ qalanların artıq işlətdikləri xidmətləri işə davam etdirmələri, lakin problem öz-özünə həll olunana qədər (şəbəkə bərpası, qovşağın yenidən başlaması) və ya şəxs qarşı tərəfin öldüyünü əl ilə təsdiqləmək üçün məsuliyyət daşıyana qədər yeni xidmətlərə başlamamasıdır.

Bonus seçimi

Üçüncü node əlavə edə biləcəyinizi qeyd etdimmi?

İki rəf

Mübahisə naminə, elə tutaq ki, mən sizi üçüncü düyünün məziyyətlərinə inandırmışam, indi qovşaqların fiziki düzülüşünə nəzər salmalıyıq. Əgər onlar eyni rəfdə yerləşdirilibsə (və güclə təchiz olunubsa), bu, həm də SPoF-ni təşkil edir və ikinci rəf əlavə etməklə həll edilə bilməz.

Əgər bu təəccüblüdürsə, iki qovşaqdan ibarət rack uğursuz olarsa nə baş verəcəyini və sağ qalan qovşağın bununla şəbəkə çatışmazlığını necə fərqləndirəcəyini düşünün.

Qısa cavab budur ki, bu mümkün deyil və biz yenə də iki düyünlü işdəki bütün problemlərlə məşğul oluruq. Və ya sağ qalan:

  • kvoruma məhəl qoymur və şəbəkənin kəsilməsi zamanı bərpanı düzgün başlatmağa cəhd edir (dissosiasiyanı başa çatdırmaq imkanı fərqli bir hekayədir və PDU-nun iştirak edib-etməməsindən və onların hər hansı bir stendlə gücü paylaşıb bölüşməməsindən asılıdır) və ya
  • kvoruma hörmət edir və həmyaşıd qovşağı uğursuz olduqda vaxtından əvvəl əlaqəni kəsir

Hər halda, iki rəf birdən yaxşı deyil və qovşaqlar ya müstəqil enerji təchizatı almalı, ya da üç (və ya daha çox, neçə qovşaqdan asılı olaraq) rəflərə paylanmalıdır.

İki məlumat mərkəzi

Bu nöqtədə, artıq riskdən çəkinməyən oxucular fəlakətin bərpasını düşünmək istəyə bilərlər. Asteroid eyni məlumat mərkəzinə üç fərqli stendə yayılmış üç qovşaqımızla dəydikdə nə baş verir? Aydındır ki, pis şeylər, lakin ehtiyaclarınızdan asılı olaraq, ikinci bir məlumat mərkəzi əlavə etmək kifayət olmaya bilər.

Düzgün edilərsə, ikinci məlumat mərkəzi sizə (və ağlabatan olaraq) xidmətlərinizin və onların məlumatlarının müasir və ardıcıl surətini təqdim edir. Bununla belə, iki qovşaqlı, iki raflı ssenarilərdə olduğu kimi, sistemdə maksimum əlçatanlığı təmin etmək və korrupsiyanın (və ya məlumat dəstindəki uyğunsuzluqların) qarşısını almaq üçün kifayət qədər məlumat yoxdur. Üç qovşaq (və ya raf) olsa belə, onları yalnız iki məlumat mərkəzinə paylamaq, hər iki tərəfin ünsiyyət qura bilməyəcəyi (indi daha çox ehtimal olunan) hadisə baş verdikdə sistemi etibarlı şəkildə düzgün qərar qəbul edə bilmir.

Bu, ikili məlumat mərkəzi həllinin heç vaxt uyğun olmadığı anlamına gəlmir. Şirkətlər tez-tez bir insanın ehtiyat məlumat mərkəzinə keçmək üçün fövqəladə addım atmazdan əvvəl xəbərdar olmasını istəyirlər. Unutmayın ki, kəsilməni avtomatlaşdırmaq istəyirsinizsə, ya kvorum üçün üçüncü məlumat mərkəzinə ehtiyacınız olacaq (ya birbaşa və ya arbitr vasitəsilə), ya da bütün məlumatları etibarlı şəkildə bağlamaq üçün bir yol tapacaqsınız. Mərkəz.

Mənbə: www.habr.com

Добавить комментарий