Computer >> Máy Tính >  >> Hệ thống >> máy chủ Windows

Định cấu hình SR-IOV cho Máy ảo Hyper-V trên Windows Server

SR-IOV (Single Root Input/Output Virtualization ) là một công nghệ ảo hóa thiết bị phần cứng chủ cho phép các máy ảo có quyền truy cập trực tiếp vào thiết bị chủ. Nó có thể ảo hóa các loại thiết bị khác nhau, nhưng thường được sử dụng để ảo hóa các bộ điều hợp mạng. Trong bài viết này, chúng tôi sẽ hướng dẫn bạn cách bật và định cấu hình SR-IOV cho bộ điều hợp mạng máy ảo trên máy chủ Windows Hyper-V.

SRV-IOV được hỗ trợ trong Hyper-V 2012+, bao gồm cả Windows Hyper-V Server miễn phí. Chúng tôi sẽ không đi sâu vào các nguyên tắc SR-IOV một cách chi tiết, vì bạn có thể nhận được các nguyên tắc đầy đủ trên Web. Để hiểu thực tế, cần biết rằng SR-IOV cho phép cung cấp quyền truy cập trực tiếp vào bộ điều hợp mạng vật lý của máy chủ cho máy ảo và bỏ qua việc xử lý lưu lượng bằng thiết bị chuyển mạch ảo Hyper-V. Một bộ điều hợp mạng vật lý ở chế độ SR-IOV có thể phân phát nhiều máy ảo.

Do sử dụng SR-IOV cho máy ảo Hyper-V, bạn sẽ có thể tăng đáng kể thông lượng , giảm độ trễ mạng và tải CPU gây ra bởi quá trình xử lý lưu lượng mạng bằng phần mềm Hyper-V.

SR-IOV không tương thích với NIC teaming.

Để bật SRV-IOV trên máy chủ Hyper-V của bạn, bạn phải đáp ứng một số yêu cầu.

Trước hết, hãy bật SRV-IOV và hỗ trợ ảo hóa trong BIOS của máy chủ của bạn. Tùy thuộc vào nhà cung cấp, cài đặt có thể khác nhau.

  • Hỗ trợ ảo hóa:Intel (Công nghệ ảo hóa, Intel VT, VT-d, Vanderpool), AMD (SVM, AMD-V)
  • IOMMU
  • SR-IOV
  • ASPM

Định cấu hình SR-IOV cho Máy ảo Hyper-V trên Windows Server

Bạn có thể không có mọi mặt hàng, thậm chí không có SR-IOV. Nhưng điều đó không có nghĩa là SR-IOV không được máy chủ của bạn hỗ trợ. Ví dụ, bo mạch chủ Supermicro có thể không có SR-IOV trong BIOS, nhưng có ASPM bị tắt theo mặc định. Nếu bạn bật ASPM và hỗ trợ ảo hóa, SR-IOV sẽ tự động được bật.

Lưu ý rằng nếu hệ điều hành Windows chủ đã được cài đặt SR-IOV bị vô hiệu hóa trong cài đặt BIOS, thì sau khi bạn bật nó, hệ thống sẽ coi rằng bạn đã thay thế bộ điều hợp mạng (địa chỉ IP tĩnh hiện tại được đặt lại).

Bạn có thể chắc chắn rằng SR-IOV có được máy chủ Hyper-V của bạn hỗ trợ ở cấp phần cứng hay không bằng cách sử dụng PowerShell:

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

Định cấu hình SR-IOV cho Máy ảo Hyper-V trên Windows Server

Nếu máy chủ của bạn hỗ trợ tính năng này, IovSupport sẽ chứa True . Nếu không, nó sẽ là False . Trong trường hợp này, IovSupportReasons mục hiển thị lý do tại sao SR-IOV không được hỗ trợ. Thông thường, lý do được mô tả chi tiết. Đây là những lý do điển hình:

  • Chipset trên hệ thống không làm gián đoạn ánh xạ lại, nếu không có SR-IOV thì không thể hỗ trợ.
  • SR-IOV không thể được sử dụng trên máy tính này vì bộ xử lý không hỗ trợ dịch địa chỉ mức thứ hai (SLAT). Đối với bộ xử lý Intel, tính năng này có thể được gọi là Bảng trang mở rộng (EPT). Đối với bộ xử lý AMD, tính năng này có thể được gọi là Lập chỉ mục ảo hóa nhanh (RVI) hoặc Bảng trang lồng nhau (NPT).
  • SR-IOV không thể được sử dụng trên hệ thống này vì phần cứng PCI Express không hỗ trợ Dịch vụ Kiểm soát Truy cập (ACS) tại bất kỳ cổng gốc nào. Liên hệ với nhà cung cấp hệ thống của bạn để biết thêm thông tin.
  • Để sử dụng SR-IOV trên máy tính này, BIOS phải được cập nhật vì nó chứa thông tin mô tả các khả năng phần cứng không chính xác. Liên hệ với nhà sản xuất máy tính của bạn để được cập nhật.
  • Chipset trên hệ thống không thực hiện ánh xạ lại DMA, nếu không có SR-IOV thì không thể hỗ trợ.
  • SR-IOV không thể được sử dụng trên hệ thống này vì nó đã được định cấu hình để vô hiệu hóa việc sử dụng phần cứng ánh xạ lại I / O.
  • Để sử dụng SR-IOV trên hệ thống này, BIOS hệ thống phải được cập nhật để cho phép Windows kiểm soát PCI Express. Liên hệ với nhà sản xuất hệ thống của bạn để được cập nhật.
  • Đảm bảo rằng hệ thống có hỗ trợ chipset cho SR-IOV và ảo hóa I / O được bật trong BIOS.
  • SR-IOV không thể được sử dụng trên hệ thống này vì nó đang báo rằng không có PCI Express Bus. Liên hệ với nhà sản xuất hệ thống của bạn để biết thêm thông tin.

Đầu ra đầy đủ của get-vmswitch | fl *iov* lệnh chứa một số thông tin hữu ích. Ví dụ:

IovVirtualFunctionCount : 6
IovVirtualFunctionsInUse : 3

Các con số cho biết có bao nhiêu thiết bị ảo IOV khả dụng và bao nhiêu trong số chúng được máy ảo sử dụng.

Khi tạo công tắc ảo Hyper-V, hãy chọn tùy chọn hỗ trợ SR-IOV - Bật ảo hóa I / O gốc đơn (SR-IOV) .

Định cấu hình SR-IOV cho Máy ảo Hyper-V trên Windows Server

Hoặc bật tùy chọn EnableIOV khi tạo công tắc ảo bằng PowerShell:

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

Quan trọng . Bạn không thể bật SR-IOV sau khi tạo một công tắc ảo. Nếu bạn chưa thực hiện ngay lập tức, bạn sẽ phải xóa vswitch và tạo lại.

Nếu SR-IOV được hỗ trợ bởi máy chủ siêu giám sát, điều đó không có nghĩa là nó sẽ hoạt động trên một công tắc ảo cụ thể. Công tắc phải được liên kết với bộ điều hợp mạng có hỗ trợ SR-IOV.

Có một điều quan trọng khác. Một bo mạch chủ có thể có nhiều bộ điều hợp mạng, nhưng SR-IOV có thể chỉ được hỗ trợ bởi một số bộ điều hợp. Hơn nữa, nếu SR-IOV được bộ điều hợp hỗ trợ theo biểu dữ liệu của nó, điều đó không có nghĩa là nó đang hoạt động trên bo mạch chủ của bạn.

Vì vậy, sau khi bạn đã định cấu hình một công tắc, hãy kiểm tra nó bằng lệnh:

get-vmswitch | select IovSupport, IovSupportReasons, IovEnabled

Tùy chọn IovEnabled hiển thị nếu SR-IOV được bật.

Bạn có thể hiển thị danh sách các bộ điều hợp mạng có hỗ trợ SR-IOV bằng PowerShell:

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

Sau khi bạn đã bật SR-IOV trên các cấp độ siêu giám sát và công tắc ảo, bạn có thể bật nó trên các máy ảo của mình (nó bị tắt theo mặc định). Bạn có thể tìm thấy Bật SR-IOV trong tùy chọn Tăng tốc phần cứng phần của bộ điều hợp mạng máy ảo của bạn.

Định cấu hình SR-IOV cho Máy ảo Hyper-V trên Windows Server

Hoặc bạn có thể bật SR-IOV cho bộ điều hợp mạng của máy ảo qua PowerShell:

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

Để tắt SR-IOV, hãy thay đổi giá trị của IovWeight thành 0.

Bạn có thể tìm thấy tất cả các lỗi và sự kiện SR-IOV trong Hyper-V bằng nhật ký Trình xem sự kiện riêng biệt:

Nhật ký ứng dụng và dịch vụ -> Microsoft -> Windows -> Hyper-V-SynthNic -> Admin.

Nếu SR-IOV hoạt động bình thường, bạn sẽ thấy các mục sau trong Trình xem sự kiện khi khởi động máy ảo:

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 tăng cường hiệu suất mạng của các máy ảo và một siêu giám sát. Bạn có thể thấy kết quả cao nhất khi sử dụng SR-IOV trên máy chủ Hyper-V với lưu lượng máy ảo cao gây tải nặng cho CPU máy chủ.