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
- Depolama migrasyonu sonrası
- Tüm VM’leri taşıdınız ama log/scratch konumlarını değiştirmediniz.
- Test datastore’ları
- ISO’lar, snapshot’lar veya küçük dosyalar unutuldu.
- Cluster ortamları
- Datastore, HA/DRS metadata için hâlâ kullanılıyor.
- Paylaşımlı LUN senaryoları
- LUN birden fazla ESXi host’a bağlı, birinde detach yaparken diğeri hâlâ erişiyor.
- 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ım | Kontrol Edilecek | Nasıl? |
|---|---|---|
| 1 | VM, template, snapshot, ISO yok | vSphere Client → Datastore Browser |
| 2 | Storage I/O Control kapalı | Datastore ayarları |
| 3 | Datastore Cluster üyesi değil | Storage → Datastore Clusters |
| 4 | RDM bağlantısı yok | VM ayarlarından kontrol |
| 5 | HA/DRS metadata kullanmıyor | Cluster ayarları |
| 6 | Log/scratch yeri datastore değil | Advanced System Settings |
| 7 | Dump/vSAN trace kullanmıyor | ESXi 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ü
- vSphere Client’ta ESXi host’u seçin.
- Manage → Settings → Advanced System Settings menüsüne gidin.
- Sağ üst arama kutusuna syslog yazın.
- 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:
- vSphere Client’ta host’u seçin.
- Manage → Storage → Storage Device sekmesine gidin.
- 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.