ระหว่างการย้ายไฟล์ Virtual Machines จาก Storage เก่า HP MSA 2000 ไป Storage ใหม่ Dell EMC Unity (ทั้งคู่ต่อกับ ESXi Hosts ผ่าน SAN) พบปัญหาเมื่อพยายามลบ VMFS Datastore ว่างใน VMWare vSphere เมื่อพยายาม Unmount VMFS Datastore จาก ESXi Hosts Error Message ปรากฏว่ Datastore ยังใช้งานอยู่ / Busy:
Unmount VMFS volume vmesxi2.woshub.com. The resource 'Datastore Name: MSA2000_LUN1 VMFS uuid: xxxxx--xxxxx-x-xxxxx-xxxx' is in use. Cannot unmount volume Datastore Name VMFS "file system is busy".

จาก Error ชัดเจนว่า VMFS Datastore ลบไม่ได้เพราะ ESXi Hosts หรือ vSphere ยังใช้ Storage เขียนข้อมูล ตามเอกสาร VMWare เมื่อลบ LUN จาก vSphere ควรตรวจสอบจุดต่อไป:
- ไม่มีไฟล์ Virtual Machine, Template, Snapshot หรือ ISO Image บน VMFS Datastore (ต้อง Migrate VMs ไป Datastore อื่น, Power Off และลบ, หรือ Unregister VMs ใน vSphere)
- Storage I/O Control ปิดสำหรับ Datastore
- Datastore ไม่ใช่ส่วนหนึ่งของ Datastore Cluster
- LUN ไม่ได้ใช้เป็น RDM Device
- VMFS Datastore ไม่ได้ใช้เก็บข้อมูล vSphere HA, Storage DRS, Logs, Dumps (/vmkdump/), vSAN Data (/vsantraced/), Technical Support Data (Scratch Partition), หรือ Virtual Machine Swap Files
Virtual Machines ย้ายไป Datastore ใหม่ด้วย Storage vMotion แล้ว มาดูว่ายังมีไฟล์และโฟลเดอร์อะไรเหลืออยู่บน VMFS Datastore:

เห็นว่ามีโฟลเดอร์ logdir (โฟลเดอร์ Logs), sdd.sf (คำอธิบายอุปกรณ์ SCSI), dbsData (ข้อมูล Distributed Virtual Switch) และ naa… (VMFS Metadata) เหลืออยู่
ในกรณีนี้ ESXi Host Logs ยังอยู่บน VMFS Datastore (Scratch Location) ตรวจสอบว่าระบุ Datastore เป็น Location ของ Logs ในการตั้งค่า ESXi Host ไปที่ Manage → Settings → Advanced System Settings หา ScratchConfig.CurrentScratchLocation และ Syslog.global.logDir และหากระบุ VMFS Datastore ให้เปลี่ยนพาธไปยังไดเรกทอรี Logs

Restart ESXi Host หรือ Restart Service Syslog Server บนโฮสต์

ลอง Unmount Datastore จาก ESXi Host อีกครั้ง ไปที่ Manage → Storage → Storage Device หา LUN ในรายการ เลือก และคลิก Detaches the selected device from the host
ในกรณีของผม Error เกิดอีกครั้ง:
Detach SCSI LUN The resource is in use.
ลองหานานค่อนข้างว่ามีใครใช้ Datastore นี้ ตัดสินใจว่าวิธีง่ายที่สุดคือ ลบ Partition Table ของ VMFS Datastore (ต้องทำอย่างระมัดระวังและแน่ใจว่าลบ Datastore ที่ถูกต้อง)
- เชื่อมต่อ SSH ไปยัง ESXi Host ใดๆ ที่มี VMFS Store Mounted
- คัดลอก ID ของ Datastore ใน vSphere Interface และตรวจสอบบน ESXi Host ว่า Device และ Path ไหนตรงกับ VMFS Store:
esxcfg-scsidevs -c | grep naa.6001438005df0dee0000700004be0000naa.6001438005df0dee0000700004be0000 Direct-Access /vmfs/devices/disks/naa. 6001438005df0dee0000700004be0000 512000MB NMP HP Fibre Channel Disk (naa.6001438005df0dee0000700004be0000)
esxcfg-scsidevs -m | grep naa.6001438005df0dee0000700004be0000naa.6001438005df0dee0000700004be0000:1 /vmfs/devices/disks/naa.6001438005df0dee0000700004be0000:1 570e5298-08f4c74e-ca3a-b4b52f5e2b38 0 MSA2000_LUN1
- ดูพื้นที่ที่ใช้บน VMFS Datastore (ว่างเกือบหมด):
df -h | grep MSA2000_LUN1VMFS-5 499.8G 1.4G 498.3G 0% /vmfs/volumes/MSA2000_LUN1

- ยืนยันแล้วว่า Datastore Name และ Store ID ตรงกับ LUN ที่ต้องการลบ
- ดูข้อมูล Partition Table บน Datastore:
partedUtil getptbl /vmfs/devices/disks/naa.6001438005df0dee0000700004be0000gpt 65270 255 63 1048576000 1 2048 1048575966 AA31E02A400F11DB9590000C2911D1B8 vmfs 0
- ในกรณีนี้ LUN มี Partition เดียวที่มีระบบไฟล์ VMFS
- ลบ VMFS Partition ที่มี ID 1 จากดิสก์ (LUN) นี้ โปรดระมัดระวังมาก!!!
partedUtil delete /vmfs/devices/disks/naa.6001438005df0dee0000700004be0000 1
หลังลบ Partition แล้ว สามารถ Unmount LUN ใน vSphere – Unmount Datastore Error 'datastore is in use' จะไม่ปรากฏอีก

เลือก ESXi Hosts ที่จะ Unmount Datastore

หรือทำ Detach จากรายการ Storage Devices ที่ต่ออยู่บน ESXi Host สถานะการเชื่อมต่อจะเปลี่ยนเป็น Detached

หลังจากนั้น ลบ VMFS Store (Delete Datastore) และมันจะหายจาก vSphere
