Vcenter’da ‘Datastore Conflicts with existing datastore’ hatası

Tecrübe ettiğim durumlar arasında, sanal makinalarınızı barındığınız VMware hostlardan biri çökmesidir. Bunun sonucunda hosttunuz ayağa kaldırdığınızda tekrar vcenter eklenmek istendiğinde aşağıdaki hata ile karşılaşılabilirsiniz. Bu yazıda bu sorunun nasıl çözüleceğine değinilmiştir.

“Datastore ‘DataStoreX’ conflicts with an existing datastore in the datacenter that has the same URL (ds:///vmfs/volumes/xxxxxxxx-xxxxxxxx-xxxx-xxxxxxxxxxxx/) but is backed by different physical storage.”

Bu sorunun temel nedenleri arasında sorun yaşadığınız hostun üzerinde yer alan datastore örneğin ismi DataStoreX olsun halen vcenter üzerinde görünüyor olmasından kaynaklı çakışma olmaktadır. Bu sorunu çözmek için Vcenter da çakışmaya neden olan datastore envanterden çıkarılması gerekir. Çoğu durumda bu sorunlu datastore Vcenter ara yüzünden kaldırılamaz, sorunu çözmek için daha derinlere inmek gerekebilir.

Bu sorunda, soruna neden olan nesneyi Vcenter database üzerinden silerek çözülecektir. Bu yazıda yapılan işlemler Vcenter Server Appliance (VCSA) üzerinde yapılmıştır ve VCSA vPostgres veritabanını kullanır.

Uyarı: Vcenter veritabanı üzerinde işlemler yapıldığından,işlemlere başlamadan önce Vcenter’ın snapshot yada backup alınması önerilir.

İlk önce servis durdurulur

Stop the vpxd service with the command: service-control --stop vmware-vpxd

Öncelikle VCSA ssh ile bağlanılır. . psql  aracı çalıştırılır.

/opt/vmware/vpostgres/current/bin/psql -d VCDB -U postgres

Aşağıdaki komut çalıştırılarak Vcenter üzerinden kaldırmak istediğimiz DataStore (DataStoreX) tablo üzerinde kimliği bulunur

 

SELECT id FROM vpx_entity WHERE name = ‘DataStoreX’;

id

1537714

(1 row)

Yukarıdaki gibi datastore un kimlik id bulundu.

Hangi nesnelerin bu datastore bağlı olduğunu görmek için aşağıdaki komut bulduğumuz datastore kimliği belirtilerek çalıştırılır.

SELECT * FROM vpx_ds_assignment WHERE ds_id=1537714;

Çıkan sonuçta bir nesnenin datastore bağlı olduğu görülüyor.

Bulunan nesnenin ne olduğu hakkında bilgi almak için aşağıdaki kod nesnenin kimlik bilgisi yazılarak çalıştırılır.

SELECT * FROM vpx_entity WHERE id=1537713;

Yukarıdaki sonuçta datastore bağlı olan nesnenin SERVERX adında bir sanal sunucu olduğunu, mevut durumda aktif olarak bu datastore üzerinde kullanılmadığını doğruluyorum,. Böylece ilgili DataStore (DataStoreX) silmemizi engelleyen nesneyi bulmuş oluyoruz.

READ  Vcenter üzerinde sanal makine taşıma işlemi (migrate)

Vcenter GUI de silemediğimiz datasore, aşağıdaki kodlarla veritabanından siliyoruz. Vcenter reboot ettiğimizde sorunlu datastore envanterde görünmediğini doğruluyoruz. Vcenter’a ekleyemediğimiz hostu artık ekleyebiliriz.

DELETE FROM vpx_ds_assignment WHERE ds_id=1537713;

DELETE FROM vpx_datastore WHERE id=1537713;

DELETE FROM vpx_vm_ds_space WHERE ds_id=1537713;

DELETE FROM vpx_entity where id=1537713;

surgulama aracından exit diyerek çıkılır. 

service-control --start vmware-vpxd servis çalıştırılır.

VCENTER restart edilir.



Kaynaklar:
https://kb.vmware.com/s/article/79623
https://kb.vmware.com/s/article/2147285

Remove Inaccessible datastore from inventory

Yorum yapın