เคยเจอเหตุการณ์แบบนี้ไหมครับ? ล็อกอินเข้าหน้า VMware ESXi Host Client ตามปกติ แล้วเห็น VM ตัวหนึ่งขึ้นสถานะ “Invalid” สีแดงเด่นชัด ลองคลิกขวา ลองกดปุ่ม Power on, Power off, Delete — ทุกปุ่มเป็น สีเทา (grayed out) กดไม่ได้สักอย่าง เหมือน VM ตัวนี้ถูกล็อกอยู่ในระบบ จะลบทิ้งก็ไม่ได้ จะเปิดใช้งานก็ไม่ได้
หลายคนเจอแล้วลองรีเฟรช ลองรีบูต ESXi ก็ยังไม่หายไปไหน ปัญหานี้พบบ่อยมากในสาย Infrastructure โดยเฉพาะตอนที่ datastore มีการเปลี่ยนแปลง เช่น ย้าย VM ข้ามเครื่อง, rename datastore, ลบไฟล์ .vmx ทิ้งโดยไม่ได้ unregister VM ก่อน หรือ datastore หลุดไปชั่วคราว
บทความนี้ทีม AbleNet จะมาสรุปสาเหตุที่แท้จริง พร้อมขั้นตอนการแก้ไขแบบ step-by-step ผ่าน SSH command line ของ ESXi ที่ใช้ได้จริงในหน้างาน (อ้างอิงจาก case ที่เราเพิ่งแก้ ESXi ของที่ออฟฟิศเราเองเสร็จไปครับ)
1. ทำความเข้าใจปัญหา: VM “Invalid” คืออะไร?
ในตัวอย่างจากหน้าจอ ESXi เราเห็น VM ชื่อ “1” ขึ้นสถานะ Invalid โดยมีลักษณะดังนี้:
- Status: Invalid (ไอคอนวงกลมแดง)
- Used space: ว่างเปล่า
- Guest OS: undefined
- Host name / Host CPU / Host memory: Unknown / 0 MHz / 0 MB
- ปุ่ม Power on, Power off, Suspend, Console, Actions ทั้งหมดสีเทา กดไม่ได้
VM ที่อยู่ในสถานะ Invalid หมายความว่า:
- ESXi ยังเก็บ reference (registration) ของ VM นี้ไว้ใน inventory
- แต่ ESXi หาไฟล์ configuration หลัก (.vmx) ไม่เจอแล้ว หรือ
- Datastore ที่เก็บ VM ถูกย้าย / rename / disconnect ไป
พูดง่าย ๆ คือ ระบบยังจำได้ว่าเคยมี VM ตัวนี้อยู่ แต่ตามไฟล์จริงไม่เจอ จึงโชว์เป็น Invalid และล็อกการดำเนินการทั้งหมดไว้
ทำไมปุ่ม Delete ถึงเป็นสีเทา? เพราะ ESXi ไม่รู้ว่าจะลบไฟล์อะไร (หาไฟล์ไม่เจอ) จึงไม่ปล่อยให้ใช้คำสั่งลบจาก GUI ได้ ทางออกที่ถูกต้องคือ “Remove from Inventory” เพื่อให้ ESXi ลืม VM ตัวนี้ออกจากระบบ
2. สาเหตุที่พบบ่อย (Root Cause)
| สาเหตุ | รายละเอียด |
| ไฟล์ .vmx หาย / ถูกลบ | มีคนเข้าไปลบไฟล์ใน datastore ตรง ๆ โดยไม่ได้ unregister ก่อน |
| Datastore offline | LUN / NFS หลุด หรือ storage path เปลี่ยน |
| Rename / Move datastore | ย้าย VM ไป datastore อื่นโดยไม่ได้ re-register |
| Storage migration ค้าง | sVMotion ที่หยุดกลางคัน ทำให้ inventory ไม่ sync |
| Cluster failover ผิดปกติ | HA event ทิ้ง stale entry ของ VM ไว้ใน host |
3. ทำไมต้องแก้ผ่าน SSH?
เพราะ GUI ของ ESXi Host Client ล็อกปุ่มทั้งหมดเมื่อ VM อยู่ในสถานะ Invalid ทำให้กด “Remove from Inventory” หรือ “Unregister” ผ่านหน้าเว็บไม่ได้เลย
ทางออกที่ตรงไปตรงมาที่สุดคือใช้คำสั่ง vim-cmd ผ่าน SSH ซึ่งเป็น CLI ที่ติดมากับ ESXi อยู่แล้ว สามารถจัดการ VM ได้ในระดับลึกกว่า GUI
4. ขั้นตอนการแก้ไข แบบ Step-by-Step
Step 1: เปิด SSH Service บน ESXi Host
ก่อนอื่นต้องเปิด SSH ที่ ESXi ก่อน (ปกติจะปิดไว้เพื่อความปลอดภัย):
- ล็อกอินเข้า ESXi Host Client (https://<esxi-ip>/ui)
- ไปที่ Host → Manage → Services
- หา service ชื่อ TSM-SSH
- คลิก Start เพื่อเปิดใช้งาน
Tips: ถ้าเจอ error “Connection refused” ตอน ssh แสดงว่ายังไม่ได้เปิด service นี้
Step 2: SSH เข้า ESXi Host
จากเครื่อง client (macOS / Linux / Windows Terminal):
ssh root@<esxi-ip>
ตัวอย่าง log จริงจาก case ของเรา:
natthapongwannurat@iNatthapong-586 ~ % ssh root@x.x.x.x
ssh: connect to host x.x.x.x port 22: Connection refused
natthapongwannurat@iNatthapong-586 ~ % ssh root@x.x.x.x
The authenticity of host ‘x.x.x.x’ can’t be established.
RSA key fingerprint is: SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added ‘x.x.x.x’ (RSA) to the list of known hosts.
(root@x.x.x.x) Password:
[root@abn101:~]
รอบแรกเจอ Connection refused เพราะยังไม่ได้เปิด SSH service — หลังเปิดแล้ว ssh เข้าได้ปกติ
Step 3: ดูรายการ VM ทั้งหมดบน Host
ใช้คำสั่ง vim-cmd vmsvc/getallvms เพื่อ list VM ทั้งหมด พร้อม Vmid (Virtual Machine ID) ของแต่ละตัว:
[root@abn101:~] vim-cmd vmsvc/getallvms
Skipping invalid VM ‘1’
Vmid Name File Guest OS Annotation
12 EVE [DS01] EVE/EVE.vmx ubuntu64Guest
15 forticoice201 [DS01] forticoice201/forticoice201.vmx other4xLinux64Guest FortiVoice-VM
16 fortivoice200-return [DS01] fortivoice200-return/fortivoice200-return.vmx other3xLinux64Guest FortiVoice-VM
18 CUCM [DS01] CUCM/CUCM.vmx centos7_64Guest CUCM IM and Presence 14.0
19 winSer [DS01] winSer/winSer.vmx windows9Server64Guest
20 FMC [DS01] FMC/FMC.vmx other26xLinux64Guest Cisco FMC Virtual
สังเกตบรรทัดแรก:
Skipping invalid VM ‘1’
นี่คือ เบาะแสสำคัญ — ESXi บอกชัดเจนเลยว่า VM ที่มี Vmid = 1 คือตัวที่เป็น Invalid และระบบเลือกข้ามไป ไม่แสดงในตาราง
Step 4: Unregister VM ที่เป็น Invalid
ใช้คำสั่ง vim-cmd vmsvc/unregister <Vmid>:
[root@abn101:~] vim-cmd vmsvc/unregister 1
คำสั่งนี้จะลบ VM ออกจาก inventory ของ ESXi เท่านั้น (เทียบเท่า “Remove from Inventory” ใน GUI) ไม่ลบไฟล์จริงใน datastore จึงปลอดภัย แม้ใช้กับ VM ที่ยังมีไฟล์อยู่จริง
Step 5: ตรวจสอบผลลัพธ์
กลับไปหน้า ESXi Host Client กด Refresh หรือรัน vim-cmd vmsvc/getallvms อีกครั้ง — VM “1” ควรจะหายไปจาก inventory แล้ว และข้อความ Skipping invalid VM ‘1’ จะไม่ขึ้นอีก ถือว่าแก้สำเร็จครับ
Step 6: ปิด SSH Service (ตาม Best Practice)
เพื่อความปลอดภัยของระบบ ควร ปิด TSM-SSH กลับไปหลังใช้งานเสร็จ:
- ESXi Host Client → Host → Manage → Services → TSM-SSH → Stop
5. ข้อควรระวัง
- ตรวจสอบ Vmid ให้ชัวร์ก่อน unregister — รันเลขผิดตัวคือลบ VM ที่ใช้งานอยู่ออกจาก inventory ทันที (แม้ไฟล์ยังอยู่ แต่ต้อง re-register ใหม่)
- คำสั่ง unregister ไม่ลบไฟล์จริง — ในกรณีที่ VM นั้นไม่ใช่ Invalid (มีไฟล์อยู่จริง) ไฟล์ยังคงอยู่ใน datastore สามารถ register กลับได้ผ่าน Datastore Browser → คลิกขวาที่ .vmx → Register VM
- หากปัญหา Invalid เกิดจาก datastore หลุด ให้แก้ที่ storage ก่อน (re-mount LUN / re-scan HBA) แล้วลอง refresh ก่อนจะ unregister
- หากใช้งาน vCenter ควรทำผ่าน vCenter แทน ESXi โดยตรง เพื่อให้ inventory ของ cluster ตรงกัน
6. สรุป
VM Invalid บน ESXi เกิดจากการที่ host ยังจำ reference ไว้ แต่ตามหาไฟล์ .vmx หรือ datastore ไม่เจอ ทำให้ GUI ล็อกปุ่มทั้งหมดและลบจากหน้าจอไม่ได้ ทางออกคือ SSH เข้า ESXi แล้วใช้ vim-cmd vmsvc/unregister <Vmid> เพื่อ remove จาก inventory
ขั้นตอนสรุปสั้น ๆ:
- เปิด SSH service บน ESXi
- SSH เข้า host
- รัน vim-cmd vmsvc/getallvms หา Vmid ของ VM ที่ invalid
- รัน vim-cmd vmsvc/unregister <Vmid>
- Refresh GUI ตรวจสอบ และปิด SSH service กลับ
เกี่ยวกับ AbleNet
AbleNet ให้บริการ outsourced network implementation และ consultancy services ครอบคลุม Cisco, Fortinet, VMware และ enterprise-grade technologies ต่าง ๆ ทีมงานของเรามีประสบการณ์ตรงในการแก้ปัญหา infrastructure ในระดับ production ทั้ง virtualization, networking, security และ unified communications
หากองค์กรของคุณกำลังมองหาผู้เชี่ยวชาญดูแลระบบ ESXi, vCenter หรือต้องการ consult ปัญหา infrastructure สามารถติดต่อทีม AbleNet ได้เลยครับ