ภาพรวมปัญหา
หลังเพิ่มจำนวน vCPU แบบ Hot-Add (เพิ่มขณะเครื่องทำงาน ไม่ต้องปิดเครื่อง) ให้กับ VM ที่ใช้ Windows Server 2016 บน Sangfor HCI มักพบอุปกรณ์ผิดปกติชื่อ "HID Button over Interrupt Driver" ใน Device Manager > Human Interface Devices
ผลกระทบสำคัญ: ตราบที่อุปกรณ์นี้ผิดปกติ Windows จะไม่ตรวจพบหรือนำ vCPU ที่เพิ่ม Hot-Add ไปใช้งานจริง เช่น เพิ่มจำนวน Socket จาก 1 เป็น 2 ที่ระดับ HCI (รวมเป็น 16 Core) แล้ว แต่ Windows ยังเห็นเพียง 8 Core เพราะ Windows Server 2016 ไม่สามารถรับรู้ CPU ที่ไม่ได้มีอยู่ตั้งแต่ตอนบูตได้ จนกว่าจะแก้ไขอุปกรณ์ดังกล่าว นอกจากนี้บางกรณีอาจทำให้ CPU ทำงานสูงผิดปกติ
อาการที่พบ
- vCPU ที่เพิ่มไม่ถูกตรวจพบ: CPU ที่เพิ่มที่ระดับ HCI (โดยเพิ่มจำนวน Socket) ไม่ปรากฏใน Task Manager / System (เช่น เพิ่มเป็น 16 Core แต่ Windows ยังเห็น 8 Core) ทำให้ VM ไม่ได้ประสิทธิภาพตามที่จัดสรร
- ปรากฏอุปกรณ์ "HID Button over Interrupt Driver" ใน Human Interface Devices (บางครั้งมีเครื่องหมายตกใจสีเหลือง)
- การใช้งาน CPU สูงผิดปกติในบางช่วง โดยไม่มีโปรเซสของผู้ใช้ที่ชัดเจน
อุปกรณ์ "HID Button over Interrupt Driver" ที่ปรากฏใน Device Manager
สาเหตุของปัญหา
เป็นข้อบกพร่องของไดรเวอร์ ACPI ใน Windows Server 2016 เอง ไม่ใช่ของแพลตฟอร์ม Sangfor HCI โดยเมื่อ Hot-Add vCPU Windows จะตรวจพบอ็อบเจ็กต์ ACPI0010 (Processor Container) แต่ระบุประเภทผิดพลาด (สับสนกับ ACPI0011 Generic Buttons Device) จึงนำไปผูกกับไดรเวอร์ปุ่มกด HID อุปกรณ์จึงแสดงสถานะผิดปกติและบางครั้งทำให้เกิด interrupt วนซ้ำที่ดัน CPU ขึ้นสูง
ข้อบกพร่องนี้พบเฉพาะ Windows Server 2016 และได้รับการแก้ไขในรุ่นใหม่กว่าแล้ว (Windows Server 2019 ขึ้นไปไม่พบปัญหานี้)
สภาพแวดล้อมที่เกี่ยวข้อง
| รายการ | รายละเอียด |
|---|---|
| แพลตฟอร์ม | Sangfor HCI (Hyper-Converged Infrastructure) |
| ระบบปฏิบัติการ Guest | Windows Server 2016 (64-bit) |
| เงื่อนไขที่ทำให้เกิด | เปิด "Enable CPU hot add" และเพิ่มจำนวน Socket ขณะเครื่องทำงาน |
การตั้งค่า "Enable CPU hot add" บนหน้า Edit Virtual Machine ของ Sangfor HCI
เหตุการณ์ Hot-Add ที่บันทึกใน Tasks — เพิ่ม Virtual Sockets จาก 1 เป็น 2 (CPU Cores รวม 8 → 16)
ขั้นตอนการแก้ไข
เข้าสู่ระบบ Windows Server 2016 ที่มีปัญหา แล้วทำตามขั้นตอนต่อไปนี้
- เปิด Device Manager > ขยาย Human Interface Devices > คลิกขวาที่ "HID Button over Interrupt Driver" > Update Driver Software…
- เลือก "Browse my computer for driver software"
- คลิก "Let me pick from a list of device drivers on my computer"
- เลือก "Generic Bus" ในรายการ Model แล้วคลิก Next
- ระบบติดตั้งไดรเวอร์และแสดง "Windows has successfully updated your driver software" อุปกรณ์จะเปลี่ยนชื่อเป็น Generic Bus คลิก Close
มีแพตช์จาก Windows ที่แก้ปัญหานี้โดยตรงหรือไม่?
แม้ข้อบกพร่อง ACPI นี้จะถูกแก้ใน Windows รุ่นใหม่กว่าแล้ว แต่ Microsoft ไม่ได้ออกแพตช์เฉพาะ (hotfix/KB) สำหรับ Windows Server 2016 จึงต้องแก้ที่ฝั่ง Guest OS โดยมี 2 วิธี
- เปลี่ยนไดรเวอร์เป็น Generic Bus (แนะนำ): แก้ถาวร ไม่ต้องรีสตาร์ท ตามขั้นตอนข้างต้น
- รีสตาร์ท Guest OS: Windows จะตรวจพบ vCPU ที่เพิ่มอย่างถูกต้อง แต่อุปกรณ์อาจกลับมาเมื่อ Hot-Add ครั้งถัดไป
ข้อคิดเห็น
0 ข้อคิดเห็น
โปรด ลงชื่อเข้าใช้ เพื่อแสดงข้อคิดเห็น