Nested Virtualization i Windows 10
Nested Virtualization låter dig springa en hypervisor inuti en virtuell maskin. Windows 10 Bygg 10565 introducerad Nested Virtualization. Oavsett om du behöver det eller inte, här är några uppgifter som kan intressera dig.
Container inuti Container: Om Nested Virtualization i Windows
Tidigare kunde du skapa parallella behållare - så många som ditt huvudminne skulle tillåta och använda dem för olika ändamål. Microsoft har nu släppt funktionen av kapslad virtualisering med sin senaste Insider Build-numrerade 10565. Funktionen för kapslad virtualisering i Windows gör att du kan skapa behållare inuti behållare. Även om funktionen ännu inte är perfekt, är här vad du behöver veta.
Virtualisering med Hyper V
Windows stöder Droka - som låter dig skapa enkla behållare som du kan använda parallellt eller för att skapa Hyber V-behållare som anses vara bättre än enkla behållare. Även om du kan skapa Windows Containers parallellt, hamnar de ofta med samma bibliotek och resurser. I det här fallet kan en eller flera "dåliga" behållare sluta skapa en sylt genom att hålla upp resurser och inte släppa dem för andra behållare att använda. Det är den enda nackdelen som ledde till införandet av Hyper V-behållare.
Hyper V-behållare skapar allt separat för varje virtuell atmosfär. Det innebär att även operativsystemet återskapas och tillhandahålls till de program som körs i det virtuella facket. Det betyder att det inte finns vanliga virtuella resurser och därmed inga konflikter.
Nested virtualiseringar i Windows är möjliga med hjälp av Hyper V. Du kan försöka andra saker men Microsoft säger att den nestade virtualiseringen för närvarande bara fungerar med Hyper V-behållare. Så du måste vara försiktig med att skapa en behållare och skapa sedan en annan i den första behållaren. Om du försöker använda någon annan hypervisor eller försöker skapa en annan Hyper V-behållare parallellt med det du redan har skapat kanske det inte fungerar. Det hyser en fråga i mina tankar men - är parallella behållare inte möjliga i Windows då? Jag kommer också att prata om det i nästa avsnitt.
Nested Virtualization - Vad är det och hur man implementerar?
Som sagt tidigare kan du skapa en Hyper V-behållare. Denna behållare kommer att se till att andra hypervisorer inte får se den. Det vill säga att endast behållaren kommer att visas som CPU och den faktiska CPUen kanske inte är synlig för andra hypervisorer så att du inte ens kan skapa en annan behållare parallellt. Tvivel i det här fallet är om du kan skapa två eller flera Hyper V-behållare parallellt eller du får skapa behållare bara i den första behållaren som du skapade.
Microsofts blogg säger att när du skapar en Hyper V-behållare tillåter det inte att andra hypervisorer installerar fler Hyper V-behållare eftersom de inte kommer att kunna se den verkliga CPU-enheten. Du kan inte skapa fler behållare utanför behållaren du redan skapat? Då, när du kör andra virtualiserare, kommer de att tro att behållaren är den faktiska processorn och skapa en virtuell behållare inuti den behållaren.
Det är inbyggd virtualisering - där du har behållare inuti behållare - det också, var och en helt oberoende av en annan: inga delade bibliotek eller drivrutiner. Låter bra förutom att man tvivlar på parallella behållare. Här är bilden jag lånade från Microsoft för att visa att det är en inbyggd virtualisering
Kommer att implementera den kapslade virtualiseringen finns det en mängd olika faktorer som ska kontrolleras. Några exempel är:
- Mängden RAM (kom ihåg att RAM är en begränsande faktor, du kan bara skapa så många behållare som din RAM kan hålla)
- Stöds din processor? (MS säger att endast Intel VT-X stöds för tillfället)
- Dynamiskt minne måste vara avstängt
- Håll fliken på runtime minne och mer
Det finns många problem på den här tiden, som Microsoft kan ta hand om i senare faser. Men för att prova den inbäddade virtualiseringen har den utvecklat ett PowerShell-skript som du kan använda från GitHub.
För att få reda på hur man skapar inbyggda virtualiseringsbehållare i Windows 10 med mera, hänvisa till det här MSDN-blogginlägget.