Puncte:0

Este posibilă abstracția generică de înaltă disponibilitate pentru aplicare?

drapel in
Rob

În prezent, examinez posibilitățile de a face aplicația noastră server existentă foarte disponibilă. Software-ul gestionează mesajele care vin prin UDP resp. unele protocoale de nivel superior specifice căilor ferate.

Există o modalitate (un cadru sau similar) de a crea un strat de abstractizare care are grijă de redundanță și failover? Mă gândesc la ceva echivalent cu un controller RAID cu mirroring, dar nu doar pentru stocare, ci pentru întregul sistem. Din „exterior”, vezi un singur sistem cu interfețele sale de rețea. Pe plan intern, există două sau chiar mai multe sisteme care rulează în paralel, iar stratul de abstractizare se ocupă de tot, de ex. sincronizarea stării aplicației între mașinile redundante. Îți instalezi software-ul la capătul public al cutiei negre și în interior totul este oglindit automat. Când o mașină moare, cealaltă preia instantaneu controlul fără a întrerupe conexiunile, deoarece este deja în aceeași stare.

Există vreo soluție generică pentru asta? Sau trebuie să implementăm acest lucru manual în aplicația noastră?

Zac67 avatar
drapel ru
Nu există o soluție unică pentru asta. Duplicarea unui server web de livrare de conținut nu este foarte dificilă, HA grupând o bază de date + un server de aplicații cu atât mai mult, mai ales când nu există deja un design.Întrebarea dvs. ar trebui să intre mult mai în detaliu pentru a găsi răspunsuri cu adevărat utile: sistem de operare, sistem de stocare, metode de stocare (db, fișier plat, bazat pe tranzacții, ...), protocoale de rețea în uz, întârziere maximă de failover, maxim tolerat pierderi de date, dacă virtualizarea este deja utilizată și care, infrastructura care ar putea fi utilizată,...
Puncte:1
drapel nr

Pacemaker, Corosync și DRBD sunt proiecte Linux care oferă un „Open Cluster Framework” (OCF), pentru realizarea de servicii Linux generice HA.

În mod obișnuit, DRBD replică sincron stocarea (la nivel de bloc), în timp ce Corosync și Pacemaker gestionează ce noduri rulează ce servicii în cluster. Serviciile pot fi controlate prin agenții de resurse OCF (scripturi shell cu coduri și funcții standard de ieșire) sau prin scripturile systemd/upstart/sysv-init ale serviciului. Există, de asemenea, agenți generici „orice” care pot genera și monitoriza procesele din cluster, dar i-aș folosi doar dacă vă simțiți foarte leneș, deoarece nu este robust.

Una dintre cele mai simple și mai transparente modalități de a obține HA generic este utilizarea Pacemaker și DRBD pentru a crea un cluster KVM. În cazul în care VM-ul are aplicația dvs. configurată și a pornit la pornire, iar Pacemaker/DRBD gestionează clusteringul de dedesubt (pe hypervisor).

Există o mulțime de resurse online care explică pașii detaliați dacă căutați pe Google, dar LINBIT are un ghid tehnologic (în spatele unui softwall) care urmărește configurarea: https://linbit.com/tech-guide/drbd9-kvm-rhel8/

Mai multe referințe:
DRBD: https://linbit.com/
Stimulator/Corosync: https://clusterlabs.org/

Rob avatar
drapel in
Rob
Mulțumesc, Matt! Sună promițător, o să mă uit mai atent la asta.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.