Гипервизоры VirtualBox/WorkStation/Fusion/ESXI/Hyper-V/XEN

Файл с образом виртуальной машины:

    • name.ova (или name.ovf + name.vmdk) – для в ESXi и остальных сред виртуализации
    • name.vhd (или name.vhdx) – для развертывания в среде Microsoft Hyper-V
    • name.raw – для развертывания в среде KVM
    • name.qcow2 – для развертывания в среде KVM
VirtualBox

В контексте виртуализации снимок машины это огонь  – как просто и эффективно решить задачу по бекапу данных – регулярному или разовому.

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

VIRTUAL BOX DOESN'T SUPPORT HW ACCELERATION !!! AVOID USING IT !!!!

Сеть

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

Варианты:

  • сделать интерфейс bridged (описание ниже)
  • сделать интерфейс “Виртуальный адаптер хоста” (тоже ниже)
  • сделать проброс порта через NAT (может не работать с антивирусом)

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

В 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).

DGS-3620-28SC:admin#show fdb po 24
1    default   00-0F-FE-F1-D3-61 24    Dynamic Forward - 192.168.1.2     
1    default  08-00-27-31-A9-E7 24    Dynamic Forward - 192.168.1.100
Total Entries: 2

Виртуальный адаптер хоста (Host Only) – p2p связь между хост-машиной и гостевой, по сути это отдельная сетка между хостом и guest. Настроить интерфейс можно статикой (см. настройки в “Виртуальные сети хоста” или по DHCP.

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

Direct Path IO, SR-IOV (SR IOV)

  • DirectPath I/O менее гибкая технология – выделяется полностью сетевая карта, а не виртуальная сетевая карта (Virtual Function) как в случае с SR-IOV (которых может быть несколько).
SR-IOV offers performance benefits and tradeoffs similar to those of DirectPath I/O.

With DirectPath I/O you can map only one physical function to one virtual machine. SR-IOV lets you share a single physical device, allowing multiple virtual machines to connect directly to the physical function.

SR-IOV allow for a single physical device to be shared amongst multiple guests.

In the Number of virtual functions text box, type the number of virtual functions that you want to configure for the adapter.

A value of 0 means SR-IOV is not enabled for that physical function.

82599EB 10-Gigabit SFI/SFP+ Network Connection
82599EB 10-Gigabit SFI/SFP+ Network Connection
82599 Ethernet Controller Virtual Function
82599 Ethernet Controller Virtual Function
  • Обе технологии (DirectPath I/O и SR-IOV)
    • увеличивают производительность за счет исключения из схемы обработки vSwitch.
    • имеют ограничения – использование vMotion, snapshots
Some virtual machine operations are unavailable when PCI/PCIe passthrough devices are present.
You cannot suspend, migrate with vMotion, or take or restore snapshots of such virtual machines. 

Like DirectPath I/O, SR-IOV is not compatible with certain core virtualization features, such as vMotion.
    • требуют при использовании (пробросе NIC) полный доступ к ОП для VM – т.е. не получится выделить 8GB на платформе с 8GB RAM, как если бы эти технологии не использовались.
Reserve all memory
The VM will not power on until its memory reservation equals its memory size.

Разное

  • Для использования общей папки расшаренной с основной системы для гостевой в гостевой нужно обратится к общей папке. В Windows (можно просто зайти в раздел Сеть в “Мой компьютер”) и Linux используются разные команды для монтировки общей сетевой папки:
net use x: \\vboxsvr\1 - windows
mount -t vboxsf 1 mount_point - UNIX
  • VM машина Virtual Box с одного компа переносится легко на другой. Просто копируешь всю папку с VM, включая файл .vbox с параметрами машины и .vdi с образом и файлами машины. Далее заходишь в VirtualBox на новом ПК, выбираешь Машина -> Добавить и указываешь .vbox файл.
  • Между разными гипервизорами VM можно переносить используя расширение OVA/OVF
OVF (Open Virtualization Format) — открытый стандарт для хранения и распространения виртуальных машин. Стандарт описывает открытый, переносимый, расширяемый формат для распространения образов виртуальных машин. Стандарт OVF не привязан к какой-либо реализации гипервизора или аппаратной архитектуре.

Пакет OVF состоит из нескольких файлов, расположенных, как правило, в одном каталоге. Пакет всегда содержит ровно один файл описания с расширением .ovf. Это XML-файл, описывающий упакованную виртуальную машину и содержащий метаданные пакета, такие, как название, аппаратные требования, ссылки на другие файлы в пакете и описания. Кроме файла описания, пакет OVF обычно содержит один или несколько образов диска и может включать файлы сертификатов и другие файлы.

Весь каталог может быть распространен в виде пакета Open Virtual Appliance (OVA), который представляет собой файл архива TAR с внутренним каталогом OVF.

Поддерживается в:

VirtualBox от Oracle;
VMware ESX, VMware Workstation от VMWare.
  • VirtualBox по умолчанию выделяет одно ядро на виртуалку. Можно изменить (отключаешь виртуалку, перетягиваешь “ползунок”, включаешь).
  • Resize (увеличение/уменьшение) размера виртуального диска vdi в VirtualBox на Windows раньше возможен был только через консоль, теперь легко делается через GUI (менеджер -> инструменты) просто перетягиванием бегунка для нужного vdi. Если при попытке resize выдает VBOX_E_FILE_ERROR (0x80BB0004) – проверить что места достаточно, перезагрузить ПК.
  • Если выдает VERR_VD_IMAGE_READ_ONLY – сначала перезагрузить ПК, попробовать запустить VB от имени администратора, потом проверить отсутствие галки “только чтение” и только потом переустанавливать/шаманить с правами.

 

 

PROXMOX

  • Популярен
  • Основан на QEMU/KVM
  • `Имеет коммерческую поддержку
  • Поддерживается в том числе сетевыми “вендорами” – pfsense например

 

XCP-NG

  • Популярен
  • Основан на XEN
  • `Имеет коммерческую поддержку
  • Поддерживается в том числе сетевыми “вендорами” – pfsense например

 

 

VMWARE
  • VMware – де-факто стандарт по виртуализации. У меня еще в 2015 была виртуалка, которая крутилась на корпоративном гипервизоре VMware vSphere в Билайне (а у кого то даже гипервизор был халявный ;)). Юзал так же VMware Workstation для работы с GNS3. В vSphere можно поднимать IOS-XE (Cisco Nexus 1000V).
    У VMware в разы лучше эмуляция. То, что не идет на виртуалке VirtualBox - пойдет 100% на VMware.
  • (python, vmware) Методы взаимодействия с VMware используя python через API: Pyvmomi (official, supported now), pysphere (not official, deprecated from 2013). Сравнение явно в пользу pyvmomi.
Workstation/Fusion

Пример Export’а машины в Workstation Player через командную утилиту OVFTool.

C:\Program Files (x86)\VMware\VMware Player\OVFTool>ovftool "D:\New VMs\Virtual Machines\dev.vmx" "D:\dev.ovf"

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

\\network-path\test-vm\test-vm.vmx
diskLib.sparseMaxFileSizeCheck= "FALSE"
Vmware fusion

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

В Fusion/Workstation встроен impairment функционал для виртуалок.

В случае проблемы Could not open /dev/vmmon: Broken pipe” поможет разрешение на приложения VMware в политиках безопасности.

https://communities.vmware.com/thread/600496
VMWARE vSphere & ESXI

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

~ # vmware -vl
VMware ESXi 5.5.0 build-3248547
VMware ESXi 5.5.0 Update 3
  • 3 и более vCPU в VM на базе Windows (сталкивался на Windows 7 PRO и ESXi 6.7) могут в системе не включится, если они на гипервизоре созданы как отдельные сокеты (1 сокет = 1 vCPU). При этом если создать такое же количество (напр. 8) используя 2 сокета и 4 ядра на сокет – все будет работать корректно (продублировал в гипервизоры и windows).
  • Лицензия vSphere стоит очень дорого, особенно с текущим курсом доллара. Даже базовая (vSphere Standard) – порядка 1 тыс. долларов за 1 vCPU!
US$ 1,164.15
  • ESXi 5.5.0 и 6.7.0 устанавливаются с использованием unetbootin 6.6.1. С Rufus могут быть проблемы из-за файла menu.c
  • ESXi 6.7.0 требует сложный пароль при установке вручную (при авто-развертывании не обязательно)
  • В свежих версиях vSphere по умолчанию есть ограничение на copy-paste из виртуальной машины и в нее – решается тюнингом настроек VM в vSphere и обновлением VMWare Tools в VM.
    https://kb.vmware.com/s/article/57122
    Name: Value:
    isolation.tools.copy.disable FALSE
    isolation.tools.paste.disable FALSE
    isolation.tools.setGUIOptions.enable TRUE
  • – Отключение HyperThreading
    – Включение Intel® Turbo BoostTechnology 2.0
    – Настройка Scheduling Affinity – используем только ядра одного CPU
    – Настройка SR-IOV для создания 6 Virtual Function сетевых карт в сторону коммутатора HPE5900 JC772A
    The Palo Alto Networks Next Generation Firewall VM-700 was instantiated on the KVM hypervisor directly, using 16 CPU cores and 56 Gigabyte of RAM. Hyperthreading was disabled and Intel® Turbo BoostTechnology 2.0 was enabled in the compute node.The CPU cores from 1 to 16 on Non Uniform MemoryAccess (NUMA) node 0 were pinned for the VM-700.The remaining 6 cores on node 0 and all cores onnode 1 remained idle. Palo Alto Networks achieves itsmaximum scale with 16 dedicated cores. To fullyutilize HPE server configuration with a total of44 cores, multiple VM-700 would need to bedeployed. Since there was no virtualized loadbalancer available distributing the workload, testswere conducted with just one VM-700. Three SR-IOV virtual functions (VF) were created foreach physical port of the HPE 40GbE dual-port NIC;in total, 6 VFs were bound to Palo Alto Networks VM-700 as shown in Figure 3.
    The compute node and the traffic generator were connected through an HPE5900 Series JC772A switch.
  • Настройка Scheduling Affinity может значительно влиять на performance устройства – при динамическом распределении средствами ESXi производительность Fortitester была нестабильной с крайними значениями меньше на 10-20% от максимальной производительности. После “жесткого” binding ядер одного из процессоров (в двух-процессорном сервере) к VM производительность стала стабильной и всегда максимальной (для максимума в Line-Rate, возможно нестабильность ушла “за line-rate”).
The Scheduling Affinity option gives you detailed control over how virtual machine CPUs are distributed across the host's physical cores. 
The option supports hyperthreading if hyperthreading is enabled. 
ESXi generally manages processor scheduling well, even when hyperthreading is enabled. 
These settings are useful only for fine-tuning critical virtual machines. Using CPU affinity, you can assign a virtual machine to a specific processor.
  • Изменение управляющего (management) IP возможно через SSH, помимо Console
https://kb.vmware.com/s/article/2084629
esxcli network ip interface ipv4 get # смотрим название интерфейса
esxcli network ip interface ipv4 set -i vmk0 -I 172.16.1.101 -N 255.255.255.0 -t static # изменяем IP
  • При заливки крупных файлов в ESXi 6.7 через WEB в datastore полезно отключить idle timeout, иначе можно получить фейлы upload из-за idle
settings -> application timeout -> off
  • Устранение дублирования символов в vSphere client (web/app) возможно через файл конфигурации для VM (задержка отклика клавиатуры keyboard.typematicMinDelay = “2000000”).
  • ESXi если в management после установки нет ethernet интерфейсов – возможно ESXI не имеет драйверов на них, может помочь апгрейд (помогало в случае 5.5 -> 6.7).
  • ESXi 5.5 (на базе flash) и 6.7 удобный WEB, vSphere клиент не нужен, да и он deprecated (Legacy C# Client)
  • Nested виртуализация (т. е. в VM гипервизора VMware ESXi запускаем еще один гипервизор типа VMware Workstation) требует включения “Expose hardware assisted virtualization to the guest OS” в гипервизоре, иначе возникает ошибка “This host does not support intel VT-x

  • В ESXi можно поменять согласование линка на сетевой карте, но между двумя ESXi может не получится поднять 100 full:
      • линк будет падать при статичных настройках 100 full с двух стороны
      • линк не будет падать, но согласование с одной стороны будет 100 half при автосогласовании с одной стороны
        При этом статичная настройка корректно работает с коммутатором (видимо проблема связана с mdi).
  • В ESXi легко пробросить CD/DVD привод – создаем ISO, например с помощью “ISO Creator” (freeisocreator.com), далее в vSphere Client или WEB выбираем “connect to iso image on local disk”. Пути к файлам обязательны, иначе будет silent error.

  • Distributed Switch вместо обычного vSwitch может пригодится при организации связи между несколькими eSXI гипервизоров в рамках одного vSphere.
  • Работа с томами VMDK:
    • Используя vmdk + vmx легко развернуть ОС
    • *-flat.vmdk хорошо сжимаются 7zip и другими compression тулами (7zip LZMA2 “скоростной”):
      • 120GB -> 23GB
      • 100GB -> 20GB
    • Расширить том очень легко – добавляешь памяти на диск в ESXi, расширяешь в настройках Windows том.
    • Сжать том (shrink) можно было только в старых версиях ESXi/vSphere. Лучше это никогда не делать т.к. это опасно. Лучше создать небольшой том и перенести на него данные, далее дропнуть старый.
shrink vmdk
Gary D Williams This person is a Verified Professional
VMWARE EXPERT
Shrinking a VMDK is no longer supported and it never was a good idea. If you can, stand up another, smaller VMDK, move the data to it then delete the oversized one.
  • При импорте ova на ESXi 5.5 через vSphere Client 5.5 можно столкнуться с проблемой того, что vSphere Client 5.5 не поддерживает SHA256 hash в Manifest. Нужно конвертировать, используя ovftool ((или удалять файл с контрольной суммой – еще проще, подробнее ниже)). В теории можно так же WEB c VMware Client Integration Plug-in, но по факту сам плагин у меня не заработал в Chrome и использовал ovftool.
Fix OVA file importing error on VMware: "The OVF package is invalid and cannot be deployed"
The following manifest file entry (line) is invalid: SHA256(filename-ovf)=sha256-hash-string
C:\Program Files\VMware\VMware OVF Tool> .\ovftool.exe --shaAlgorithm=SHA1 D:\old-sha255.ova D:\new-sha1.ova

Opening OVA source: D:\old-sha255.ova
The manifest validates
Opening OVA target: D:\new-sha1.ova
Writing OVA package: D:\new-sha1.ova
Transfer Completed
Completed successfully
  • При импорте ova на ESXi 5.5 можно столкнуться с ошибкой отсутствия поддержки каких-либо интерфейсов (напр. Serial для Cisco FirePower). Решается простым удалением данного интерфейса (конечно, если по факту он действительно не критично в вашем деплое).
Failed to deploy OVF package: Incompatible device backing specified for device
https://kb.vmware.com/s/article/2128084
<Item>
<rasd:AutomaticAllocation>false</rasd:AutomaticAllocation>
<rasd:ElementName>Serial port 1</rasd:ElementName>
<rasd:InstanceID>18</rasd:InstanceID>
<rasd:ResourceSubType>vmware.serialport.device</rasd:ResourceSubType>
<rasd:ResourceType>21</rasd:ResourceType>
<vmw:Config ovf:required="false" vmw:key="yieldOnPoll" vmw:value="true"/>
</Item>
  • При импорте ova на ESXi 5.5 можно столкнуться с ошибкой отсутствия на текущей системе образа ОС, которая устанавливалась через CD-ROM. “Failed to deploy OVF package: File ds:///vmfs/volumes/36b401f-680d4bc0-1ff7-001517d3bf0c/_deviceImage-0.iso was not found”
    • лучше всего, если есть возможность, удалить из изначальной VM (которую пытаемся импортировать) CD-ROM  и сделать повторный экспорт
    • иначе требуется изменение OVF файла
      For this particular problem, locate the line 'vmware.cdrom.iso' and change this to 'vmware.cdrom.remotepassthrough'.
      https://communities.vmware.com/t5/Open-Virtualization-Format-Tool/Failed-to-deploy/m-p/1785416
  • При импорте ova можно столкнуться с ошибкой отсутствия поддержки нужного количества ядер в виде сокетов (напр. 32 или 64 сокета с одним ядром на каждое), в таком случае требуется поддержка
    • как со стороны гипервизора: virtualhw.version = “8”
    • так и со стороны ОС гостевой системы: Все 32-разрядные версии Windows 7 поддерживают до 32 ядер процессора, а 64‑разрядные версии — до 256 ядер
  • При импорте ova на ESXi 5.5 пришлось изменить ova:
    • Распаковываем ova с помощью 7-zip – извлекаем ovf, vmdk, mf файлы (поэтому best practice при импорте VM – сразу сохранять ее не в OVA, а в виде OVF + VMDK); извлекать нужно т.к. после сохранения измененных параметров ova через 7-zip он перестает распознаваться vSphere 5.5
    • Изменяем в ovf файле vmx-11 на vmx-10
      "The following manifest file entry (line) is invalid: SHA256(filename-ovf)=sha256-hash-string"
      
      "Unsupported hardware family vmx-11"
    • Удаляем файл *.mf с контрольными суммами, иначе
      • придется пересчитывать из sha256 в sha1 (напр. с помощью ovftool, описал выше)
      • придется пересчитывать после изменения vmx
  • Для экспорта VM в случае глюков gui интерфейсов (сталкивался на WEB 6.7)/необходимости автоматизации можно скачать vmdk прямо с datastore или использовать CLI OVFTool и Export-VApp.
OVFTool - Example of how to use OVFTool can be found here: https://www.michellelaverick.com/2018/04/using-ovftool/

Export-VApp - vSphere PowerCLI Cmdlets Reference https://www.vmware.com/support/developer/PowerCLI/PowerCLI51/html/Export-VApp.html
  • Установка ОС через образа ISO в виде виртуального CD на VM
    • connect to iso on local disk может быть серым из-за того, что VM отключена или это глюк клиента vSphere (помогает перезагрузка клиента)
    • после того, как заработало, попадаем в BIOS отправив ctrl+alt+del через консоль и нажав F2, выставляем загрузку с CD
  • Разворачивание VM с использованием vmdk + vmx – загружаем в datastore оба файла, ПКМ по VMX -> Register VM. Если VMX файла нет или в таком режиме разворачивается с ошибками и не хотим мучаться с конвертерами (vmkfstools)  – можно примонтировать диск при создании VM.
    https://serverfault.com/questions/579866/deploying-vm-from-vmdk-vmx-file
  • PCI passthrough
    • На моей практике PCI-E PassThroughput против vswitch (ESXI) или тем бодее virtio (KVM) увеличивает производительность в разы (vswitch) и десятки раз (virtio). Пример реальных дропов на vswitch при нагрузке (увеличение очереди и другие шаманства не помогли от них избавиться).
~ # esxcli network vm list
World ID Name Num Ports Networks
-------- ---------------------- --------- ------------------------------------------
40713 Test-VA 4 VM Network, VM Network, VM Network, attack

~ # esxcli network vm port list -w 40713
Port ID: 33554440
vSwitch: vSwitch0
Portgroup: VM Network
DVPort ID:
MAC Address: 00:00:00:00:00:00
IP Address: 0.0.0.0
Team Uplink: vmnic1
Uplink Port ID: 33554434
Active Filters:

Port ID: 33554441
vSwitch: vSwitch0
Portgroup: VM Network
DVPort ID:
MAC Address: 00:00:00:00:00:00
IP Address: 0.0.0.0
Team Uplink: vmnic1
Uplink Port ID: 33554434
Active Filters:

Port ID: 33554442
vSwitch: vSwitch0
Portgroup: VM Network
DVPort ID:
MAC Address: 00:0c:29:26:7c:1a
IP Address: 0.0.0.0
Team Uplink: vmnic1
Uplink Port ID: 33554434
Active Filters:

Port ID: 50331653
vSwitch: vSwitch1
Portgroup: UPLINK
DVPort ID:
MAC Address: 00:0c:29:26:7c:24
IP Address: 0.0.0.0
Team Uplink: vmnic3
Uplink Port ID: 50331650
Active Filters:

~ # esxcli network port stats get -p 50331653
Packet statistics for port 50331653
Packets received: 1846312006
Packets sent: 210
Bytes received: 2795316313108
Bytes sent: 12600
Broadcast packets received: 0
Broadcast packets sent: 210
Multicast packets received: 0
Multicast packets sent: 0
Unicast packets received: 1846312006
Unicast packets sent: 0
Receive packets dropped: 261199086
Transmit packets dropped: 0

Увеличение размера RX-очереди и другие шаманства не помогают существенно:
~ # esxcfg-nics -s 10000 -d full vmnic3
~ # ethtool -A vmnic3 autoneg off rx off tx off
~ # ethtool -s vmnic3 autoneg off speed 10000 duplex full
~ # ethtool -G vmnic3 rx 4096 tx 4096
    • ESXi может не прокидывать passthrough из-за некорректных настроек в BIOS в контексте виртуализации. Самое простое для начала – сбрасываем в default.
Task Update Passthru Config
Key haTask-ha-host-vim.host.PciPassthruSystem.updatePassthruConfig-882758993
Description Update PCI passthrough device configuration
State Failed - An error occurred during host configuration.
  • VM может не запускаться из-за кривых настроек (куча разных причин). Например:
    • Нужно memory reservations поправить в соответствии с размером памяти.
Failed - Invalid memory setting: memory reservation (sched.mem.min) should be equal to memsize(5192).
    • кривых настроек дисков – может помочь смена scsi на IDE
Failed - Unsupported or invalid disk type 2 for 'scsi0:0'. Ensure that the disk has been imported.

I solved the issue by changing the Virtual Device Node from SCSI controller 0 to IDE controller 0 at the hard disk settings of the virtual machine.
  • CTRL+ALT снять захват из Console (если забыть можно долго мучатся)
  • Сброс evaluation license (работает как на ESXi 5.5, так и на ESXi 6.7) делается по SSH (включаем по консоли на hypervisor) через подмену старого файла шаблоном. Сброс помогает и при истечении evaluation, главное чтобы SSH был открыт.
rm -r /etc/vmware/license.cfg
cp /etc/vmware/.#license.cfg /etc/vmware/license.cfg
/etc/init.d/vpxa restart
  • В vSphere очень просто сделать snapshot (backup) текущей системы, главное чтобы были права
  • Если install vmware tools не активно (серое) – отключаем CD/flopy
    Had the same issue. Like the answer posted before, I had to shutdown the machine and change both the floppy drive and cd drives to "Auto detect" and then power on the machine.
  • в vSphere можно посмотреть загрузку CPU/memory/сети за день/неделю/месяц/год/кастом
• количество пакетов среднее макс
• оперативная память среднее макс
• жесткий диск
• CPU среднее макс
• сеть среднее макс
  • периодически в vSphere появляются сообщения о миграции виртуальной машины (VM migration) из-за изменения потребления ресурсов (DRS – Distributed Resource Scheduler):
    13.12.2015 12:23:21 <Server_name> info Alarm 'Virtual machine total disk latency' changed from Gray to Green
    13.12.2015 12:23:21 <Server_name> info Alarm Alarm 'Virtual machine memory usage' changed from Gray to Green
    13.12.2015 12:23:21 <Server_name> info Alarm Alarm 'Virtual machine CPU usage' changed from Gray to Green
    13.12.2015 12:22:28 <Server_name> info Resource allocation changed Migrate virtual machine

 

vSwitch

  • Standard vSwitch и VLAN (VID)

    • Если на свиче указать TAG 4095 – в ESXi для standard vSwitch это рассматривается как special case фича Virtual Guest Tagging (VGT), она позволяет пробрасывать любые (напр. 754, 755, 854, 855, 1033, 4000) тегированные фреймы в VM не снимая VID метку при отдаче на VM (по сути trunk port с vSwitch в сторону VM).

    • Есть на свиче настроить конкретный TAG (от 1 до 4094) – он будет обрабатывать фреймы, полученные с этим фреймом с vSwitch uplink и отдавать нетегированными в VM (гостевые машины) и наоборот, получив от VM кадр будет отдавать его тегированным на uplink (по сути access port с vSwitch в сторону VM).

Virtual Guest Tagging (VGT) – With VGT, all VLAN tagging is done by the virtual machine. VLAN tags are preserved between the virtual machine networking stack and external switch when frames pass to and from virtual switches.
Host network adapters must be connected to trunk ports on the physical switch. For a standard switch, the VLAN ID of port groups with VGT must be set to 4095.
  • В vSwitch даже для организации базовой связности может пригодиться отключение Security параметров – Promiscuous, MAC address changes, Forged transmits.
ARP ответы от VM в nested VM (VMware ESXi -> VM Windows -> VMware Workstation -> Linux) по какой-то причине не фиксировались на проблемной VM, при том, что хост машина (VM Windows) была доступна с проблемной VM. Решилось модификацией security политик для трафика на vSwitch.
            Security
               Promiscuous mode Accept
               MAC address changes Accept
               Forged transmits Accept
  • CDP: На vswitch esxi можно настроить как прием, так и анонс CDP. Кроме того очень полезно, что в ESXi можно посмотреть какие MAC адреса VM выучил vSwitch (чтобы сопоставить например VM и VLAN TAG проброшенный TRUNK/VGT).
   csco#show cdp neighbors
   Capability Codes: R - Router, T - Trans Bridge, B - Source Route Bridge
                     S - Switch, H - Host, I - IGMP, r - Repeater, P - Phone,
                     D - Remote, C - CVTA, M - Two-port Mac Relay
   Device ID        Local Intrfce     Holdtme    Capability  Platform  Port ID
   localhost        Gig 1/0/30        178               S    VMware ES vmnic2
   localhost        Gig 1/0/29        178               S    VMware ES vmnic1
Hyper-V

Hyper-V устанавливается через дополнительные компоненты как простой компонент типа Telnet.  И работает хорошо на первый взгляд – легко развернулась VM Ubuntu 18.04. Легко заресайзил с его использованием VHD/VHDX диски. Огонь.

  • Отключение IPv6 для раздачи Hyper-V на VM (кейс – неизвестный адрес девайса по IPv4, а по консоли доступа по какой-то причине нет, напр. отключена) – просто в сетевых параметрах адаптера Hyper-V Virtual Adapter (vEthernet Default Switch) в панели управления отключаем IPv6, рестартуем адаптер (мне было достаточно) или возможно весь ПК.
    You can edit each network adapter and uncheck the IP6 binding; in your case edit the Hyper-V Virtual adapter. You may need to reboot for it to take effect. You should no longer have an IP6 address assigned to the adapter.
  • “Under the hood” Azure используется модифицированный под облачный сценарий Hyper-V.
https://www.quora.com/What-technology-is-Azure-running-on-Is-it-on-Hyper-V-or-some-other-kind-of-virtualization-technology     
Azure runs on a customized version of Hyper-V.

С самого Azure:
   root@user~# virt-what
   hyperv

   root@user:~# lscpu | grep Hypervisor
   Hypervisor vendor:   Microsoft

   root@user:~# cpuid -l 0x40000000
   CPU 0:
   hypervisor_id = "Microsoft Hv"

Работа с VHD/VHDX.

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

Получение информации

Get-VHD -Path D:\livecd.ubuntu-cpc.azure-resized.vhd

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

Resize-VHD -Path D:\livecd.ubuntu-cpc.azure.vhdx -ToMinimumSize
Optimize-VHD -Path D:\livecd.ubuntu-cpc.azure.vhd -Mode Quick

# конвертируем в VHDX
Resize-VHD : Не удалось изменить размер виртуального диска.
Системе не удалось изменить размер "D:\livecd.ubuntu-cpc.azure.vhd".
Невозможно выполнить запрошенную операцию, так как изменение размера на значение, не превышающее текущее, поддерживается только для виртуальных жестких дисков формата VHDX.

# используем потенциально Optimize-VHD/GPART
Resize-VHD : Не удалось изменить размер виртуального диска.
Не удалось изменить размер виртуального диска.
Системе не удалось изменить размер "D:\livecd.ubuntu-cpc.azure.vhdx": Не удалось выполнить запрошенную операцию, так как
невозможно безопасно уменьшить размер виртуального диска. (0xC03A0027).

Увеличение размера (образ был 3GB)

Resize-VHD -Path D:\livecd.ubuntu-cpc.azure-resized.vhd -SizeBytes 4GB

Конвертация (удобнее в Hyper-V) из VHD в VHDX

Convert-VHD -Path D:\livecd.ubuntu-cpc.azure-resized.vhd -VHDType Fixed -DestinationPath D:\livecd.ubuntu-cpc.azure-resized.vhdx -DeleteSource

Leave a Reply