Skip to main content
  • Place orders quickly and easily
  • View orders and track your shipping status
  • Enjoy members-only rewards and discounts
  • Create and access a list of your products

Удосконалення мережевого вводу/виводу SR-IOV у віртуалізованому середовищі Windows Server 2012

Summary: Рішення для ОС і додатків Dell в Dell TechCenter - Project Sputnik, Microsoft Windows, Red Hat Linux, SUSE, Ubuntu та інші

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

Ця публікація була спочатку написана Абхіджітом Кханде та Вінетом В. Ачарья з команди інженерів DELL Windows.

Коментарі вітаються! Щоб запропонувати тему або залишити інші коментарі, зв'яжіться з
WinServerBlogs@dell.com.


З операційною системою Microsoft® Windows Server® 2012 Beta корпорація Майкрософт представила підтримку ряду функцій в мережевому просторі. Однією з таких значущих і цікавих особливостей є Віртуалізація однокореневого вводу/виводу (SR-IOV), що дозволяє віртуальним машинам спільно використовувати один пристрій PCI-e. Ця публікація містить базовий огляд SR-IOV у Windows Server 2012 Beta і того, як він різко зменшує використання ЦП у віртуалізованому середовищі під час мережевого вводу/виводу.

Інтерфейс SR-IOV є розширенням специфікації PCI Express (PCIe). SR-IOV дозволяє одному пристрою PCIe, наприклад мережевому адаптеру, забезпечити кілька легких апаратних поверхонь на шині PCI та розділити доступ до його ресурсів між різними екземплярами. Це досягається використанням декількох віртуальних функцій (VF) на додаток до (звичайної) фізичної функції (PF). Оскільки він залежить від апаратного забезпечення, пристрій PCIe і платформа повинні підтримувати цю функцію. 

Традиційно пакет, призначений для віртуальної машини, приймається фізичним мережевим адаптером (за допомогою Physical Function), присутнім у хост-ОС. Цей пакет обробляється модулем драйвера NDIS (Network Driver Interface Specification for NICs). Потім пакет передається на комутатор Hyper-V, який обробляє пакет (наприклад, маршрутизація, фільтрація VLAN) і пересилає пакет на призначену віртуальну машину через VMBus, як показано на рисунку 1. Зворотний шлях буде використовуватися, коли віртуальній машині потрібно відправити пакет.

 За допомогою SR-IOV віртуальна машина може використовувати віртуальну функцію (VF) для надсилання та отримання пакетів безпосередньо на фізичний мережевий адаптер, повністю обходячи традиційний шлях, як показано на рисунку 1. Це не тільки покращує мережевий ввід/вивід, але й зменшує накладні витрати на центральний процесор хост-комп'ютера.
SLN312240_en_US__1i_OSandApplications_Virtualized_Environment1_2012_N_V1
Малюнок 1: Шлях передачі даних з SR-IOV і без нього

Міграція в реальному часі та SR-IOV

У бета-версії Windows Server 2012 динамічну міграцію можна виконувати за допомогою віртуальної машини SR-IOV. Якщо вихідна та цільова системи підтримують SR-IOV, а ціль має доступний VF, віртуальна машина використовуватиме віртуальну функцію. Якщо ні, віртуальна машина повернеться до традиційного шляху (VM-Bus).

Кожен мережевий адаптер, сумісний з SR-IOV, надає фіксовану кількість віртуальних функцій, які можна отримати, виконавши команду PowerShell «Get-NetAdapterSriov».


Аналіз ефективності

Ми провели кілька тестів у нашій лабораторії, щоб порівняти продуктивність з SR-IOV та без нього. Тестове середовище складається з одного тестового сервера (на якому виконуються тести) та одного файлового сервера. Тестовим сервером виступає Dell PowerEdge™ R710 II з адаптером Intel® X520 10GB Ethernet і бета-версією Windows Server 2012. Файловий сервер містить кілька спільних ресурсів SMB і підключений до тестового сервера за допомогою мережі 10 ГБ через комутатор Dell PowerConnect™ 8024.

Ми зібрали дані про продуктивність з точки зору процесора, що використовується DPC (Deferred Procedure Call), заплановані різними модулями драйверів, що беруть участь у передачі мережевих даних. Ці дані були отримані як у гостьовій, так і в хост-ОС, як описано в наведених нижче сценаріях. Тестовий сервер має 4 однакові віртуальні машини з Windows Server 2012 Beta в якості гостьової ОС. 4 віртуальні машини підключені до мережі 10 ГБ через віртуальний комутатор. Ця тестова конфігурація показана на рисунку 2.
SLN312240_en_US__2i_OSandApplications_Virtualized_Environment2_2012_N_V1
Малюнок 2: Тестова конфігурація
Перед тим, як ми продемонструємо дані про продуктивність, важливо представити дуже важливий параметр, який використовується для цього тестування. У файлі Майкрософт Windows В ОС існує системний механізм під назвою Deferred Procedure Call (DPC), який дозволяє виконувати завдання з високим пріоритетом (наприклад, Обробник переривань), щоб відкласти обов'язкові, але менш пріоритетні завдання для подальшого виконання. Це дозволяє драйверам пристроїв та іншим споживачам низькорівневих подій швидко виконувати високопріоритетну частину обробки та планувати некритичну додаткову обробку для виконання з нижчим пріоритетом.


Сценарій 1 – Результати продуктивності у віртуальній машині (гостьовій ОС):

Для цього сценарію ми використовували чотири віртуальні машини (VM 1–VM 4). Ми включили SR-IOV на VM 1 і VM 2 (поставивши галочку навпроти опції "Enable SR-IOV" в налаштуваннях VM), і відключили SR-IOV на VM 3 і VM 4 (знявши галочку з тієї ж опції). Таким чином, VM 1 і VM 2 будуть використовувати віртуальну функцію (відкриту адаптером Intel), в той час як VM 3 і VM 4 будуть використовувати синтетичний шлях (VMBus) для будь-якого мережевого зв'язку, як показано на рисунку 2.

Ми почали копіювати дані (розміром 20 ГБ) з одного спільного ресурсу SMB на віртуальні машини та зафіксували системні журнали використання ЦП у гостьовій ОС.
SLN312240_en_US__3i_OSandApplications_Virtualized_Environment3_2012_N_V1
Малюнок 3: Використання процесора DPC у віртуальній машині

На рисунку 3 SR-IOV відноситься до середнього використання процесора DPC у VM-1 і VM-2, а Non-SR-IOV відноситься до середнього використання процесора DPC у VM-3 і VM-4. Якщо ми подивимося на графік, то побачимо, що між двома випадками немає великої різниці у використанні ЦП, але ми ще не врахували використання ЦП на хост-машині.


Сценарій 2 – Результат продуктивності на хост-машині (хост-ОС):

Для цього сценарію ми використовували одну віртуальну машину. Ми почали копіювати дані (розміром 20 ГБ) зі спільного ресурсу SMB на віртуальну машину та зафіксували використання процесора DPC 2 модулів, NDIS та VMBUS, які використовуються в мережевих входах/виходах.
SLN312240_en_US__4i_OSandApplications_Virtualized_Environment4_2012_N_V1
Малюнок 4: Використання процесора DPC на хост-машині
Результати показані на рисунку 4. Як і очікувалося, існує величезна різниця у використанні процесора між двома випадками (SR-IOV і Non-SR-IOV). Використання процесора має порядок 102 у випадку SR-IOV і порядку 103 - 104 у випадку Non-SR-IOV. Головним чином це пов'язано з тим, що у випадку SR-IOV віртуальна машина безпосередньо зв'язується з фізичним NIC через віртуальну функцію. Отже, цикли процесора хоста не використовуються для обробки будь-яких мережевих пакетів. У випадку Non-SR-IOV (як показано на рисунку 1), гостьова ОС зв'язується з хост-ОС через шину віртуальної машини, яка, у свою чергу, обробляє пакети та надсилає їх через фізичну мережеву мережу. Тому широко використовуються такі модулі, як VM Bus і NDIS.

Обчислюючи загальне використання ЦП, ми бачимо, що використання ЦП під час мережевого вводу/виводу набагато менше при використанні SR-IOV. Таким чином, бета-версія Windows Server 2012 з увімкненим SR-IOV допоможе клієнтам зменшити навантаження на процесор під час мережевого вводу/виводу і, таким чином, підвищити загальну продуктивність системи.

 

Cause

Налаштування SR-IOV за допомогою PowerShell

За допомогою наведених нижче команд PowerShell можна створити новий віртуальний комутатор з увімкненим SR-IOV і приєднати віртуальний комутатор до віртуального мережевого адаптера наявної віртуальної машини.

ПРИМІТКА: Перед виконанням наступних команд у BIOS слід увімкнути такі параметри
  • Технологія віртуалізації
  • Глобальне ввімкнення SR-IOV
(За умови, що підключено один мережевий адаптер (Intel X520)

$NetAdap = Get-NetAdapter | Where-Object { $_. Status -eq "Up"}(Перемикач -EnableIov використовується для ввімкнення SR-IOV у віртуальному комутаторі)

New-VMSwitch -Name "Перемикач SRIOV" -NetAdapterName $NetAdap.Name -AllowManagementOS $True -Примітки "Перемикач SRIOV на X520" -EnableIov $True

$VMSw = Get-VMSwitch


Додавання нового мережевого адаптера до VM-1 і підключення його до віртуального комутатора.



add-VMNetworkAdapter -SwitchName $VMSw.Name -VMName VM-1 -Name "Адаптер SRIOV"


ПРИМІТКА:Щоб ця команда працювала, віртуальна машина повинна бути вимкнена)
Ви також можете використовувати вже існуючий мережевий адаптер віртуальної машини, скориставшись наступними командами)

$VMNet = Get-VMNetworkAdapter -VMName VM-1

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

Кожен мережевий адаптер віртуальної машини має дві властивості: IovWeight і VmqWeight, які відповідають SR-IOV і VMQ відповідно.  Налаштування цієї ваги вмикає або вимикає функції.

Resolution

Щоб увімкнути SR-IOV, встановіть IovWeight на 100. Щоб вимкнути SR-IOV, встановіть для IovWeight значення 0 (за замовчуванням)

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

, де $VMNetName — назва мережевого адаптера віртуальної машини, підключеного до комутатора SRIOV.

 
Перейдіть за наступними посиланнями для отримання додаткової інформації:

Affected Products

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