DEV Community

Hakan İSMAİL
Hakan İSMAİL

Posted on

vSAN Data Protection: Snapshot, Protection Group ve Immutability (Modül 7)

Altı haftadır SPBM'den File Services'e kadar vSAN'ın farklı katmanlarını gezdim. Modül 7, serinin son modülü ve konusu net: Data Protection. Bu modülde snapshot almayı, VM'leri "protection group" adı verilen politikalarla korumayı, silinmiş bir VM'i geri getirmeyi ve ransomware senaryolarına karşı değiştirilemez (immutable) koruma gruplarını görüyoruz.

Bu modül önceki altısına göre daha "hikaye anlatan" bir yapıya sahip. Sadece bir özelliği açıp kapatmıyoruz; bir VM oluşturup koruyoruz, siliyoruz, geri getiriyoruz, klonluyoruz. Bu akış, konuyu soyut bir özellik listesinden çıkarıp gerçek bir operasyonel senaryoya dönüştürüyor.


vSAN Data Protection Nedir?

vSAN Data Protection

vSAN Data Protection (DP), vSAN 8.0 Update 3'te tanıtılan bir özellik. Amaç, VM'leri operasyonel hatalardan veya ransomware saldırılarından hızlıca kurtarabilmek; bunu vSAN cluster üzerinde yerel olarak saklanan native snapshot'larla yapıyor.

Mimari olarak birkaç önemli nokta var:

  • Policy tabanlı "protection group" kavramıyla çalışıyor; hangi VM'lerin korunacağını, snapshot sıklığını ve saklama (retention) süresini bu gruplar üzerinden yönetiyorsunuz.
  • Yanlışlıkla silinen VM'leri kurtarmak veya operasyonel çeviklik için VM'leri hızlıca klonlamak için kullanılabiliyor.
  • VMware Live Cyber Recovery çözümüyle entegre olarak ransomware senaryolarından kurtarmayı da destekliyor (bu ayrı bir lisans gerektiriyor).
  • Sadece vSAN ESA (Express Storage Architecture) ile çalışan HCI cluster'larda destekleniyor.

Mimari tarihçesi de ilginç: vSAN 8.0u3'te bu servis ayrı indirilebilir bir "vSAN Snapmanager Appliance" olarak geliyordu. vSAN 9.0 ile birlikte vSAN Data Protection, vSphere Replication ve VMware Live Recovery tek bir appliance'da birleşti. HOL'da bu appliance zaten kurulu ve vCenter'a kayıtlı; biz doğrudan vSphere Client üzerinden Data Protection'ı kullanıyoruz.

Bir not daha: vSAN 9'da protection group'lar, vCenter'lar arası vSAN-to-vSAN replikasyon içeren VMware Live Recovery ile entegre olabiliyor. Bu modül sadece yerel snapshot'ları kapsıyor; replikasyonun aksiyonda görülmesi için ayrı bir lab (HOL-2634-03-VCF-L) öneriliyor.


vSAN ESA Snapshot'ları: Temel Mekanik

ESA, VM'in durumunu ve verisini snapshot alındığı andaki haliyle koruyan entegre, yüksek performanslı bir snapshot mekanizması sunuyor. Birkaç teknik detay:

  • Snapshot alındığında VM'in o anki çalışan durumu yakalanıyor; snapshot'lar "quiesced" (uygulama seviyesinde tutarlılık için duraklatılmış) değil.
  • Snapshot'lar bireysel VM'ler üzerinde çalışıyor; her VM ayrı bir snapshot gerektiriyor.
  • Her vSAN snapshot'ı, VM'in namespace nesnesinin ve virtual disk nesnelerinin durumunu içeriyor.
  • Protection group'lardaki VM'lerin snapshot'ları zamanlanmış aralıklarla alınıyor ve yerel olarak vSAN datastore'da saklanıyor.

Bu, geleneksel vSphere snapshot mekanizmasından farklı bir zihniyetle çalışıyor; snapshot almak burada manuel bir "şimdi al" işlemi değil, bir politikanın parçası olarak zamanlanmış bir süreç.


Data Protection Arayüzüne Giriş

cluster-esa-01a > Configure > vSAN > Data Protection

Genel Bakış (Overview)

Overview bölümünde, cluster'daki 7 VM'den 4'ünün korunduğu görülüyor. Grafik bu korumanın türünü (yerel, replikasyon veya korumasız) gösteriyor.

"vSAN Snapshot Space Usage" bölümünde snapshot'ların kullandığı kapasitenin dökümü var. Burada dikkat çeken bir uyarı kutusu var: datastore kullanımı %70'i aştığında zamanlanmış snapshot'lar alınmıyor.

Data Protection Overview - korunan VM sayısı ve Snapshot Space Usage

Bu %70 eşiği bana Modül 1'deki Reserved Capacity konseptini hatırlattı; orada da benzer bir "belirli bir doluluk oranından sonra sistem kendini korumaya alır" mantığı vardı. Burada aynı mantık, snapshot alma sürecine uygulanmış.

Protection Groups

HOL ortamında iki protection group önceden tanımlı:

  • Core PG: Sadece yerel snapshot alıyor, bir VM'i aktif olarak koruyor.
  • Remote Acct PG: Site B'ye vSAN replikasyonu yapıyor, üç VM'i koruyor.

Her ikisi de "Active" durumda, yani zamanlanmış snapshot'lar konfigüre edildiği gibi alınıyor. Core PG'nin iki yerel snapshot'ı var; en son snapshot belirli bir tarihte alınmış.

Protection Groups listesi - Core PG ve Remote Acct PG detayları

Existing VMs, Removed VMs, Incoming VMs

VMs sekmesi, cluster'daki VM'leri üç kategoride gruplandırıyor:

  • Existing VMs: Şu anda vSAN'da aktif olarak bulunan VM'ler.
  • Removed VMs: Silinmiş ama hâlâ mevcut bir snapshot tarafından korunan VM'ler.
  • Incoming VMs: Bu cluster'a replike edilmekte olan VM'ler.

Her VM için protection group'u, yerel koruma durumu, replikasyon durumu ve (varsa) hangi peer cluster'a replike edildiği gösteriliyor.

VMs sekmesi - Existing/Removed/Incoming VM kategorileri

Removed VMs sekmesinde core-c adlı bir VM görülüyor; bu VM silinmiş ama snapshot'ı hâlâ mevcut, yani geri getirilebilir durumda.

Removed VMs - core-c VM'inin görünümü

Replication Pairs

REPLICATION sekmesinde vSAN replikasyon sunucu çiftleri görülüyor. Site A cluster'ı (cluster-esa-01a), Site B cluster'ına (vsan-client-cluster-01b) eşleştirilmiş ve Remote Acct PG protection group'undaki üç VM'i replike ediyor. Bu özelliğin VMware Live Recovery lisansı gerektirdiği belirtiliyor.

Replication Pairs - Site A'dan Site B'ye replikasyon

Bu ekran, Modül 5'te gördüğümüz Storage Cluster/Compute Cluster ayrımının farklı bir versiyonunu hatırlattı bana; orada da farklı cluster'lar birbirine bir hizmet sağlıyordu, burada ise koruma amaçlı bir replikasyon ilişkisi var.


Yeni Bir Protection Group Oluşturmak

Modülün pratik kısmı burada başlıyor. Amacımız, "sales-" ön ekiyle başlayan satış uygulaması VM'lerini koruyan bir protection group oluşturmak.

Genel Ayarlar

Protection Groups > Create Protection Group

  1. İsim: Sales Apps PG
  2. Protection type: üç seçenek var:
    • Local protection and replication: Yerel snapshot alıp başka bir vSAN cluster'a da replike ediyor (VMware Live Recovery lisansı gerekiyor).
    • Local protection: Sadece yerel snapshot alıyor.
    • Replication: Sadece başka bir cluster'a replike ediyor (VMware Live Recovery gerekiyor).

Bu HOL'da Local protection seçiliyor.

  1. Immutability mode kutusu şimdilik işaretsiz bırakılıyor (bu konuya modülün sonunda dönülüyor).
  2. VM seçim yöntemi olarak Dynamic VM name patterns seçiliyor.
  3. NEXT

Create Protection Group - General sayfası

VM İsim Deseni Eklemek

sales* deseni giriliyor (tüm satış uygulaması VM'leri sales-xxxx-y adlandırma kuralını kullanıyor). Add'e tıklandığında, eşleşen sales-app-01, sales-db-01 ve sales-web-01 VM'leri listede görünüyor.

VM name pattern ekranı - sales* deseni ve eşleşen VM'ler

Bu dinamik isimlendirme yaklaşımı bence modülün en pratik fikri. Sabit bir VM listesi tutmak yerine bir isim deseni tanımlamak, gelecekte oluşturulacak yeni VM'lerin de otomatik olarak korunmasını sağlıyor; bunu birazdan test edeceğiz.

Snapshot Zamanlaması

Burada önemli bir teknik sınır var: vSAN ESA snapshot'ları, nesne başına en fazla 200 kopyaya kadar ölçekleniyor. Snapshot sıklığı ve saklama süresi kombinasyonu bu sınırı aşarsa, protection group oluşturulmadan önce düzenlenmesi gerekiyor.

Bu HOL'da:

  1. Snapshot sıklığı: her 8 saatte bir
  2. Saklama süresi: 2 ay
  3. NEXT

Bir protection group için birden fazla snapshot zamanlaması tanımlamak da mümkün, ama bu lab'da tek bir zamanlama kullanılıyor.

Snapshot schedule ekranı - 8 saat sıklık, 2 ay saklama

200 kopya sınırını akılda tutarak hızlıca bir hesap yaptım: 8 saatte bir snapshot, günde 3 kopya demek. 2 aylık saklama süresinde bu yaklaşık 180 kopyaya denk geliyor, sınırın altında ama yakınında. Bu tür bir hesabı protection group tasarlarken önceden yapmak, ileride "limit aşıldı" hatasıyla karşılaşmamak için gerekli.

Review ve Oluşturma

Review ekranında dikkat çeken bir not var: standart vSphere Client "snapshot" arayüzünün aksine, vSAN Data Protection snapshot'ları hemen oluşturmuyor, bunun yerine zamanlıyor. Ama istenirse manuel bir snapshot da alınabileceği hatırlatılıyor. CREATE ile protection group oluşturuluyor.

Review sayfası - protection group özeti


Manuel Snapshot Almak

Protection group oluşturulduğunda henüz hiçbir snapshot yok; bu yüzden bir uyarı üçgeni ile işaretleniyor. 8 saat beklemek yerine manuel snapshot alınabiliyor.

Sales Apps PG'nin üç nokta menüsünden "Take local snapshot" seçiliyor.

Protection Groups listesi - uyarı üçgeni ve Take local snapshot seçeneği

Snapshot ismi varsayılan olarak protection group adı, oluşturma yöntemi ve zaman damgasını içeren açıklayıcı bir isim alıyor. Saklama süresi olarak "1 gün" seçiliyor, TAKE SNAPSHOT tıklanıyor.

Take Snapshot ekranı - isim ve retention seçimi

Recent Tasks panelinden işlem takip ediliyor; tamamlandığında uyarı üçgeni kayboluyor ve üç Sales VM'i için snapshot'lar görünüyor.


Dinamik İsimlendirmeyi Test Etmek: Yeni Bir VM Oluşturmak

Bu bölüm, dinamik isim deseninin gerçekten çalıştığını kanıtlıyor. sales- ön ekiyle yeni bir VM oluşturursak, protection group'a manuel müdahale etmeden otomatik olarak dahil olması bekleniyor.

cluster-esa-01a üzerine sağ tık → New Virtual Machine → Create a new virtual machine. Sihirbaz adımları:

  1. İsim: sales-lab, Sales klasörü seçili
  2. Compute resource: cluster-esa-01a
  3. Storage: vsan-esa-01a_Datastore
  4. Compatibility: varsayılan (ESX 9.0 ve üzeri)
  5. Guest OS: Linux, VMware Photon OS (64-bit)
  6. Hardware: varsayılan ayarlar, FINISH

New Virtual Machine wizard - sales-lab VM'i oluşturma

VM oluşturulduktan sonra vCenter inventory'de kayıtlı olduğu doğrulanıyor.

cluster-esa-01a VM listesi - sales-lab VM'i

Data Protection'a dönülüp Sales Apps PG için tekrar manuel snapshot alınıyor (yeni VM'in zamanlanmış aralığı beklemesine gerek kalmadan test etmek için). İşlem tamamlandığında dört VM'in korunduğu görülüyor: orijinal üç sales VM'i ve yeni oluşturulan sales-lab.

Burada altı çizilen önemli nokta şu: yeni VM eklendiğinde protection group'un yeniden yapılandırılmasına gerek kalmadı, çünkü dinamik isimlendirme seçeneği kullanılmıştı. Bu, production ortamında sürekli yeni VM oluşturulan bir ortamda (örneğin bir CI/CD pipeline veya self-service VM provisioning sürecinde) manuel takip yükünü ortadan kaldıran bir tasarım.


VM'leri Geri Yüklemek

Mevcut Bir VM'i Önceki Bir Ana Geri Döndürmek

Bu senaryoda core-a VM'i, mevcut bir snapshot noktasına geri döndürülüyor. Önce core-a'nın açık (powered on) olduğu doğrulanıyor.

VMs > core-a seçili > Restore VM

Data Protection burada bir uyarı veriyor: VM kapatılacak ve geri yükleme öncesinde, ileride "ileri sarma" (mevcut duruma dönme) seçeneği olabilmesi için yeni bir snapshot otomatik olarak alınacak. Mevcut snapshot'lardan biri seçilip RESTORE'a tıklanıyor.

📌 [Resim: Restore VM ekranı - core-a için snapshot seçimi ve uyarı]

İşlem tamamlandığında core-a'nın kapalı (powered off) olduğu görülüyor, tıpkı uyarıldığı gibi. Snapshot sütununda snapshot sayısının 2'den 3'e çıktığı da fark ediliyor; bu, restore işleminin kendisinin de bir snapshot bıraktığını gösteriyor.

Restored VM durumu - powered off ve artan snapshot sayısı

Bu davranış bana mantıklı geldi: bir restore işlemi, geri dönülemez bir işlem değil. Restore öncesi durumun da bir snapshot olarak saklanması, "yanlışlıkla yanlış snapshot'a döndüm" senaryosunda ikinci bir güvenlik ağı sağlıyor.

Silinmiş Bir VM'i Geri Getirmek

Bu, modülün en dramatik anı: tamamen silinmiş bir VM'in snapshot'tan yeniden oluşturulması.

VMs > Removed VMs > core-c seçili > Restore VM

Sihirbaz adımları:

  1. Bir snapshot seçiliyor, NEXT
  2. İsim ve klasör: varsayılan olarak orijinal isim core-c korunuyor, dc-a kök klasöründe kalıyor, NEXT
  3. Compute resource: varsayılan cluster-esa-01a, NEXT
  4. RESTORE

İşlem tamamlandığında core-c, vCenter inventory'sinde tekrar görünüyor, açılmaya hazır durumda. VM'in adı "core" ile başladığı için, cluster'da kaldığı sürece otomatik olarak zaten var olan Core PG protection group'u tarafından korunmaya devam ediyor.

vCenter inventory - geri getirilen core-c VM'i

Bu son detay dikkatimi çekti: dinamik isimlendirme kullanan bir protection group, sadece yeni oluşturulan VM'leri değil, geri getirilen VM'leri de otomatik olarak kapsıyor. İsim deseni eşleştiği sürece, VM'in "geçmişi" (silinmiş olması) önemli değil.


VM Klonlamak

vSAN Data Protection, protection group'a atanmış herhangi bir VM'den hızlıca klon oluşturma imkanı da sunuyor. Bu klonlar ESA snapshot'larına dayanıyor ve linked-clone mimarisi kullanıyor; hızlı oluşturma ve yüksek performans sağlıyor, ama bunlar kalıcı VM'ler değil, araştırma veya VM içindeki belirli verileri kurtarma amaçlı geçici kopyalar olarak düşünülmeli.

Önemli bir ayrım: Data Protection'ın ürettiği klonlar, vCenter'ın geleneksel "clone" işleminden farklı ve bu klonlar vSAN Data Protection tarafından korunmaya aday değil.

Klonlama Adımları

VMs > Existing VMs > core-a seçili > Clone VM

  1. Bir snapshot seçiliyor, NEXT
  2. İsim: varsayılan core-a-clone, dc-a kök klasörü, NEXT
  3. Compute resource: varsayılan cluster-esa-01a, NEXT
  4. CLONE

Clone VM sihirbazı - snapshot ve hedef seçimi

Klon tamamlandığında core-a-clone vCenter inventory'de görünüyor. VMs panelinde bu klonun durumu "Not protected" olarak işaretleniyor.

VMs listesi - core-a-clone'un Not protected durumu

Klonların Neden Korunmadığını Doğrulamak

Bunu somut olarak görmek için Core PG protection group'u Edit ile açılıyor, "Individual VM selection" seçiliyor. Bu ekranda vSAN Data Protection açıkça uyarıyor: linked-clone VM'ler protection group'larda desteklenmiyor. core-a-clone, aday VM listesinden zaten filtrelenmiş durumda.

Edit Protection Group - core-a-clone'un aday listesinden filtrelenmesi

Bu kısıtlama mantıklı: bir linked-clone, zaten bir snapshot'a bağımlı bir yapı. Onu tekrar bir protection group'a dahil edip snapshot almaya çalışmak, muhtemelen mimari olarak dairesel bir bağımlılık yaratırdı. Data Protection bu senaryoyu en baştan engelliyor.


Immutable Protection Groups: Ransomware'e Karşı Bir Kilit

Modülün son ve bence en önemli konsepti burada: değiştirilemez (immutable) protection group'lar.

Bir protection group immutable olarak oluşturulduğunda, oluşturulduktan sonra değiştirilemiyor veya iptal edilemiyor. Korunan VM kriterleri (dinamik isimlendirme, bireysel VM seçimi veya ikisinin kombinasyonu), snapshot zamanlaması ve saklama süresi ilk konfigürasyondan sonra sabitleniyor. Protection group da silinemiyor.

Bu tasarımın amacı açık: kötü niyetli aktörlerin (bad actors) koruma planlarına müdahale etmesini veya onları silmesini engellemek. Bu, ransomware saldırısı senaryosunda özellikle anlamlı; bir saldırgan sisteme erişim sağlasa bile, snapshot'ları ve koruma politikasını silip kurtarma imkanını ortadan kaldıramıyor.

Immutable Protection Group Oluşturmak

Protection Groups > Create Protection Group

  1. İsim: Immutable Core Apps
  2. Protection type: Local protection
  3. Immutability mode kutusu işaretleniyor; bu grup oluşturulduktan sonra düzenlenemeyeceğine dair bir uyarı beliriyor
  4. VM seçimi: Dynamic VM name patterns
  5. NEXT

Create Protection Group - Immutability mode etkinleştirme ve uyarı

VM isim deseni olarak core* giriliyor. Bu desenle üç VM eşleşiyor: core-a, core-a-clone ve core-c.
Immutable Core Apps

VM name pattern - core* deseni ve eşleşen VM'ler

Not: Manuel burada ilginç bir detay veriyor; core-a-clone isim deseni ile eşleşse de (çünkü "core" ile başlıyor), daha önce gördüğümüz gibi linked-clone VM'ler zaten protection group'lardan otomatik filtreleniyor. Yani isim eşleşmesi, filtrelemenin önüne geçmiyor.

Snapshot zamanlaması olarak her 1 günde bir snapshot, 3 aylık saklama süresi belirleniyor. NEXT, sonra CREATE.

Snapshot schedule - günlük snapshot, 3 aylık saklama

Immutability'nin Etkisini Doğrulamak

Yeni oluşturulan protection group'un üç nokta menüsüne bakıldığında, Edit, Pause ve Delete seçeneklerinin gri renkte (devre dışı) olduğu görülüyor. Bu yetenekler immutable protection group'lar için izin verilmiyor.

Protection Groups listesi - Immutable Core Apps için devre dışı Edit/Pause/Delete

Dinamik isimlendirme kullanıldığı için, "core" ile başlayan yeni VM'ler vSAN datastore'lara eklendiğinde otomatik olarak korunacak ve snapshot'ları, VM'ler daha sonra silinse bile 3 ay boyunca saklanacak.


Genel Değerlendirme

Modül 7, serinin kapanışı için iyi bir seçim olmuş; çünkü burada gördüğümüz her şey, önceki altı modülde öğrendiğimiz kavramların üzerine inşa ediliyor. Protection group'lar SPBM'in mantığını (politika tanımla, sistem uygula) hatırlatıyor. Replication pairs, Modül 5'teki cluster-arası ilişkileri andırıyor. %70 doluluk eşiği, Modül 1'deki Reserved Capacity mantığıyla aynı prensibi paylaşıyor.

Benim için en dikkat çekici üç nokta şunlardı:

Birincisi, dinamik isim deseninin gücü. Bir VM isim kuralı tanımlamak, gelecekteki tüm uyumlu VM'lerin otomatik korunmasını sağlıyor; bu, "her yeni VM için manuel yapılandırma" yükünü ortadan kaldıran zarif bir tasarım. Aynı zamanda bunun disiplinli bir isimlendirme kuralı gerektirdiğini de görmek gerekiyor; "sales-" ile başlamayan bir satış VM'i sessizce korumasız kalabilir.

İkincisi, restore işleminin kendisinin bir snapshot bırakması. Bu, "geri dönülemez işlem" korkusunu azaltan küçük ama önemli bir güvenlik katmanı.

Üçüncüsü, Immutable Protection Groups. Bu özellik, teknik bir yetenekten çok bir tehdit modeline cevap veriyor: eğer bir saldırgan (ya da yanlışlıkla yetkili bir kullanıcı) sisteme erişim kazanırsa, koruma planının kendisi saldırı yüzeyi olmamalı. Bu, "backup'ınız varsa güvendesiniz" varsayımının yeterli olmadığı, backup'ın kendisinin de korunması gerektiği fikrinin somut bir uygulaması.


Seri Üzerine Kapanış Notu

Yedi modül boyunca vSAN'ı SPBM'den başlayıp izleme, şifreleme, stretched cluster, storage cluster ayrımı, file services ve şimdi data protection'a kadar bir yolculuk olarak takip ettim. HOL formatının en büyük avantajı, hiçbir şeyi bozma korkusu olmadan bu kadar geniş bir yüzeyi tek bir ortamda gezebilmekti.

Ama başta da söylediğim gibi, bunun sınırlarını da net tutmak istiyorum: gerçek bir production ortamında bu kararların her biri, burada göremediğimiz baskılarla (bütçe, mevcut donanım, ekip deneyimi, değişim yönetimi süreçleri) birlikte alınıyor. Bu seri, o kararları alacak kişi olmaya değil, o kararların neye dayandığını anlayacak bir zemine sahip olmaya yardımcı olmayı amaçladı.

Serinin geri kalanını okuyanlara teşekkürler. Bir sonraki öğrenme serisinde görüşmek üzere.


Bu seri VMware HOL ortamı (HOL-2634-01-VCF-L) üzerinden yürütülmektedir. Buradaki gözlemler lab bağlamında değerlendirilmeli, production ortamı kararları için mutlaka resmi VMware dokümantasyonu ve deneyimli mühendisler referans alınmalıdır.

Top comments (0)