ข้อเสียที่สำคัญอย่างหนึ่งของ Hyper-V เมื่อเทียบกับไฮเปอร์ไวเซอร์อื่นๆ (เช่น VMWare ESXi หรือ Proxmox) คือการขาดคุณสมบัติในการเปลี่ยนเส้นทางอุปกรณ์ USB จากโฮสต์ไปยังเครื่องเสมือน ตั้งแต่เวอร์ชัน Hyper-V 2012 R2 เป็นต้นไป มีการเปลี่ยนแปลงหลายอย่างเกี่ยวกับตัวเลือก USB Passthrough แต่ฟังก์ชันนี้ยังคงด้อยกว่าคู่แข่ง ในบทความนี้ เราจะพูดถึงลักษณะเฉพาะของการเปลี่ยนเส้นทาง USB ใน Hyper-V
ภาพรวมของ Hyper-V USB Passthrough
ผ่าน USB หมายถึงความสามารถในการเปลี่ยนเส้นทางอุปกรณ์ USB จากโฮสต์ไฮเปอร์ไวเซอร์ (หรือผ่านเครือข่ายจากเซิร์ฟเวอร์/อุปกรณ์อื่น) ไปยังเครื่องเสมือน เมื่อใช้ USB passthrough คุณจะเปลี่ยนเส้นทางแท่ง USB, โทเค็น, ดองเกิล USB, โมเด็ม หรืออุปกรณ์อื่นๆ ที่เชื่อมต่อกับพอร์ต USB ของโฮสต์จริงไปยังเครื่องเสมือนได้
ข่าวร้ายก็คือ Hyper-V ไม่รองรับ USB passthrough ที่มีคุณสมบัติครบถ้วน คุณไม่สามารถเปลี่ยนเส้นทางอุปกรณ์ USB โดยพลการจากโฮสต์จริงไปยังเครื่องเสมือน (VMWare ดีกว่านี้มาก – ดูบทความ USB passthrough ใน VMWare ESXi) มีตัวเลือกในตัวหลายอย่างสำหรับการใช้อุปกรณ์ USB ภายนอกใน Hyper-V VM แต่ทั้งหมดนั้นมีข้อจำกัดที่สำคัญ ปัจจุบัน คุณสามารถใช้วิธีต่อไปนี้ในการเปลี่ยนเส้นทางอุปกรณ์ USB ไปยังเครื่องเสมือน Hyper-V
- การเปลี่ยนเส้นทางไดรฟ์ USB จากโฮสต์ Hyper-V
- โหมดเซสชันที่ได้รับการปรับปรุงบนคอนโซล Hyper-V
- การเปลี่ยนเส้นทาง USB ผ่าน RDP;
- การใช้โซลูชันซอฟต์แวร์/ฮาร์ดแวร์สำหรับการเปลี่ยนเส้นทาง USB ผ่านเครือข่าย (USB over IP)
usbip.sourceforge.net
(ส่วนเซิร์ฟเวอร์ถูกใช้งานบน Linux ไคลเอนต์สามารถติดตั้งบน Windows) การเข้าถึงฮาร์ดไดรฟ์ USB จากเครื่องเสมือน Hyper-V
คุณสามารถเปลี่ยนเส้นทางไดรฟ์ USB ที่เชื่อมต่อกับโฮสต์ได้โดยตรงภายในเครื่องเสมือน Hyper-V ที่กำลังทำงานอยู่ มาดูวิธีให้เครื่องเสมือน Hyper-V เข้าถึงไดรฟ์ USB ของโฮสต์ได้โดยตรง
หมายเหตุ .- คู่มือนี้ใช้ได้เฉพาะกับไดรฟ์ USB ที่ระบบตรวจพบว่าแก้ไขแล้ว . คุณไม่สามารถเปลี่ยนเส้นทางไปยัง VM ด้วยวิธีนี้ USB แฟลชไดรฟ์ สมาร์ทการ์ด และอุปกรณ์แบบถอดได้อื่นๆ (แม้ว่าจะมีเคล็ดลับเล็กน้อยในการทำให้ Windows เห็นว่าอุปกรณ์แบบถอดได้เป็นฮาร์ดไดรฟ์แบบตายตัว)
- สำหรับไดรฟ์เหล่านี้ คุณไม่สามารถสร้างสแนปชอต/จุดตรวจสอบได้
- เชื่อมต่อไดรฟ์ USB ภายนอกกับโฮสต์ Hyper-V (อาจเป็นโฮสต์ใดก็ได้ที่มี Windows และติดตั้งบทบาท Hyper-V หรือเซิร์ฟเวอร์ Microsoft Hyper-V ฟรี) ไดรฟ์จะปรากฏในระบบและจะมีการกำหนดอักษรระบุไดรฟ์ (หากยังไม่ได้กำหนดอักษรระบุไดรฟ์ ให้ตรวจสอบบทความ)
- เปิด การจัดการดิสก์ (
diskmgmt.msc
) คอนโซล คลิกขวาที่ไดรฟ์ (ในตัวอย่างของเรา ID ของไดรฟ์ USB ขนาด 20 GB คือ Disk 1) และเลือก ออฟไลน์ . หากคุณใช้ Windows Server Core หรือ Hyper-V Server ซึ่งไม่มี mmc แบบกราฟิกบางส่วน snap-ins คุณสามารถจัดการดิสก์ในเครื่องของคุณโดยใช้โมดูล Disk Management PowerShell คำสั่งต่อไปนี้สามารถแสดงรายการฟิสิคัลดิสก์บนโฮสต์และทำให้ดิสก์ที่ระบุออฟไลน์:Get-Disk
Get-Disk -Number 1 |Set-Disk -IsOffline:$true
- เรียกใช้ Hyper-V Manager และเปิดคุณสมบัติของเครื่องเสมือน ซึ่งจำเป็นต้องเชื่อมต่อไดรฟ์ USB ใน ตัวควบคุม SCSI ส่วน เพิ่มดิสก์ใหม่ ระบุว่าเป็นฟิสิคัล (ฮาร์ดดิสก์จริง ). ในเมนูแบบเลื่อนลง ให้เลือกไดรฟ์ USB ของคุณ (จะมีลักษณะดังนี้:Disk 1 20.00 Gb Bus 0 Lun 0 Target 1 ). หมายเหตุ . คุณไม่จำเป็นต้องปิดเครื่องเสมือนเพื่อเพิ่มฮาร์ดไดรฟ์ SCSI สำหรับอุปกรณ์ SCSI รองรับไดรฟ์ hot-add และ hot-remove
- ตอนนี้เราจะแสดงวิธีเข้าถึงดิสก์ USB บนโฮสต์ Hyper-V จาก guest OS ของเครื่องเสมือนที่ใช้ Windows เปิดคอนโซลเครื่องเสมือนหรือเชื่อมต่อผ่าน RDP เข้าสู่ระบบระบบปฏิบัติการแขก เรียกใช้ตัวจัดการดิสก์ ระบบปฏิบัติการควรเห็นไดรฟ์ใหม่ หากออฟไลน์อยู่ ให้คลิกขวาและเลือก ออนไลน์ . ในขณะนี้ ยังไม่มีการกำหนดอักษรชื่อไดรฟ์หรือจุดเชื่อมต่อให้กับพาร์ติชั่นบนดิสก์ USB ในการแก้ไขปัญหานี้ ให้คลิกขวาที่พาร์ติชั่นบนดิสก์และเลือก “เปลี่ยนอักษรระบุไดรฟ์และเส้นทาง ” จากเมนูบริบท กำหนดอักษรระบุไดรฟ์ฟรีให้กับพาร์ติชันหรือระบุจุดต่อเชื่อม
นั่นคือทั้งหมด! คุณได้เชื่อมต่อสื่อ USB ภายนอกเข้ากับเครื่องเสมือน Hyper-V โดยตรง และตอนนี้ก็ใช้งานได้แล้ว
สำคัญ . เพื่อป้องกันข้อมูลสูญหาย ก่อนที่คุณจะถอดฮาร์ดดิสก์ออกจากพอร์ต USB ตรวจสอบให้แน่ใจว่าไม่มีแอปพลิเคชันใดในเครื่องเสมือนเข้าถึงดิสก์นี้ในการถอดไดรฟ์ USB อย่างปลอดภัย คุณสามารถเปิด Hyper-V Manage คอนโซล r และไปที่หน้าต่างการตั้งค่าเครื่องเสมือน ใน ตัวควบคุม SCSI ให้เลือกฮาร์ดไดรฟ์ที่คุณต้องการลบแล้วคลิก ลบ . บันทึกการเปลี่ยนแปลงของคุณ หลังจากนั้น คุณสามารถถอดฮาร์ดไดรฟ์ออกจากพอร์ต USB ของโฮสต์ Hyper-V ได้
เปลี่ยนเส้นทางอุปกรณ์ USB ไปยัง VM ด้วยโหมดเซสชันที่ปรับปรุง Hyper-V
ในเวอร์ชันของ Hyper-V ที่เปิดตัวใน Windows Server 2012 R2/8.1 อุปกรณ์ USB ใดๆ สามารถส่งต่อไปยังเครื่องเสมือนจากคอมพิวเตอร์ไคลเอนต์ได้โดยใช้ Enhanced Session Mode (ESM) . เครื่องมือ Hyper-V Manager vmconnect.exe ใช้เพื่อเชื่อมต่อ ช่วยให้คุณเชื่อมต่อกับคอนโซลเครื่องเสมือนและเลือกอุปกรณ์ USB ที่คุณต้องการเปลี่ยนเส้นทาง
ก่อนอื่นคุณต้องเปิดใช้งานโหมดเซสชันที่ปรับปรุงแล้วในการตั้งค่าเซิร์ฟเวอร์ Hyper-V ซึ่งสามารถทำได้โดยใช้ PowerShell:
Set-VMHost -EnableEnhancedSessionMode $true
หรือในการตั้งค่า Hyper-V -> Enhanced Session Mode
เริ่มบริการ Hyper-V Virtual Machine Management:Get-Service vmms | Restart-Service
ใน บริการบูรณาการ ของการตั้งค่า VM คุณต้องเปิดใช้งาน บริการแขก ตัวเลือก
ในการเปลี่ยนเส้นทางอุปกรณ์ USB ผ่าน Enhanced Session Mode คุณต้องเปิดคอนโซล Hyper-V เลือกเครื่องเสมือน แล้วคลิก เชื่อมต่อ ปุ่ม. หรือคุณสามารถเรียกใช้ vmconnect.exe
เครื่องมือ (Virtual Machine Connection) ระบุเซิร์ฟเวอร์ Hyper-V และชื่อเครื่องเสมือน เครื่องมือ vmconnect รองรับตัวเลือกบรรทัดคำสั่งบางตัว ดังนั้นคุณจึงสามารถกำหนดไฟล์ bat ที่ปรับแต่งเองพร้อมตัวเลือกที่คุณต้องการให้กับผู้ใช้ได้
หาก VM รองรับโหมดเซสชันที่ปรับปรุงแล้ว หน้าต่างที่คล้ายกับคุณสมบัติการเชื่อมต่อ RDP จะปรากฏขึ้น คลิก แสดงตัวเลือก -> ทรัพยากรในท้องถิ่น -> อุปกรณ์และทรัพยากรในพื้นที่ -> เพิ่มเติม .
เลือกอุปกรณ์ USB บนคอมพิวเตอร์ของคุณเพื่อเปลี่ยนเส้นทางไปยัง VM หากอุปกรณ์ที่คุณต้องการไม่ได้เชื่อมต่ออยู่ ให้เลือก “อุปกรณ์ Plug and Play (PnP) ที่รองรับอื่นๆ ” และ “อุปกรณ์ที่ฉันเสียบตัวเลือกในภายหลัง ”
ตอนนี้อุปกรณ์ USB ทั้งหมดที่เชื่อมต่อกับคอมพิวเตอร์ของคุณจะพร้อมใช้งานโดยอัตโนมัติในเซสชันคอนโซลของเครื่องเสมือน Hyper-V
คุณสมบัติหลักและข้อจำกัดของโหมดเซสชันที่ปรับปรุง Hyper-V:
- เฉพาะ Windows เท่านั้นที่ได้รับการสนับสนุนในฐานะแขก OS (เริ่มจาก Windows 8.1 / Windows Server 2012 R2)
- คุณไม่จำเป็นต้องเข้าถึงเครือข่ายโดยตรงไปยังเครื่องเสมือน การเชื่อมต่อทั้งหมดทำผ่านโฮสต์ Hyper-V (คุณเชื่อมต่อผ่านเครือข่ายผ่านพอร์ต TCP 2179) และ Hyper-V จะเชื่อมต่อกับ VM ผ่าน VMBus
- ต้องติดตั้ง Hyper-V Manager บนคอมพิวเตอร์ไคลเอนต์
วิธีนี้คล้ายกับการเปลี่ยนเส้นทางอุปกรณ์ USB จากโฮสต์ในพื้นที่ผ่านเซสชัน RDP เราจะไม่พิจารณาเรื่องนี้ในรายละเอียดเพิ่มเติม
หากคุณกำลังเปลี่ยนเส้นทางอุปกรณ์ USB ผ่านเครือข่าย (USB ผ่าน IP หรือผ่านเซสชัน RDP) คุณยังคงสามารถเข้าถึงคีย์ USB ได้แม้หลังจากย้ายเครื่องเสมือนไปยังโฮสต์อื่นแล้ว (Hyper-V Live Migration / vMotion)