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

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 14:41, 10 января 2019.
(Hello, World!)
 
 
(не показано 13 промежуточных версий 3 участников)
Строка 1: Строка 1:
[[Файл:Rightsizing-your-sql-server-virtual-machine-12-638.jpg|thumb|Пример организации VMQ]]
+
{{infobox software
Virtual Machine Queue (VMQ) - это аппаратная технология виртуализации для эффективного переноса сетевого трафика (используя протоколы TCP/IP, iSCSI или FCoE) для виртуализированной ОС. Технология VMQ  была запатентована в 2010 году Даниэлем Баумбергером из компании Intel. Совместимый с VMQ сетевой контроллер может использовать DMA для транспортировки всех полученных фреймов, которые должны быть обработаны для получения очереди для буферов приема, на которые выделена память для очереди.  
+
| name                  = Virtual Machine Queue
 +
| logo                  =
 +
| logo size              =
 +
| screenshot            = Rightsizing-your-sql-server-virtual-machine-12-638.jpg
 +
| caption                = Пример организации VMQ
 +
| developer              = [[VMware, Inc.|VMware, Inc.]]
 +
| latest release version = 8.1.1
 +
| latest release date    = 8.1.1 / 8 декабря 2015 г.
 +
| latest preview version = <!-- Removed: no source -->
 +
| latest preview date    = <!-- Removed: no source -->
 +
| operating_system      = [[OS X]]
 +
| platform              = Архитектура Apple-Intel
 +
| language              = <!-- Removed because did not have source -->
 +
| genre                  = [[Гипервизор]]
 +
| license                = [[Проприетарное программное обеспечение|Проприетарное ПО]]
 +
| website                =  <!-- Removed because did not have source -->
 +
}}
 +
 
 +
'''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 // 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 поддерживает:
 +
*Классификацию полученных пакетов в NIC с помощью направления [[MAC (Message Authentication Code)|MAC]]-адреса для маршрутизации пакетов в различные очереди приема.
 +
*Возможность NIC использовать DMA для непосредственной передачи пакетов в общую память виртуальной машины.
 +
*Масштабирование на несколько процессоров путем обработки пакетов для разных виртуальных машин на разных процессорах <ref group="Источник" name="multiple1"> VMQ // Wikipedia. Дата обновления: 08.05.2018. URL: https://en.wikipedia.org/wiki/VMQ. (Дата обращения: 28.12.2018).</ref>.
 +
 
  
 
==Общие сведения о VMQ==
 
==Общие сведения о VMQ==
 
Поддержка VMQ позволяет перенести большую часть затрат на обработку сетевых пакетов, адресованных виртуальным машинам с хостовой ОС на плечи процессора сетевого адаптера. Разумеется, при условии, что сетевой адаптер это поддерживает, и в гостевых ОС установлены компоненты интеграции.
 
Поддержка VMQ позволяет перенести большую часть затрат на обработку сетевых пакетов, адресованных виртуальным машинам с хостовой ОС на плечи процессора сетевого адаптера. Разумеется, при условии, что сетевой адаптер это поддерживает, и в гостевых ОС установлены компоненты интеграции.
 
Если не используется VMQ, то обработка сетевых пакетов происходит следующим образом:
 
Если не используется VMQ, то обработка сетевых пакетов происходит следующим образом:
<br>
 
[[Файл:1ec883ef9cb378bd4f7b59e699ee2e20.png|центр]]
 
<br>
 
  
Распределением трафика по виртуальным машинам и фильтрацией по тегам VLAN при этом занимается виртуальный коммутатор, действующий в пространстве родительской ОС. При большом количестве виртуальных машин и при больших объемах трафика это может привести к некоторому снижению производительности, так как у процессора сервера есть и другие задачи, помимо обработки сетевых пакетов. Использование VMQ позволяет переложить обработку пакетов на плечи процессора сетевого адаптера:
+
[[Файл:1ec883ef9cb378bd4f7b59e699ee2e20.png|обрамить|центр|{{center|Рисунок 1 – Обработка сетевых пакетов без использования VMQ}}]]
  
[[Файл:25d5bb8960ac2865ec7ab64587d93447.png|центр]]
+
Распределением трафика по виртуальным машинам и фильтрацией по тегам [[VLAN (Virtual Local Area Network)|VLAN]] при этом занимается виртуальный коммутатор, действующий в пространстве родительской ОС. При большом количестве виртуальных машин и при больших объемах трафика это может привести к некоторому снижению производительности, так как у процессора сервера есть и другие задачи, помимо обработки сетевых пакетов. Использование VMQ позволяет переложить обработку пакетов на плечи процессора сетевого адаптера:
  
Сетевой адаптер, поддерживающий VMQ, способен самостоятельно осуществлять необходимую обработку сетевых пакетов, а затем записать данные непосредственно в область памяти соответствующей виртуальной машины.
+
[[Файл:25d5bb8960ac2865ec7ab64587d93447.png|обрамить|центр|{{center|Рисунок 2 Обработка пакетов процессором сетевого адаптера}}]]
Передача же данных, что с VMQ, что без оной идет как и обычно: Виртуальный сетевой адаптер – VMBus – Виртуальный коммутатор – Физический сетевой адаптер.
+
  
== Сетевые адаптеры ==
+
Сетевой адаптер, поддерживающий VMQ, способен самостоятельно осуществлять необходимую обработку сетевых пакетов, а затем записать данные непосредственно в область памяти соответствующей виртуальной машины.
Как можно увидеть в Hyper-V Manager, есть два типа виртуальных сетевых адаптеров: Network Adapter и Legacy Network Adapter. Отличаются между собой они тем, что первый из них является синтетическим устройством, а второй эмулируемым. Чем отличаются синтетические устройства от эмулируемых можно почитать в первой статье, «Архитектура Hyper-V».Legacy Network Adapter эмулирует многопортовую сетевую карту DEC 21140 10/100TX 100 MB (и поэтому поддерживает только 10/100Мбит/с) и не поддерживается ОС Windows XP и Windows Server 2003 в 64-битной версии.
+
Передача же данных, что с VMQ, что без оной идет как и обычно: Виртуальный сетевой адаптер VMBus – Виртуальный коммутатор – Физический сетевой адаптер <ref group="Источник" > Hyper-V и сети // habr.com. Дата обновления: 22.07.2010. URL: https://habr.com/post/97085/. (Дата обращения: 28.12.2018).</ref>.
Использование синтетических устройств всегда предпочтительнее, и именно поэтому при создании новой виртуальной машины по умолчанию добавляется именно Network Adapter. Использовать Legacy Network Adapter рекомендуется только в двух случаях:
+
*Когда гостевая ОС не поддерживает установку компонент интеграции;
+
*Когда необходим доступ к сети до загрузки ОС, к примеру – загрузка по PXE для установки ОС с сервера WDS.
+
 
+
Для этого при создании виртуальной машины необходимо убрать галочку «Start virtual machine automatically», а затем, зайдя в конфигурацию виртуальной машины, вручную удалить Network Adapter и добавить Legacy Network Adapter.
+
Стоит еще упомянуть о назначении MAC-адресов виртуальным адаптерам. Он может назначаться как автоматически при создании виртуальной машины (причем диапазон выдачи MAC-адресов можно изменять в настройках сервера Hyper-V), либо же вручную через конфигурацию виртуальной машины.
+
  
== Виртуальные сети ==
+
==Архитектура очереди виртуальной машины==
В Hyper-V существуют виртуальные сети (Virtual Networks), которые по сути представляют собой самые обычные виртуальные коммутаторы. К каждому виртуальному коммутатору могут присоединяться как сетевые интерфейсы виртуальных машин, так и физические сетевые интерфейсы сервера. Виртуальные сети бывают трех типов:
+
Архитектура очереди виртуальных машин NDIS (VMQ) предоставляет такие преимущества виртуализации, как:
[[Файл:B67b72c05a16c0d49a307f682ffaaa56.png|Типы виртуальных сетей|центр]]
+
*Виртуализация влияет на производительность, и VMQ помогает улучшить ее.
 +
*VMQ sМатериал поддерживает динамическую миграцию.
 +
*VMQ сосуществует с разгрузками задач NDIS и другими оптимизациями<ref group="Источник" name="multiple1"> VMQ // 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>.
  
Виртуальные сети (то есть виртуальные коммутаторы) бывают трех типов: External, Internal и Private. External – виртуальная сеть, имеющая выход «во внешний мир». При создании сети типа External необходимо указать сетевой интерфейс, через который будет осуществляться выход наружу (Физический адаптер 2). При этом физический интерфейс теряет все сетевые настройки, и создается виртуальный адаптер в хостовой ОС (Виртуальный адаптер 1), к которому привязываются все необходимые протоколы и настройки. Физический же интерфейс остается всего с одним протоколом: Virtual Network Switching Protocol.
+
[[Файл:Снимок_экрана_2018-12-29_в_9.34.14.png|thumb|800px|центр|{{center|Рисунок 3 – Включение VMQ с помощью SCVMM}}]]
  
==Работа с VLAN==
+
==Источники ==
Hyper-V поддерживает работу с VLAN (IEEE 802.1Q). Для этого в свойствах виртуальных сетевых интерфейсов имеется галочка «Enable VLAN Identification», после активации которой можно ввести VLAN ID. Предварительно, необходимо настроить коммутаторы, чтобы трафик тегировался соответствующими ID, и  установить в хостовой ОС драйверы сетевого адаптера с поддержкой необходимых функций.
+
{{reflist|group=Источник}}

Текущая версия на 14:41, 10 января 2019

Virtual Machine Queue
Rightsizing-your-sql-server-virtual-machine-12-638.jpg
Пример организации VMQ
Разработчики: VMware, Inc.
Постоянный выпуск: 8.1.1 / 8.1.1 / 8 декабря 2015 г.
Операционная система: OS X
Платформа: Архитектура Apple-Intel
Тип ПО: Гипервизор
Лицензия: Проприетарное ПО
Веб-сайт {{#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 // 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).