-
PVE USB passthrough คืออะไร และทำไมคุณต้องใช้?
-
ข้อกำหนดเบื้องต้นสำหรับการผ่านอุปกรณ์ USB ใน Proxmox VE
-
PVE จัดการ USB Passthrough ภายในอย่างไร?
-
วิธีที่ 1 การส่งอุปกรณ์ USB ไปยังเครื่องเสมือนผ่านเว็บ UI
-
วิธีที่ 2 การส่งอุปกรณ์ผ่านไปยังคอนเทนเนอร์ LXC
-
วิธีที่ 3 การส่งต่อคอนโทรลเลอร์แบบเต็มรูปแบบโดยใช้การกำหนด PCIe
-
แนวทางปฏิบัติที่ดีที่สุดสำหรับ USB Passthrough ใน Proxmox VE
-
การแก้ปัญหาทั่วไปเกี่ยวกับ PVE USB Passthrough
-
การปกป้อง Proxmox VM ด้วย Vinchin
-
คำถามที่พบบ่อยเกี่ยวกับการผ่าน USB สำหรับ PVE
-
สรุป
ฟีเจอร์ USB passthrough เป็นสิ่งสำคัญสำหรับผู้ใช้งาน Proxmox VE จำนวนมาก โดยช่วยให้คุณสามารถเชื่อมต่ออุปกรณ์ USB จริง เช่น อุปกรณ์ยึดลิขสิทธิ์ หรือเครื่องอ่านสมาร์ทการ์ด เข้ากับเครื่องเสมือนหรือคอนเทนเนอร์ ราวกับว่าเสียบเข้าโดยตรง แต่แท้จริงแล้วเกิดอะไรขึ้นเบื้องหลัง และคุณจะทำให้ทำงานได้อย่างมั่นคงในสภาพแวดล้อมที่แตกต่างกันได้อย่างไร
ในคู่มือนี้ เราจะสร้างความเข้าใจให้คุณอย่างเป็นขั้นตอน—ตั้งแต่การแมปอุปกรณ์พื้นฐานไปจนถึงการผ่านคอนโทรลเลอร์ขั้นสูง—พร้อมสำรวจแนวทางแก้ไขปัญหาทั่วไปอย่างเป็นรูปธรรม ไม่ว่าคุณจะกำลังใช้งานห้องปฏิบัติการที่บ้านหรือจัดการโครงสร้างพื้นฐานระดับองค์กร การเชี่ยวชาญการผ่าน USB จะสามารถปลดล็อกศักยภาพใหม่ๆ ในสภาพแวดล้อมเสมือนของคุณได้
PVE USB passthrough คืออะไร และทำไมคุณต้องใช้?
โดยพื้นฐานแล้ว ยูเอสบีพาสทรูผ่านช่วยให้เครื่องเสมือน (VM) หรือคอนเทนเนอร์ LXC เข้าถึงอุปกรณ์ยูเอสบีจริงที่ต่อกับโฮสต์พร็อกซ์ม็อกซ์ของคุณได้ สิ่งนี้หมายความว่า ซอฟต์แวร์ภายในระบบแกนส์สามารถใช้งานกุญแจฮาร์ดแวร์ ไดรฟ์จัดเก็บข้อมูล อุปกรณ์ซิกบี้ หรืออุปกรณ์ต่อพ่วงอื่นๆ ได้เหมือนกับการใช้งานบนฮาร์ดแวร์จริง
สิ่งนี้ทำงานอย่างไร? สำหรับเครื่องเสมือน (VMs) Proxmox ใช้การสนับสนุนในตัวของ QEMU เพื่อเปลี่ยนเส้นทางการรับส่งข้อมูล USB จากโฮสต์ไปยังระบบปฏิบัติการของเครื่องลูกข่าย (guest OS) ส่วนคอนเทนเนอร์ (LXCs) จะอาศัยคุณสมบัติของเคอร์เนลลินุกซ์ เช่น cgroups และ namespaces เพื่อเปิดเผยโหนดอุปกรณ์อย่างปลอดภัย
ทำไมสิ่งนี้สำคัญ? แอปพลิเคชันทางธุรกิจหลายตัวต้องการการเข้าถึงฮาร์ดแวร์โดยตรง ตัวอย่างเช่น:
ใช้คีย์ความปลอดภัยแบบฮาร์ดแวร์สำหรับการพิสูจน์ตัวตนสองชั้น
การเชื่อมต่อไดรฟ์ภายนอกเพื่อถ่ายโอนข้อมูล
การติดตั้งเครื่องอ่านสมาร์ทการ์ดสำหรับการเข้าสู่ระบบอย่างปลอดภัย
การรวมอุปกรณ์ IoT ผ่านตัวรับส่งสัญญาณ Zigbee หรือ Z-Wave
หากไม่มีการตั้งค่าพาสทรูที่เหมาะสม อุปกรณ์เหล่านี้จะยังคงมองไม่เห็นภายในเครื่องเสมือนของคุณ การทำความเข้าใจวิธีการทำงานของพาสทรู และข้อจำกัดต่างๆ จะช่วยให้คุณหลีกเลี่ยงความยุ่งยากในอนาคตได้
ข้อกำหนดเบื้องต้นสำหรับการผ่านอุปกรณ์ USB ใน Proxmox VE
ก่อนตั้งค่าการผ่านอุปกรณ์ USB ใน Proxmox VE ให้ตรวจสอบความต้องการพื้นฐานบางประการ:
ขั้นตอนแรก ตรวจสอบให้แน่ใจว่า BIOS/UEFI ของเซิร์ฟเวอร์เปิดใช้งานการจำลองเสมือน (Intel VT-d หรือ AMD-Vi) แล้ว สำหรับกรณีการผ่านต่อคอนโทรลเลอร์ PCIe (กรณีใช้งานขั้นสูง) ให้เปิดใช้งานการสนับสนุน IOMMU โดยเพิ่ม intel_iommu=on หรือ amd_iommu=on ลงในพารามิเตอร์การบูตเคอร์เนลของคุณ
ต่อไป ให้ทราบว่าคุณมีคอนโทรลเลอร์ USB ประเภทใด—EHCI (USB 2.0) หรือ xHCI (USB 3.x)—เนื่องจากสิ่งนี้มีผลต่อความเข้ากันได้และความเสถียรเมื่อผ่านคอนโทรลเลอร์ทั้งหมด
ในที่สุด โปรดจำไว้ว่าเวอร์ชันใหม่ของ Proxmox อาจจัดการสิทธิ์การใช้งานอุปกรณ์แตกต่างออกไป เนื่องจากการเปลี่ยนแปลงกฎ udev หรือการอัปเดตเคอร์เนล ควรตรวจสอบหมายเหตุเกี่ยวกับความเข้ากันได้เสมอ ก่อนทำการอัปเกรดระบบจริง
PVE จัดการ USB Passthrough ภายในอย่างไร?
เมื่อคุณกำหนดอุปกรณ์ USB จริงให้กับเครื่องเสมือนโดยใช้ Proxmox VE:
1. โฮสต์ตรวจจับอุปกรณ์ผ่านรหัสผู้ผลิตเฉพาะตัว (idVendor) และรหัสผลิตภัณฑ์ (idProduct)
2. QEMU สร้างตัวแทนเสมือนของอุปกรณ์นั้นภายในเครื่องเสมือน
3. การสื่อสารทั้งหมดระหว่างซอฟต์แวร์และฮาร์ดแวร์ของผู้ใช้ไหลผ่านช่องทางนี้—เลี่ยงการจำลองเพื่อให้ได้ความเร็วใกล้เคียงกับระบบจริง
สำหรับคอนเทนเนอร์ LXC:
1. โฮสต์เปิดเผยโหนด /dev เฉพาะเจาะจงโดยใช้ bind mounts
2. สิทธิ์การใช้งาน Cgroup ควบคุมว่าอุปกรณ์ใดจะมองเห็นได้ภายในแต่ละคอนเทนเนอร์
3. สัญลักษณ์เชื่อมต่อแบบเพอร์ซิสเทนต์ภายใต้ /dev/serial/by-id ช่วยรักษาเส้นทางให้มีเสถียรภาพแม้ว่าอุปกรณ์จะถูกถอดหรือเสียบกลับเข้ามาใหม่ก็ตาม
วิธีการโดยตรงนี้ทำให้ประสิทธิภาพสูง แต่ต้องการการกำหนดค่าอย่างระมัดระวัง โดยเฉพาะในด้านสิทธิ์การเข้าถึงและขอบเขตของการแยกตัว
วิธีที่ 1 การส่งอุปกรณ์ USB ไปยังเครื่องเสมือนผ่านเว็บ UI
วิธีที่ง่ายที่สุดในการส่งอุปกรณ์ USB ไปยังเครื่องเสมือนคือผ่านอินเทอร์เฟซเว็บของ Proxmox วิธีนี้เหมาะสำหรับผู้ใช้ส่วนใหญ่ที่รันระบบปฏิบัติการ Linux หรือ Windows เป็นไคลเอนต์
เสียบอุปกรณ์ USB ที่ต้องการเข้ากับพอร์ตที่ว่างอยู่บนโฮสต์เซิร์ฟเวอร์ของคุณ
ในเว็บ UI ให้เลือก VM เป้าหมาย
คลิก Hardware แล้วเลือก Add > USB Device
เลือกหนึ่งในตัวเลือกต่อไปนี้:
ใช้รหัสผู้ขาย/อุปกรณ์ USB สำหรับอุปกรณ์เฉพาะที่คงที่
ใช้พอร์ต USB สำหรับการตั้งค่าที่ยืดหยุ่น โดยอุปกรณ์ใดๆ ที่เสียบเข้ากับพอร์ตเฉพาะจะถูกส่งผ่านไปยังเป้าหมาย
บันทึกการเปลี่ยนแปลงและรีสตาร์ทเครื่อง VM ภายในระบบปฏิบัติการของคุณ ให้รันคำสั่ง
lsusb(สำหรับ Linux) หรือตรวจสอบ Device Manager (สำหรับ Windows) เพื่อยืนยันว่าอุปกรณ์ถูกผ่านต่ออย่างถูกต้อง
วิธีที่ 2 การส่งอุปกรณ์ผ่านไปยังคอนเทนเนอร์ LXC
การส่งอุปกรณ์จริงไปยังคอนเทนเนอร์ LXC อาจทำได้ยากกว่าเนื่องจากการแยกสภาพแวดล้อมที่เข้มงวดกว่า แต่ยังคงสามารถทำได้
เคล็ดลับที่ 1: การใช้เส้นทางอุปกรณ์คงที่
เส้นทางคงที่ภายใต้ /dev/serial/by-id จะให้ลิงก์อุปกรณ์ที่เสถียร แม้หลังจากถอดและเสียบอุปกรณ์ใหม่แล้วก็ตาม เพื่อใช้วิธีนี้:
บนโฮสต์ ให้รัน:
ls -l /dev/serial/by-id
ตัวอย่างผลลัพธ์:lrwxrwxrwx 1 root root 13 Sep 9 10:54 usb-Silicon_Labs_CP210x-if00-port0 -> ../../ttyUSB0
ในเว็บ UI ให้เลือกคอนเทนเนอร์เป้าหมายแล้วคลิก ทรัพยากร
คลิก เพิ่ม > การส่งต่ออุปกรณ์ แล้วป้อนเส้นทางอุปกรณ์เต็ม (เช่น
/dev/serial/by-id/...)บันทึกการเปลี่ยนแปลงและรีสตาร์ทคอนเทนเนอร์
เคล็ดลับที่ 2: การแก้ไขการตั้งค่า LXC ด้วยตนเอง
หากไม่สามารถใช้พาธถาวรได้ หรือคุณต้องการควบคุมสิทธิ์การเข้าถึงอย่างละเอียดมากขึ้น:
แก้ไขไฟล์กำหนดค่าคอนเทนเนอร์ที่
/etc/pve/lxc/<CTID>.confและเพิ่ม:lxc.cgroup2.devices.allow: c 188:* rwm lxc.mount.entry: /dev/ttyUSB0 dev/ttyUSB0 none bind,optional,create=file
รีบูตคอนเทนเนอร์เพื่อประยุกต์ใช้การเปลี่ยนแปลง
การจัดการสิทธิ์และการเชื่อมต่ออุปกรณ์ใหม่
บางครั้งการถอดและเสียบอุปกรณ์ใหม่อาจทำให้สิทธิ์ถูกรีเซ็ตหรือการจัดสรรโหนดใน /dev เปลี่ยนแปลง ในการจัดการสิ่งนี้:
สร้างกฎ UDEV แบบคงที่:
สร้างกฎ UDEV ที่กำหนดเองเพื่อปรับการแก้ไขสิทธิ์และการสร้างลิงก์เชิงสัญลักษณ์โดยอัตโนมัติ:SUBSYSTEM=="tty", ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="ea60", SYMLINK+="mydevice", GROUP="lxcuser", MODE="0660"รีโหลดกฎ UDEV ด้วยคำสั่ง:
udevadm control --reload && udevadm trigger
ทำให้การเริ่มต้นคอนเทนเนอร์ใหม่อัตโนมัติหลังจากเหตุการณ์เสียบอุปกรณ์ใหม่:
รวมตัวทริกเกอร์ UDEV กับสคริปต์เพื่อให้เริ่มต้นคอนเทนเนอร์ใหม่อัตโนมัติหลังจากเหตุการณ์เสียบอุปกรณ์ใหม่:pct restart <CTID>
วิธีที่ 3 การส่งต่อคอนโทรลเลอร์แบบเต็มรูปแบบโดยใช้การกำหนด PCIe
เพื่อประสิทธิภาพสูงสุด คุณอาจต้องการส่งต่อคอนโทรลเลอร์ USB ทั้งตัว แทนที่จะเป็นอุปกรณ์รายตัว ซึ่งเป็นประโยชน์อย่างยิ่งสำหรับอุปกรณ์ที่มีอัตราการถ่ายโอนข้อมูลสูง เช่น SSD ภายนอก
เปิดใช้งาน IOMMU ใน BIOS และตัวบูตโหลดเดอร์ (
intel_iommu=onหรือamd_iommu=on)ค้นหาที่อยู่คอนโทรลเลอร์โดยใช้:
lspci | grep -i usbหากจำเป็น ให้ผูกไดรเวอร์คอนโทรลเลอร์โดยใช้เครื่องมือ VFIO:
echo "8086:a36d" > /sys/bus/pci/drivers/vfio-pci/new_id
ในเว็บ UI ให้เลือก VM เป้าหมาย คลิก Hardware จากนั้น Add > PCI Device
เลือกที่อยู่คอนโทรลเลอร์ที่เหมาะสมแล้วยืนยัน
อย่าให้สิทธิ์การเข้าถึงที่กว้างขวางเกินกว่าที่จำเป็น ให้ส่งเฉพาะรหัสผู้จำหน่าย/ผลิตภัณฑ์ที่ต้องการเท่านั้น
ตรวจสอบบันทึกอย่างสม่ำเสมอเพื่อหาความผิดปกติ โดยเฉพาะหลังจากการอัปเกรดหรือเปลี่ยนฮาร์ดแวร์
ในสภาพแวดล้อมที่มีผู้ใช้หลายคน ควรพิจารณาใช้ข้อจำกัดแบบกลุ่มผ่านกฎ/สคริปต์ UDEV แบบกำหนดเองเพื่อจำกัดการเข้าถึงอุปกรณ์
ตรวจสอบการตรวจจับ USB:
เรียกใช้คำสั่งlsusbบนโฮสต์และเกสต์เพื่อยืนยันการตรวจจับข้อผิดพลาดของสิทธิ์การเข้าถึง:
ตรวจสอบสิทธิ์การเป็นเจ้าของกลุ่ม/ผู้ใช้ภายใต้/devและแก้ไขโดยใช้chownหรือchmodความล้มเหลวจากการเสียบปลั๊กร้อน:
ตรวจสอบให้แน่ใจว่าเปิดใช้งาน QEMU agent ภายในเครื่องเสมือน และใช้สคริปต์เพื่อทำให้การเริ่มต้นคอนเทนเนอร์ใหม่สำหรับ LXC อัตโนมัติ
คำเตือนที่สำคัญ: หลีกเลี่ยงการกำหนดรูทฮับ/ตัวควบคุมที่จัดการคีย์บอร์ด/เมาส์ เว้นแต่คุณจะมีเครื่องมือจัดการระยะไกลพร้อมใช้งาน เพราะอาจทำให้คุณไม่สามารถเข้าถึงระบบได้
แนวทางปฏิบัติที่ดีที่สุดสำหรับ USB Passthrough ใน Proxmox VE
เมื่อมีการผ่านอุปกรณ์จริงระหว่างโฮสต์และไคลเอ็นต์ ควรยึดหลักการ สิทธิ์น้อยที่สุด เสมอ เพื่อลดความเสี่ยงด้านความปลอดภัย
การแก้ปัญหาทั่วไปเกี่ยวกับ PVE USB Passthrough
หากอุปกรณ์ไม่ถูกระบุหรือสิทธิ์การใช้งานล้มเหลว:
การปกป้อง Proxmox VM ด้วย Vinchin
หลังจากการตั้งค่าสภาพแวดล้อม PVE ที่น่าเชื่อถือแล้ว รวมถึงคุณสมบัติขั้นสูงอย่างการผ่าน USB คุณจะต้องการการสำรองข้อมูลที่มีความทนทานเพื่อความอุ่นใจและการวางแผนความต่อเนื่องทางธุรกิจ
Vinchin Backup & Recovery เป็นโซลูชันสำรองข้อมูลเครื่องเสมือนระดับองค์กรที่โดดเด่น รองรับมากกว่าสิบห้าแพลตฟอร์มหลัก รวมถึงการรองรับเฉพาะสำหรับ Proxmox VE พร้อมกับ VMware, Hyper-V, oVirt, OLVM, RHV, XCP-ng, XenServer, OpenStack, ZStack และอื่นๆ อีกมากมาย ทั้งหมดนี้จัดการผ่านแพลตฟอร์มเดียว
คุณสมบัติสำคัญ ได้แก่ เทคโนโลยีการสำรองข้อมูลแบบเพิ่มเติม ซึ่งช่วยลดการใช้พื้นที่จัดเก็บ การลบข้อมูลซ้ำ และการบีบอัดข้อมูล ในตัว การโยกย้ายระบบจากเวอร์ชันหนึ่งไปอีกเวอร์ชันหนึ่ง (V2V migration) อย่างราบรื่นระหว่างแพลตฟอร์มที่แตกต่างกัน ความสามารถในการกู้คืนข้อมูลในระดับละเอียด รวมถึงการสำรองข้อมูลอัตโนมัติตามกำหนดเวลา พร้อมนโยบายการเก็บรักษาข้อมูลที่ยืดหยุ่น—ทั้งหมดนี้ออกแบบมาเพื่อประสิทธิภาพในการทำงานระดับใหญ่ โดยไม่กระทบต่อความน่าเชื่อถือหรือความเร็ว
คอนโซลเว็บ Vinchin ที่ใช้งานง่ายทำให้การปกป้องเครื่องเสมือน Proxmox ทุกเครื่องเป็นเรื่องง่ายดาย:
1. เลือก Proxmox VM ที่ต้องการสำรองข้อมูล

2. เลือกที่จัดเก็บข้อมูลสำรอง

3. ตั้งค่ากลยุทธ์การสำรองข้อมูล

4. ส่งงาน

ผู้ใช้งานนับพันทั่วโลกไว้วางใจ Vinchin ด้วยคะแนนรีวิวสูงในหลากหลายอุตสาหกรรม และตอนนี้คุณสามารถทดลองใช้ฟีเจอร์ทุกฟรึด้วยช่วงทดลองใช้งานแบบครอบคลุมเป็นเวลา 60 วัน
คำถามที่พบบ่อยเกี่ยวกับการผ่าน USB สำหรับ PVE
คำถามที่ 1: ฉันสามารถเสียบ USB ใหม่แบบ hot-plug เพื่อให้ Windows Server ของฉันตรวจจับได้ทันทีไหม?
คำตอบ: ได้ ตราบเท่าที่เปิดใช้งานการรองรับ hotplug ในการตั้งค่า QEMU และติดตั้ง Guest Tools แล้ว อุปกรณ์จะปรากฏขึ้นทันทีโดยไม่ต้องรีบูต
คำถามที่ 2: แอป LXC ของฉันเขียนไฟล์ไม่ได้ แม้ว่าฉันจะส่งผ่าอะแดปเตอร์ซีเรียลแล้ว — ทำไมเป็นแบบนี้?
คำตอบ: ตรวจสอบสิทธิ์การเป็นเจ้าของกลุ่มหรือบิตโหมดภายใต้ /dev ; ปรับเปลี่ยนโดยใช้กฎ udev แบบกำหนดเอง หรือคำสั่ง chmod/chown ตามความจำเป็น
สรุป
การเข้าถึงที่ยืดหยุ่นของ PVE ช่วยให้ผู้ดูแลระบบสามารถเชื่อมต่ออุปกรณ์ต่อพ่วงทางกายภาพเกือบทุกชนิด - ตั้งแต่อุปกรณ์ใช้งานเดียวไปจนถึงคอนโทรลเลอร์ความเร็วสูงทั้งหมด - เข้ากับงานประมวลผลเสมือนจริงได้อย่างปลอดภัยและมีประสิทธิภาพ ด้วยการสำรองข้อมูลที่เชื่อถือได้จาก Vinchin ข้อมูลสำคัญของคุณจะได้รับการปกป้องไม่ว่าสถานการณ์จะซับซ้อนแค่ไหน ลองใช้ Vinchin วันนี้ และมั่นใจในประสิทธิภาพสูงสุดได้อย่างสบายใจ
แชร์บน: