Yedekleme ve çoğaltma stratejileri
Kısa Özet
Güvenilir bir veri stratejisi üç temele dayanır: yedekleme, replikasyon, kurtarma. Çoğaltma, RTO'yu (kurtarma süresi) azaltır, yedekleme RPO'yu (veri kaybı) garanti eder ve mantıksal hatalara/fidye yazılımlarına karşı korur. Temel ilkeler: 3-2-1-1-0 (3 kopya, 2 tip medya, 1 - saha dışı, 1 - değiştirilemez, kontrollerde 0 hata), düzenli DR testleri ve kritik setlerin değişmezliği.
Şartlar ve hedefler
RPO - ne kadar veri kaybolabilir (örneğin, ≤ 5 dakika).
RTO - geri yüklemek için ne kadar zamana izin verilir (örneğin, ≤ 15 dakika).
PITR (Point-in-Time Recovery) - log replay ile'an X "kurtarma.
Data SLO, RPO/RTO ve yedekleme görevlerinin başarısı için hizmet düzeyinde bir sözleşmedir.
Hata toleransı ve çoğaltma modelleri
Topoloji Seçenekleri
Aktif-Pasif (sıcak/sıcak/soğuk): daha basit, öngörülebilir fylovers.
Aktif-Aktif: yüksek kullanılabilirlik, ancak çatışma çözümü ve tutarlılık daha zordur.
Çok Bölgeli/Bölge/Bulut: Gecikme ve çıkış maliyeti dengesi.
Senkron vs asenkron
Senkron: RPO≈0, gecikmenin üstünde, mesafe sınırı.
Asynchron: Düşük RPO'da (dakika) sıfıra yakın RTO, bölgelere/bulutlara dayanır.
Hibrid: Bir bölge içinde senkronize, uzak bir bölgeye asenkron.
Replica ≠ yedekleme
Çoğaltma, kaynaktan sonra hatalar/silme işlemleri taşır. Versioning, checks ve isolation ile yedekleme - off-path kopya.
Politika 3-2-1-1-0 ve değişmezlik
3 kopya (prod + yerel yedekleme + site dışı).
2 tür ortam (blok/NAS/nesne/bant).
1 site dışı (diğer site/bulut/bant).
1 değişmez kopya (WORM: Nesne Kilidi, değişmez anlık görüntüler/teyp).
0 Hata (lar): Düzenli Bütünlük Denetimi (sağlama toplamı/doğrulama/geri yükleme testleri).
- Kritik yedeklemeleri olan nesneler için sürüm oluşturmayı ve Nesne Kilidi'ni (Uyumluluk/Yönetişim) etkinleştirin.
- NAS/bloklar için - son tarihe kadar saklama ve silme yasağı ile değişmez anlık görüntüler.
Yedekleme türleri ve programları
Tam - tam kopya.
Artımlı - yalnızca önceki yedeklemeden değişiklikler.
Diferansiyel - son tamamlamadan bu yana değişiklikler.
GFS-planı (Büyükbaba-Baba-Oğul) ile sonsuza kadar artımlı: günlük artışlar, haftalık ve aylık "sentetik dolu".
- Prod DB: günlük tam (veya sentetik tam), her 5-15 dakikada bir artışlar/günlükler (PITR).
- Dosya sunucuları: haftalık tam, günlük artımlı, aylık arşivler.
- Nesne: yaşam döngüsü + sürümleri; soğuk - arşiv depolama sınıfı/bandı.
Uygulamalar ve Veritabanları: PITR Uygulamaları
PostgreSQL
WAL arşivlemeyi ve temel yedeklemeyi etkinleştir; 'Restore _ command' aracılığıyla PITR.
Araçlar: 'PgBackRest', 'wal-g' (object), 'pg _ basebackup' for complete.
Bölünmüş hacimler: veri ve WAL; PLP ile hızlı NVMe üzerine WAL yazın.
MySQL/MariaDB
PITR için ikili günlük kaydı, 'Percona XtraBackup' (etkin yedekleme) ile tamamlandı.
GTID replikasyonu; DR için - bölgeye/buluta asenkron.
MongoDB
PITR için Oplog; Mantıksal kopyalar için storaj + 'mongodump' seviyesinde anlık görüntüler.
Yedeklemeden önce kopyanın tutarlılığını test edin.
Redis/Önbellekler
Yedekleme olarak kabul edilmez: RDB/AOF +'yi site dışında tutun; Sıcak önbellek olarak veya gerçeğin kaynağından geri yükleyin.
Kubernetes ve konteynerler
etcd kümesi - ayrı bir kritik hedef (sık anlık görüntüler, site dışı).
Velero: yedekleme manifestoları/kaynakları + CSI anlık görüntüleri/PV; Bir S3-compatible kovasında depolama (Nesne Kilidi ile).
Durum bilgisi içeren indirmeler: Uygulama açısından tutarlı anlık görüntüler (ön/post kancaları), aksi takdirde - çökme açısından tutarlı.
Nesne artifaktlarının (modeller/medya) sürümlenmesi - kova düzeyinde.
Sanallaştırma ve dosya sunucuları
VM anlık görüntüleri: CBT (Changed Block Tracking) kullanın, site dışı depolayın, periyodik olarak konuk duyarlı sessizlik yapın (Windows için VSS).
Dosya sunucuları (NAS): anlık görüntüler + çoğaltma ve düzenli katalog geri yükleme testleri (dosya örnekleme).
Yedekleme güvenliği
Dinlenme sırasında (LUKS/ZFS/bulut KMS/Vault) ve iletim sırasında (TLS/mTLS) şifreleme.
Anahtar yönetimi: bireysel roller, çift kontrol, döndürme, ana anahtarların çevrimdışı depolanması.
İzolasyon: Değişmez kopyaları silme hakkı olmayan yedekleme yazılımı hesapları; Ayrı ayrı ağlar/VLAN'lar.
Ransomware-direnç: değişmez, hava boşluğu (kasetler/izole hesap/laboratuvar).
Denetim: yedekleme sistemi işlemlerinin günlüğü, silme/tutma azaltma ile ilgili bildirimler.
Pencere ve bant genişliği planlaması
Yedekleme penceresi vs yük: G/Ç/ağları kısma, veri tekilleştirme, sıkıştırma.
Ağ: Her N dakikada bir artış, bireysel kanallar/VPN, geceleri çoğaltma veya QoS ile kalıcı olarak.
Trafiği azaltmak için Blok İzleme/CDC'yi değiştirin.
Büyük tabanlar: paralel akışlar/akış, nesneye çok kanallı çok parçalı.
İzleme, Metrikler ve SLO
Teknik metrikler:- Yedekleme/çoğaltma görevlerinin başarısı (%), süre, hız, günlük gecikmesi (WAL/binlog/oplog).
- Yedek depolama alanı, dedup katsayısı, diğer masraflar.
- Test geri kazanımlarının zamanı ve başarısı.
- Yedeklerin başarısı ≥ 99. %9/30 gün.
- RPO, zamanın ≥ %99'unu karşıladı (günlük gecikmesi ≤ hedef).
- RTO (test geri yükleme) ≤ Cüzdan için 15 dakika, raporlama için 1 saat ≤.
- Aylık DR-drill: Rutin senaryoların %100'ü tamamlandı.
- Cevapsız/başarısız yedekleme, PITR> eşik gecikmesi, veri tekilleştirme düşüşü, alan eksikliği, saklama politikasında değişiklik, yeni test geri yükleme eksikliği.
DR tatbikatları ve kurtarma kontrolleri
Masa üstü: rol koordinasyonu, temaslar, iletişim.
Teknik: sandbox kurtarma, RTO ölçümü, sağlama toplamı/veri karşılaştırması.
Siyah başlangıç: tam çıplak demir/temiz küme kurtarma.
Veri katalogları: Her sistem sınıfı için önceden tanımlanmış kurtarma adımları (runbooks).
Otomasyon: periyodik "kanarya" geri yükleme ve sağlama toplamlarının doğrulanması.
Pratik şablonlar
1) PostgreSQL (pgBackRest + WAL arşivinden nesneye)
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 örneği)
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 - nesne + kovanın değişmezliği)
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) Nesne Kilidi politikası (örnek 'mc')
bash mc version enable my/backups mc retention set --default COMPLIANCE 365d my/backups
5) GFS çizelgesi örneği (kavram)
Günlük: Her 15 dakikada bir artışlar (dergiler), günlük sentetik dolu.
Haftalık: Bir "tam" (sentetik), 8 hafta saklayın
Aylık: tam, mağaza 12-24 ay (arşiv/bant).
Uygulama kontrol listesi
- Tanımlanmış veri sınıfları, sahipleri, RPO/RTO/SLO.
- Çoğaltma (senkronizasyon/async) ve topoloji (AZ/Bölge/Bulut) modelleri seçildi.
- Yedeklemeler yapılandırılmıştır: tam/artımlı/PITR, zamanlamalar, dizinler.
- Değişmezlik (WORM/Object Lock/immutable snapshots) ve offsite/air-gap içerir.
- Şifreleme ve KMS/Vault, ayrı roller ve anahtar rotasyonları.
- İzleme: görev başarısı, günlük gecikmesi, yer, test geri yükleme; Uyarılar.
- Runbooks kurtarma ve feilover; Temaslar, tırmanmalar, iletişim şablonları.
- Aylık DR tatbikatları + rapor, planları ayarlayın.
- Bütçe ve FinOps: depolama maliyeti/çıkış, arşivleme/yırtma projesi.
Yaygın hatalar
"Bir kopya var - yedekleme gerekmez": mantıksal silme ve ransomware çoğaltma için bırakacaktır.
Kurtarma testi yok - yedekleme "teorik olarak" var.
Değişmezlik ve saha dışı eksikliği tek bir risk noktasıdır.
Satış ve yedeklemeler için aynı hesap/anahtarlar - uzlaşma = her şeyin kaybı.
Çok uzun yedekleme pencereleri - zirvelerle çakışma; Kısma ve QoS yok.
Log lag kontrolü olmayan PITR.
Uygulama tutarlı anlık görüntüleri görmezden gelin - kirli kurtarılabilir hacimler.
iGaming/fintech'e özel
Cüzdan/ödeme çekirdeği: RPO ≤ 1-5 dakika, RTO ≤ 15 dakika; WORM ile bir nesneye günlükler (WAL/binlog); bölge + eşzamansız bölgede eşzamanlı.
Raporlama/düzenleme: değişmez depolar, uzun saklama (yıllar), doğrulanabilir bütünlük, düzenleyicilere veri vermek için açık prosedürler.
Günlükleri/ham olaylar/anti-dolandırıcılık: ucuz uzun ömürlü depolama (nesne) + yaşam döngüsü; Endeksler ve vitrinler - ayrı ayrı.
Zirveler (maçlar/turnuvalar): Zirvelerin dışındaki yedekleme pencereleri, kısma; Olay dönemi için DR-planları; Kanarya stoklardan önce geri yüklenir.
Toplam
Veri koruma bir mimari disiplindir: 3-2-1-1-0, sürüm ve değişmezlik, SLO olarak RPO/RTO, düzenli DR egzersizleri ve "yerinde" kurtarma testi. Çalışma süresi ve hızlı arızalar için çoğaltmayı mantıksal hatalar ve ödünler için yedeklemelerle birleştirin. Otomatikleştirin, ölçün, belgeleyin - en kötü günde bile her zaman bir çalışma yolunuz olacaktır.