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

Материал из Национальной библиотеки им. Н. Э. Баумана
Строка 18: Строка 18:
 
}}
 
}}
  
'''VMQ''' ({{lang-en|Virtual Machine Queue}}) - это аппаратная технология виртуализации для эффективного переноса сетевого трафика (используя протоколы [[TCP/IP|TCP/IP (Transmission Control Protocol/Internet Protocol)]], iSCSI или FCoE) для виртуализированной ОС. Технология VMQ  была запатентована в 2010 году Даниэлем Баумбергером из компании [[Intel]]. Совместимый с VMQ сетевой контроллер может использовать DMA для транспортировки всех полученных фреймов, которые должны быть обработаны для получения очереди для буферов приема, на которые выделена память для очереди.  
+
'''VMQ''' ({{lang-en|Virtual Machine Queue}}) - это аппаратная технология виртуализации для эффективного переноса сетевого трафика (используя протоколы [[TCP/IP (Transmission Control Protocol/Internet Protocol)|TCP/IP]], iSCSI или FCoE) для виртуализированной ОС. Технология VMQ  была запатентована в 2010 году Даниэлем Баумбергером из компании Intel. Совместимый с VMQ сетевой контроллер может использовать DMA для транспортировки всех полученных фреймов, которые должны быть обработаны для получения очереди для буферов приема, на которые выделена память для очереди. <ref group="Источник" name="multiple1"> VMQ // En.Wikipedia. Дата обновления: 08.05.2018 г.  // URL: https://en.wikipedia.org/wiki/VMQ. (Дата обращения: 28.12.2018).</ref>.
 +
 
 +
VMQ - это тип аппаратной фильтрации пакетов, который доставляет данные пакетов из внешней сети виртуальных машин непосредственно в операционную систему виртуализированного узла. VMQ позволяет контроллеру сетевого интерфейса (NIC) передавать входящие данные непосредственно в буфер приема сетевого адаптера с помощью прямого доступа к памяти (DMA). Это упрощает процесс, связанный с маршрутизацией пакетов, и снижает необходимость их копирования из операционной системы управления (ОС) на виртуальную машину (VM). Вместо одного процессора, обрабатывающего все сетевые обмены данными, различные процессоры могут обрабатывать пакеты для разных виртуальных машин с VMQ. Это устраняет зависимость от обмена трафиком на основе драйверов и улучшает передачу сетевого трафика.<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 поддерживает:
 
Интерфейс VMQ поддерживает:
*Классификацию полученных пакетов в NIC с помощью направления [[MAC|MAC (Message Authentication Code)]]-адреса для маршрутизации пакетов в различные очереди приема.
+
*Классификацию полученных пакетов в NIC с помощью направления [[MAC (Message Authentication Code)|MAC]]-адреса для маршрутизации пакетов в различные очереди приема.
 
*Возможность NIC использовать DMA для непосредственной передачи пакетов в общую память виртуальной машины.
 
*Возможность NIC использовать DMA для непосредственной передачи пакетов в общую память виртуальной машины.
*Масштабирование на несколько процессоров путем обработки пакетов для разных виртуальных машин на разных процессорах.  <ref group="Источник" name="multiple1"> VMQ // En.Wikipedia. Дата обновления: 08.05.2018 г.  // URL: https://en.wikipedia.org/wiki/VMQ. (Дата обращения: 15.12.2018).</ref>.  
+
*Масштабирование на несколько процессоров путем обработки пакетов для разных виртуальных машин на разных процессорах.  <ref group="Источник" name="multiple1"> VMQ // En.Wikipedia. Дата обновления: 08.05.2018 г.  // URL: https://en.wikipedia.org/wiki/VMQ. (Дата обращения: 28.12.2018).</ref>.  
https://en.wikipedia.org/wiki/VMQ
+
 
  
 
==Общие сведения о VMQ==
 
==Общие сведения о VMQ==
Строка 33: Строка 36:
 
<br>
 
<br>
  
Распределением трафика по виртуальным машинам и фильтрацией по тегам [[VLAN|VLAN (Virtual Local Area Network)]] при этом занимается виртуальный коммутатор, действующий в пространстве родительской ОС. При большом количестве виртуальных машин и при больших объемах трафика это может привести к некоторому снижению производительности, так как у процессора сервера есть и другие задачи, помимо обработки сетевых пакетов. Использование VMQ позволяет переложить обработку пакетов на плечи процессора сетевого адаптера:
+
Распределением трафика по виртуальным машинам и фильтрацией по тегам [[VLAN (Virtual Local Area Network)|VLAN]] при этом занимается виртуальный коммутатор, действующий в пространстве родительской ОС. При большом количестве виртуальных машин и при больших объемах трафика это может привести к некоторому снижению производительности, так как у процессора сервера есть и другие задачи, помимо обработки сетевых пакетов. Использование VMQ позволяет переложить обработку пакетов на плечи процессора сетевого адаптера:
  
 
[[Файл:25d5bb8960ac2865ec7ab64587d93447.png|центр]]
 
[[Файл:25d5bb8960ac2865ec7ab64587d93447.png|центр]]
  
 
Сетевой адаптер, поддерживающий VMQ, способен самостоятельно осуществлять необходимую обработку сетевых пакетов, а затем записать данные непосредственно в область памяти соответствующей виртуальной машины.
 
Сетевой адаптер, поддерживающий VMQ, способен самостоятельно осуществлять необходимую обработку сетевых пакетов, а затем записать данные непосредственно в область памяти соответствующей виртуальной машины.
Передача же данных, что с VMQ, что без оной – идет как и обычно: Виртуальный сетевой адаптер – VMBus – Виртуальный коммутатор – Физический сетевой адаптер. https://habr.com/post/97085/
+
Передача же данных, что с VMQ, что без оной – идет как и обычно: Виртуальный сетевой адаптер – VMBus – Виртуальный коммутатор – Физический сетевой адаптер. <ref group="Источник" > Hyper-V и сети // habr.com. Дата обновления: 22.07.2010 г.  // URL: https://habr.com/post/97085/. (Дата обращения: 28.12.2018).</ref>.
  
 +
==Архитектура очереди виртуальной машины==
 +
Архитектура очереди виртуальных машин NDIS (VMQ) предоставляет такие преимущества виртуализации, как:
 +
*Виртуализация влияет на производительность, и VMQ помогает улучшить ее.
 +
*VMQ sМатериал поддерживает динамическую миграцию.
 +
*VMQ сосуществует с разгрузками задач NDIS и другими оптимизациями. <ref group="Источник" name="multiple1"> VMQ // En.Wikipedia. Дата обновления: 08.05.2018 г.  // URL: https://en.wikipedia.org/wiki/VMQ. (Дата обращения: 28.12.2018).</ref>.
  
 +
==Как использовать VMQ==
 +
Процедура включения VMQ с помощью SCVMM:
 +
*Выберите виртуальную машину.
 +
*Перейдите в настройки (Settings ) > Программное обеспечение (Hardware) > Сетевые адаптеры (Network Adapter )> Аппаратное ускорение (Hardware Acceleration).
 +
*Выберите пункт "Включить 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|центр]]
https://habrahabr.ru/post/97085/<br>
+
https://habrahabr.ru/company/microsoft/blog/209684/<br>
+
https://habrahabr.ru/post/99255/
+
  
== Примечания ==
+
==Ссылки ==
{{reflist}}
+
{{reflist|group=Источник}}

Версия 09:34, 29 декабря 2018

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
Веб-сайт Official website

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, то обработка сетевых пакетов происходит следующим образом:

1ec883ef9cb378bd4f7b59e699ee2e20.png


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

25d5bb8960ac2865ec7ab64587d93447.png

Сетевой адаптер, поддерживающий 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].

Ссылки

  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.