Бэкап және репликация стратегиялары
Қысқаша түйіндеме
Деректердің сенімді стратегиясы үш тіректе тұр: бэкап, репликация, қалпына келтіру. Реплика RTO (қалпына келтіру уақыты) азайтады, бэкап RPO (деректерді жоғалтуға) кепілдік береді және логикалық қателерден/шифрлаушылардан қорғайды. Базалық қағидаттар: 3-2-1-1-0 (3 көшірме, 2 тасымалдаушы түрі, 1 - оффсайт, 1 - өзгеріссіз, тексерулерде 0 қате), тұрақты DR тестілері және сыни жиынтықтардың иммутабельділігі.
Терминдер мен мақсаттар
RPO - қанша деректі жоғалтуға болады (мысалы, 5 минуттан ≤).
RTO - қанша уақыт қалпына келтіруге болады (мысалы, 15 минуттан ≤).
PITR (Point-in-Time Recovery) - журнал репликасымен «X сәтіне» қалпына келтіру.
SLO деректері - RPO/RTO және бэкап міндеттерінің табысы үшін сервис деңгейінің келісімшарты.
Істен шығуға төзімділік және репликация модельдері
Топологиялардың нұсқалары
Active-Passive (ыстық/жылы/суық): қарапайым, болжамды фейловерлер.
Active-Active: жоғары қол жетімділік, бірақ шиеленіс және төзімділік күрделірек.
Multi-Zone/Region/Cloud: кідірістер мен egress құнының теңгерімі.
Синхрон vs асинхрон
Синхрон: RPO ≈ 0, latency жоғары, қашықтық шегі.
Асинхрон: аз RPO (минут) кезінде RTO нөлге жақын, аймақтар/бұлттарға төзімді.
Гибрид: аймақ шегіндегі синхрон, асинхрон - алыс аймаққа.
Реплика ≠ бэкап
Реплика қайнар көзден кейін қателерді/өшіруді алып кетеді. Бэкап - нұсқалау, тексеру және оқшаулау бар off-path көшірмесі.
3-2-1-1-0 саясаты және иммутабельділігі
3 көшірме (прод + жергілікті резервтік + оффсайт).
2 типті тасығыштар (блок/NAS/объекті/таспа).
1 оффсайт (басқа алаң/бұлт/лента).
1 өзгермейтін көшірме (WORM: Object Lock, immutable snapshots/таспа).
0 қате: Интегритті тұрақты тексеру (checksum/verify/restore-тесттер).
- Критикалық бэкаптары бар нысан үшін нұсқалауды және Object Lock (Compliance/Governance) қосыңыз.
- NAS/блоктар үшін - ретеншен және мерзімге дейін жоюға тыйым салынған immutable snapshots.
Бэкап және кесте түрлері
Full - толық көшірме.
Incremental - тек өткен бэкаптың өзгерістері.
Differential - соңғы толық уақыттан бергі өзгерістер.
GFS-жоспары бар Forever-incremental (Grandfather-Father-Son): күндізгі инкременттер, апта сайынғы және ай сайынғы «толық синтетикалық».
- Prod БД: күнделікті full (немесе синтетикалық full), инкременттер/журналдар әрбір 5-15 минут сайын (PITR).
- Файлдық серверлер: апталық full, күнделікті incremental, айлық мұрағаттар.
- Нысан: lifecycle + нұсқасы; суық - мұрағаттық сақтау сыныбына/таспаға.
Қосымшалар мен БД: PITR тәжірибесі
PostgreSQL
WAL архивтеуді және base backup; 'restore _ command' арқылы PITR.
Құралдар: 'pgBackRest', 'wal-g' (нысан), 'pg _ basebackup'.
Томдарды бөлу: деректер және WAL; PLP-мен WAL-ді жылдам NVMe жазу.
MySQL/MariaDB
'Percona XtraBackup' (hot backup) арқылы толық PITR үшін Binary log.
GTID репликалау; DR үшін - аймаққа/бұлтқа асинхрон.
MongoDB
PITR үшін Oplog; логикалық көшірмелерге арналған сторадж деңгейіндегі снапшоттар + 'mongodump'.
Бэкап алдындағы репликаның консистенттілігін тестілеу.
Redis/Кэштер
Бэкап деп санамау: RDB/AOF + offsite ұстау; warm-cache немесе шындық көзінен қалпына келтіру.
Kubernetes және контейнерлер
кластердің etcd - жеке сындарлы мақсат (жиі снапшоттар, оффсайт).
Velero: манифесттердің/ресурстардың бэкапы + CSI-снапшоттар/PV; S3 үйлесімді бакетте сақтау (Object Lock).
Stateful-награрузки: app-consistent снапшоты (pre/post hooks), әйтпесе - crash-consistent.
Объектілік артефактілерді (модельдер/медиа) нұсқалау - бакеттер деңгейінде.
Виртуалдандыру және файл серверлері
VM-снапшот: CBT (Changed Block Tracking) пайдалану, offsite сақтау, мерзімді түрде guest-aware quiesce (Windows үшін VSS) жасау.
Файлдық серверлер (NAS): snapshotlar + реплика және тұрақты каталогтық restore-тесттер (файлдарды іріктеу).
Бэкап қауіпсіздігі
Тыныштықта (LUKS/ZFS/бұлтты KMS/Vault) және беру кезінде (TLS/mTLS) шифрлау.
Кілттерді басқару: жеке рөлдер, dual-control, ротация, мастер-кілттерді оффлайн сақтау.
Оқшаулау: иммутабельді көшірмелерді жою құқығынсыз бэкап-софттың есептік жазбалары; жеке желілер/VLAN.
Ransomware-тұрақтылығы: immutable, air-gap (таспалар/оқшауланған аккаунт/зертхана).
Аудит: бэкап-жүйе операцияларының журналы, ретеншнаны алып тастау/қысқарту туралы хабарлау.
Терезелерді және өткізу қабілетін жоспарлау
Backup window vs жүктеме: троттлинг I/O/желісі, дедупликация, компрессия.
Желі: әрбір N минут сайын инкременттер, жеке арналар/VPN, түнде немесе үнемі QoS-пен реплика.
Трафикті азайту үшін Change Block Tracking/CDC.
Үлкен базалар: параллель ағындар/стриминг, объектіге көп арналы multipart.
Мониторинг, метрика және SLO
Техметрлер:- Бэкап/репликация тапсырмаларының табыстылығы (%), ұзақтығы, жылдамдығы, журналдардың артта қалуы (WAL/binlog/oplog).
- Бэкап қоймасының кеңістігі, дедуп-коэффициент, өзге де шығыстар.
- Тестілік қалпына келтірудің уақыты мен табысы.
- Бэкаптардың табыстылығы ≥ 99. 9 %/30 күн.
- RPO уақыттың 99% ≥ сақталған (журнал ≤ мақсатты).
- RTO (тест-restore) ≤ әмиян үшін 15 мин, есептілік үшін 1 сағ ≤.
- Ай сайынғы DR-drill: регламенттік сценарийлердің 100% аяқталды.
- Өткізілген/сәтсіз бэкап, лаг PITR> табалдырығы, дедупликация дәрежесінің төмендеуі, орын жетіспеушілігі, ретеншн-саясаттың өзгеруі, жаңа тест-restore болмауы.
DR жаттығулары және қалпына келтіруді тексеру
Кестелік (table-top): рөлдерді үйлестіру, байланыс, коммуникация.
Техникалық: «құмсалғышқа» қалпына келтіру, RTO өлшеу, бақылау сомаларын/деректерін салыстыру.
Black-start: «жалаңаш темір/таза кластерге» толық қалпына келтіру.
Деректер каталогтары: жүйелердің әрбір класы бойынша алдын ала сипатталған қалпына келтіру қадамдары (runbooks).
Автоматика: мерзімді «канареялық» restore және бақылау сомаларын салыстыру.
Практикалық үлгілер
1) PostgreSQL (объектіге pgBackRest + WAL-мұрағат)
ini
[global]
repo1-type=s3 repo1-path=/pgbackups repo1-s3-endpoint=minio. local:9000 repo1-s3-bucket=pg-wal repo1-s3-key=ACCESSKEY repo1-s3-key-secret=SECRET repo1-retention-full=8 start-fast=y compress-type=zst
2) wal-g (ENV мысалы)
bash export WALG_S3_PREFIX=s3://pg-wal/prod export AWS_ACCESS_KEY_ID=...
export AWS_SECRET_ACCESS_KEY=...
export WALG_COMPRESSION_METHOD=zstd
3) Velero (K8s - нысан + бакеттің иммутабельділігі)
yaml apiVersion: velero. io/v1 kind: BackupStorageLocation metadata: { name: default, namespace: velero }
spec:
provider: aws objectStorage:
bucket: k8s-backups config:
s3Url: https://minio. example s3ForcePathStyle: "true"
publicUrl: https://minio. example
4) Object Lock саясаты (мысалы 'mc')
bash mc version enable my/backups mc retention set --default COMPLIANCE 365d my/backups
5) GFS-кестенің мысалы (тұжырымдама)
Daily: инкременттер әрбір 15 минут сайын (журналдар), күндізгі синтетикалық full.
Weekly: бір «толық» (синтетикалық), 8 апта сақтау.
Monthly: толық, 12-24 ай сақтау (мұрағат/таспа).
Енгізу чек-парағы
- Деректер кластары, RPO/RTO/SLO иелері анықталды.
- Репликация (sync/async) және топология (AZ/Region/Cloud) модельдері таңдалды.
- Бапталған бэкаптар: full/incremental/PITR, кестелер, каталогтар.
- Иммутабельділік (WORM/Object Lock/immutable snapshots) және оффсайт/air-gap қосылған.
- Шифрлау және KMS/Vault, жеке рөлдер және кілттерді ротациялау.
- Мониторинг: тапсырмалардың табысы, журналдардың артта қалуы, орны, тест-restore; алерта.
- Runbooks қалпына келтіру және фейловер; байланыстар, эскалациялар, коммуникация үлгілері.
- Ай сайынғы DR-жаттығулар + есеп, жоспарларды түзету.
- Бюджет және FinOps: сақтау құны/egress, мұрағаттау/тиринг жобасы.
Типтік қателер
«Реплика бар - бэкап қажет емес»: логикалық жою және шифрлаушылар репликаға кетеді.
Қалпына келтіру тестілері жоқ - бэкап «теориялық».
Иммутабельділіктің және оффсайттың болмауы - бірыңғай тәуекел нүктесі.
Прод және бэкап үшін бір ғана аккаунт/кілт - компромат = барлық жоғалту.
Тым ұзақ бэкап терезелері → шыңдармен қайшылық; Троттлинг пен QoS жоқ.
Журналдар ағынын бақылаусыз PITR.
Snapshot app-consistent игноры - «лас» қалпына келтірілетін томдар.
iGaming/финтех ерекшелігі
Әмиян/төлем ядросы: RPO ≤ 1-5 мин, RTO ≤ 15 мин; WORM бар нысанға журналдар (WAL/binlog); аймақтағы синхрон + асинхрон аймағы.
Есептілік/реттеуіш: өзгермейтін қоймалар, ұзақ ретеншн (жылдар), тексерілетін тұтастық, реттеуіштерге деректер берудің нақты рәсімдері.
Логи/шикі оқиғалар/антифрод: арзан ұзақ өмір сүретін сақтау орны (нысан) + lifecycle; индекстер мен витриналар - жеке.
Шыңдар (матчтар/турнирлер): шыңдардан тыс бэкап терезелері, throttling; оқиғалар кезеңіне арналған DR-жоспарлар; акциялар алдындағы канареялық restore.
Жиынтығы
Деректерді қорғау - бұл сәулет пәні: 3-2-1-1-0, нұсқалау және иммутабельділік, SLO ретінде RPO/RTO, тұрақты DR жаттығулары және «факт бойынша» қалпына келтіруді тексеру. Логикалық қателер мен компроматтар үшін аппайм және жылдам фейловерлер репликасын бэкаптармен біріктіріңіз. Автоматтандырыңыз, өлшеңіз, құжаттаңыз - тіпті ең жаман күні де сізде әрдайым жұмыс жолы болады.