วิธีการตั้งค่า SR-IOV สำหรับ NIC บน Proxmox VE

Published on April 29, 2025
วิธีการตั้งค่า SR-IOV สำหรับ NIC บน Proxmox VE

ในระบบ Virtualization สมัยใหม่ การเพิ่มประสิทธิภาพการเชื่อมต่อเครือข่ายและการเข้าถึงฮาร์ดแวร์โดยตรงเป็นสิ่งสำคัญ โดยเฉพาะในงานที่ต้องการ Bandwidth สูง หรือ Latency ต่ำ เช่น ระบบฐานข้อมูลขนาดใหญ่, AI/ML หรือ Virtual Desktop Infrastructure (VDI) หนึ่งในเทคโนโลยีที่ช่วยได้คือ SR-IOV (Single Root I/O Virtualization) ซึ่งทำให้สามารถแบ่ง Physical NIC ออกเป็นหลาย Virtual Function (VF) เพื่อมอบให้กับ VM ได้โดยตรง ลดภาระการทำงานของ Hypervisor ลงอย่างมาก

ในขณะเดียวกันเทคนิค PCI Passthrough ก็เป็นอีกทางเลือกที่ให้ VM เข้าถึงอุปกรณ์ PCIe เช่น GPU หรือ NIC ได้โดยตรงผ่าน VFIO (Virtual Function I/O) ซึ่งมีประโยชน์อย่างยิ่งในการเพิ่มประสิทธิภาพสำหรับงานเฉพาะทาง

บทความนี้จะอธิบายวิธีการตั้งค่า SR-IOV สำหรับ NIC  บน Proxmox VE  ซึ่งเป็นเวอร์ชันล่าสุด ณ ปัจจุบัน โดยจะครอบคลุมตั้งแต่การตั้งค่า Kernel Module, การปรับแต่ง BIOS, การกำหนด IOMMU, ไปจนถึงการเพิ่ม Virtual Function ให้กับ VM อย่างถูกต้อง

ตัวอย่างการทำ GPU Passthrough บน Proxmox VE

1. เช็ก BIOS และเปิดการตั้งค่าที่จำเป็น
– เข้า BIOS ของเครื่องเซิร์ฟเวอร์

เปิดใช้งาน

  • VT-d (สำหรับ Intel) หรือ AMD-Vi (สำหรับ AMD)
  • SR-IOV

หมายเหตุ ซึ่งท่าน จะต้องเปิดใช้งาน Intel Virtualization / Intel VT-d และ SR-IOV ใน NIC ผ่าน BIOS ก่อน

SR-IOV

เปิดใช้งาน SR-IOV

 

2. การเตรียม ISO ที่สามารถบูต Proxmox VE เพื่อติดตั้งให้เรียบร้อย  พร้อมเข้าสู่ระบบ

 

SR-IOV

 

หน้าแดชแบอด Proxmox VE

 

3. การตรวจสอบการสนับสนุน IOMMU

สามารถตรวจยืนยันว่า IOMMU เปิดใช้งานอยู่หรือไม่โดยใช้ Shell ของ Proxmox ด้วยคำสั่งต่อไปนี้:

# dmesg | grep -e DMAR -e IOMMU

 

SR-IOV

 

# dmesg | grep 'remapping'

 

SR-IOV

 

*** หาก IOMMU ไม่แสดงเป็นเปิดใช้งาน ให้ไปทำการเปิดใช้งาน SR-IOV ที่  BIOS  ให้เรียบร้อย 

 

4. การกำหนดค่า Proxmox

เมื่อติดตั้ง Proxmox แล้ว ให้ล็อกอินเข้าสู่ระบบ และเพิ่มพารามิเตอร์การบูตเคอร์เนล  “intel_iommu=on” และ “iommu=pt” ใน /etc/default/grub:

 # vi /etc/default/grub

ทำการเพิ่มพารามิเตอร์ บรรทัดนี้

 GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt"

 

SR-IOV
** อย่าลืม save

เช็ค cpu

 # dmesg | grep cpu

SR-IOV

 # dmesg | grep intel

SR-IOV

 # more /proc/cpuinfo

SR-IOV

รันคำสั่ง “update-grub” หลังจากทำการเปลี่ยนแปลงที่จำเป็นเพื่อใช้การเปลี่ยนแปลง

 # update-grub

SR-IOV

 

เข้าเพิ่ม Kernel Modules สามารถทำได้โดยเพิ่มโมดูลเหล่านี้ลงใน ‘ /etc/modules ‘ **ทำหน้าที่เป็นตัวกลางส่งผ่าน

 # vi /etc/modules

จากนั้นเพิ่มพารามิเตอร์

vfio 
vfio_iommu_type1 
vfio_pci
vfio_virqfd 

SR-IOV
** อย่าลืม save

 

หลังจากเปลี่ยนแปลงโมดูลใดๆ ที่เกี่ยวข้องแล้ว คุณต้องรีเฟรช initramfs ของคุณ ใน Proxmox VE สามารถทำได้โดยดำเนินการดังนี้:

# update-initramfs -u -k all

SR-IOV

จากนั้นทำการ reboot เครื่อง Server Proxmox VE

ทำการเช็ค device name ของ NIC ในรูปเราจะได้ค่าเป็นดังนี้

SR-IOV

 

ทำการตรวจสอบอุปกรณ์ NIC

 # Ispci

SR-IOV
เมื่อใช้คำสั่ง Ispci ท่านจะเห็น Virtual NIC จำนวนทั้งหมดขึ้นมา

SR-IOV

 

เท่านั้นก็เสร็จเรียบร้อย

 

5. การกำหนดค่าไคลเอนต์

เมื่อถึงจุดนี้ ให้สร้าง VM ใหม่ใน Proxmox สำหรับบทช่วยสอนนี้ เราได้ติดตั้ง CentOS-7-x86_64-DVD-1810

  • การสร้าง VM คุณสามารถสร้าง VM ใหม่ผ่านอินเทอร์เฟซเว็บของ Proxmox เมื่อเข้าสู่ระบบแล้ว คุณสามารถเลือกปุ่ม “Create VM” ที่มุมขวาบนของอินเทอร์เฟซได้

SR-IOV

ตั้งชื่อ VM คลิก Next

SR-IOV

เลือก ISO Image คลิก Next

SR-IOV

กำหนดค่าระบบแล้ว คลิก Next

SR-IOV

กำหนดค่า Disk แล้ว คลิก Next

SR-IOV

กำหนดค่า CPU แล้ว คลิก Next

SR-IOV

กำหนดค่า Memory แล้ว คลิก Next

SR-IOV

กำหนดค่า Network แล้ว คลิก Next

SR-IOV

ตรวจสอบรายละเอียด  จากนั้นคลิก Next

6. การเพิ่ม GPU 

เมื่อสร้าง VM แล้ว คุณสามารถเพิ่ม GPU ได้ผ่านแท็บฮาร์ดแวร์ภายใต้คอนโซล VM ใน Proxmox

 

SR-IOV

เลือก VM  —> Hardware

SR-IOV

เลือกปุ่ม Add  ->  PCI Device

SR-IOV

เลือก Raw Device และค้นหา GPU ของคุณ

SR-IOV

คลิก Add

SR-IOV

 

จากนั้นคุณทำการติดตั้งและเข้าสู่ระบบระบบปฏิบัติการแล้ว ให้ตรวจสอบว่า GPU แสดงขึ้นมาโดยเรียกใช้สั่ง   lspci

 # lspci

 

SR-IOV

 

ดังนั้น SR-IOV (Single Root I/O Virtualization) เป็นเทคนิคที่ช่วยให้ Network Interface Card (NIC) สามารถสร้าง Virtual Functions (VF) หลายตัวจาก Physical Function (PF) ตัวเดียว เพื่อแบ่งทรัพยากรส่งตรงให้ VM ใช้งานได้โดยไม่ผ่าน hypervisor มากเกินไป (ใกล้เคียงกับ PCI Passthrough) ซึ่งจะได้ประสิทธิภาพสูงสุดและ latency ต่ำที่สุด หากคุณทำตามขั้นตอนทั้งหมดอย่างเคร่งครัด เครื่องเสมือน (VM) ของคุณก็ไม่น่าจะมีปัญหาในการตรวจจับอุปกรณ์ PCIe ทั่วไป  ทั้งนี้สามารถทำตามคู่มือแบบวีดีโอได้ที่ Youtube 

AVESTA  ให้บริการทั้งงานขายระบบ System , Networks  ติดตั้ง อัพเกรด Configure และอื่น ๆ หากท่านมีคำถามสามารถติดต่อเพื่อขอข้อมูลเกี่ยวกับการบริการของเราได้ตลอดเวลา ด้วยประสบการณ์ยาวนานนับสิบปี

Remote Desktop Software ที่ดีที่สุดสำหรับ Mac

หนึ่งในระบบปฏิบัติการชั้นนำที่ได้รับการยอมรับอย่างกว้างขวางในหมู่นักพัฒนา นักออกแบบ และ ผู้เชี่ยวชาญคือ macOS ที่ปัจจุบันมีส่วนแบ่งทางการตลาดถึง 16% ในตลาด desktop OS...

Read more »

วิธีติดตั้งและใช้งาน RealVNC สำหรับการควบคุมคอมพิวเตอร์ระยะไกล

RealVNC (Remote Frame Buffer Protocol) คือโปรแกรมประเภท Remote Desktop Software ที่ช่วยให้คุณสามารถ...

Read more »

VMware ประชัน Harvester

จากการขึ้นราคาอย่างน้อย 15 เท่าของ VMware vSphere ทำให้องค์กรต่างๆ มองหา Virtualization Solution เข้ามาแทนที่...

Read more »

ประโยชน์ของการมี Link จองร้านอาหารบน Google Maps

ปฏิเสธไม่ได้เลยว่าปัจจุบันผู้ใช้งานทั่วโลกใช้ Google Maps ในการนำทาง และ ค้นหาสถานที่ เป็นประจำ และ เรียกได้มันเป็นเครื่องมือที่ขาดเสียไม่ได้เลย สำหรับหลายๆ...

Read more »

ความนิยมแบบก้าวกระโดดของระบบสั่งอาหารเองผ่าน QRCode

ปัจจุบัน เราอาจจะกล่าวได้ว่า ธุรกิจร้านอาหารนั้นอยู่ใน Read Ocean หรือน่านน้ำแดงเดือดอย่างแท้จริง เพราะมีผู้เล่นหน้าใหม่เข้ามาเยอะ ทำให้การแข่งขันสูงขึ้นมาก ในขณะที่ demand...

Read more »

Ceph ทำความเข้าใจ และ ประโยชน์ของมัน

Ceph นั้นเป็นแพลตฟอร์มสตอเรจที่ก้าวหน้า มันถูกออกแบบให้การจัดการ ให้ครบวงจรในตัวมันเอง สามารถขยายได้ และ มีความเสถียรสูงมาก ทำไมต้องเรียกว่าเป็นแพลตฟอร์ม ก็เพราะว่ามันนั้นสามารถจัดการกับ block,...

Read more »