vCenter datastore inactive

Merhabalar, ESXi host datastore inaccesible olduğunda ve vCenter üzerinden datastore remount edilemediğinde oluşan semptomları ve çözümünü anlatacağım.

Bu soruna sebep olabilecek şeyler arasında şunlar var :

  • Datastore beklenmeyen bir şekilde storage array’den un-present olursa.
  • Datastore üzerinde çalışan VM varsa ve o anda datastore offline olursa.
  • /var/log/vmkernel.log’da şuna benzer çıktılar : Cmd(0x4124c0ea2e80) 0x28, CmdSN 0x70509 to dev “naa.6006016058201700354179be0c6fdf11” failed H:0x1 D:0x0 P:0x0 Possible sense data: 0x0 0x0 0x0.

Şimdi durumu incelediğimizde vCenter üzerinden datastore soluk bir renkte ve “inactive” olarak görünüyor. Bu datastore üzerinde bulunan Sanal Makinalar ise “inaccessible” duruma düşüp inventory’de soluk bir renge dönücek veya ismi değişip “datastore yolu” gözükecektir.
datastore-inactive

Bu durumla karşılaştığımızda nasıl çözebiliriz?

— Öncelikle ilgili datastore’un naa.id‘sini bulmamız gerekecektir. Bunu arayüzden ya da vmkernel.log dosyasında semptonlarda belirtilen çıktıdan tespit etmeniz mümkündür. Bunu tespit ettikten sonra datastore’ları görmeyen hostlara SSH ile bağlanıp aşağıdaki adımları izleyin :

#esxcli storage core device world list -d naa.6006016058201700354179be0c6fdf11  (bu id inactive olan datastore’un id’si kendi datastore id’nizle değiştirin)

Burda verilen çıktıda hangi VM lerin datastore üzerinde olduğu ve process yürüttüğünü tespit etmelisiniz.

Device World ID Open Count World Name
—————————————————- ——– ———- ——————————————————————-
t10.F405E46494C45425A597854754A5D2844446D4D266232334 32814 1 idle0
t10.F405E46494C45425A597854754A5D2844446D4D266232334 32869 1 helper1-0
t10.F405E46494C45425A597854754A5D2844446D4D266232334 32870 1 helper1-1
t10.F405E46494C45425A597854754A5D2844446D4D266232334 32871 1 helper1-2

Buna benzer bir çıktı elde ediceksiniz. Burada önemli olan hangi VM’in hangi processi yürüttüğü ve hangisini kill etmeniz gerektiğidir. Bunu da “helper1-0” yazan sütunda görebilirsiniz. Orada ki VM isimlerini not edin ve aramayı biraz daha derinleştirip :

#esxcli vm process list

komutunu gönderelim çıktı aşağıdakine benzer olacaktır. Bir önceki komutla diski tutan VM’lerin hangileri olduğunu tespit ettik. Burada da o processi kill etmek için gerekli World ID‘yi alıyoruz.

Exc2K16
World ID: 56194673
Process ID: 0
VMX Cartel ID: 56227440
UUID: 42 19 04 95 4a 70 c9 15-d3 77 e0 12 75 9b 28 64
Display Name: Exc2K16
Config File: /vmfs/volumes/545442a1-af8eabc0-b755-5cb9018d5f1c/Exc2K16/Exc2K16.vmx

Core_nsx-ADC
World ID: 38304115
Process ID: 0
VMX Cartel ID: 38369650
UUID: 56 4d 88 99 6b 53 69 87-37 e6 93 41 11 ae e0 a4
Display Name: Core_nsx-ADC
Config File: /vmfs/volumes/54542630-08a6f9af-d324-5cb9018d5f1c/Core_nsx-ADC/Core_nsx-ADC.vmx

Daha sonra öğrendiğimiz world id’yi aşağıdaki komutla kullanarak process’leri kill ediyoruz.

#esxcli vm process kill --type=force --world-id=56194673

(Bu adımı tüm disk üzerinde process kalmayana kadar tüm processler için yapmalısınız kontrol etmek için aşağıdaki komutu tekrar gönderin. LUN üzerinde Process kalmayınca hostd ve vpxa servislerini restart ediyoruz.

#esxcli storage core device world list -d naa.6006016058201700354179be0c6fdf11      

#/etc/init.d/hostd restart

#/etc/init.d/vpxa restart

Bu işlemleri yaptıktan sonra vCenter arayüzünden ilgili hostun datastore tabına gidip ” rescan all ” dediğiniz de inactive durumda olan datastore aktif olacak aynı şekilde “inaccessible” görünen VM’ler normal haline dönecektir.

VM’lerden bağımsız olarak mevcut datastore üzerinde ghost process kalması durumunda yine benzer olarak datastore inactive veya inaccessible durumda görünebilir. Bu durumda ise DS üzerinde koşan processleri kill etmek işe yaramaktadır. İlgili process tespiti için yine;

#esxcli storage core device world list -d naa.6006016058201700354179be0c6fdf11      

Not: Tüm bunları yaptığınız halde sorunu çözemiyorsanız ilgili hostu reboot etmek sorunu çözecektir.

Tolgahan Yılmaz

👋 Hi, I’m @tylmz. A virtualization and Software Defined Networking Expert interested in Cloud Computing, virtualization, performance tuning of distributed systems and Process Automation 🌱 Currently learning python and shell 💞️ Looking to collaborate on DevOps and process automation 📫 How to reach me; tolgahan_y [at] yahoo.com.tr.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.