Categories
Disaster Recovery

**

DevOps ingeniarientzat, Datu-baseen Administratzaileentzat (DBA) eta IT sistemen arkitektoentzat, Berreskuratze Denboraren Helburua (RTO) eta Berreskuratze Puntuaren Helburua (RPO) negozioaren jarraitutasunari buruzko hitz hutsak baino gehiago dira; ingeniaritza-murrizketa zorrotzak dira. Misioarentzat kritikoak diren datu-baseak kudeatzean, metrika horiek zehaztasunez kalkulatu, arkitekturaz diseinatu eta balioztatu ezean, datuen galera katastrofikoa eta geldialdi luzeak eragin daitezke.

Enpresa-ingurune modernoetan, RTO eta RPO kalkulatzeak datu-baseen barne-funtzionamenduaren, biltegiratzearen I/O-aren, sarearen throughput-aren eta transakzio-erregistroen mekaniken ulermen sakona eskatzen du. Gida honek produkzio-datu-base sistemetarako RTO eta RPO kalkulatzeko, probatzeko eta optimizatzeko metodologia teknikoak aztertzen ditu.

RPO (Berreskuratze Puntuaren Helburua) Datu-base Sistemetan Desegiten

RPOk denboran neurtutako datu-galera onargarriaren gehienezko kopurua definitzen du. Zure RPOa 15 minutukoa bada, 12:00etan gertatzen den hondamendi batek esan nahi du 11:45era arte egindako transakzio guztiak berreskuratu ahal izan behar dituzula.

Datu-baseetarako, RPOa zure transakzio-erregistroak kudeatzeko estrategiak zehazten du (WAL PostgreSQL-n, Redo Logs Oracle-n, Transaction Logs SQL Server-en).

Datu-galeraren eta Erregistro-sorkuntzaren Mekanikak

Lortu daitekeen RPOa kalkulatzeko, lehenik eta behin zure datu-basearen transakzio-erregistroen sorkuntza-tasa ulertu behar duzu. Erregistroak 15 minuturo babeskopia-biltegi batera bidaltzen ari bazara, baina zure sareak ezin baditu 15 minutuko erregistroak leiho horretan transferitu, zure benetako RPOa etengabe degradatuko da.

Zure erregistroen sorkuntza-tasa oinarri dezakezu SQL komando natiboak erabiliz. Adibidez, PostgreSQL-n (10. bertsioa edo berriagoa), Write-Ahead Log (WAL) sorkuntza-tasa tarte zehatz batean neur dezakezu:

-- Exekutatu hau T=0 denean
SELECT pg_current_wal_lsn() AS start_lsn;

-- Itxaron zehazki 5 minutu (300 segundo), ondoren exekutatu:
SELECT pg_current_wal_lsn() AS end_lsn,
       pg_size_pretty(pg_wal_lsn_diff(pg_current_wal_lsn(), 'START_LSN_VALUE')) AS wal_generated_size,
       pg_wal_lsn_diff(pg_current_wal_lsn(), 'START_LSN_VALUE') / 300 AS bytes_per_second;

Kontsulta honek karga handieneko unean 50 MB/s-ko WAL datuak sortzen ari zarela erakusten badu, 15 minutuko RPO batek 45 GB-ko erregistro-datu transferitzea eskatzen du zure babeskopia-biltegira. Zure sareak eta biltegiratze-helburuek 50 MB/s baino gehiagoko idazketa-abiadura iraunkorrak onartu behar dituzte RPO horri eusteko.

Erreplikazio Sinkronikoaren vs. Asinkronikoaren Eragina

DBA askok Erabilgarritasun Handiko (HA) erreplikazioan oinarritzen dira RPOa betetzeko. Hala ere, erreplikazioa ez da babeskopia bat. Ezabatutako taula bat (DROP TABLE users;) berehala erreplikatzen da.

Hondamendiak Berreskuratzeko (DR) erreplikazioa erabiltzean, erreplikazio-moduak zuzenean eragiten dio RPOari:
* Erreplikazio Sinkronikoa: Zero RPO bermatzen du (RPO=0). Datu-base nagusiak ez du transakziorik konprometituko standby-ak jaso duela baieztatu arte. Trukean, idazketa-eragiketa nagusietan latentzia handiagoa izaten da.
* Erreplikazio Asinkronikoa: Erreplikazio-atzerapena sartzen du. Zure RPOa zure uneko erreplikazio-atzerapenaren berdina da, funtsean.

PostgreSQL-n erreplikazio asinkronikoaren atzerapena kontrolatzeko, erabili hau:

SELECT application_name,
       client_addr,
       state,
       sync_state,
       pg_wal_lsn_diff(pg_current_wal_lsn(), replay_lsn) AS replication_lag_bytes
FROM pg_stat_replication;

RTO (Berreskuratze Denboraren Helburua) Eskala Handiko Datu-baseetarako Desegiten

RTO geldialdi-denboraren gehieneko iraupen onargarria da. Datu-basearen RTOa kalkulatzea oso konplexua da, ez baita fitxategiak zerbitzari batera kopiatzeko behar den denbora soilik.

RTO Kalkulurako Eredu Matematikoa

Datu-basearen RTO kalkulu errealista batek lau fase bereizi kontuan hartu behar ditu:

RTO = T(infra) + T(transfer) + T(restore) + T(recovery)

  1. T(infra) – Azpiegitura Hornitzea: Ordezko konputazioa eta biltegiratzea martxan jartzeko denbora. (Ia zero izan daiteke aurrez hornitutako DR guneekin edo Infrastructure-as-Code kanalizazioekin).
  2. T(transfer) – Datuen Transferentzia: Babeskopiaren karga biltegitik datu-basearen zerbitzarira mugitzeko denbora.
  3. T(restore) – Berreskuratze Fisikoa: Datu-fitxategiak helburuko diskora idazteko denbora.
  4. T(recovery) – Datu-basearen Hutsegiteen Berreskurapena: Datu-basearen motorrak transakzio-erregistroak berriro erreproduzitzeko, konprometitutako transakzioak aurrera eramateko eta konprometitu gabekoak atzera botatzeko behar duen denbora.

Transferentzia eta Berreskuratze Denborak Kalkulatzen

T(transfer) eta T(restore) kalkulatzeko, zure sarearen banda-zabalera eta diskoaren IOPS/throughput-a oinarritu behar dituzu. Ez fidatu gehieneko teorikoez; probatu zure benetako azpiegitura.

Erabili iperf3 zure babeskopia-biltegiaren eta datu-basearen zerbitzariaren arteko sarearen throughput-a probatzeko:

# Babeskopia-biltegian (zerbitzaria)
iperf3 -s

# Datu-basearen zerbitzarian (bezeroa)
iperf3 -c <backup_repo_ip> -t 60 -P 4

Erabili fio zure datu-basearen biltegiratze-bolumenen sekuentziazko idazketa-errendimendua probatzeko, datu-basea berreskuratzeko eragiketa bat simulatuz:

fio --name=restore_sim --ioengine=libaio --rw=write --bs=1M --size=10G --numjobs=4 --iodepth=32 --direct=1 --filename=/var/lib/postgresql/data/testfile

Zure datu-basea 5 TB-koa bada eta zure fio probek 500 MB/s-ko gehienezko idazketa-abiadura iraunkorra erakusten badute, zure T(restore) minimo absolutua gutxi gorabehera 2,8 ordukoa da. Zure negozioaren SLAk 1 orduko RTOa eskatzen badu, streaming bidezko berreskuratze tradizionalek huts egingo dute. Zure arkitektura biltegiratze-mailako snapshot-etara edo bloke-mailako erreplikaziora bideratu behar duzu.

Tranpa Ezkutua: T(recovery)

Maiz gutxiesten den aldagaia T(recovery) da. Asteko babeskopia osoa berreskuratzen baduzu eta zure RPOra iristeko 6 eguneko transakzio-erregistroak aplikatu behar badituzu, datu-basearen motorrak transakzio bakoitza sekuentzialki erreproduzitu behar du.

500 GB-ko transakzio-erregistroak erreproduzitzeak orduak iraun ditzake, CPUaren hari bakarreko errendimenduak eta diskoaren IOPS-ek erabat mugatuta. T(recovery) minimizatzeko, handitu zure babeskopia osoen edo diferentzialen maiztasuna.

Hutsunea Betetzen: RTO eta RPO Balioztatzeko Urrats Praktikoak

RTO eta RPO teorikoak kalkulatzea lehen urratsa baino ez da. Misioarentzat kritikoak diren inguruneek etengabeko balioztapena eskatzen dute.

1. Urratsa: Artxibatze Etengabea Ezartzea

Minutu azpiko RPOak lortzeko, erreplikazio sinkronikoaren errendimendu-galerarik gabe, ezarri erregistroen artxibatze etengabea. Erregistro-fitxategi bat bete arte itxaron beharrean (trafiko gutxiko garaietan orduak iraun dezakeena), behartu erregistro-aldaketak tarte erregularretan.

SQL Server-en, Transakzio-erregistroen babeskopia maiz automatiza ditzakezu:

BACKUP LOG [MissionCriticalDB] 
TO DISK = N'\BackupRepoSQLMissionCriticalDB_Log.trn' 
WITH NOFORMAT, NOINIT, 
NAME = N'MissionCriticalDB-Transaction Log Backup', 
SKIP, NOREWIND, NOUNLOAD, COMPRESSION, STATS = 10;

Jardunbide Egokia: Programatu lan hau 1-5 minuturo exekutatzeko, zure RPO eskakizunen arabera.

2. Urratsa: Berreskuratze Probak Automatizatzea

Probatu gabeko babeskopia kontzeptu teoriko bat besterik ez da. Kalkulatutako RTOa bermatzeko, berreskuratze-probak automatizatu behar dituzu.

CloudSave bezalako enpresa-babeskopia plataformek hau errazten dute, berreskuratze-probak automatizatu eta isolatuak eskainiz. CloudSave-k automatikoki sandbox ingurune bat abiarazi, azken babeskopia muntatu, datu-basearen berreskuratze osoa egin eta balioztapen-script pertsonalizatuak exekutatu ditzake (adibidez, DBCC CHECKDB SQL Server-erako) RTO zehatza neurtzeko eta datuen osotasuna bermatzeko. Honek RTO kalkulatutako asmakizun bat izatetik metrika frogatu eta erreportagarri bat izatera pasatzen du.

3. Urratsa: SLA Urraketak Kontrolatu eta Alerta Ezarri

Zure monitorizazio-pilak (Prometheus, Datadog, Zabbix) zure RTO/RPO SLAak mehatxatzen dituzten metrikak aktiboki jarraitu behar ditu. Alerta-arauak honetarako konfiguratu behar dira:
* Babeskopia-lanen Hutsegiteak: RPOrako berehalako mehatxua.
* Erregistroak Bidaltzeko Latentzia: Erregistroen transferentziak sorkuntza-tarteak baino denbora gehiago hartzen badu.
* Biltegiratze IOPS-en Mugatzea: Hodeiko hornitzaileek (AWS EBS bezalakoak) IOPS-ak mugatzen dituzte burst-kredituak agortzen badira, eta horrek zure RTOa isilpean suntsituko du benetako larrialdi batean.

Datu-baseen Babeskopia Arkitektura Optimizatzea SLA Zorrotzak Betetzeko

Kalkulu matematikoek zure uneko arkitekturak negozioaren SLAak bete ezin dituela erakusten dutenean, zure babeskopia-estrategia optimizatu behar duzu.

1. Bloke-mailako Babeskopia Gehigarriak Erabili

Datu-baseen dump tradizionalak (babeskopia logikoak, pg_dump edo mysqldump bezalakoak) oso motelak dira misioarentzat kritikoak diren RTOetarako. Erabili babeskopia fisikoak eta bloke-mailakoak. Bloke-mailako babeskopia gehigarriek azken babeskopiatik aldatu diren disko-blokeak soilik kopiatzen dituzte, T(transfer) eta sarearen gainkarga nabarmen murriztuz.

2. Biltegiratze Snapshot-ak Erabili

15 minutu baino gutxiagoko RTOa behar duten terabyte anitzeko datu-baseetarako, fitxategiak kopiatzea fisikoki ezinezkoa da sare estandarretan. SAN edo hodeiko biltegiratze-snapshot-ekin (adibidez, AWS EBS Snapshots, Pure Storage) integratzeak T(restore) ia berehalakoa izatea ahalbidetzen du. Datu-basearen motorrak snapshot-ean hutsegiteen berreskurapena soilik egin behar du.

3. Paralelismoa Ezartzea

Ziurtatu zure babeskopia eta berreskuratze tresnek hari anitzeko prozesamendua erabiltzen dutela. PostgreSQL datu-base bat pgbackrest erabiliz edo SQL Server datu-base bat berreskuratzean, definitu esplizituki langile-hari paraleloak zure sarearen eta diskoaren banda-zabalera eskuragarria asetzeko.

# pgBackRest-en berreskuratze paraleloaren adibidea
pgbackrest --stanza=prod_db --process-max=8 restore

Ondorioa

Misioarentzat kritikoak diren datu-baseetarako RTO eta RPO kalkulatzea sistemen ingeniaritzako ariketa zorrotza da. DBAei eskatzen die babeskopia-konfigurazio lehenetsietatik haratago joatea eta beren biltegiratze I/O, sarearen edukiera eta datu-basearen berreskuratze-mekanikak matematikoki modelatzea.

Erregistroen sorkuntza-tasak oinarrituz, datu-basearen berreskurapenaren fase bereiziak ulertuz eta CloudSave bezalako plataforma sendoen bidez proba automatizatuak ezarriz, IT taldeek konfiantzaz bermatu ditzakete hondamendiak berreskuratzeko SLAak. Gogoratu: datu-baseen administrazioaren eremuan, itxaropena ez da estrategia bat, eta probatu gabeko babeskopiak erantzukizun bat dira.

Ikasi DevOps ingeniariek eta DBAek nola kalkulatu, probatu eta optimizatu ditzaketen RTO eta RPO misioarentzat kritikoak diren datu-baseetarako, berreskuratze-mekanika aurreratuak, CLI tresnak eta proba automatizatuak erabiliz.