Directpath i o vmware что это

Обновлено: 07.07.2024

Недавно вышел в свет один из важнейших документов, содержащий в себе концентрацию лучших практик для обеспечения производительной работы VMware vSphere с поправками на последнюю, седьмую, версию.

Данная серия постов, скорее, вырезка интересующих меня моментов из гайда, которыми можно поделиться с коллегами, с моими комментариями и дополнениями, но не в коем случае не попытка перевести полностью и дословно данный документ.

Мой перевод и понимание документа могут содержать неточности и, возможно, ошибки, поэтому в первую очередь настоятельно рекомендую самостоятельно ознакомиться с документом в его оригинальном виде.

В целом, документ состоит из большого количества секций. Я просто пойду сверху вниз по всем пунктам, которые интересуют меня, и могут быть полезны в первую очередь новичкам.

Первая часть «Hardware for Use with VMware vSphere» посвящается моментам, на которые необходимо обратить внимание при выборе серверного оборудования и начальной конфигурации.

Validate Your Hardware

Всегда необходимо проверять серверное оборудование, планируемое для использования под задачи виртуализации на совместимость с устанавливаемой версией vSphere. Проверять по Support Matrix необходимо все:

  1. HBA, NIC, CPU;
  2. Версии Firmware, драйвера;
  3. СХД, протокол подключения;
  4. Версии гостевых ОС.

Конечно, это не значит, что если в матрице совместимости отсутствует нужная прошивка, либо драйвер, модель CPU и т.п., то система не запустится, но вот в случае возникновения проблем, в технической поддержке могут и отказать до обновления на поддерживаемые версии компонентов.

При новых инсталляциях, рекомендуется тестировать ОЗУ в течение 72 часов, для выявления возможных ошибок.

CPU Hardware Considerations

Hardware-Assisted Virtualization

Большинство современных процессоров Intel и AMD включают в себя функции «помощи в виртуализации» и улучшают производительность виртуальной среды. Данные функции ниже:

Программная реализация вышеуказанных функций не поддерживается VMware начиная с версии 6.7, теперь данную задачу должен полностью брать на себя процессор.

Memory Hardware Considerations

Persistent Memory (PMem)

Планки энергонезависимой памяти, которые включаются в стандартные слоты DIMM. Дешевле, данные сохраняются при перезагрузке, большие объемы памяти, по сравнению с классической ОЗУ, обладают более низкой скоростью доступа. Пример – Intel Optane (DCPMM – DC Persistent Memory Modules), NVDIMM-N.

Intel Optane работает в двух режимах:

  1. Memory mode – DCPMM выступает для операционной системы как основная оперативная память. В этом случае «классическая ОЗУ» DRAM выступает в качестве кэша для DCPMM. Данный режим позволяет «сэкономить» на более дорогой DRAM, не без уменьшения скорости доступа. Производительность зависит от размера DRAM под кэш, как часто необходимо обращаться к ОЗУ и т.п. Подробнее.;
  2. App Direct Mode – В данном случае приложение, либо ОС понимает, что работает как с классической DRAM, так и с Persistent Memory, в связи с чем само выбирает, какую память использовать в конкретный момент. DCPMM может представляться в виртуальной машине виде классического диска (vPMEMDisk) также, как и устройство, выступающее в качестве виртуальной NVDIMM (vPMEM). В этом случае, гостевая операционная система должна понимать, что работает с NVDIMM памятью (PMem aware). Подробнее.

VMware рекомендует использовать режим App Direct как устройство vPMEM. Для получения максимальной производительности приложение должно быть PMem-aware, например, MS SQL Server 2019.

NVDIMM – тип Persistent Memory, работающий на тех же скоростях, что и DRAM, но сохраняет данные при перезагрузках. Всегда подключается в виртуальную машину как PMem и не может работать в режиме Memory Mode, как DCPMM.

В App Mode работает аналогично DCPMM как vPMEMDisk, либо как vPMEM. Подробнее.

Storage Hardware Considerations

В большинстве случаев, на итоговую работу дисковой подсистемы влияет не сколько конфигурация ESXi, сколько конфигурация СХД и сети передачи данных.

Производительность дисковой подсистемы зачастую зависит от множества факторов, включая уровень используемого RAID, типы дисков, размер кэш и т.п.

Перед непосредственным внедрением, крайне рекомендуется ознакомиться с документацией вендора СХД, а также с документацией VMware относительно работы системы виртуализации с СХД выбранного вендора.

VMware vStorage APIs for Array Integration (VAAI)

Выбираем СХД, которая поддерживает VAAI, чтобы перенести выполнение некоторых дисковых операций с гипервизора ESXi на СХД.

В некоторых случаях использование VAAI снижает нагрузку на CPU гипервизора, поскольку теперь часть своей работы он перекладывает на СХД, снижается latency, уменьшается трафик в сети передачи данных.

Основные возможности VAAI для SAN:

  1. Scalable Lock (hardware-assisted locking, atomic test & set он же ATS). Используется при обновлении метаданных VMFS. Ранее, при изменении метаданных ненадолго, но блокировались обращения ко всему VMFS-тому. С использованием Scalable Lock эта проблема решается, блокируется только доступ к изменяемому элементу, но не ко всему Datastore. Выражается в ускорении многих операций, типа изменения конфигураций машин, снапшотов, расширения диско, увеличивается производительность «тонких» VMDK и т.п.;
  2. Extended Copy (XCOPY, copy offload) перекладывает операции по копированию (в рамках одной СХД) на систему хранения данных. Например, при клонировании машин, Storage vMotion. Снижает нагрузку на ESXi. Не будет работать при копировании\клонировании между двумя разными СХД;
  3. Block zeroing (Write Same) – «зануление» дисков thick provision eager-zeroed тоже перекладывается на СХД, уменьшая работу гипервизора;
  4. Dead space reclamation (UNMAP) – крайне полезная вещь, при использовании тонких LUN на СХД. Возвращает освобожденное на Datastore пространство обратно в СХД. Удалил виртуальную машину – стал меньше размером тонкий LUN на СХД (конечно, не моментально).

Основные возможности VAAI для NAS:

Исходя из вышеуказанных возможностей VAAI для SAN и NAS, очевидно, что использование массивов с поддержкой данной технологии настоятельно рекомендуется.

iSCSI and NFS Storage

Убеждаемся, что у нас на сети нет узких мест, желательно, роутинга (точнее крайне настоятельно рекомендуется).

Держим в голове, что использование software-initiated iSCSI адаптера, а также NFS могут потребовать дополнительных ресурсов CPU на хосте, поскольку заниматься обработкой дискового трафика придется ему.

NVMe Storage

NVMe быстрее, но так же требует больше процессорных ресурсов. Рекомендуются к использованию многоядерные процессоры, хотя бы от 8 ядер. Больше процессоров – лучше, но хотя бы 2. С частотой так же – выше – лучше.

NVMe over Fabrics (NVMe-oF) Storage

Начиная с версии 7, ESXi поддерживает технологию NVMe-oF с помощью FC, либо RDMA в качестве транспорта.

NVMe-oF позволяет получить больше значения IOPS при меньших задержках.

Network Hardware Considerations

Убеждаемся, что мы используем «server-class» сетевые адаптеры для получения максимальной производительности. Убеждаемся, что на сети нет узких мест, все кабеля, коммутаторы работают на максимально доступных скоростях.

Так же рекомендуется использовать карты, поддерживающие функции Checksum offload, TSO, LRO, RSS, Jumbo и т.д. (если они, конечно, планируют использоваться).

По аналогии с HBA адаптерами, сетевые карты должны быть установлены в соответствующие PCI слоты, для получения максимально-доступной скорости приема/передачи.

Однопортовые 10Gb/s адаптеры рекомендуется устанавливать в слоты PCIe x8 (или выше), в то время как двухпортовые уже в PCIe x16.

При этом 40 гигабитные адаптеры следует устанавливать в PCI Gen3 x8/16 (либо выше).

По возможности, и крайне рекомендуется, чтобы виртуальный свитч vSwitch содержал адаптеры с одинаковой пропускной способностью.

Использование LACP может увеличить пропускную способность и доступность.

Hardware BIOS Settings

Всегда следует использовать последнюю версию BIOS, доступную для системы (но матрицу совместимости глянуть все равно стоит).

После обновления версии, следует проверить настройки BIOS, вдруг, ранее выставленные значения были изменены.

Добавлю от себя, что, если не знаешь, зачем нужен параметр, лучше его не изменять, чтобы не получить в дальнейшем проблем.

  1. Следует убедиться, что в BIOS задействованы все процессорные сокеты и все ядра на установленных процессорах, включен Hyper-Threading и Turbo Boost;
  2. Не стоит переводить Node Interleaving в параметр enabled (это отключит использование NUMA). Для использования NUMA – выставляем этот параметр в disabled, для использования UMA – enabled. В большинстве случаев, при правильном сайзинге виртуальных машин, с NUMA мы получим большую производительность;
  3. Необходимо убедиться, что все функции hardware-assisted virtualization включены (VT-x, AMD-V, EPT, RVI);
  4. Неплохим решением будет отключить в BIOS устройства, которые не используются. Например, USB, либо сетевые порты.

Power Management BIOS Settings

Не про употребление электропитанием сервера, а про управление питанием CPU.

Рекомендуется переложить управление питанием с плеч BIOS на плечи ESXi, и выставить в BIOS значение “OS Controlled Mode”, либо аналогичное.

C-States помогают экономить электроэнергию, переводя простаивающие процессоры в режим пониженного энергопотребления за счет приостановки работы его отдельных компонентов.

Всего таких уровней 6. Чем выше уровень – тем больше элементов процессора в режиме минимального энергопотребления.

Все выглядит прекрасно до тех пор, пока нагрузка не начинает расти и процессору необходимо перейти из состояния с отключёнными компонентами в полностью рабочее состояние (из режима C6 в C0). Этот переход занимает какое-то время, и это может сказаться на работе некоторых приложений. Подробнее.

  1. Использование C1E (аппаратно-управляемое состояние) зачастую уменьшает потребление электроэнергии с минимальным, либо вообще без влияния на производительность. Однако, некоторые приложения, крайне чувствительные к I/O latency, например, финансовые платформы, могут быть к этому чувствительны. В таком случае рекомендуется отключение C1E в BIOS;
  2. C-States глубже чем C1 и C1E управляются программно. Чтобы получить максимальную производительность на ватт электроэенергии, рекомендуется оставить включенными все C-States, которые в дальнейшем будут управляться с помощью vSphere;
  3. При использовании технологии Turbo Boost или Turbo Core, использование C-States в некоторых ситуациях могут даже увеличить производительность некоторых немногопоточных приложений (в случае, если некоторые ядра процессора простаивают).

На этом раздел по «железной» части подходи к концу. В следующей части посмотрим на все, что касается раздела ESXi and Virtual Machines этого замечательного гайда.

Хотите узнать, как настроить Vmware Directpath? В этом уроке мы покажем вам все шаги, необходимые для того, чтобы карта PCI была доступна для виртуальной машины с использованием функции сквозной передачи Directpath на сервере Vmware ESXi.

Этот учебник был протестирован на Vmware ESXi 6.5

Этот учебник был протестирован на Vmware ESXi 6.7

Vmware ESXi Playlist:

На этой странице мы предлагаем быстрый доступ к списку видеороликов, связанных с Vmware ESXi.

Не забудьте подписаться на наш канал YouTube, названный FKIT.

Учебное пособие по VMware ESXi:

На этой странице мы предлагаем быстрый доступ к списку руководств, связанных с Vmware Esxi.

Учебник - Vmware DirectPath Configuration

Во-первых, вам нужно получить доступ к веб-интерфейсу Vmware.

Откройте программное обеспечение браузера, введите IP-адрес вашего сервера Vmware ESXi и получите доступ к веб-интерфейсу.

vmware web interface

На экране приглашения введите регистрационную информацию администратора.

После успешного входа в систему появится панель управления Vmware.

Vmware web export virtual machine

На панели управления Vmware откройте меню «Управление».

Откройте вкладку «Оборудование».

Выберите нужное оборудование.

Нажмите опцию Toggle Passthrough.

Vmware Directpath Configuration

Перезагрузите сервер Vmware ESXi.

Vmware Reboot

Вы завершили настройку DirectPath на сервере Vmware ESXi.

Учебник - Конфигурация DirectPath виртуальной машины

Теперь мы расскажем вам, как назначить аппаратное обеспечение конкретной виртуальной машине.

Войдите в панель управления Vmware.

Vmware web export virtual machine

На панели управления Vmware откройте меню «Виртуальные машины».

Выберите нужную виртуальную машину.

Vmware Virtual Machine Vlan

На экране свойств виртуальной машины вам необходимо выполнить следующую конфигурацию:

После завершения настройки нажмите кнопку «Сохранить».

Virtual Machine Directpath device

В нашем примере видеокарта была назначена виртуальной машине Ubuntu.

Virtual Machine Directpath Configuration

Не забудьте сохранить конфигурацию.

Включите виртуальную машину и проверьте, доступно ли устройство.

Поздравляем! Вы успешно настроили функцию Directpath с помощью Vmware ESXi.

VirtualBox

Исторически так сложилось, что его использовал больше всего, хотя сейчас уже понятно, что зачастую то, что не идет на VirtualBox пойдет на VMware Workstation, Player, ESXi. Судя по инфе с сайта eve-ng virtual box не использует аппаратное ускорение, в отличии от Workstation.

Сеть

Доступ с host машины по SSH на guest в VirtualBox

Типы интерфейсов

В VirtualBox очень богатая настройка сетевых интерфейсов виртуальной машины. Самих сетевых интерфейсов можно на виртуалке поднять до четырех, а их настройки очень гибки (отключение, смена MAC, смена типа, проброс портов).

Есть четыре типа интерфейсов (полностью о настройках и типах сетевых подключений тут):

NAT Network Adress Translation – тип по умолчанию. VM находится за “NAT” интерфейса машины-хоста.

Сетевой мост (Bridged) – VM создает мост между своим сетевым интерфейсом и интерфейсом хост-машины. Таким образом VM попадает в один broadcast-домен с интерфейсом хоста и может получить независимый от хост-машины адрес. К примеру, для того чтобы зайти на VM с хостовой машины я использовал именно этот тип (бинд на Ethernet интерфейс), а не проброс порта т.к. он самый простой – VM получило независимый от хост-машины адрес, а я далее, для удобства, прописал его в static-dhcp. У виртуалки при режиме Bridge свой MAC-адрес на порту. По сути режим представляет из себя Secondary адрес на сетевой карте хост-машины для виртуалки.

В Bridged схемы возможна проблема со связностью (судя по всему broadcast/multicast) между двумя VM, использующими bridged схему на одной хостовой машине. Решается использованием внутренней сети между VM (Internal Network, vmnet).

Внутренняя сеть (Internal Network) – связь между хост-машиной и другими гостевыми.

Direct Path IO, SR-IOV (SR IOV)

Разное

Workstation/Fusion

Для Workstation при импорте иногда (в случае ошибки на размер файла) требуется отключение проверки на размер vmdk (test-vm.vmx), открываем VMX файл, добавляем строку. Такое было при использовании сетевого диска для сохранения VM. В целом, лучше не использовать просто и вероятнее всего с такими проблемами не столкнешься.

Vmware fusion

Аналог бесплатного VMware Workstation для MAC OS. Во многих случаях значительно производительнее VirtualBox т.к. поддерживает nested virtualization (например, нужно для GNS3/EVE-NG).

VMWARE vSphere & ESXI

Из опыта с vSphere/ESXI:

  • Изменение управляющего (management) IP возможно через SSH, помимо Console
  • При заливки крупных файлов в ESXi 6.7 через WEB в datastore полезно отключить idle timeout, иначе можно получить фейлы upload из-за idle

Standard vSwitch и VLAN (VID)


Hyper-V

Работа с VHD/VHDX.

Virtual Hard Drive (VHD) — формат файла, содержащий полную структуру и содержание, сходные с жёстким диском. Используется для хранения виртуальных операционных систем, программ и других файлов в одном файле-образе, который можно открыть разными программами виртуализации или виртуальными машинами. C июня 2005 Microsoft сделала спецификацию формата VHD доступной третьим фирмам в рамках Microsoft Open Specification Promise.

Уменьшение размера, работает только для VHDX и даже для него без Optimize-VHD (тоже только для VHDX)/GPARTED можно не обойтись

VMware

У меня есть новый гипервизор ESXi 7.0 U2 на сервере HP ProLiant DL360 Gen9. Внутри сервера есть USB контроллер. Задача — пробросить USB контроллер с хоста на виртуальную машину.

usb

Переводим гипервизор в режим обслуживания, Maintenance Mode.

В vCenter 7 кликаем на наш гипервизор. Configure > PCI Devices.

vmware

Пока нет устройств в списке Passthrough-enabled. Нажимаем CONFIGURE PASSTHROUGH.

vmware

Находим в списке нужное нам устройство и выделяем галкой. Я нахожу ASMedia ASM1142 USB 3.1 Host Controller. OK.

vmware

В списке Passthrough-enabled появляется PCI устройство. Может потребоваться перезагрузка хоста.

Прокинем PCI устройство на виртуальную машину. Выбираем виртуалку, нажимаем Edit Settings. И добавляем новое устройство PCI Device. ADD NEW DEVICE > PCI Device.

vmware

Если у нас только один контроллер, то в списке от подставляется автоматически. Оставляем по умолчанию DirectPath IO. Читаем предупреждение о том, что на виртуалке с прокинутым PCI устройством нельзя делать некоторые вещи. Насколько я помню, нельзя ставить виртуалку на паузу, мигрировать на другой хост, использовать снапшоты. По идее виртуальная машина должна ещё зарезервировать оперативную память, раньше это нужно было делать вручную. OK.

Читайте также: