Snapshot — disk, virtual machine, database yoki fayl tizimining ma’lum vaqtdagi holatini qayd etuvchi nusxa yoki reference. Snapshot keyinchalik oldingi holatga qaytish, test muhitini klonlash, backup jarayonini tezlashtirish va o‘zgarishlarni solishtirish uchun ishlatiladi.
Snapshot har doim to‘liq mustaqil backup emas. Uning ishlashi source storage va implementationga bog‘liq.
Point-in-time holat
Snapshot yaratilgan paytdagi ma’lumot ko‘rinishini saqlaydi.
Keyingi write’lar original volume’da davom etadi.
Snapshot eski blocklar yoki metadata’ni saqlab, oldingi holatni qayta tiklashga imkon beradi.
Bu operation ko‘pincha to‘liq copy’dan tezroq.
Copy-on-write
Copy-on-write modelida snapshot yaratilganda blocklar darhol nusxalanmaydi.
Original block o‘zgartirilishidan oldin eski qiymat snapshot uchun saqlanadi.
Afzalligi — snapshot tez yaratiladi.
Kamchiligi — ko‘p write bilan storage va performance xarajati oshadi.
Redirect-on-write
Yangi write original blockni almashtirmasdan yangi joyga yoziladi.
Metadata active volume’ni yangi blockga yo‘naltiradi.
Snapshot eski blockni ko‘rsatishda davom etadi.
Bu ayrim storage tizimlarida write patternini samaraliroq boshqarishi mumkin.
Full snapshot
Ba’zi tizim snapshotni mustaqil to‘liq nusxaga aylantiradi.
Bunda source o‘chirilsa ham snapshot ishlaydi.
Storage hajmi ko‘proq.
Incremental snapshotlar oldingi blocklar bilan bog‘liq bo‘lishi mumkin.
Incremental snapshot
Faqat oldingi snapshotdan keyin o‘zgargan blocklar saqlanadi.
Bu vaqt va storage’ni tejaydi.
Restore jarayonida tizim kerakli chain yoki backend metadata’dan foydalanadi.
User ko‘pincha har snapshotni to‘liq point-in-time image sifatida ko‘radi.
Crash-consistent
Disk ayni paytda qanday bo‘lsa shunday snapshot olinadi.
Bu elektr to‘satdan o‘chgan holatga o‘xshaydi.
File system journal orqali tiklanishi mumkin.
Ammo application memory’dagi yozilmagan data va transaction holati yo‘qolishi ehtimoli bor.
Application-consistent
Snapshotdan oldin application write’larni flush qiladi yoki vaqtincha freeze qilinadi.
Database checkpoint, filesystem freeze yoki guest agent ishlatilishi mumkin.
Bu restore’dan keyin applicationning tez va to‘g‘ri ochilish ehtimolini oshiradi.
Consistency uchun qisqa pause kerak bo‘lishi mumkin.
Virtual machine snapshot
VM snapshot quyidagilarni saqlashi mumkin:
- virtual disk;
- configuration;
- memory state;
- device state.
Memory snapshotdan VM ayni instruction nuqtasiga yaqin qaytishi mumkin.
Uzoq muddat ko‘p snapshot saqlash VM performance’ini pasaytirishi mumkin.
Volume snapshot
Block volume’ning point-in-time block holati olinadi.
Undan yangi volume yaratish yoki eski volume’ni tiklash mumkin.
Mounted file system write davom ettirsa consistency masalasi mavjud.
Multi-volume applicationda barcha volume bir vaqtda snapshot qilinishi kerak bo‘lishi mumkin.
Database snapshot
Database snapshot engine yoki storage darajasida olinadi.
Database-native backup transaction log, schema va consistency’ni yaxshiroq tushunadi.
Storage snapshot juda tez, ammo log va application coordination talab qiladi.
Restore test qilinmasdan ishonchli deb bo‘lmaydi.
Snapshot va backup
Snapshot ko‘pincha ayni storage tizimida saqlanadi.
Storage account yoki cluster buzilsa snapshot ham yo‘qolishi mumkin.
Backup odatda alohida failure domain, retention va restore jarayoniga ega.
Snapshot backup strategiyasining bir qismi, o‘zi esa barcha holatda backup emas.
Retention
Snapshotlar ma’lum jadval bo‘yicha saqlanadi:
- soatlik;
- kunlik;
- haftalik;
- oylik.
Retention eski snapshotlarni o‘chiradi.
Compliance va ransomware himoyasi uchun immutable retention kerak bo‘lishi mumkin.
Chain
Snapshotlar parent-child bog‘lanishga ega bo‘lishi mumkin.
Parentni noto‘g‘ri o‘chirish childga ta’sir qilmasligi uchun storage tizimi consolidation yoki reference management bajaradi.
Chain juda uzun bo‘lsa restore va I/O sekinlashishi mumkin.
Clone
Snapshotdan yangi volume yoki VM tez yaratiladi.
Copy-on-write clone dastlab kam joy egallaydi.
Test va development environment uchun qulay.
Clone keyinchalik source snapshotga bog‘liq qolishi yoki full copyga aylanishi mumkin.
Restore
Restore usullari:
- original volume’ni oldingi holatga qaytarish;
- yangi volume yaratish;
- ayrim file’ni olish;
- VMni klonlash;
- boshqa regionga restore.
Original ustiga restore destructive bo‘lishi mumkin.
Avval yangi nusxada tekshirish xavfsizroq.
Snapshot schedule
Snapshot application backup window va write yukiga mos vaqtda olinadi.
Barcha server bir vaqtda snapshot qilinsa storage spike paydo bo‘lishi mumkin.
Jitter va orchestration ishlatiladi.
Missed snapshot alert beradi.
Encryption
Snapshot source volume kabi shifrlanishi mumkin.
Key yo‘qolsa snapshot tiklanmaydi.
Cross-account yoki cross-region copy’da destination key va permission kerak.
Key retention snapshot retentiondan kam bo‘lmasligi kerak.
Security
Snapshot sensitive data’ning to‘liq nusxasi bo‘lishi mumkin.
Access:
bo‘yicha ajratiladi.
Public yoki boshqa accountga noto‘g‘ri share data leak yaratadi.
Audit log yuritiladi.
Ransomware
Attacker production data bilan birga snapshotlarni o‘chirishga urinishi mumkin.
Himoya:
Snapshot yaratishning o‘zi ransomware himoyasi emas.
Restore testi
Backup va snapshot qiymati faqat tiklash ishlaganda ma’lum bo‘ladi.
Muntazam test:
- restore vaqti;
- data consistency;
- application startup;
- permission;
- DNS;
- dependency
ni tekshiradi.
RTO va RPO shu test bilan baholanadi.
Snapshot catalog
Ko‘p snapshotlar aniq nom, source, owner, application va retention metadata’si bilan kataloglanadi. “snapshot-123” kabi noaniq nom recovery vaqtida xato tanlovga olib keladi. Tag va policy avtomatik qo‘llanadi.
Cost
Incremental snapshot faqat o‘zgargan blocklar uchun joy olsa ham uzoq retention xarajat yig‘adi. Restore va cross-region copy narxi ham hisobga olinadi. O‘chirishdan oldin dependency va legal hold tekshiriladi.
Bog‘liq tushunchalar
Snapshot, Point-in-time copy, Copy-on-write, Volume snapshot, VM snapshot, Backup, Restore, Retention, Clone, Crash consistency, Application consistency