Sari la conținut
Cloud și date

Replicarea datelor: cum rămân identice copiile de pe mai multe servere

Replicarea datelor: cum rămân identice copiile de pe mai multe servere

TL;DR

Replicarea înseamnă că aceleași date sunt păstrate în timp real pe mai multe servere, astfel încât serviciul să continue dacă unul dintre ele se defectează. Poate fi sincronă, mai sigură dar mai lentă, sau asincronă, mai rapidă dar cu un mic decalaj. Nu înlocuiește backup-ul, fiindcă și o ștergere greșită se copiază peste tot.

Replicarea datelor este procesul prin care aceeași informație este copiată automat și continuu pe mai multe servere sau în mai multe locuri. Scopul este simplu: dacă o mașină se defectează, o alta are deja datele și poate prelua sarcina fără ca utilizatorii să observe prea mult. Este unul dintre mecanismele prin care serviciile mari rămân disponibile aproape tot timpul.

Ideea seamănă cu ținerea unui document important în mai multe birouri, cu regula ca fiecare modificare să fie transmisă tuturor. Greutatea apare în felul în care se face această transmitere.

De ce se replică datele

Replicarea răspunde la câteva nevoi concrete:

  • Disponibilitate. Dacă un server cade, altul preia cererile. Este baza noțiunilor discutate în articolul despre disponibilitate, SLA și zone.
  • Viteză. Copiile aflate aproape de utilizatori răspund mai repede, iar citirile pot fi împărțite între mai multe servere.
  • Rezistență la dezastre. O copie păstrată în altă locație supraviețuiește unui incendiu, unei inundații sau unei pene majore într-un centru de date.
  • Mentenanță fără oprire. Un server poate fi oprit pentru actualizare, în timp ce altul continuă să lucreze.

Aceste avantaje sunt folosite pe scară largă în cloud, unde datele se află în centre de date distribuite geografic.

Cum funcționează, pe scurt

Cea mai comună schemă are un server principal, numit și primar, care primește scrierile, și unul sau mai multe servere secundare, care copiază modificările. Primarul păstrează un jurnal al schimbărilor, iar secundarele îl citesc și îl aplică în aceeași ordine. În alte arhitecturi, mai multe servere pot primi scrieri în același timp, ceea ce crește flexibilitatea, dar și riscul de conflicte.

Dacă primarul se defectează, un secundar este promovat în locul lui, proces numit comutare automată (failover). Detaliile variază între sisteme, dar principiul rămâne același.

Replicare sincronă și asincronă

Aici apare cel mai important compromis.

Tip Cum se confirmă o scriere Avantaj Dezavantaj
Sincronă După ce toate copiile au primit modificarea Copiile sunt identice Mai lentă, depinde de cea mai înceată copie
Asincronă Imediat, copiile se actualizează după Rapidă La o defecțiune se pot pierde ultimele modificări

La replicarea sincronă, aplicația așteaptă confirmarea tuturor copiilor, deci nu pierzi nimic dacă un server cade. Prețul este timpul de așteptare, mai ales dacă serverele sunt departe unul de altul, fiindcă intră în joc latența rețelei. Replicarea asincronă este mai rapidă, dar copiile pot rămâne în urmă cu o fracțiune de secundă.

Replicarea datelor: cum rămân identice copiile de pe mai multe servere

Consecvența: când copiile nu sunt identice în aceeași clipă

Cu replicarea asincronă apare un fenomen numit consecvență eventuală. Pentru un scurt interval, un utilizator poate citi dintr-o copie care nu a primit încă ultima modificare. Pentru multe aplicații, de exemplu numărul de aprecieri la o postare, acest lucru nu contează. Pentru altele, precum soldul unui cont, contează mult, de aceea se aleg configurații mai stricte.

Alegerea nu este doar tehnică. Se pune întrebarea cât de gravă este o informație ușor depășită și cât de mult ești dispus să plătești în viteză pentru a o evita. Sistemele moderne permit adesea setarea nivelului de consecvență pentru fiecare operație în parte, iar modul în care se face acest lucru ține de tipul bazei, un subiect atins și în articolul despre SQL și NoSQL.

Replicarea nu este backup

Este una dintre confuziile cele mai frecvente și cele mai costisitoare. Replicarea copiază tot ce se întâmplă, inclusiv greșelile. Dacă cineva șterge din greșeală un tabel sau dacă un program corupe datele, modificarea se propagă imediat pe toate copiile. La fel se întâmplă cu un virus de tip ransomware, care criptează fișierele și pe cele replicate.

Un backup, în schimb, este o copie făcută la un moment dat, păstrată separat, la care te poți întoarce. De aceea cele două se completează. Principiile unui backup serios sunt prezentate în articolul despre regula 3-2-1, iar despre riscul criptării datelor poți citi în articolul despre ransomware.

Replicarea pentru utilizatorul obișnuit

Fără să știi, folosești replicarea frecvent. Fișierele din serviciile de stocare online sunt păstrate în mai multe locuri, după cum se vede în articolul despre stocarea în cloud. Sincronizarea între telefon și laptop este o formă simplificată a aceleiași idei, discutată la sincronizarea datelor. Dacă ai o afacere mică, merită să întrebi furnizorul ce tip de replicare oferă și unde se află copiile, mai ales dacă datele sunt sensibile.

Ce merită reținut despre replicarea datelor

  • Replicarea păstrează aceleași date pe mai multe servere, pentru disponibilitate și viteză.
  • Un server primar primește scrierile, iar cele secundare copiază modificările.
  • Replicarea sincronă este mai sigură, dar mai lentă; cea asincronă este rapidă, dar cu risc de decalaj.
  • Consecvența eventuală înseamnă că, pentru o scurtă perioadă, copiile pot diferi.
  • Replicarea nu înlocuiește backup-ul, pentru că greșelile se copiază și ele.

Întrebări frecvente

Care este diferența dintre replicare și backup?

Replicarea menține copii actualizate permanent, pentru continuitate. Backup-ul este o copie dintr-un moment anume, păstrată separat, care te ajută să revii la o stare anterioară.

Ce se întâmplă dacă serverul principal cade?

Un server secundar este promovat în rol de principal, de obicei automat. Dacă replicarea era asincronă, ultimele modificări pot lipsi.

Replicarea face site-ul mai rapid?

Poate ajuta, pentru că citirile se pot împărți între copii sau pot fi servite din locații apropiate. Scrierile, în schimb, pot deveni mai lente la replicarea sincronă.

Câte copii sunt necesare?

Depinde de cât de critic este serviciul. Mulți furnizori folosesc cel puțin trei copii, în locuri diferite, dar numărul se stabilește după cerințele aplicației.

Datele replicate sunt mai expuse riscurilor?

Mai multe copii înseamnă mai multe locuri de protejat. Ele trebuie securizate la fel, prin criptare și control al accesului, iar pentru date sensibile merită sfatul unui specialist.