[TR] VMware Sanal Makine Dosyaları: Ne İşe Yarar, Neden Önemlidir?

[TR] VMware Sanal Makine Dosyaları: Ne İşe Yarar, Neden Önemlidir?

VMware ortamlarında çalışan bir sanal makineyi dışarıdan yalnızca “bir VM” olarak görmek kolaydır. Ancak işin arka planına indiğimizde her sanal makinenin aslında birden fazla kritik dosyadan oluşan düzenli bir yapıya sahip olduğunu görürüz.

Bu dosyaların her biri sanal makinenin çalışması, korunması, yedeklenmesi, taşınması ve sorun anında kurtarılması açısından ayrı bir rol üstlenir.

Özellikle vSphere, ESXi ve benzeri VMware altyapılarında çalışan sistem yöneticileri için bu dosyaları tanımak büyük önem taşır. Çünkü bir sanal makinede yaşanan performans sorunu, açılış hatası, snapshot karmaşası veya disk erişim problemi çoğu zaman doğrudan bu dosyalarla ilişkilidir. Bu nedenle VMware sanal makine dosyalarını yalnızca isim olarak bilmek değil, ne işe yaradıklarını ve hangi durumda karşımıza çıktıklarını anlamak gerekir.

Sanal Makinenin Temel Yapı Taşları: Yapılandırma ve Disk Dosyaları

Bir sanal makinenin en temel bileşenleri, onun nasıl çalışacağını tanımlayan yapılandırma dosyaları ile verilerini barındıran disk dosyalarıdır. Bu dosyalar olmadan sanal makinenin bütünlüğünden söz etmek mümkün değildir.

.vmx Dosyası: Sanal Makinenin Beyni

.vmx uzantılı dosya sanal makinenin ana yapılandırma dosyasıdır. Basit bir metin dosyası olmasına rağmen içerdiği bilgiler son derece kritiktir. Bu dosya içerisinde sanal makineye ayrılan işlemci sayısı, bellek miktarı, ağ kartı ayarları, MAC adresleri, disk bağlantıları, boot seçenekleri ve benzeri pek çok donanımsal tanım bulunur.

Kısacası .vmx dosyası bir sanal makinenin nasıl davranacağını belirleyen ana rehberdir. Bu nedenle birçok yönetici bu dosyayı sanal makinenin “beyni” olarak tanımlar.

Eğer bu dosyada bozulma, eksiklik ya da yanlış yapılandırma oluşursa, sanal makine açılmayabilir veya beklenmedik şekilde çalışabilir.

.vmdk Dosyası: Diskin Kimlik Kartı

Birçok kişi .vmdk dosyasını doğrudan sanal diskin tamamı sanır. Oysa çoğu durumda bu dosya asıl disk verisini tutan ana dosya değil disk hakkında bilgi veren küçük bir tanımlama dosyasıdır. Bu dosya içerisinde sanal diskin boyutu, yapısı, türü ve hangi veri dosyasına bağlı olduğu gibi bilgiler yer alır.

Yani .vmdk dosyası sanal diskin nasıl organize edildiğini anlatan bir rehber görevi görür. Kendi başına büyük veri içermez daha çok esas veriyi tutan disk dosyasına işaret eder.

-flat.vmdk Dosyası: Asıl Verinin Bulunduğu Yer

-flat.vmdk dosyası sanal makinenin gerçek disk verisini barındıran ana dosyadır. İşletim sistemi, uygulamalar, kullanıcı verileri ve disk üzerinde tutulan her şey burada yer alır. Bu nedenle sanal makinenin en büyük boyutlu dosyalarından biri genellikle budur.

Bir başka deyişle .vmdk dosyası disk hakkında bilgi veriyorsa -flat.vmdk dosyası o diskin gerçek yükünü taşıyan bölümdür. vSphere arayüzünde çoğu zaman bu iki yapı tek bir .vmdk gibi görünür. Ancak arka planda biri açıklayıcı dosya, diğeri ise gerçek veri taşıyıcısıdır. Bu ayrımı bilmek, özellikle disk taşıma, onarım ve kurtarma işlemlerinde oldukça önemlidir.

Snapshot Mekanizmasında Yer Alan Dosyalar

VMware ortamlarında snapshot özelliği belirli bir anda sanal makinenin durumunu korumak için çok sık kullanılır. Ancak snapshot’ların mantığını anlamak için bunlarla ilişkili dosya yapısını da bilmek gerekir.

.vmsd Dosyası: Snapshot Veritabanı

.vmsd dosyası snapshot’lar arasındaki ilişkiyi tutan metadata dosyasıdır. Hangi snapshot’ın ne zaman alındığı, hangi zincirin parçası olduğu ve diğer snapshot’larla nasıl bağlantılı olduğu gibi bilgiler burada tutulur.

Bu dosya doğrudan kullanıcı verisi içermez daha çok snapshot yapısının yönetilmesini sağlar. Özellikle birden fazla snapshot kullanıldığında bu dosya düzenin korunmasında önemli rol oynar.

.vmsn Dosyası: Anlık Durum Kaydı

.vmsn dosyası, snapshot alındığı anda sanal makinenin tam durumunu saklar. Eğer snapshot alınırken belleğin durumu da kaydedilmişse, bu dosya o anki RAM içeriğiyle birlikte sistemin anlık durumunu da tutabilir.

Bu sayede yalnızca disk değil, o an çalışan süreçler ve bellek içeriği de korunmuş olur. Özellikle test, geçici değişiklik ya da uygulama güncellemesi öncesi alınan snapshot’larda bu dosya önemli rol oynar.

-delta.vmdk Dosyası: Snapshot Sonrası Yazma Alanı

Bir snapshot alındığında, ana disk olan -flat.vmdk doğrudan yazılmaya devam etmez. Bunun yerine yeni değişiklikler -delta.vmdk dosyasına yazılır. Böylece orijinal disk belirli bir noktada sabitlenmiş olur ve yeni değişiklikler ayrı bir katmanda tutulur.

Bu yapı sayesinde istenildiğinde eski duruma geri dönmek mümkün hale gelir. Ancak uzun süreli ve çok sayıda snapshot kullanımı, delta disklerin büyümesine ve performans sorunlarına neden olabilir. Bu yüzden snapshot’lar kalıcı yedekleme yöntemi olarak değil, geçici koruma mekanizması olarak düşünülmelidir.

Çalışma Anında Oluşan Dosyalar

Bir sanal makine çalışırken veya belirli işlemler yapılırken bazı dosyalar geçici ya da duruma bağlı olarak oluşur. Bunlar sistemin çalışma mantığını anlamak açısından oldukça önemlidir.

.nvram Dosyası: BIOS veya UEFI Ayarları

.nvram dosyası sanal makinenin BIOS ya da UEFI ayarlarını saklar. Boot sırası, firmware tercihleri ve bazı düşük seviye başlatma ayarları bu dosyada tutulur.

Fiziksel bir sunucudaki BIOS çipinin işlevini sanal ortamda bu dosya karşılar. Özellikle boot sorunlarında veya firmware tabanlı ayar değişikliklerinde bu dosya önemli hale gelir.

.vswp Dosyası: Bellek Güvenlik

.vswp dosyası sanal makine açıldığında oluşturulan swap dosyasıdır. ESXi host üzerinde fiziksel RAM yetersiz kaldığında kullanılmak üzere bir tür güvenlik alanı sağlar. Bu dosya host üzerinde bellek yönetiminin sürdürülebilmesi için önemlidir.

Sanal makine kapatıldığında bu dosya genellikle otomatik olarak silinir. Boyutu ise çoğu zaman VM’e ayrılan bellek miktarı ve rezervasyon ayarlarına göre değişir. Datastore alanı planlamasında göz ardı edilmemesi gereken dosyalardan biridir.

.vmss Dosyası: Askıya Alma (suspend) Durumu

Bir sanal makine kapatılmak yerine “Suspend” durumuna alınırsa, o anki bellek ve işlem durumu .vmss dosyasında saklanır. Böylece sistem daha sonra kaldığı yerden devam ettirilebilir.

Bu dosya klasik kapatma işleminden farklı olarak çalışma durumunu dondurur. Özellikle bakım öncesi geçici durdurma işlemlerinde kullanışlı olabilir.

.vmem Dosyası: Bellek Yedeği

.vmem dosyası sanal makinenin ana belleği ile ilişkilidir. Çalışma anında çökme durumlarında veya bazı özel işlemler sırasında ortaya çıkabilir. VM’in RAM içeriğiyle bağlantılı olduğu için, özellikle hata analizi ve kurtarma senaryolarında önemli olabilir.

Her zaman görünmeyebilir ancak görüldüğünde genellikle VM’in çalışma veya arıza anındaki bellek durumuna dair ipuçları taşır.

Log Dosyaları: Sorun Giderme Sürecinin Vazgeçilmezi

Bir sanal makinede hata yaşandığında ilk bakılması gereken yer çoğu zaman log dosyalarıdır. Bu dosyalar, sistemin geçmişte hangi işlemleri yaptığını ve hangi hatalarla karşılaştığını anlamamıza yardımcı olur.

vmware.log: İlk Bakılacak Yer

vmware.log, sanal makinenin güncel log dosyasıdır. Güç açma sorunları, donma, çökme, disk erişim hataları, ağ problemleri ve çeşitli sistem olayları burada kayıt altına alınır.

Sorun giderme sürecinde yöneticilerin ilk duraklarından biri bu dosyadır. Çünkü çoğu hata mesajı, neden-sonuç ilişkisini burada açık şekilde verir.

vmware-#.log: Eski Kayıtlar

Zamanla mevcut log dosyası büyüdüğünde veya sanal makine yeniden başlatıldığında eski loglar arşivlenir ve numaralandırılır. Örneğin vmware-1.log, vmware-2.log gibi dosyalar oluşur.

Bu arşiv loglar, geçmişte yaşanmış ancak o anda aktif olmayan sorunları incelemek için oldukça faydalıdır. Özellikle kesintili yaşanan sorunlarda eski log dosyaları değerli bilgiler sunabilir.

Datastore Tarafında Önemli Bir Ayrım: Dosya mı, Nesne mi?

VMware dünyasında çoğu yönetici sanal makineyi dosyalar üzerinden düşünmeye alışkındır. Gerçekten de VMFS veya NFS tabanlı klasik datastore yapılarında sanal makineler bir dosya koleksiyonu olarak görünür. Yani .vmx, .vmdk, .vswp, log dosyaları ve diğer bileşenler standart dosya mantığıyla depolanır.

Ancak işin içine vSAN veya vVols gibi modern depolama mimarileri girdiğinde yapı farklılaşır. Bu ortamlarda sanal makine bileşenleri yalnızca birer dosya değil aynı zamanda politika tabanlı yönetilen depolama nesneleri haline gelir. Yani artık depolama tarafında yalnızca “hangi dosya nerede duruyor” sorusu değil, “hangi nesne hangi policy ile korunuyor” sorusu da önem kazanır.

Bu fark özellikle performans yönetimi, veri koruma, replikasyon ve arıza senaryolarında ciddi avantajlar sağlar. Kısacası klasik datastore mantığında VM’ler dosya ağırlıklı düşünülürken, vSAN ve vVols dünyasında nesne tabanlı yaklaşım ön plana çıkar.

Neden Bu Dosyaları Bilmek Gerekir?

VMware sanal makine dosyalarını bilmek sadece teorik bir bilgi değildir. Bu bilgi günlük sistem yönetiminde doğrudan işe yarar.

Örneğin bir VM açılmıyorsa .vmx dosyası kontrol edilir, snapshot zinciri bozulmuşsa -delta.vmdk ve .vmsd yapısı incelenir, disk alanı beklenmedik şekilde doluyorsa .vswp ya da gereksiz büyümüş snapshot dosyaları araştırılır, sistem hataları için ise vmware.log dosyasına bakılır.

Ayrıca yedekleme, taşıma, datastore temizliği, manuel kurtarma ve felaket senaryolarında bu dosyaların anlamını bilmek büyük zaman kazandırır. Hangi dosyanın kritik, hangisinin geçici, hangisinin çalışma anında oluştuğunu bilmek; yanlış silme, eksik taşıma veya hatalı müdahale riskini ciddi ölçüde azaltır.