Merhaba, bu yazımda sizlere sorunlu hostunuzu reboot etmeden VM erişim sorununun çözümünden bahsedeceğim. Bu durumda, VMware hostlarından birinde bir VM erişilemez hale gelmişse ve bu nedenle host üzerinde maintenance modu devreye sokamıyorsan, sorunu çözmek için aşağıdaki adımları izleyebilirsin. Bu adımlar, erişilemeyen VM’i kapatmak ve hostu restart etmeden maintenance moda almak için kullanılabilir.
SSH Üzerinden Host’a Bağlan
Öncelikle, ESXi hostuna SSH ile erişebilmen gerekiyor. SSH’yi etkinleştirmek için:
- vSphere Client’ı aç.
- İlgili hostu seç ve `Configure` sekmesine git.
- Services` altında SSH servisini başlat (eğer duruyorsa).
SSH ile ESXi hostuna bağlandıktan sonra aşağıdaki adımları takip edebilirsin.
Erişilemeyen VM’i Tanımla
SSH terminalinde, erişilemeyen VM’in UUID’sini veya VM ID’sini bulman gerekiyor. Bunun için aşağıdaki komutu kullan:
vim-cmd vmsvc/getallvms
Bu komut tüm sanal makinelerin bir listesini döndürecektir. Sorunlu VM’in numarasını veya adını buradan bulabilirsin.
VM’i Durdurmaya Çalış
Erişilemeyen VM’i durdurmak için aşağıdaki komutu kullanabilirsin. Burada `VMID`, bir önceki komutta bulduğun VM’in ID’sidir:
vim-cmd vmsvc/power.off VMID
Eğer bu komut ile VM kapanmıyorsa, daha ileri seviye müdahale gerekebilir.
Process ID’yi Bul ve Kill Komutunu Kullan
Eğer yukarıdaki komut çalışmazsa, sanal makinenin işlem ID’sini (PID) bulman gerekecek. Bunun için:
Host üzerinde çalışan tüm VM’lerin işlemlerini listelemek için şu komutu kullan:
esxcli vm process list
Bu komut sana host üzerinde çalışan tüm sanal makinelerin bir listesini verecektir. Sorunlu VM’in adını bul ve `World ID`’sini not al.
Sorunlu VM’i zorla kapatmak için:
esxcli vm process kill –type=force –world-id=WorldID
Buradaki `WorldID`, bulduğun `World ID`’dir.
Kill türleri şunlardır:
- soft: VM’e düzgün bir kapanma sinyali gönderir.
- hard: VM’e daha sert bir kapanma sinyali gönderir.
- force: VM’i zorla kapatır.
Eğer `soft` ve `hard` çalışmazsa, `force` kullanarak VM’i kapatabilirsin.
VM’in Durumunu Doğrula
VM’in kapanıp kapanmadığını doğrulamak için tekrar aşağıdaki komutu kullanabilirsin:
vim-cmd vmsvc/getallvms
VM listede yer almıyorsa veya kapalı olarak işaretlenmişse, VM başarıyla kapatılmış demektir.
Maintenance Moduna Alma
VM’i kapattıktan sonra host üzerinde maintenance modunu başlatmak için:
vim-cmd hostsvc/maintenance_mode_enter
Bu komut, hostu maintenance moduna alacaktır. Eğer herhangi bir hata almazsan, host başarılı bir şekilde maintenance moduna geçecektir.
Sorun Devam Ediyorsa:
Eğer bu adımlar başarısız olursa, host üzerinde daha derinlemesine inceleme yapmak gerekebilir. Bazı durumlarda:
Host yeniden başlatılmadan çözülemeyecek bir kilitlenme olabilir. Ancak, VM kilitlendiğinde bile yukarıdaki adımlar genellikle işe yarar.
Hostun log dosyalarını incelemek faydalı olabilir. `/var/log/vmkernel.log` dosyasında kilitlenen veya hata veren işlemler hakkında bilgi edinebilirsin.
Ayrıca, host üzerinde donanım hatalarını kontrol etmek için `dcui` üzerinden veya vCenter’da hostun performans grafikleri incelenebilir. Bu adımlar, ESXi hostu yeniden başlatmadan erişilemeyen bir VM’i kapatmanı ve hostu maintenance moduna almanı sağlar. Bu yazımda sizlere sorunlu hostunuzu reboot etmeden VM erişim sorununun çözümünden bahsettim. Faydalı olması dileğiyle.