VMQ (Virtual Machine Queue) — различия между версиями

Материал из Национальной библиотеки им. Н. Э. Баумана
Строка 32: Строка 32:
 
Поддержка VMQ позволяет перенести большую часть затрат на обработку сетевых пакетов, адресованных виртуальным машинам с хостовой ОС на плечи процессора сетевого адаптера. Разумеется, при условии, что сетевой адаптер это поддерживает, и в гостевых ОС установлены компоненты интеграции.
 
Поддержка VMQ позволяет перенести большую часть затрат на обработку сетевых пакетов, адресованных виртуальным машинам с хостовой ОС на плечи процессора сетевого адаптера. Разумеется, при условии, что сетевой адаптер это поддерживает, и в гостевых ОС установлены компоненты интеграции.
 
Если не используется VMQ, то обработка сетевых пакетов происходит следующим образом:
 
Если не используется VMQ, то обработка сетевых пакетов происходит следующим образом:
<br>
+
 
[[Файл:1ec883ef9cb378bd4f7b59e699ee2e20.png|центр]]
+
[[Файл:1ec883ef9cb378bd4f7b59e699ee2e20.png|обрамить|центр|{{center|Рисунок 1 – Обработка сетевых пакетов без использования VMQ}}]]
<br>
+
  
 
Распределением трафика по виртуальным машинам и фильтрацией по тегам [[VLAN (Virtual Local Area Network)|VLAN]] при этом занимается виртуальный коммутатор, действующий в пространстве родительской ОС. При большом количестве виртуальных машин и при больших объемах трафика это может привести к некоторому снижению производительности, так как у процессора сервера есть и другие задачи, помимо обработки сетевых пакетов. Использование VMQ позволяет переложить обработку пакетов на плечи процессора сетевого адаптера:
 
Распределением трафика по виртуальным машинам и фильтрацией по тегам [[VLAN (Virtual Local Area Network)|VLAN]] при этом занимается виртуальный коммутатор, действующий в пространстве родительской ОС. При большом количестве виртуальных машин и при больших объемах трафика это может привести к некоторому снижению производительности, так как у процессора сервера есть и другие задачи, помимо обработки сетевых пакетов. Использование VMQ позволяет переложить обработку пакетов на плечи процессора сетевого адаптера:
  
[[Файл:25d5bb8960ac2865ec7ab64587d93447.png|центр]]
+
[[Файл:25d5bb8960ac2865ec7ab64587d93447.png|обрамить|центр|{{center|Рисунок 2 – Обработка пакетов процессором сетевого адаптера}}]]
  
 
Сетевой адаптер, поддерживающий VMQ, способен самостоятельно осуществлять необходимую обработку сетевых пакетов, а затем записать данные непосредственно в область памяти соответствующей виртуальной машины.
 
Сетевой адаптер, поддерживающий VMQ, способен самостоятельно осуществлять необходимую обработку сетевых пакетов, а затем записать данные непосредственно в область памяти соответствующей виртуальной машины.
Строка 55: Строка 54:
 
*Выберите пункт "Включить VMQ (Enable virtual machine queue)" в диалоговом окне "Параметры аппаратного ускорения (Hardware Acceleration )".  <ref group="Источник" name="multiple2" > Hyper-V: Virtual Machine Queues (VMQ) FAQs // portal.nutanix.com. Дата обновления: 13.07.2018 г.  // URL: https://portal.nutanix.com/#page/kbs/details?targetId=kA0600000008eNTCAY (Дата обращения: 28.12.2018).</ref>
 
*Выберите пункт "Включить VMQ (Enable virtual machine queue)" в диалоговом окне "Параметры аппаратного ускорения (Hardware Acceleration )".  <ref group="Источник" name="multiple2" > Hyper-V: Virtual Machine Queues (VMQ) FAQs // portal.nutanix.com. Дата обновления: 13.07.2018 г.  // URL: https://portal.nutanix.com/#page/kbs/details?targetId=kA0600000008eNTCAY (Дата обращения: 28.12.2018).</ref>
  
[[Файл:Снимок_экрана_2018-12-29_в_9.34.14.png|600x600px|центр]]
+
[[Файл:Снимок_экрана_2018-12-29_в_9.34.14.png|200x200px|обрамить|центр|{{center|Рисунок 3 – Включение VMQ с помощью SCVMM}}]]
 +
 
  
 
==Список источников ==
 
==Список источников ==
 
{{reflist|group=Источник}}
 
{{reflist|group=Источник}}

Версия 20:11, 9 января 2019

Virtual Machine Queue
Rightsizing-your-sql-server-virtual-machine-12-638.jpg
Пример организации VMQ
Разработчики: VMware, Inc.
Постоянный выпуск: 8.1.1 / December 8, 2015 (2015-12-08)[1]
Операционная система: OS X
Платформа: Apple-Intel architecture
Тип ПО: Hypervisor
Лицензия: Commercial proprietary software
Веб-сайт {{#property:P856}}

VMQ (англ. Virtual Machine Queue) - это аппаратная технология виртуализации для эффективного переноса сетевого трафика (используя протоколы TCP/IP, iSCSI или FCoE) для виртуализированной ОС. Технология VMQ была запатентована в 2010 году Даниэлем Баумбергером из компании Intel. Совместимый с VMQ сетевой контроллер может использовать DMA для транспортировки всех полученных фреймов, которые должны быть обработаны для получения очереди для буферов приема, на которые выделена память для очереди. [Источник 1]

VMQ - это тип аппаратной фильтрации пакетов, который доставляет данные пакетов из внешней сети виртуальных машин непосредственно в операционную систему виртуализированного узла. VMQ позволяет контроллеру сетевого интерфейса (NIC) передавать входящие данные непосредственно в буфер приема сетевого адаптера с помощью прямого доступа к памяти (DMA). Это упрощает процесс, связанный с маршрутизацией пакетов, и снижает необходимость их копирования из операционной системы управления (ОС) на виртуальную машину (VM). Вместо одного процессора, обрабатывающего все сетевые обмены данными, различные процессоры могут обрабатывать пакеты для разных виртуальных машин с VMQ. Это устраняет зависимость от обмена трафиком на основе драйверов и улучшает передачу сетевого трафика.[Источник 2]


Интерфейс VMQ поддерживает:

  • Классификацию полученных пакетов в NIC с помощью направления MAC-адреса для маршрутизации пакетов в различные очереди приема.
  • Возможность NIC использовать DMA для непосредственной передачи пакетов в общую память виртуальной машины.
  • Масштабирование на несколько процессоров путем обработки пакетов для разных виртуальных машин на разных процессорах. [Источник 1]


Общие сведения о VMQ

Поддержка VMQ позволяет перенести большую часть затрат на обработку сетевых пакетов, адресованных виртуальным машинам с хостовой ОС на плечи процессора сетевого адаптера. Разумеется, при условии, что сетевой адаптер это поддерживает, и в гостевых ОС установлены компоненты интеграции. Если не используется VMQ, то обработка сетевых пакетов происходит следующим образом:

Рисунок 1 – Обработка сетевых пакетов без использования VMQ

Распределением трафика по виртуальным машинам и фильтрацией по тегам VLAN при этом занимается виртуальный коммутатор, действующий в пространстве родительской ОС. При большом количестве виртуальных машин и при больших объемах трафика это может привести к некоторому снижению производительности, так как у процессора сервера есть и другие задачи, помимо обработки сетевых пакетов. Использование VMQ позволяет переложить обработку пакетов на плечи процессора сетевого адаптера:

Рисунок 2 – Обработка пакетов процессором сетевого адаптера

Сетевой адаптер, поддерживающий VMQ, способен самостоятельно осуществлять необходимую обработку сетевых пакетов, а затем записать данные непосредственно в область памяти соответствующей виртуальной машины. Передача же данных, что с VMQ, что без оной – идет как и обычно: Виртуальный сетевой адаптер – VMBus – Виртуальный коммутатор – Физический сетевой адаптер. [Источник 3]

Архитектура очереди виртуальной машины

Архитектура очереди виртуальных машин NDIS (VMQ) предоставляет такие преимущества виртуализации, как:

  • Виртуализация влияет на производительность, и VMQ помогает улучшить ее.
  • VMQ sМатериал поддерживает динамическую миграцию.
  • VMQ сосуществует с разгрузками задач NDIS и другими оптимизациями. [Источник 1]

Как использовать VMQ

Процедура включения VMQ с помощью SCVMM:

  • Выберите виртуальную машину.
  • Перейдите в настройки (Settings ) > Программное обеспечение (Hardware) > Сетевые адаптеры (Network Adapter )> Аппаратное ускорение (Hardware Acceleration).
  • Выберите пункт "Включить VMQ (Enable virtual machine queue)" в диалоговом окне "Параметры аппаратного ускорения (Hardware Acceleration )".  [Источник 2]
Рисунок 3 – Включение VMQ с помощью SCVMM


Список источников

  1. 1,0 1,1 1,2 VMQ // En.Wikipedia. Дата обновления: 08.05.2018 г. // URL: https://en.wikipedia.org/wiki/VMQ. (Дата обращения: 28.12.2018).
  2. 2,0 2,1 Hyper-V: Virtual Machine Queues (VMQ) FAQs // portal.nutanix.com. Дата обновления: 13.07.2018 г. // URL: https://portal.nutanix.com/#page/kbs/details?targetId=kA0600000008eNTCAY (Дата обращения: 28.12.2018).
  3. Hyper-V и сети // habr.com. Дата обновления: 22.07.2010 г. // URL: https://habr.com/post/97085/. (Дата обращения: 28.12.2018).
  1. "VMware Fusion 8.1 Release Notes". VMware, Inc.