1. Anasayfa
  2. VMware ESXi

VMFS Datastore Kaldırma Hatası “Resource is in Use”


VMware vSphere’de bir VMFS datastore’u silmeye (delete) veya bağlantısını kesmeye (unmount/detach) çalıştığınızda şu hatayı görebilirsiniz:

Unable to unmount/delete VMFS datastore: The resource is in use
file system is busy

Bu datastore’un en az bir ESXi host tarafından hâlâ erişildiği anlamına gelir.
Yani sistem açısından bu depolama “boş” değildir; üzerinde aktif veya pasif bir görev vardır.


“Resource is in use” hatasında “in use” kavramı sadece çalışan bir sanal makine anlamına gelmez.
Aşağıdaki durumlar da datastore’u meşgul gösterebilir:

  • VM swap dosyaları (.vswp)
  • Syslog log dosyaları
  • Scratch partition
  • vSphere HA heartbeat metadata
  • Storage DRS metadata
  • Dump alanı (/vmkdump/)
  • vSAN trace (/vsantraced/)
  • RDM (Raw Device Mapping) LUN bağlantıları
  • ISO dosyaları (mount edilmiş ama unutulmuş)

Sorunun Sıklıkla Görüldüğü Durumlar

  1. Depolama migrasyonu sonrası
    • Tüm VM’leri taşıdınız ama log/scratch konumlarını değiştirmediniz.
  2. Test datastore’ları
    • ISO’lar, snapshot’lar veya küçük dosyalar unutuldu.
  3. Cluster ortamları
    • Datastore, HA/DRS metadata için hâlâ kullanılıyor.
  4. Paylaşımlı LUN senaryoları
    • LUN birden fazla ESXi host’a bağlı, birinde detach yaparken diğeri hâlâ erişiyor.
  5. Yanlış planlanmış bakım
    • Storage I/O Control veya vSphere HA kapatılmadan işlem yapılıyor.

VMware’in Önerdiği Ön Koşullar

Bir datastore’u kaldırmadan önce mutlaka şu adımları uygulayın:

AdımKontrol EdilecekNasıl?
1VM, template, snapshot, ISO yokvSphere Client → Datastore Browser
2Storage I/O Control kapalıDatastore ayarları
3Datastore Cluster üyesi değilStorage → Datastore Clusters
4RDM bağlantısı yokVM ayarlarından kontrol
5HA/DRS metadata kullanmıyorCluster ayarları
6Log/scratch yeri datastore değilAdvanced System Settings
7Dump/vSAN trace kullanmıyorESXi log/dump konumları

Syslog ve Scratch Konumlarını Değiştirme

Çoğu zaman “resource is in use” hatasının sebebi, datastore’un hâlâ log dizini veya scratch alanı olarak tanımlı olmasıdır.

Syslog.global.logDir kontrolü

  1. vSphere Client’ta ESXi host’u seçin.
  2. Manage → Settings → Advanced System Settings menüsüne gidin.
  3. Sağ üst arama kutusuna syslog yazın.
  4. Syslog.global.logDir değerini bulun.

[MSA2000_LUN1] logdir

Eğer kaldırmak istediğiniz datastore burada tanımlıysa, başka bir datastore veya local diske yönlendirin.


“Syslog.global.logDir” datastore’a işaret ediyor. [] içindeki ifade datastore adını, sonrasındaki klasör ise log klasörünü gösterir.

ScratchConfig.CurrentScratchLocation kontrolü

Aynı ekranda, ScratchConfig.CurrentScratchLocation parametresini bulun.
Bu da aynı datastore’a işaret ediyorsa değiştirilmelidir.

Değişiklik sonrası

  • Host’u yeniden başlatın
    veya
  • Syslog servisini yeniden başlatın:
/etc/init.d/syslog restart

Ardından Manage → Storage → Storage Device’tan LUN’u seçip Detach deneyin.

Sorun Hâlâ Çözülmediyse: Partition Tablosunu Temizlemek

Eğer hala hata alıyorsanız, LUN üzerinde VMFS partition kaydı duruyor demektir.
Bu durumda partition tablosunu silmek gerekir.

Kritik Uyarı: Yanlış diski silerseniz tüm verileriniz gider. Her zaman LUN kimliğini iki farklı yöntemle doğrulayın.

LUN Kimliğini Doğrulama

esxcfg-scsidevs -c | grep naa.6001438005df0dee0000700004be0000

Örnek:

naa.6001438005df0dee0000700004be0000 Direct-Access /vmfs/devices/disks/naa.6001438005df0dee0000700004be0000 512000MB NMP HP Fibre Channel Disk

Partition Bilgilerini Görüntüleme

esxcfg-scsidevs -c | grep naa.6001438005df0dee0000700004be0000
esxcfg-scsidevs -m | grep naa.6001438005df0dee0000700004be0000

Kullanım Oranını Kontrol Etme

df -h | grep MSA2000_LUN1

Örnek:

VMFS-5 499.8G 1.4G 498.3G 0% /vmfs/volumes/MSA2000_LUN1

Partition Tablosunu Görme

partedUtil getptbl /vmfs/devices/disks/naa.6001438005df0dee0000700004be0000

Örnek çıktı:

gpt
65270 255 63 1048576000
1 2048 1048575966 AA31E02A400F11DB9590000C2911D1B8 vmfs 0

vmfs kaydı görüyorsanız bu silinmelidir.

Partition’ı Silme

partedUtil delete /vmfs/devices/disks/naa.6001438005df0dee0000700004be0000 1

LUN’u Unmount Etme

Partition silindikten sonra:

  1. vSphere Client’ta host’u seçin.
  2. Manage → Storage → Storage Device sekmesine gidin.
  3. LUN’u seçip Detach yapın.

Artık “Resource is in use” hatası görülmeyecektir.

  • Cluster ortamları: LUN tüm host’lardan kaldırılmalı, sadece bir host’tan değil.
  • Multipath ortamları: Tüm path’lerin serbest olduğundan emin olun.
  • Zamanlama: Yoğun I/O olan saatlerde değil, bakım penceresinde çalışın.
  • HA/DRS: İşlem sırasında devre dışı bırakın, aksi takdirde datastore’a sürekli erişim yapılabilir.
  • Önleyici bakım: Yeni datastore eklerken log ve scratch konumlarını sistematik olarak ayrı bir alana taşıyın.

Hata, datastore’un hâlâ sistem veya VM’ler tarafından kullanılmasından kaynaklanır.

  • Önce Syslog ve Scratch konumlarını değiştirin.
  • Sorun devam ederse partition tablosunu silin.
  • Yanlış diski silmemek için kimlik doğrulamasını mutlaka yapın.
  • Cluster ortamlarında tüm host’lardan bağlantıyı kesin.