Sr-iov (Віртуалізація єдиного кореневого введення/виводу) Це технологія для віртуалізації апаратних пристроїв хоста, що дозволяє віртуальним машинам спрямовувати доступ до пристроїв. Технологія дозволяє віртуалізувати різні типи пристроїв, але найчастіше використовується для віртуалізації мережевих адаптерів. У цій статті ми розповімо, як правильно увімкнути та налаштувати SR-IOV для мережевих адаптерів віртуальних машин на сервері Hyper-V.
SRV-IOV підтримується у Hyper-V з версії 2012 року, в тому числі у безкоштовному сервері Hyper-V. Ми не будемо занурюватися в теорію SR-IOV, ви можете знайти детальний опис технології в мережі. Для практичного розуміння достатньо знати, що SR-IOV дозволяє забезпечити доступ до віртуальних машин безпосередньо до фізичних мережевих адаптерів, обходячи віртуальні комутатори обробки трафіку. Один фізичний мережевий адаптер у режимі SR-IOV може обслуговувати кілька віртуальних машин.
Завдяки використанню SR-IOV для віртуальних машин Hyper-V, ви суттєво Збільшити пропускну здатність, Зменшіть затримку мережі і Зменшіть навантаження на процесор, викликано необхідністю обробки мережевого трафіку за допомогою програмного забезпечення Hyper-V.
Sr-Iov не сумісний з командуванням NIC.Для того, щоб SRV-IOV працював у вашому хості Hyper-V, вам потрібно дотримуватися ряду станів.
Перш за все, вам потрібно ввімкнути підтримку та віртуалізацію SR-IOV у BIOS вашого сервера. Залежно від постачальника та серверної моделі, ці налаштування можуть відрізнятися.
- Віртуалізація: Intel (технологія віртуалізації, Intel VT, VT-D, Vanderpool), AMD (SVM, AMD-V)
- Імму
- Sr-iov
- Апм
Може не бути жодних моментів, навіть пункт SR-IOV. Але це не означає, що SR-IOV не підтримується сервером. Наприклад, на материнських платах Supermicro точка SR-IOV може бути відсутня, а за замовчуванням відключений елемент ASPM. Якщо ви ввімкнете ASPM та підтримку віртуалізації, то SR-IOV ввімкнеться автоматично.
Зверніть увагу, що якщо ОС-хоста встановлена разом із SR-IOV, вимкненим у BIOS, то після ввімкнення, для операційної системи він виглядає як заміна мережевого адаптера (при розряді поточної статичної IP-адреси).Ви можете перевірити, чи підтримується технологія SR-IOV вашим сервером Hyper-V на апаратному рівні за допомогою PowerShell:
(Get-vmhost).Iovsuport
(Get-vmhost).Iovsupportreasons
Якщо ваш сервер підтримує цю функцію, то True буде вказано в полі Iovsupport. Якщо це не підтримує, то помилково. У той же час, точка Iovsupportreasons матиме опис причини, через яку не підтримується SR-IOV. Причина зазвичай вказується досить детально. Ось типові причини:
- Переконайтесь, що в системі є підтримка чіпсета для SR-IOV, і що віртуалізація вводу/виводу ввімкнена в BIOS.
- Для UCE SR-Ven у цій системі системний BIOS повинен бути оновлений, щоб дозволити Windows контролювати PCI Express. Зверніться до своєї системи manaufacturer для оновлення.
- Для uce sr-ven на цьому комп’ютері BIOS повинен бути оновлений, оскільки він містить інформацію, що описує апаратні капабіліти. Зверніться до комп'ютера Manaufacturer для оновлення.
- SR-IOV не може бути на цьому комері, оскільки процесор не має перекладу адреси другого рівня (SLAT). Для процесорів Intel ця функція може називатися розширеними таблицями сторінок (EPT). Для процесорів AMD ця функція може називатися швидкою віртуалізацією (RVI) або вкладеними таблицями сторінок (NPT).
- Чіпсет у системі не робить переробку, без якого SR-IOV не може бути підтриманий.
- Чіпсет на системних догах не робить DMA, без якого SR-IOV не може бути підтриманий.
- SR-IOV не може бути використаний у цій системі, як це налаштовано для відключення використання апаратного забезпечення вводу/виводу.
- SR-IOV не може використовуватися в цій системі, оскільки вона повідомляє, що не є автобусом PCI Express. Для отримання додаткової інформації зверніться до своєї системи manaufacturer.
- SR-IOV не може бути в цій системі, оскільки апаратне забезпечення PCI Express не підтримує послуги управління (ACS) в At At. Для отримання додаткової інформації зверніться до постачальника системи.
Повний висновок команди Get-vmswitch | Fl *iov *
надає ряд корисної інформації. Наприклад:
IovvirtalfunctionCount: 6 iovivirtalfunctionsinus: 3
Такі цифри негайно покажуть, скільки доступно віртуальних пристроїв IOV та скільки віртуальних машин вже використовувалося.
Створюючи віртуальний перемикач Hyper-V, вам потрібно встановити вікно підтримки SR-IOV - Увімкнути віртуалізацію вводу/виводу одноразового (SR-IOV).
Або включити опцію enableiov під час створення комутатора з командного рядка PowerShell:
Новий -vmswitch -name "ext_network" -netadaptername "Ethernet 2" -enableiov 1
Більше того, наявність підтримки SR-IOV на господарстві гіпервізора зовсім не означає, що він буде працювати на певному віртуальному комутаторі. Необхідно, щоб цей перемикач був приєднаний до мережевого адаптера за допомогою підтримки SR-IOV.
Є ще один нюанс. На материнській платі може бути кілька мережевих адаптерів, але SR-IOV може підтримувати лише деякі з них. Більше того, підтримка самого SR-Iov зовсім не означає, що він працює на цій конкретній материнській карті!
Тому після складання комутатора перевірте його за допомогою команди:
Get-vmswitch | Виберіть Iovsuport, Iovsupportreasons, Ienvanabled
Параметр iEvenabled показує, чи увімкнено.
Список мережевих адаптерів із підтримкою SR-IOV може відображатися за допомогою PowerShell:
Get-netadaptersriov | Назва сортування | Ім'я фут, взаємозв'язок, sriovsupport
Після того, як SR-IOV увімкнено на рівні гіпервізорів та віртуального перемикача, тепер його можна увімкнути у віртуальних машинах (за замовчуванням він вимкнено). Опція Увімкнути sr-iov Доступ до розділу апаратного прискорення в мережі віртуальної машини.
Або ви можете ввімкнути SR-IOV для мережевого адаптера віртуальної машини через PowerShell:
Set -vmnetworkadapter -vmnamnamnam -vmnetworkadapternam “мережевий адаптер” -iov -вага
Помилки під час SR-IOV написані на Hyper-V в окремому журналі в переглядачах подій:
Журнали додатків та служб -> Microsoft -> Windows -> Hyper -V -Synthnic -> Адміністратор.
Якщо SR-IOV працює нормально, то при запуску віртуальної машини в журналі будуть наступні записи:
12597 мережевий адаптер (%NIC_ID%) підключений до віртуальної мережі. 12582 мережевий адаптер (%NIC_ID%) почав успішно. 12584 мережевий адаптер (%NIC_ID%) виділив віртуальну функцію. 12588 Мережевий адаптер (%NIC_ID%) призначив віртуальну функцію.
Технологія SR-IOV дає хороший підвищення продуктивності мережі віртуальних машин та гіпервізора загалом. Ви помітите максимальні результати використання SR-IOV на Hyper-V хостів з великим трафіком віртуальних машин, що спричиняє сильне навантаження на хост-процесор.