Bekaplar va disaster recovery
Backaplar va Disaster Recovery
1) Ta’riflar va maqsadlar
Bekap - keyinchalik tiklash uchun ma’lumotlar/konfiguratsiyalarning kelishilgan nusxasi (tasodifiy o’chirib tashlashlardan, xatolardan, kriptolokerlardan, halokatlardan).
DR (Disaster Recovery) - yirik avariyadan (yong’in, mintaqani yo’qotish, ommaviy buzilish) so’ng infratuzilma/xizmatlarni SLO ishchilarigacha tiklash jarayoni.
RPO (Recovery Point Objective) - ma’lumotlarning ruxsat etilgan maksimal vaqt yo’qotishi (masalan, 15 daqiqa).
RTO (Recovery Time Objective) - servisni qayta tiklashning maqsadli vaqti (masalan, 30 daqiqa).
Asosiy tamoyil: replikatsiya ≠ bekap. Replikatsiya xatolarni va barcha nusxalarni shifrlashni tezda «yuvadi». Bekap - izolyatsiya qilingan, tekshirilgan, potensial o’zgarmas nusxa.
2) Ma’lumotlarni tasniflash va tanqidiylik darajalari
Aktivlarni sinflarga ajrating:- Tier-0 (hayotiy muhim): tranzaksion DB, to’lovlar, balanslarni hisobga olish, sirlar/PKI.
- Tier-1 (tanqidiy): xizmatlar konfigurasi, navbatlar, CI/CD artefaktlari, konteynerlar reyestrlari.
- Tier-2 (muhim): tahlillar, hisobotlar, ikkilamchi indekslar, log-arxivlar.
- Tier-3 (yordamchi): keshlar, vaqtinchalik maʼlumotlar (qayta tiklash orqali tiklash mumkin).
Har bir sinf uchun RPO/RTO, saqlash muddati, oʻzgaruvchanlik va joylashish talablarini belgilang.
3) Saqlash strategiyasi: 3-2-1-1-0 qoidasi
3 ta ma’lumotlar nusxasi (prd + 2 zaxira).
2 xil turdagi tashuvchilar/omborxonalar.
1 nusxa offsite (boshqa mintaqa/bulut).
1 immutable/air-gap (WORM/Object Lock/Tape).
Tiklashni tekshirishda 0 ta xato (muntazam testlar).
4) Bekap turlari
Full - toʻliq nusxa. Sekin/qimmat, lekin barcha strategiyalar uchun asos.
Incremental - har qanday oxirgi orqa fon bilan farq. Hajmi boʻyicha maqbuldir.
Differential - oxirgi full bilan farq. Tezroq tiklash, ko’proq joy.
Snapshot - jild/disk (EBS/ZFS/LVM). App-consistent snapshot (quiesce) kerak.
PITR (Point-in-Time Recovery) - aniq vaqtga/LSNga qaytish uchun bazaviy backap + jurnallar (WAL/binlog).
Obyekt/fayl/tasvir - ma’lumotlarning aniq turlari (VM-tasvirlar, S3-obyektlar, DB-damplar) uchun.
5) Bekaplarning muvofiqligi
Crash-consistent: to’satdan o’chirilgandan keyin bo’lgani kabi - stateless/jurnallashtiriladigan FS uchun mos keladi.
App-consistent: ilova operatsiyalarni «muzlatadi» (fsfreeze/pre-post scripts) → kafolatlangan yaxlitlik.
BD-konsistentlik: API orqa asbob (pgBackRest, XtraBackup), hot-backup rejimlari, nazorat nuqtalarini muzlatish.
6) Shifrlash, kalitlar va kirish
Barcha nusxalar uchun at-rest va in-transit shifrlash.
KMS/HSM kalitlari, siyosat bo’yicha rotatsiya (90/180 kun), atrofdagi alohida kalitlar.
Vazifalar bo’linishi: kim yaratadi/olib tashlaydi ≠ kim ularni ochib bera oladi/o’qiy oladi.
Shifrlash kalitlarini maqsadli nusxalar bilan bir xil ishonchli domenda saqlamang.
7) O’zgarmas nusxalar va ransomware dan himoya qilish
Object Lock/WORM (Compliance/Governance) retenshn va Legal Hold bilan.
Air-gap: izolyatsiyalangan/oflayn saqlash (lenta, oflayn bulut/akkaunt).
«Kechiktirilgan faollashtirish bilan» olib tashlash siyosati, MFA-Delete, backup-baketlar uchun alohida akkaunt, ommaviy kirishni taqiqlash.
Oʻrnatishdan oldin malware/indikatorlarni tekshirish.
8) Chastota, jadval va retenshn
GFS (Grandfather-Father-Son): kunduzgi inkrementallar, haftalik full/diff, uzoq saqlanadigan oylik full.
RPO inkrementallar va WAL/binlog arxivlashning chastotasini belgilaydi (masalan, har 5-15 daqiqada).
Saqlash: tanqidiy - 35-90 kundan ≥ + har oyda 12-36 oyga (yuridik talablar).
Mavsumiy cho’qqilar - alohida nazorat nuqtalari (aksiyalar/relizlar oldidan).
9) DR-modellar va ssenariylar
Active-Active: ikkala hudud ham trafikka xizmat qiladi. Minimal RTO, ma’lumotlarni buzish qat’iy nizolar siyosatini talab qiladi.
Active-Passive (issiq/issiq): issiq - kengaytirilgan va sinxronlashtirilgan (RTO daqiqalar), issiq - qisman tayyor (RTO soatlar).
Cold: nusxalarni va Terraform/Ansible/tasvirlarni saqlaymiz, so’rov bo’yicha ko’taramiz (RTO + sutka).
DRaaS: boshqa zonadagi VM/tarmoqlar/manzillarni provayder orkestrlash.
10) Feyloverni orkestrlash va tiklashning ustuvor yo’nalishlari
Ishga tushirish ustuvorligi: tarmoq/VPN/DNS → sirlar/KMS → bazalar/klasterlar → navbatlar/kesh → ilovalar → perimetr/CDN → analitika.
Avtomatlashtirish: skriptlar/Runbook harakatlari, Terraform/Ansible/Helm/ArgoCD DR muhit profillari.
Maʼlumotlar: DB PITR → reindex/replica → warm-kesh → sxemalarning mos kelishi bayroqlari bilan xizmatlarni ishga tushirish.
DNS/GSLB: oldindan TTL pasayishi, validatsiya bilan almashtirish stsenariylari.
11) Tiklash testlari (backup verification)
Jadval bo’yicha restore-testlar: N% bekaplarni tanlash, «qum qutisi» da joylashtirish, sxemalar/invariantlarni avtomatik tekshirish.
To’liq DR-drill (game-day): mintaqani/AZ o’chirish, jonli trafikda (yoki soyada) RTO/RPOni tekshirish.
Yaxlitlik testlari: xesh-kataloglar, nazorat summalari, barcha qatlamlarni oʻqishga urinish (full + chain).
Doc-hisobot: vaqt, qadamlar, anomaliyalar, maqsadlardan ajralish miqdori, tuzatishlar.
12) Asosiy texnologiyalar uchun amaliyot
Maʼlumotlar bazasi
PostgreSQL: base backup + WAL arxivi (PITR), pgBackRest/Barman asboblari; replikatsiya slotlari, nazorat’lsn’.
MySQL/MariaDB: Percona XtraBackup/Enterprise Backup, binlog arxivlash.
MongoDB: mantiqiy nusxa uchun’mongodump’+ katta toʻplamlar uchun snapshot; PITR uchun Oplog.
Redis: Kritik uchun RDB/AOF (agar Redis nafaqat kesh bo’lsa), lekin ko’pincha - avariyalar uchun manba + snapshot mantiqiy qayta qurish.
Kafka/Pulsar: meta maʼlumotlar (ZK/Kraft/BookKeeper), disklar snapshotlari, topik/log oynalari.
Kubernetes
resurslar/jildlar uchun etcd snapshot + Velero (CSI snapshots).
Secrets backup/PKI alohida (Vault snapshot).
Tasvirlarning alohida reyestri: artefaktlarni saqlash polislari (immutable tags).
VM va fayl tizimlari
ZFS:’zfs snapshot’+’zfs send | zstd | send-recv’inkrementlar bilan, tekshirish’scrub’.
LVM/EBS snapshotlar pre/post skriptlari bilan (app-consistent).
Obyekt ombori: + Object Lock versiyasi.
13) Bekaplar versiyalarini kataloglashtirish va nazorat qilish
Katalog (meta maʼlumotlar katalogi): nima, qachon, qachon, nima qilingan, xeshlar, KMS kaliti, egasi, saqlash muddati.
Метки/теги: `env=prod|stage`, `system=db|k8s|vm`, `tier=0|1|2`, `retention=35d|1y`.
«Oltin» nazorat nuqtalari (Gold): migratsiyalardan oldin/DDL/masshtabli relizlar.
14) Kuzatish va metrika
Topshiriqlarning muvaffaqiyati:% muvaffaqiyatli/muvaffaqiyatsiz, sabablari.
Bekap/tiklash vaqti, oynaning kengligi.
RPO-haqiqiy: jurnal arxivlari lagi (WAL/binlog) p95.
Yaxlitlik: tekshirilgan zanjirlar ulushi, xeshlarni solishtirishda xatolar.
Qiymati: sinflar bo’yicha saqlash hajmi, deduplikatsiya/siqilish koeffitsiyenti.
DR-tayyorlik: mashqlarning chastotasi va natijasi (pass/fail).
15) Foydalanish siyosati va komplayens
Bekap-omborlar uchun alohida hisob yozuvlari/loyihalar; NaC printsipi bo’yicha kirish (prod-hisoblardan olib tashlashga/shifrlashga yo’l qo’ymaymiz).
Kirish/o’zgartirish daftarlari (audit trail), ommaviy o’chirish/o’zgartirish alertlari retenshna.
Normalarga muvofiqlik: GDPR (olib tashlash huquqi vs arxivlar), PCI DSS (shifrlash, kalitlar, segmentatsiya), lokal regulyatorlar.
16) Anti-patternlar
«Replika bor, demak, orqaga qaytish kerak emas».
Hech qanday immutable/air-gap: bitta xato/zararli vosita hamma narsani o’chirib tashlaydi.
Prod bilan bir xil hisobdagi/mintaqadagi bekaplar.
Hech qachon tiklanishni tekshirmang («tekshirishdan oldin o’lgan»).
Baxtsiz hodisa haqida maʼlumot yoʻq.
Hamma muhit uchun umumiy shifrlash kalitlari.
DB uchun app-consistent rejimisiz snapshotlar.
Bekap oynasi choʻqqilar bilan kesishadi (p99 va SLOga taʼsir qiladi).
17) Joriy etish chek-varaqasi (0-60 kun)
0-10 kun
Tizimlar/ma’lumotlarni xatlovdan o’tkazish, tanqidiylik klasslari.
Sinflar boʻyicha RPO/RTO maqsadlarini belgilash.
Tier-0/1 uchun full + incremental, WAL/binlog arxivini yoqish.
Manba: Alohida region/akkaunt + KMS shifrlashni yoqish.
11-30 kun
Tanqidiy nusxalar uchun immutable (Object Lock/WORM) ni moslash.
Kataloglashtirish, teglar, hisobotlarni joriy etish; muvaffaqiyatsizlikka uchragan alertlar va jurnallar orqasi.
Birinchi DR-drill: izolyatsiya qilingan muhitda bekapdan alohida xizmatni tiklash.
31-60 kun
Runbook: Terraform/Ansible/Helm DR profillarini avtomatlashtirish.
Muntazam restore-testlar (hafta/oy) + choraklik full DR stsenariysi.
Qiymatni optimallashtirish: depuplikatsiya/siqish/saqlash hayotiy sikllari.
18) Etuklik metrikasi
Restore-testlar: ≥ uchun 1/hafta Tier-0 (tanlab), 1/oy ≥ - to’liq stsenariy.
Immutable coverage для Tier-0/1 = 100%.
RPO-haqiqiy p95 maqsadli ≤ (masalan, ≤ 15 min).
Maqsadli ≤ DR-mashqlarida RTO-haqiqiy (masalan, 30 daqiqadan ≤).
Katalog-komplitligi = 100% (har bir bekap tavsiflangan va tekshirilgan).
Incident-to-restore: aniqlashdan tiklashni boshlashgacha boʻlgan vaqt.
19) Misollar (snippetlar)
PostgreSQL - PITR siyosati (g’oya):bash base backup once a day pgbackrest --stanza = prod --type = full backup archive WAL every 5 minutes pgbackrest --stanza = prod archive-push restore to time pgbackrest --stanza = prod restore --type = time --target =" 2025-11-03 14:00:00 + 02"
MySQL - inkremental sikl:
bash xtrabackup --backup --target-dir=/backup/full-2025-11-01 xtrabackup --backup --incremental-basedir=/backup/full-2025-11-01 --target-dir=/backup/inc-2025-11-02 xtrabackup --prepare --apply-log-only --target-dir=/backup/full-2025-11-01 xtrabackup --prepare --target-dir=/backup/full-2025-11-01 --incremental-dir=/backup/inc-2025-11-02
Kubernetes - Velero (manifestlar g’oyalari):
yaml apiVersion: velero. io/v1 kind: Backup metadata: { name: prod-daily }
spec:
includedNamespaces: ["prod-"]
ttl: 720h storageLocation: s3-immutable
S3 Object Lock (hayot sikli siyosatining namunasi):
json
{
"Rules": [{
"ID": "prod-immutable",
"Status": "Enabled",
"NoncurrentVersionExpiration": { "NoncurrentDays": 365 }
}]
}
20) Kommunikatsiyalar va operatsion rollar
Incident Commander, Comms Lead, Ops Lead, DB Lead, Security.
Steykxolderlar/regulyatorlar/foydalanuvchilar uchun xabarlar namunalari.
Amallar bilan Post-mortem: daqiqalarni yoʻqotish, avtomatlashtirishni yaxshilash.
21) Xulosa
Arxaplar va DR ning ishonchli konturi «nusxa ko’chirish» emas, balki tsikl: tasniflash → RPO/RTO maqsadlari → ko’p darajali va immutable nusxalar → avtomatlashtirilgan runbook’va → muntazam tiklash va mashqlar. 3-2-1-1-0 ga rioya qiling, replikatsiyani bekaplardan ajrating, kalitlarni shifrlang va izolyatsiya qiling, hujjatlashtiring va tekshiring. O’shanda hatto «qora oqqush» ham boshqariladigan jarayonga aylanadi.