Computer >> คอมพิวเตอร์ >  >> ระบบ >> Windows Server

กำหนดค่า SR-IOV สำหรับ Hyper-V Virtual Machines บน Windows Server

SR-IOV (Single Root Input/Output Virtualization ) เป็นเทคโนโลยีการจำลองเสมือนของอุปกรณ์ฮาร์ดแวร์โฮสต์ที่ช่วยให้เครื่องเสมือนสามารถเข้าถึงอุปกรณ์โฮสต์ได้โดยตรง สามารถจำลองอุปกรณ์ประเภทต่างๆ ได้ แต่ส่วนใหญ่มักใช้เพื่อจำลองอะแดปเตอร์เครือข่าย ในบทความนี้ เราจะแสดงวิธีเปิดใช้งานและกำหนดค่า SR-IOV สำหรับอะแดปเตอร์เครือข่ายเครื่องเสมือนบนเซิร์ฟเวอร์ Windows Hyper-V

รองรับ SRV-IOV ใน Hyper-V 2012+ รวมถึง Windows Hyper-V Server ฟรี เราจะไม่เจาะลึกหลักการ SR-IOV โดยละเอียด เนื่องจากคุณสามารถรับหลักเกณฑ์ทั้งหมดได้บนเว็บ เพื่อความเข้าใจในทางปฏิบัติ ก็เพียงพอแล้วที่จะรู้ว่า SR-IOV อนุญาตให้เข้าถึงอะแดปเตอร์เครือข่ายจริงของโฮสต์สำหรับ VM ได้โดยตรง และข้ามการประมวลผลการรับส่งข้อมูลด้วยสวิตช์เสมือน Hyper-V อะแดปเตอร์เครือข่ายทางกายภาพหนึ่งตัวในโหมด SR-IOV สามารถให้บริการเครื่องเสมือนได้หลายเครื่อง

เนื่องจากการใช้ SR-IOV สำหรับเครื่องเสมือน Hyper-V คุณจะ เพิ่มปริมาณงาน ได้อย่างมาก , ลดเวลาแฝงของเครือข่ายและโหลด CPU เกิดจากการประมวลผลการรับส่งข้อมูลเครือข่ายโดยซอฟต์แวร์ Hyper-V

SR-IOV ไม่สามารถทำงานร่วมกับ NIC teaming

ในการเปิดใช้งาน SRV-IOV บนโฮสต์ Hyper-V ของคุณ คุณต้องปฏิบัติตามข้อกำหนดบางประการ

ก่อนอื่น เปิดใช้งาน SRV-IOV และรองรับการจำลองเสมือนใน BIOS ของเซิร์ฟเวอร์ของคุณ การตั้งค่าอาจแตกต่างกันไปขึ้นอยู่กับผู้ขาย

  • รองรับการจำลองเสมือน:Intel (เทคโนโลยีการจำลองเสมือน, Intel VT, VT-d, Vanderpool), AMD (SVM, AMD-V)
  • IOMMU
  • SR-IOV
  • ASPM

กำหนดค่า SR-IOV สำหรับ Hyper-V Virtual Machines บน Windows Server

คุณอาจไม่มีทุกรายการ แม้แต่ไม่มี SR-IOV แต่ไม่ได้หมายความว่าเซิร์ฟเวอร์ของคุณไม่รองรับ SR-IOV ตัวอย่างเช่น มาเธอร์บอร์ด Supermicro อาจไม่มี SR-IOV ใน BIOS แต่มีการปิดใช้งาน ASPM ตามค่าเริ่มต้น หากคุณเปิดใช้งานการสนับสนุน ASPM และการจำลองเสมือน SR-IOV จะถูกเปิดใช้งานโดยอัตโนมัติ

โปรดทราบว่าหากโฮสต์ระบบปฏิบัติการ Windows OS ได้รับการติดตั้งด้วย SR-IOV ที่ปิดใช้งานในการตั้งค่า BIOS หลังจากที่คุณเปิดใช้งาน ระบบจะถือว่าคุณได้เปลี่ยนอะแดปเตอร์เครือข่ายแล้ว (ที่อยู่ IP แบบคงที่ปัจจุบันจะถูกรีเซ็ต)

คุณสามารถตรวจสอบให้แน่ใจว่าเซิร์ฟเวอร์ Hyper-V รองรับ SR-IOV ที่ระดับฮาร์ดแวร์โดยใช้ PowerShell:

(get-vmhost).IovSupport
(get-vmhost).IovSupportReasons

กำหนดค่า SR-IOV สำหรับ Hyper-V Virtual Machines บน Windows Server

หากเซิร์ฟเวอร์ของคุณรองรับคุณสมบัตินี้ IovSupport จะมี True . หากไม่เป็นเช่นนั้น จะเป็น False . ในกรณีนี้ IovSupportReasons รายการแสดงสาเหตุที่ไม่รองรับ SR-IOV โดยปกติแล้วจะอธิบายเหตุผลโดยละเอียด เหตุผลทั่วไปมีดังนี้:

  • ชิปเซ็ตในระบบไม่ทำการแมปแบบขัดจังหวะใหม่ หากไม่มี SR-IOV ที่ไม่รองรับ
  • SR-IOV ไม่สามารถใช้บนคอมพิวเตอร์เครื่องนี้ได้ เนื่องจากโปรเซสเซอร์ไม่สนับสนุนการแปลที่อยู่ระดับที่สอง (SLAT) สำหรับโปรเซสเซอร์ Intel คุณลักษณะนี้อาจเรียกว่า Extended Page Tables (EPT) สำหรับโปรเซสเซอร์ AMD คุณลักษณะนี้อาจเรียกว่า Rapid Virtualization Indexing (RVI) หรือ Nested Page Tables (NPT)
  • SR-IOV ไม่สามารถใช้กับระบบนี้ได้ เนื่องจากฮาร์ดแวร์ PCI Express ไม่รองรับ Access Control Services (ACS) ที่พอร์ตรูทใดๆ ติดต่อผู้จำหน่ายระบบของคุณสำหรับข้อมูลเพิ่มเติม
  • หากต้องการใช้ SR-IOV บนคอมพิวเตอร์เครื่องนี้ จะต้องอัปเดต BIOS เนื่องจากมีข้อมูลที่ไม่ถูกต้องซึ่งอธิบายความสามารถของฮาร์ดแวร์ ติดต่อผู้ผลิตคอมพิวเตอร์ของคุณเพื่อขอข้อมูลอัปเดต
  • ชิปเซ็ตบนระบบไม่ทำการรีแมป DMA ใหม่ โดยที่ SR-IOV จะไม่รองรับ
  • SR-IOV ไม่สามารถใช้กับระบบนี้ได้ เนื่องจากได้รับการกำหนดค่าให้ปิดใช้งานการใช้ฮาร์ดแวร์การรีแมป I/O
  • ในการใช้ SR-IOV กับระบบนี้ ไบออสของระบบจะต้องได้รับการอัปเดตเพื่อให้ Windows สามารถควบคุม PCI Express ได้ ติดต่อผู้ผลิตระบบของคุณสำหรับการอัปเดต
  • ตรวจสอบให้แน่ใจว่าระบบรองรับชิปเซ็ตสำหรับ SR-IOV และเปิดใช้งานการจำลองเสมือน I/O ใน BIOS
  • SR-IOV ไม่สามารถใช้กับระบบนี้ได้ เนื่องจากมีการรายงานว่าไม่มี PCI Express Bus ติดต่อผู้ผลิตระบบของคุณสำหรับข้อมูลเพิ่มเติม

ผลลัพธ์แบบเต็มของ get-vmswitch | fl *iov* คำสั่งมีข้อมูลที่เป็นประโยชน์บางอย่าง ตัวอย่างเช่น:

IovVirtualFunctionCount : 6
IovVirtualFunctionsInUse : 3

ตัวเลขแสดงจำนวนอุปกรณ์เสมือน IOV ที่พร้อมใช้งาน และจำนวนอุปกรณ์ที่ใช้โดยเครื่องเสมือน

เมื่อสร้างสวิตช์เสมือน Hyper-V ให้เลือกตัวเลือกการสนับสนุน SR-IOV — เปิดใช้งานการจำลองเสมือน I/O รากเดียว (SR-IOV) .

กำหนดค่า SR-IOV สำหรับ Hyper-V Virtual Machines บน Windows Server

หรือเปิดใช้งานตัวเลือก EnableIOV เมื่อสร้างสวิตช์เสมือนโดยใช้ PowerShell:

New-VMSwitch -Name "VMNetExt" -NetAdapterName "Ethernet 2" -EnableIov 1

สำคัญ . คุณไม่สามารถเปิดใช้งาน SR-IOV หลังจากสร้างสวิตช์เสมือน หากคุณยังไม่ได้ทำในครั้งเดียว คุณจะต้องลบ vswitch และสร้างใหม่อีกครั้ง

หากโฮสต์ไฮเปอร์ไวเซอร์รองรับ SR-IOV ไม่ได้หมายความว่าจะทำงานบนสวิตช์เสมือนเฉพาะ สวิตช์ต้องผูกกับอะแดปเตอร์เครือข่ายที่รองรับ SR-IOV

มีอีกสิ่งที่สำคัญ เมนบอร์ดอาจมีอะแดปเตอร์เครือข่ายหลายตัว แต่บางตัวอาจรองรับ SR-IOV เท่านั้น นอกจากนี้ หากอะแดปเตอร์รองรับ SR-IOV ตามเอกสารข้อมูล ไม่ได้หมายความว่าอะแดปเตอร์ทำงานบนเมนบอร์ดของคุณ

ดังนั้น หลังจากที่คุณกำหนดค่าสวิตช์แล้ว ให้ตรวจสอบโดยใช้คำสั่ง:

get-vmswitch | select IovSupport, IovSupportReasons, IovEnabled

ตัวเลือก IovEnabled แสดงว่าเปิดใช้งาน SR-IOV หรือไม่

คุณสามารถแสดงรายการอะแดปเตอร์เครือข่ายที่รองรับ SR-IOV ได้โดยใช้ PowerShell:

Get-NetAdapterSriov | sort name | ft Name, InterfaceDescription, SriovSupport

หลังจากที่คุณเปิดใช้งาน SR-IOV บนไฮเปอร์ไวเซอร์และระดับสวิตช์เสมือนแล้ว คุณสามารถเปิดใช้งานบนเครื่องเสมือนของคุณได้ (ปิดใช้งานโดยค่าเริ่มต้น) คุณสามารถค้นหา เปิดใช้งาน SR-IOV ตัวเลือกใน การเร่งฮาร์ดแวร์ ของอะแดปเตอร์เครือข่ายเครื่องเสมือนของคุณ

กำหนดค่า SR-IOV สำหรับ Hyper-V Virtual Machines บน Windows Server

หรือคุณสามารถเปิดใช้งาน SR-IOV สำหรับอะแดปเตอร์เครือข่ายของเครื่องเสมือนผ่าน PowerShell:

Set-VMNetworkAdapter -VMName mytestvm -VMNetworkAdapterName “Network Adapter” -IovWeight 100

หากต้องการปิดใช้งาน SR-IOV ให้เปลี่ยนค่าของ IovWeight เป็น 0

คุณค้นหาข้อผิดพลาดและเหตุการณ์ SR-IOV ทั้งหมดใน Hyper-V ได้โดยใช้บันทึก Event Viewer แยกต่างหาก:

บันทึกแอปพลิเคชันและบริการ -> Microsoft -> Windows -> Hyper-V-SynthNic -> ผู้ดูแลระบบ

หาก SR-IOV ทำงานอย่างถูกต้อง คุณจะเห็นรายการต่อไปนี้ใน Event Viewer เมื่อเริ่มต้นเครื่องเสมือน:

12597 Network adapter (%NIC_ID%) Connected to virtual network.
12582 Network adapter (%NIC_ID%) started successfully.
12584 Network adapter (%NIC_ID%) allocated a virtual function.
12588 Network adapter (%NIC_ID%) assigned a virtual function.

SR-IOV เพิ่มประสิทธิภาพเครือข่ายของเครื่องเสมือนและไฮเปอร์ไวเซอร์ คุณอาจเห็นผลลัพธ์สูงสุดของการใช้ SR-IOV บนโฮสต์ Hyper-V ที่มีทราฟฟิกเครื่องเสมือนสูง ซึ่งทำให้ CPU ของโฮสต์มีภาระงานมาก