VMware altyapılarında yedekleme operasyonları sırasında genellikle Proxy VM kullanılır. Proxy sanal makineler disk hot-add yöntemiyle hedef VM’lerin disklerini kendilerine bağlayarak yedekleme yazılımlarına aktarır. Ancak bazı senaryolarda Proxy VM işlem sırasında invalid (geçersiz) duruma düşebilir veya tamamen terminate (kapatılır) edilir.
Bu makalemde “Configuration file has unexpected changes” hatasının nedenlerini belirtilerini ve çözüm yöntemlerini kapsamlı şekilde açıklamaktadır.
Yedekleme sırasında şu durumlarla karşılaşılabilir:
- Proxy VM beklenmedik şekilde invalid state durumuna geçer.
- hostd.log dosyasında şu satırlar görülür:
VM_STATE_ON -> VM_STATE_RECONFIGURINGgeçişiFailed to add file policies to domain : Cannot allocate memoryhatasıExpected permission (3) for /vmfs/volumes/... not found in domainhatası
- vmkernel.log dosyasında uyarılar çıkar:
Heap domainHeap-XX already at its maximum size. Cannot expand.
- Proxy VM sonlanır ve şu hata alınır:
Configuration file has unexpected changes.
Virtual machine has been terminated.
Unregister and re-register virtual machine if the configuration file is correct.
- VM tekrar çalıştırılmak istendiğinde yönetim ajanlarının (hostd/vpxa) yeniden başlatılması veya VM’in unregister/re-register edilmesi gerekebilir.
Bu hata kernel heap mantıksal hatası nedeniyle ortaya çıkar.
- Proxy VM her yedekleme sırasında birçok disk hot-add işlemi yapar.
- Bu süreçte ESXi içinde kullanılan heap (bellek alanı) üzerinde güvenlik/policy kayıtları birikir.
- Bu heap’in boyutu sabittir ve sınırına ulaştığında yeni kayıtlar eklenemez.
- Bellek taşması nedeniyle:
- Yanlış güvenlik politikaları uygulanır,
- VM konfigürasyon dosyası hatalı algılanır,
- Sonuç olarak VM terminate edilir.
Yani sorun Proxy VM’in yaptığı çok sayıda hot-add işleminin zamanla kernel heap’ini doldurmasından kaynaklanır.
Eğer güncelleme hemen mümkün değilse aşağıdaki yöntemlerle sorunun etkisi azaltılabilir:
a) Proxy VM’i Periyodik Olarak Migrasyon Yapın
- Proxy VM’i zaman zaman farklı bir ESXi host’a vMotion ile taşıyın.
- Bu işlem Proxy VM üzerindeki eski/stale güvenlik politikalarını temizler.
b) Proxy VM’i Reload Edin
Migrasyon sonrasında Proxy VM’in konfigürasyonunu yeniden yükleyiniz.
- Proxy VM’in bulunduğu host’a SSH ile bağlanın.
- VM’in Vmid’ini öğrenin:
vim-cmd vmsvc/getallvms | grep -i <vm-adı>
3. VM’i yeniden yükleyin (reload):
vim-cmd vmsvc/reload <Vmid>
Bu işlem VM’i envanterden kaldırıp yeniden eklemeye gerek kalmadan konfigürasyon dosyasını tekrar okutur.
“Configuration file has unexpected changes” hatası yedekleme proxy VM’lerinde görülen bilinen bir problemdir ve genellikle çoklu disk hot-add işlemleri sırasında kernel heap dolmasından kaynaklanır.
Kalıcı çözüm: ESXi host’ların güncellenmesidir. Geçici çözüm: Proxy VM’i düzenli olarak migrate + reload işlemleriyle heap’teki eski kayıtların temizlenmesi sağlanabilir. Bu yöntemlerle yedekleme operasyonlarının kesintiye uğraması önlenir ve Proxy VM’lerin kararlı şekilde çalışması sağlanır