Большинству администраторов VMware vSphere известно, что у виртуальной машины могут быть виртуальные сетевые адаптеры различных типов, которые выбираются как в зависимости от гостевой ОС, так и от настроек пользователя, которые можно прописать в vmx-файле конфигурации ВМ.
На эту тему компания VMware выпустила вот такое видео:
Опишем типы сетевых адаптеров (vNIC) для виртуальной машины (ранее мы писали о них тут):
Vlance - этот адаптер эмулирует реально существующий старый адаптер AMD 79C970 PCnet32- LANCE NIC, он работает на скорости 10 Mbps, и для него есть драйверы в большинстве 32-битных ОС, за исключением Windows Vista и более поздних версий. Виртуальная машина с таким адаптером может сразу использовать сеть.
VMXNET - такой адаптер уже не имеет физического воплощения, то есть он полностью виртуальный. Он оптимизирован с точки зрения производительности ВМ. Поскольку он виртуальный - ОС не может его использовать, пока не установлены драйверы, идущие в комплекте с VMware Tools.
Flexible - это по-сути не адаптер, а способ его представления. Он ведет себя как Vlance при загрузке ВМ, но потом превращается (или нет - в зависимости от VMware Tools) в VMXNET.
E1000 - это эмулируемая сетевая карта Intel 82545EM Gigabit Ethernet NIC. Драйвер для этого адаптера есть не во всех гостевых операционных системах. Обычно Linux с версиями ядра 2.4.19 или более поздними, Windows XP Professional x64 Edition и позднее, а также Windows Server 2003 (32-bit) и позднее включают в себя драйвер для этого устройства. Производительность его достаточно неплоха. Драйвер адаптера E1000 не поддерживает большие кадры jumbo frames до версии VMware ESXi/ESX 4.1.
E1000e - этот адаптер эмулирует более продвинутую модель Intel Gigabit NIC (number 82574) в виртуальном аппаратном обеспечении (virtual hardware) виртуальной машины. Адаптер e1000e доступен только для virtual hardware версии 8 (и старше), начиная с VMware vSphere 5. Это дефолтный адаптер для Windows 8 и более новых гостевых ОС. Для гостевых ОС Linux e1000e не доступен для выбора из интерфейса (e1000, flexible, vmxnet, enhanced vmxnet и vmxnet3 - доступны для Linux).
VMXNET 2 (Enhanced) - адаптер VMXNET 2 основан на устройстве VMXNET, но предоставляет несколько функций с улучшенной производительностью, таких как jumbo frames и hardware offloads (например, TCP Segmentation Offloading, TSO). Этот адаптер доступен только для хостов VMware ESX/ESXi 3.5 или выше. Устройство VMXNET 2 поддерживается только для следующих гостевых операционных систем:
32- и 64-битные версии Microsoft Windows 2003 (Enterprise и Datacenter Edition). Можно использовать адаптер VMXNET 2 и на Microsoft Windows 2003, однако нужно прочитать статью в KB 1007195 (http://kb.vmware.com/kb/1007195).
32-битная версия Microsoft Windows XP Professional
32- и 64-битные версии Red Hat Enterprise Linux 5.0
32- и 64-битные версии SUSE Linux Enterprise Server 10
В ESX 3.5 Update 4 или более поздних версиях платформы следующие гостевые ОС также поддерживаются для этого адаптера:
Microsoft Windows Server 2003, Standard Edition (32-bit)
Microsoft Windows Server 2003, Standard Edition (64-bit)
Microsoft Windows Server 2003, Web Edition
Microsoft Windows Small Business Server 2003
Jumbo frames также не поддерживаются для гостевых ОС Solaris с адаптером VMXNET 2.
VMXNET 3 - это следующее поколение виртуальных сетевых карт, которое теперь паравиртуализовано. То есть часть того, что раньше полностью эмулиировалось, теперь передается напрямую в физическое устройство. Этот адаптер не является надстройкой над VMXNET или VMXNET 2, но включает в себя все доступные для них возможности. Например, к ним относятся: поддержка механизмов нескольких очередей (multiqueue - также известны как Receive Side Scaling в Windows), IPv6 offloads, а также прерывания MSI/MSI-X (подробнее - тут).
VMXNET 3 поддерживается только для виртуальных машин с виртуальным аппаратным обеспечением уровня 7 или более поздним, при этом только для следующих гостевых систем:
32- и 64-битные версии Microsoft Windows XP и более поздние (включая Windows 7, 2003, 2003 R2, 2008, 2008 R2 и Server 2012)
32- и 64-битные версии Red Hat Enterprise Linux 5.0 и более поздние
32- и 64-битные версии SUSE Linux Enterprise Server 10 и более поздние
32- и 64-битные версии Asianux 3 и более поздние
32- и 64-битные версии Debian 4/Ubuntu и более поздние
32- и 64-битные версии Sun Solaris 10 U4 и более поздние
Заметки:
В ESXi/ESX 4.1 и более ранних версиях jumbo frames не поддерживаются для гостевых ОС Solaris для адаптеров VMXNET 2 и VMXNET 3. Эта возможность поддерживается, начиная с ESXi 5.0 только для адаптеров VMXNET 3. Более подробно можно почитать в статье Enabling Jumbo Frames on the Solaris guest operating system (2012445).
Технология Fault Tolerance не поддерживается для ВМ с адаптером VMXNET 3 в vSphere 4.0, но поддерживается в vSphere 4.1 и более поздних версиях.
Windows Server 2012 поддерживается для адаптеров e1000, e1000e и VMXNET 3 на платформе ESXi 5.0 Update 1 и более поздни
Для того, чтобы использовать тот или иной тип виртуального сетевого адаптера для виртуальной машины, необходимо выставить его при добавлении к виртуальной машине при создании или редактировании свойств.
Также vNIC можно добавить с помощью добавления строчек в конфигурационный vmx-файл виртуальной машины:
Для адаптера типа Flexible ничего добавлять не требуется.
Ethernet[X].virtualDev = "e1000" - для добавления сетевого адаптера E1000.
Ethernet[X].virtualDev = "vmxnet" - для добавления адаптера VMXNET 2 (Enhanced).
Ethernet[X].virtualDev = "vmxnet3" - для добавления адаптера VMXNET3.
Вместо [X] необходимо подставить номер виртуального сетевого адаптера, начиная с 0.