Skip to main content
  • Place orders quickly and easily
  • View orders and track your shipping status
  • Create and access a list of your products

Udoskonalenie sieci we/wy SR-IOV w środowisku zwirtualizowanym w systemie Windows Server 2012

Summary: System operacyjny i rozwiązania w zakresie aplikacji Dell w witrynie Dell TechCenter — Project Sputnik, Microsoft Windows, Red Hat Linux, SUSE, Ubuntu i inne

This article applies to This article does not apply to This article is not tied to any specific product. Not all product versions are identified in this article.

Symptoms

Ten post został pierwotnie napisany przez Abhijita Khande i Vineetha V Acharyę z zespołu inżynierów systemu Windows firmy Dell.

Komentarze są mile widziane! Aby zasugerować temat lub zgłosić inne uwagi, skontaktuj się z
WinServerBlogs@dell.com.


Wraz z systemem operacyjnym Microsoft® Windows Server® 2012 Beta firma Microsoft wprowadziła obsługę wielu funkcji w przestrzeni sieciowej. Jedną z takich znaczących i interesujących funkcji jest Wirtualizacja we/wy z jednym elementem głównym (SR-IOV), która umożliwia maszynom wirtualnym współużytkowanie jednego urządzenia PCI-e. Ten wpis zawiera podstawowe omówienie funkcji SR-IOV w systemie Windows Server 2012 Beta oraz sposobu, w jaki drastycznie zmniejsza ona wykorzystanie procesora w środowisku zwirtualizowanym podczas sieciowej operacji we/wy.

Interfejs SR-IOV jest rozszerzeniem specyfikacji PCI Express (PCIe). Funkcja SR-IOV umożliwia pojedynczemu urządzeniu PCIe, takiemu jak karta sieciowa, zapewnienie wielu lekkich powierzchni sprzętowych na magistrali PCI i oddzielenie dostępu do jej zasobów między różnymi instancjami. Osiąga się to poprzez zastosowanie wielu funkcji wirtualnych (VF) oprócz (zwykłej) funkcji fizycznej (PF). Ponieważ jest to zależne od sprzętu, urządzenie PCIe i platforma muszą obsługiwać tę funkcję. 

Tradycyjnie, pakiet przeznaczony dla maszyny wirtualnej jest odbierany przez fizyczną kartę sieciową (za pomocą funkcji fizycznej) obecnej w systemie operacyjnym hosta. Ten pakiet jest obsługiwany przez moduł sterownika NDIS (Network Driver Interface Specification for NICs). Pakiet jest następnie dostarczany do przełącznika funkcji Hyper-V, który przetwarza pakiet (np. routing, filtrowanie sieci VLAN) i przesyła dalej pakiet do docelowej maszyny wirtualnej za pośrednictwem rozwiązania VMBus, jak pokazano na rysunku 1. Ścieżka odwrotna będzie wykonywana, gdy maszyna wirtualna będzie musiała wysłać pakiet.

 W przypadku SR-IOV maszyna wirtualna może używać funkcji wirtualnej (VF) do wysyłania i odbierania pakietów bezpośrednio do fizycznej karty sieciowej z całkowitym pominięciem tradycyjnej ścieżki, jak pokazano na rysunku 1. To nie tylko zwiększa wydajność sieciowych operacji we/wy, ale także zmniejsza obciążenie procesora komputera hosta.
SLN312240_en_US__1i_OSandApplications_Virtualized_Environment1_2012_N_V1
Rysunek 1: Ścieżka danych z SR-IOV i bez niego

Migracja na żywo i SR-IOV

W systemie Windows Server 2012 Beta migrację na żywo można przeprowadzić z SR-IOV używanym przez maszynę wirtualną. Jeśli systemy źródłowy i docelowy obsługują SR-IOV, a obiekt docelowy ma dostępną funkcję VF, maszyna wirtualna będzie korzystać z funkcji wirtualnej. Jeśli nie, maszyna wirtualna powróci do tradycyjnej ścieżki (VM-Bus).

Każda karta sieciowa z obsługą funkcji SR-IOV uwidacznia stałą liczbę funkcji wirtualnych, które można uzyskać, uruchamiając polecenie PowerShell "Get-NetAdapterSriov".


Analiza wydajności

Przeprowadziliśmy kilka testów w naszym laboratorium, aby porównać wydajność z SR-IOV i bez niego. Środowisko testowe składa się z jednego serwera testowego (na którym wykonywane są testy) oraz jednego serwera plików. Serwer testowy to Dell PowerEdge™ R710 II z® kartą Intel X520 Ethernet 10 GB i systemem operacyjnym Windows Server 2012 Beta. Serwer plików obsługuje wiele udziałów SMB i jest podłączony do serwera testowego za pomocą sieci 10 Gb za pośrednictwem przełącznika Dell PowerConnect™ 8024.

Przechwyciliśmy dane dotyczące wydajności procesora używanego przez DPC (Deferred Procedure Call) zaplanowane przez różne moduły sterowników biorące udział w transferze danych sieciowych. Te dane zostały przechwycone zarówno w systemie operacyjnym gościa, jak i hosta, zgodnie z opisem w poniższych scenariuszach. Serwer testowy ma 4 identyczne maszyny wirtualne z systemem Windows Server 2012 Beta jako systemem operacyjnym gościa. Te 4 maszyny wirtualne są połączone z siecią 10 GB za pośrednictwem przełącznika wirtualnego. Tę konfigurację testową przedstawiono na rysunku 2.
SLN312240_en_US__2i_OSandApplications_Virtualized_Environment2_2012_N_V1
Rysunek 2: Konfiguracja
testu Zanim zaprezentujemy dane dotyczące wydajności, należy wprowadzić bardzo krytyczny parametr używany w tych testach. W Microsoft Windows Istnieje mechanizm systemowy o nazwie Deferred Procedure Call (DPC), który umożliwia wykonywanie zadań o wysokim priorytecie (np. Procedura obsługi przerwań), aby odłożyć zadania o wymaganym, ale niższym priorytecie do późniejszego wykonania. Dzięki temu sterowniki urządzeń i inni odbiorcy zdarzeń niskiego poziomu mogą szybko wykonać część przetwarzania o wysokim priorytecie i zaplanować dodatkowe przetwarzanie niekrytyczne do wykonania o niższym priorytecie.


Scenariusz 1 — wyniki wydajności w maszynie wirtualnej (system operacyjny gościa):

W tym scenariuszu użyliśmy czterech maszyn wirtualnych (VM od 1 do VM 4). Włączyliśmy funkcję SR-IOV na maszynie wirtualnej 1 i maszynie wirtualnej 2 (przez zaznaczenie opcji "Włącz SR-IOV" w ustawieniach maszyny wirtualnej) oraz wyłączyliśmy funkcję SR-IOV na maszynach wirtualnych 3 i 4 (przez usunięcie zaznaczenia tej samej opcji). W związku z tym maszyny wirtualne 1 i 2 będą korzystać z funkcji wirtualnej (udostępnianej przez kartę Intel), podczas gdy maszyny wirtualne 3 i 4 będą używać ścieżki syntetycznej (VMBus) do dowolnej komunikacji sieciowej, jak pokazano na rysunku 2.

Zaczęliśmy kopiować dane (o rozmiarze 20 GB) z jednego udziału SMB do maszyn wirtualnych i przechwyciliśmy dzienniki użycia procesora systemowego w systemie operacyjnym gościa.
SLN312240_en_US__3i_OSandApplications_Virtualized_Environment3_2012_N_V1
Rysunek 3: Użycie procesora DPC w maszynie

wirtualnej Na rysunku 3 SR-IOV odnosi się do średniego użycia procesora DPC w maszynach wirtualnych-1 i VM-2, a non-SR-IOV odnosi się do średniego użycia procesora DPC w maszynach wirtualnych-3 i VM-4. Jeśli spojrzymy na wykres, zobaczymy, że nie ma dużej różnicy w użyciu procesora między tymi dwoma przypadkami, ale nie uwzględniliśmy jeszcze użycia procesora CPU na komputerze hosta.


Scenariusz 2 — wynik wydajności na maszynie hosta (system operacyjny hosta):

W tym scenariuszu użyliśmy jednej maszyny wirtualnej. Zaczęliśmy kopiować dane (o rozmiarze 20 GB) z udziału SMB do maszyny wirtualnej i przechwyciliśmy użycie procesora DPC przez 2 moduły, NDIS i VMBUS, które są używane w sieciowych operacjach we/wy.
SLN312240_en_US__4i_OSandApplications_Virtualized_Environment4_2012_N_V1
Rysunek 4: Użycie procesora DPC na komputerze
hosta Wyniki przedstawiono na rysunku 4. Zgodnie z oczekiwaniami istnieje ogromna różnica w użyciu procesora między tymi dwoma przypadkami (SR-IOV i Non-SR-IOV). Użycie procesora jest rzędu 102 w przypadku SR-IOV i rzędu 103-104 w przypadku wersji bez SR-IOV. Dzieje się tak głównie dlatego, że w przypadku SR-IOV maszyna wirtualna komunikuje się bezpośrednio z fizyczną kartą sieciową za pośrednictwem funkcji wirtualnej. Dlatego cykle procesora hosta nie są wykorzystywane do przetwarzania żadnych pakietów sieciowych. W przypadku konfiguracji innej niż SR-IOV (jak pokazano na rysunku 1) system operacyjny gościa komunikuje się z systemem operacyjnym hosta za pośrednictwem magistrali maszyny wirtualnej, która z kolei przetwarza pakiety i wysyła je za pośrednictwem fizycznej karty sieciowej. W związku z tym moduły takie jak VM Bus i NDIS są szeroko stosowane.

Przy obliczaniu całkowitego użycia procesora zauważamy, że wykorzystanie procesora podczas sieciowej operacji we/wy jest znacznie mniejsze w przypadku korzystania z SR-IOV. Dlatego system Windows Server 2012 Beta z włączoną funkcją SR-IOV pomoże klientom zmniejszyć obciążenie procesora podczas operacji we/wy sieci, a tym samym poprawić ogólną wydajność systemu.

 

Cause

Konfigurowanie SR-IOV przy użyciu programu PowerShell

Za pomocą następujących poleceń programu PowerShell można utworzyć nowy przełącznik wirtualny z włączoną funkcją SR-IOV i podłączyć przełącznik wirtualny do wirtualnej karty sieciowej istniejącej maszyny wirtualnej.

UWAGA: Przed uruchomieniem poniższych poleceń w systemie BIOS należy włączyć następujące opcje:
  • Technologia wirtualizacji
  • Globalne włączenie SR-IOV
(Przy założeniu, że podłączono tylko jedną kartę sieciową (Intel X520))

$NetAdap = Get-NetAdapter | Gdzie-obiekt { $_. Status -eq "Up"}

(Przełącznik -EnableIov służy do włączenia SR-IOV w przełączniku wirtualnym)

New-VMSwitch -Name "Przełącznik SRIOV" -NetAdapterName $NetAdap.Name -AllowManagementOS $True -Notes "Przełącznik SRIOV na X520" -EnableIov $True

$VMSw = Get-VMSwitch
Dodanie nowej karty sieciowej do VM-1 i podłączenie jej do przełącznika wirtualnego.



Add-VMNetworkAdapter -SwitchName $VMSw.Name -VMName VM-1 -Name "Adapter SRIOV"UWAGA:


Aby to polecenie działało, maszyna wirtualna musi być wyłączona)
Możesz również użyć już istniejącej karty sieciowej maszyny wirtualnej, używając następujących poleceń)

$VMNet = Get-VMNetworkAdapter -VMName VM-1

Connect-VMNetworkAdapter -VMName VM-1 -SwitchName $VMSw.Name -Name $VMNet.Name

Każda karta sieciowa maszyny wirtualnej ma dwie właściwości, IovWeight i VmqWeight, które odpowiadają odpowiednio SR-IOV i VMQ.  Regulacja tych wag włącza lub wyłącza te funkcje.

Resolution

Aby włączyć funkcję SR-IOV, należy ustawić wartość IovWeight na 100. Aby wyłączyć funkcję SR-IOV, należy ustawić wartość IovWeight na 0 (wartość domyślna)

Set-VMNetworkAdapter -VMName VM-1 -VMNetworkAdapterName $VMNetName -IovWeight 100

, gdzie $VMNetName jest nazwą karty sieciowej maszyny wirtualnej podłączonej do przełącznika SRIOV.

 
Skorzystaj z poniższych łączy, aby uzyskać dodatkowe informacje:

Affected Products

Servers
Article Properties
Article Number: 000129905
Article Type: Solution
Last Modified: 20 Sept 2021
Version:  4
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.