
La Вложената виртуализация се превърна в една от онези „скрити“ функции След като го откриете, то отваря пред вас свят от възможности за създаване на лаборатории, тестване на версии, симулиране на производствени среди или дори провеждане на обучение, без да харчите цяло състояние за хардуер. Вместо да имате куп физически сървъри, можете да стартирате цели хипервизори във виртуални машини и от своя страна да създавате още виртуални машини в тях. Да, звучи много мета, но е невероятно полезно.
В най-новите поколения хипервизори VMware и Microsoft Hyper-V, както и други продукти за виртуализация, Вложената виртуализация вече не е рядък експериментТова не е функция, а по-скоро налична опция (въпреки че често не се поддържа официално в продукцията). Нека видим какво точно представлява, какви са изискванията му, как е конфигуриран, особено във VMware и Hyper-V, какви са последиците за производителността и мрежата му и най-вече какви реални случаи на употреба има в ежедневната работа на администратори, разработчици и екипи за обучение.
Какво точно е вложена виртуализация?
Когато говорим за вложена виртуализация, имаме предвид стартиране на хипервизор във виртуална машина, която вече работи на друг хипервизорПървият хипервизор, инсталиран на физическия сървър, обикновено се нарича хост хипервизор. Този, който работи във виртуалната машина, от друга страна, е известен като гост хипервизор или виртуален хипервизор.
На този етап Виртуалната машина, на която е хостван гост-хипервизорът, действа като „външен гост“ (в терминологията на VMware) и виртуалните машини, които се зареждат в този гост-хипервизор, се считат за „вътрешни гости“ или вложени виртуални машини. От гледна точка на гост-хипервизора, виртуалният хардуер, представен от виртуалната машина, се държи така, сякаш е реален физически хардуер, със собствен процесор, памет, място за съхранение и мрежа.
Възможно е достигат повече от две нива на влаганеСтига физическият хардуер да може да го обработи. Всяко допълнително ниво обаче въвежда повече режийни разходи. Така че на практика е обичайно да се използва едно или най-много две нива на влагане, за да се избегне разочароващо преживяване.
За да работи всичко това ефективно, то разчита на хардуерно подпомагана виртуализация (Intel VT-x, Extended Page Tables / EPT, AMD-V и др.). Това са разширения на процесора, специално проектирани да осигуряват вградена поддръжка за хипервизори. Тези функции позволяват на хипервизора да управлява превключването на контекста между виртуални машини и управлението на паметта много по-бързо, отколкото с по-стари техники като двоичен превод или чиста паравиртуализация.
Видове хипервизори и основни изисквания
Вложената виртуализация може да работи и с двете хипервизори тип 1 (гол метал, инсталиран директно върху хардуера) както при хипервизори тип 2 (инсталиран върху конвенционална операционна система). В екосистемата на VMware, ESXi е хипервизор от тип 1. VMware Workstation, VMware Player и VMware Fusion се считат за тип 2.
За да се активира вложена виртуализация, хост хипервизорът трябва да може да „повторно излагане“ на разширения за виртуализация на хардуера (виртуализирана HV) към виртуалната машина, която ще хоства гост-хипервизора. Това означава, че в конфигурацията на виртуалната машина трябва да има опция, която позволява излагане на VT-x / AMD-V.
- В случая с VMwareХардуерно подпомаганата виртуализация и виртуализираната HV се поддържат в хипервизори тип 2 от VMware Workstation 8, VMware Player 4 и VMware Fusion 4 насам.
- В Hyper-VИсторията е подобна. Процесорите трябва да имат VT-x и EPT (или еквиваленти на AMD), а Hyper-V е отговорен за предоставянето на тези възможности на виртуални машини, така че Hyper-V или друг съвместим енджин да може да бъде активиран отново в тях.
Съвместимост и поддръжка във VMware
Макар и на техническо ниво Вложената виртуализация работи в основните продуктови линии на VMware (ESXi, Workstation, Player, Fusion), производителят е съвсем ясен по отношение на поддръжката. Това не се счита за официално поддържан производствен сценарий. С други думи, ако настроите производствена среда, базирана на вложени виртуални машини, и срещнете проблеми, VMware може да откаже да предостави поддръжка.
Има едно много специфично изключение: Използване на vSAN Witness Appliance на VMware vSphereТова устройство е базирано на вложен ESXi и е одобрено и поддържано от VMware, тъй като е част от самата vSAN архитектура за определени внедрявания.
От друга страна, VMware го поддържа. Активиране на Hyper-V във виртуални машини на Windows за сигурност, базирана на виртуализация (VBS, Virtualization-Based Security), започвайки с vSphere 6.7. VBS е функция на Windows 10 и Windows Server 2016 нататък, която използва виртуализацията, за да създава изолирани среди за хостване на чувствителни функции за сигурност.
Лицензиране на вложени среди във VMware
Важно е да не попадате в капана на мисълта, че само защото сте на виртуални машини, всичко е „безплатно“.Ако разположите ESXi и други vSphere компоненти (като vCenter) на виртуални машини във вложена среда, трябва да лицензирате тези компоненти, сякаш са инсталирани на физически сървъри, независимо дали хост хипервизорът е VMware или друг доставчик.
Това, което можете да направите, ако тествате или създавате лаборатория, е възползвайте се от безплатни издания или пробни версии на ESXi, vCenter и други vSphere продукти, като винаги спазвате техните условия за ползване. На ниво конфигурация на процесора, за да избегнете главоболия с лицензирането на ниво сокет или ядро, е разумно да зададете множество ядра на виртуален процесор вместо много едноядрени процесори, използвайки параметъра cpuid.coresPerSocket на виртуалната машина.
Реални случаи на употреба на вложена виртуализация
Голямото предимство на вложената виртуализация е, че тя ви позволява да да настроите множество виртуални хипервизори със собствени виртуални машини в рамките на един физически хостНамаляване на разходите за хардуер и постигане на огромна гъвкавост. Тази възможност се използва в множество практически, ежедневни сценарии.
В областта на обучението, това е фантастичен ресурс за създават лаборатории. Ви Инсталирайте ESXi във виртуални машини, за да обучите vSphere без да е необходим стелаж от физически сървъри. С достатъчно мощна машина е възможно да се създаде виртуален мини-център за данни с няколко виртуални ESXi хоста, виртуално споделено хранилище и вложен vCenter сървър за внедряване на висока достъпност (HA), DRS, Storage DRS, vMotion и др.
Освен че позволява на студенти или техници да разглеждат без страх, Вложената виртуализация значително улеснява възстановяването на грешки в лабораториитеАко някой наруши конфигурацията на виртуален ESXi хост или вътрешни виртуални машини, простото възстановяване на ESXi виртуалната машина от архив на ниво хипервизор е достатъчно. Специализираните инструменти за архивиране на vSphere ви позволяват да защитите както външни виртуални машини на хостове, така и вътрешни вложени виртуални машини.
В разработката на софтуер, екипи, които изграждат инструменти за vSphere или скриптове спрямо неговите API, могат Тествайте приложенията си директно на виртуални ESXi сървъри с вложени виртуални машини, без да се докосва производствената инфраструктура.
Един последен много интересен случай е този на доставчици на управлявани услуги и публични облациНякои използват вложена виртуализация, за да хостват различни клиентски хипервизори в своята инфраструктура, предлагайки един вид „облак в облака“, за да улеснят миграциите или да поддържат съвместимост със съществуващите инструменти.
Производителност на вложени виртуални машини
Що се отнася до производителността, важно е да се разбере, че Вложена виртуална машина винаги ще се представя по-зле от „нормална“ виртуална машина.Причината е, че на физически хост всяка виртуална машина е свързана с един или повече процеси, които консумират RAM и CPU. Когато в рамките на тази виртуална машина има ESXi или Hyper-V, който от своя страна стартира още виртуални машини, ние добавяме още един слой от процеси и управление на контекста върху физическите ресурси.
Колкото повече виртуални машини и колкото повече нива на влагане, Повече време се отделя за превключване на контекста на процесора и планиране на ресурсиТова води до по-висока латентност и по-ниска ефективна производителност. Степента на влошаване ще зависи силно от мощността на хардуера, вида на натоварването (процесор, диск, мрежа) и колко оптимизирана е средата, но не е необичайно да се видят значителни разлики в сравнение с виртуална машина със същия размер, работеща директно на физическия хост.
Следователно, общата препоръка е Резервирайте вложена виртуализация за лаборатории, обучения, тестове и среди, където производителността не е критична.Всъщност VMware не го поддържа за производство, освен в конкретния случай на vSAN Witness Appliance, докато Microsoft го поддържа в някои производствени сценарии за Hyper-V (винаги с препоръката за щателно тестване на поведението на приложенията).
VMware Tools и управление на вложени ESXi
Когато инсталирате ESXi във виртуална машина, Също така ви трябват VMware Tools на този „виртуален“ ESXi.VMware Tools е пакет от драйвери и помощни програми, който подобрява производителността и интеграцията на виртуалната машина с хипервизора (синхронизация на времето, организирано изключване, мрежова информация и др.).
В по-стари версии (ESXi 5.x) VMware Tools, специфични за вложените ESXi, бяха разпространявани като VIB пакет. За ръчна инсталация. От VMware vSphere 6.0 нататък, инструментите вече са интегрирани в ESXi, така че не е необходимо да се инсталират отделно, когато системата работи като виртуална машина.
Благодарение на VMware Tools, хост хипервизорът може показва подробна информация за вложените ESXi (IP адрес, име на хост, състояние), изпълнявайте команди за изключване или рестартиране от vSphere Client или чрез API и изпълнявайте скриптове, когато състоянието на захранване на виртуалния хост се промени. Можете да проверите състоянието на услугата Tools на вложен ESXi хост със следната команда:
/etc/init.d/vmtoolsd status
Мрежова конфигурация във вложени ESXi среди
Мрежата е една от областите, където вложената виртуализация може Ще ви донесе още главоболия, ако не знаете как работят мрежите от слой 2 и виртуалните комутатори.Типичният проблем: вложените виртуални машини стартират, но нямат свързаност извън виртуалния ESXi хост.
На физически ESXi хост, стандартният или разпределен виртуален комутатор Не научава MAC адресите, като гледа трафика, както прави физическият комутатор.Вместо това, той разчита на информация от виртуалните машини, управлявани от хипервизора. Следователно, ако една от виртуалните машини съдържа ESXi хост с няколко вложени виртуални машини, всяка със собствен MAC адрес, vSwitch-ът на физическия ESXi хост не ги разпознава като свои собствени интерфейси. Ако определени политики за сигурност не са конфигурирани правилно, в крайна сметка пакетите се изпускат.
За да могат вложените виртуални машини да комуникират с външния свят, обикновено е необходимо Активирайте безразборен режим, промени в MAC адреса и фалшифицирани предавания на физическия vSwitchпоне на порта или групата портове, където е свързана вложената ESXi виртуална машина. По подразбиране тези опции обикновено са зададени на „Отхвърляне“ от съображения за сигурност.
El безразборен режим Това позволява на интерфейс, свързан към тази група портове, да получава целия трафик, преминаващ през виртуалния комутатор, независимо от MAC адреса на местоназначението. Това е от съществено значение за виртуалния ESXi хост да „вижда“ трафика, насочен към MAC адресите на вложените виртуални машини зад него. Компромисът е, че тъй като vSwitch действа почти като хъб, Производителността на мрежата може да бъде засегната в среда с висок трафик.
Параметърът на Промяна на MAC адреса Предпазва от атаки с подправяне (spoofing). Обикновено ефективният MAC адрес на виртуалната машина трябва да съвпада с този, конфигуриран в конфигурационния файл на виртуалната машина. Деактивирането на това по подразбиране подобрява защитата срещу ARP poisoning. За да може обаче виртуална машина ESXi да „представя“ различни MAC адреси за своите вътрешни виртуални машини, тази политика трябва да бъде смекчена в съответната група портове.
Как да разположите вложен ESXi и вътрешна виртуална машина
Типичен пример за употреба е внедрете скорошен ESXi като виртуална машина на малко по-стар физически ESXi хост. И в рамките на този виртуален ESXi хост създайте една или повече тестови виртуални машини, например работещи с Windows. Общият работен процес би изглеждал по следния начин:
- Качете ISO файла на инсталатора на ESXi към хранилището за данни на физическия хост, използвайки vSphere Client.
- Създайте нова виртуална машина на физическия ESXi хост. Чрез избор на семейството операционни системи „Други“ и версията „VMware ESXi XX или по-нова“ и разпределяне на съответните ресурси.
- Изберете опцията за предоставяне на хардуерно-асистирана виртуализация на гост операционната системаТова се прави в секцията CPU. Ако остане деактивирано, по време на инсталирането на ESXi ще се появи предупреждение, което показва, че хардуерната виртуализация не е функция на CPU или не е активирана в BIOS. 64-битовите виртуални машини няма да могат да се стартират в този вложен ESXi хост.
- След като завършите съветника, стартирайте ESXi VM и инсталирайте хипервизора, точно както бихте го направили на физически сървър.Конфигуриране на IP адреса за управление, името на хоста и други начални параметри.
- Прегледайте мрежовата конфигурация на физическия ESXi хостРедактиране на vSwitch, към който е свързана вложената ESXi VM, и активиране на promiscuous mode, MAC switching и spoofed transmissions в политиката за сигурност.
- Предоставете ISO образ на гостевата операционна система, която ще бъде инсталирана на вложената виртуална машина (Windows, Linux и др.).
Накрая, във виртуалния хост клиент на ESXi се създава нова виртуална машина, избира се подходящото семейство и версия на операционните системи, дисковете ѝ се поставят във вложеното хранилище за данни и CD/DVD устройството е конфигурирано да се стартира от ISO образа. които сме събрали.
Клониране на вложени ESXi хостове
След като имате правилно конфигуриран вложен ESXi хост, с неговата мрежа и хранилище за данни, Често е изкушаващо да го клонирате, за да разположите бързо множество виртуални хостове.Това ви позволява да настройвате цели vSphere клъстери, просто като дублирате виртуални машини, вместо да повтаряте инсталациите от нулата.
Преди клониране трябва да се вземат определени предпазни мерки, за да се Клоновете не споделят критични идентификаториНапример, препоръчително е да се активира VMkernel да следва хардуерния MAC адрес като идентификатор, използвайки ESXCLI с команда като тази:
esxcli system settings advanced set -o /Net/FollowHardwareMac -i 1
Освен това е препоръчително да редактирате файла /etc/vmware/esx.conf от произхода на ESXi и премахнете реда, който съдържа системния UUID (обикновено под ключа /system/uuidПо този начин, когато всеки клонинг стартира за първи път, той генерира уникален идентификатор. След изключване на оригиналния ESXi хост, клонингите могат да бъдат създадени. А когато се стартират, коригирайте IP адресите за управление, имената на хостовете и всички други мрежови параметри за всеки един, за да избегнете конфликти.
Вложена виртуализация в Hyper-V и поддържани сценарии
В света на Microsoft, вложената виртуализация се отнася предимно до стартиране на Hyper-V във виртуална машина Hyper-VЦелта е много подобна на тази на VMware. Идеята е да се създадат лабораторни и тестови среди, където да може да се настрои цялостен хипервизор и неговите виртуални машини, без да се изисква допълнителен хардуер.
Съвременните процесори включват това от години. VT-xy EPT (на Intel) или AMD-V и техните вложени еквиваленти за пейджинг. Ето защо много модели преди Xeon v3 технически отговарят на изискванията за процесор. Всъщност има официална документация на Microsoft, в която се посочва, че наличието на VT-x и EPT е достатъчно за използване на вложена виртуализация в Hyper-V.
Що се отнася до случаите на употреба, Microsoft подробно описва няколко сценарии, в които се поддържа вложена виртуализация на Hyper-V. Както в Azure, така и в локални инсталации. Стига услугите и приложенията, работещи върху него, също да го поддържат.
Също така се поддържа Изпълнявайте изолирани Hyper-V контейнери във виртуални машини Hyper-VВ този режим всеки контейнер работи в микро-виртуална машина, което въвежда допълнителен (вложен) хипервизорен слой и следователно натоварване при стартиране на контейнера, съхранение, мрежа и използване на процесора. Въпреки това, Microsoft счита това за поддържан сценарий за вложен виртуализационен слой. Това отваря вратата към силно изолирани контейнерни архитектури, работещи на виртуални машини.
Друг интересен случай е този на Подсистема на Windows за Linux (WSL2) Работи във виртуална машина Hyper-V, която от своя страна работи на друга виртуална машина Hyper-V. WSL2 използва вградена технология за виртуализация, така че когато се активира във виртуална машина, използва вложена виртуализация. Този сценарий също се поддържа. Предназначен е предимно за разработчици, работещи с Linux в сложни виртуализирани среди.
Вложена виртуализация и динамична памет в Hyper-V
Едно нещо, което трябва да се има предвид при Hyper-V е, че когато Hyper-V работи във виртуална машинаТази виртуална машина трябва да бъде изключена, за да се коригира разпределената ѝ памет. Дори ако динамичната памет е активирана на виртуалната машина, докато ролята Hyper-V е активна в нея, количеството ефективна RAM памет не се променя.
Ако опиташ промяна на паметта на виртуална машина без активирана динамична памет Докато Hyper-V работи вътре, корекцията също няма ефект. Това ограничение важи само докато работи гост-хипервизорът. Това е нещо, което трябва да се има предвид, когато планирате вложени лаборатории, чийто размер често ще се променя.
Във всеки случай, самото активиране на вложената виртуализация Това не променя магически поведението на динамичната памет или горещото преоразмеряване.Ето защо е препоръчително виртуалните машини, които ще хостват вложени Hyper-V, да се оразмерят с известен марж. Това избягва необходимостта от постоянното им изключване само за да се коригират ресурсите.
С всичко гореизброено, вложената виртуализация се утвърждава като ключов инструмент за обучение, тестване, мигриране и внедряване на съвременни технологии за виртуализация. Тя позволява възпроизвеждането на сложни среди на малък брой физически сървъри и предлага гъвкавост, която, когато се използва ефективно, компенсира повече от всички режийни разходи и ограничения в поддръжката, които може да доведе до нея.



