メイン コンテンツに進む
  • すばやく簡単にご注文が可能
  • 注文内容の表示、配送状況をトラック
  • 会員限定の特典や割引のご利用
  • 製品リストの作成とアクセスが可能
  • 「Company Administration(会社情報の管理)」では、お使いのDell EMCのサイトや製品、製品レベルでのコンタクト先に関する情報を管理できます。

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

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

この記事は自動翻訳されたものである可能性があります。品質に関するフィードバックがある場合は、このページの下部にあるフォームを使用してお知らせください。

文書の内容


現象

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.

 

原因

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.

解決方法

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:

文書のプロパティ


影響を受ける製品

Servers

最後に公開された日付

20 9月 2021

バージョン

4

文書の種類

Solution