Desktop hypervisors är en populär teknik bland teknikintresserade. Vi har alla möjliga anledningar att använda dem. En del av oss behöver testa programvara som andra har skrivit för att se om den är bra. En del av oss behöver testa programvara som vi själva har skrivit för att se om den är bra. Ibland behöver vi begränsa verksamheten till en tillfällig miljö. Andra gånger vill vi bara hålla vår primära miljö utanför ett invasivt installationsprograms klor. Det är enkelt att hitta skäl att använda en hypervisor för skrivbordsmiljöer. Det kan vara svårare att bestämma vilken desktop hypervisor man ska använda. I den här artikeln kommer vi att jämföra Microsofts Client Hyper-V med Oracles VirtualBox.
Ladda ner Altaro VM Backup
Starta din gratis 30-dagars testversion av Altaro VM Backup idag och se varför 40 000+ organisationer världen över litar på den. Kom igång nu och kör din första säkerhetskopiering på mindre än 15 minuter!
Som regel talar jag inte om för folk vilken produkt de ska använda. Jag anser att man ska välja det som bäst passar ens behov. Om det inte finns något som passar perfekt, blanda och matcha tills du kommer så nära som möjligt. Jag tycker inte om när folk väljer sin produkt först och sedan kastar ut bekväma motiveringar för det valet. Två vanliga exempel är: ”Ingen har någonsin fått sparken för att ha köpt IBM” och ”Den här produkten är den mest populära”. Mitt syfte här är inte att diktera vilken produkt som är överlägsen, utan att vägleda dig till ett välgrundat beslut. Det beslutet kan vara att använda båda hypervisors.
- Client Hyper-V och VirtualBox: En teknisk översikt
- De är inte av samma typ
- Hypervisor Startup Process: Oracle VirtualBox
- Hypervisor Startprocess: Client Hyper-V
- Vikten av typskillnader
- Hyper-V vs. VirtualBox. VirtualBox: Hardware Access
- Hyper-V vs. VirtualBox: Presentation av maskinvara
- Hyper-V vs. VirtualBox: Resursprioritet
- Hyper-V vs. VirtualBox: Videoacceleration
- Hyper-V Vs. VirtualBox: Kompatibilitet med virtuella hårddiskar
- Hyper-V vs VirtualBox: Andra videofunktioner
- Hyper-V vs. VirtualBox: Tillgång till källkod
- Hyper-V vs VirtualBox: Användningslicens
- Köp av Client Hyper-V och VirtualBox
Client Hyper-V och VirtualBox: En teknisk översikt
Vi är alla teknikmänniskor här, så låt oss börja med att titta på dessa två hypervisorer ur teknisk synvinkel.
De är inte av samma typ
Den mest uppenbara skillnaden mellan de två produkterna är att Client Hyper-V är en hypervisor av typ 1 och VirtualBox är en hypervisor av typ 2. Varje gång jag säger ”Hyper-V är en hypervisor av typ 1” och sedan försöker förklara vad en hypervisor av typ 1 är, får jag alltid minst ett par kommentarer som säger att min beskrivning är helt fel och att ”Hyper-V är…”, och sedan fortsätter kommentatorn att beskriva Hyper-V som en hypervisor av typ 2. Antingen är mina förklaringar inte särskilt bra eller så tror folk helt enkelt inte på att Hyper-V är en hypervisor av typ 1. Jag hoppas att den största delen av det är att gränsen mellan typ 1 och typ 2 inte alls är så fast som vissa vill få en att tro, och att dessa kommentatorer därför bara ser annorlunda på saker och ting.
Hursomhelst ska jag försöka mig på en ny metod för att förklara typ 1 vs. typ 2, men begränsa den till det här sammanhanget.
Hypervisor Startup Process: Oracle VirtualBox
Jag ska börja med att förklara hur VirtualBox startas. Det är en hypervisor av typ 2 och den enklaste att förstå.
- Den fysiska datorn startas
- Den fysiska datorns startsystem (BIOS eller UEFI) överlämnar kontrollen till operativsystemet som är installerat på hårdvaran. För VirtualBox kan det vara Windows, Linux, OSX eller Solaris
- Användaren (dvs. du) startar VirtualBox-programmet.
- Användaren (dvs. du) väljer vilken eller vilka virtuella maskiner som ska startas. VirtualBox startar värdprocesser
Enkel, eller hur?
Hypervisor Startprocess: Client Hyper-V
Som hypervisor av typ 1 skiljer sig Client Hyper-V:s startrutin från VirtualBox på en grundläggande nivå.
- Den fysiska datorn startas
- Den fysiska datorns startsystem (BIOS eller UEFI) lämnar över kontrollen till Hyper-V
- Hyper-V startar operativsystemet för hantering. Hanteringsoperativsystemet kan bara vara Windows, Windows Server eller Hyper-V Server
- Som svar på automatiska inställningar eller manuella användarinstruktioner (det är du) skapar Hyper-V partitioner för virtuella maskiner
Det finns variationer i hur olika hypervisorer av typ 1 och typ 2 uppnår sina mål, så jag kan inte bara göra några generella uttalanden och sedan gå vidare. Vi ska ta en titt på några av de generiska skillnaderna.
Vikten av typskillnader
Du kan hitta en hel del skrivet material om skillnaderna mellan typ 1 och typ 2 hypervisorer. Mot bakgrund av kapaciteten hos modern hårdvara, virtualiseringsprogramvara och operativsystem är det mesta av detta material av tveksamt värde. Jag kommer att hoppa över de tveksamma delarna och bara behandla det som vi kan verifiera.
För den här diskussionen är den viktigaste skillnaden mellan typ 1 och 2 att en hypervisor av typ 1 alltid är på. Det enda sättet att ”stoppa” Client Hyper-V är att stänga av datorn eller ta bort rollen. Visst kan du stoppa tjänsten ”Hyper-V Virtual Machine Management”, men det är inte Hyper-V. Det är en hanteringstjänst. Jag gissar att det är därför de gav den just det namnet. Om du stoppar den kan du inte hantera någon av de virtuella maskinerna, men det påverkar inte de virtuella maskinerna eller hypervisorn. Du kan inte se Hyper-V genom att snoka i hanteringsoperativsystemet.
Å andra sidan kan VirtualBox öppnas och stängas när som helst. Du kan hitta VirtualBox-programmet, dess tjänst och dess virtuella maskiner i hanteringsoperativsystemets aktivitetshanterare. Om du stänger huvudgränssnittet fortsätter alla aktiva virtuella maskiner att köras eftersom VirtualBox lämnar kvar sin hypervisor-kärna i minnet. Om du stoppar den sista virtuella VirtualBox-maskinen finns det inte längre någon VirtualBox. Du måste starta den igen för att få igång alla virtuella maskiner.
Typskillnaderna mellan Client Hyper-V och VirtualBox har flera konsekvenser:
- Client Hyper-V:s administrationsoperativsystem använder vCPU som de virtuella maskinerna
- Du måste använda Hyper-V-prestandaräknare för att se något om Client Hyper-V:s resursanvändning, och det berättar inte hela historien
- Hårdvarutilldelning fungerar annorlunda
- Resursprioritering fungerar annorlunda
Hyper-V vs. VirtualBox. VirtualBox: Hardware Access
När jag läser klagomålen om Client Hyper-V, kommer hårdvarufrågorna högst upp i högen. Oundvikligen görs jämförelser med VirtualBox, VMware Workstation/Player och andra hypervisorer av typ 2. De klagande underlåter sällan att nämna att enhetsproblem är nästan obefintliga i dessa produkter. Problemet har sin grund i hypervisortypen.
När VirtualBox (eller någon annan hypervisor av typ 2) skapar en virtuell maskin, körs dess behållare i det förvaltningsoperativsystem där programmen finns. Precis som andra program har de inte direkt tillgång till maskinvara, utan måste begära enhetsåtkomst via operativsystemet.
Till exempel kan vi titta på mitt Windows 10-desktors tilldelning av min ljudmaskinvara:
Ljudmaskinvarutilldelning
Jag har flera ljudmaskinvaruenheter och flera program. All åtkomst till och tilldelning av maskinvara sker via operativsystemet. Observera: Ovanstående är endast avsett för illustrativa ändamål. Du använder inte Volume Mixer för att ansluta VirtualBox-gäster till ljudhårdvara.
Så när du slår på en VirtualBox-gäst kan du använda dess programbehållare för att begära åtkomst till hårdvara.
Tänk nu på Client Hyper-V. Hanteringsoperativsystemet körs i en egen partition som är skild från gästoperativsystemen. Till skillnad från VirtualBox har Client Hyper-V:s gästoperativsystem ingen projektion till förvaltningsoperativsystemet. De kan inte bara anropa API:et i förvaltningsoperativsystemet på samma sätt som VirtualBox-gästerna kan, eftersom de inte kan nå det. Det finns funktioner i Client Hyper-V som kan hjälpa dig att åtgärda denna skillnad, men allt detta orsakas av grundläggande skillnader i hypervisor-teknologier.
Tag med dig från det här avsnittet: Om du vill använda USB-ansluten maskinvara och externa diskar med dina virtuella gästmaskiner kommer du att ha det lättare med VirtualBox.
Hyper-V vs. VirtualBox: Presentation av maskinvara
Detta avsnitt har en stark koppling till det föregående avsnittet. Om du bläddrar igenom en virtuell maskins inställningsflikar i VirtualBox kommer du att hitta många saker som du inte kommer att se i Hyper-V. Du måste välja mellan ett PIIX3- eller ett ICH9-chipset. Du måste välja mellan en Intel-ljudkontroller, en ICH AC97-ljudkontroller och en SoundBlaster 16-ljudkontroller. Om du tillåter att en virtuell dator har en USB-kontroller måste du välja mellan en 1.1-, 2.0- eller 3.0-enhet. Hyper-V ber dig inte att göra några sådana val.
Skillnaden här är också relaterad till hela den där diskussionen om typ 1 vs. typ 2. Hypervisorer av typ 2 är utformade för att kunna köras i ett mycket bredare spektrum av miljöer, vilket innebär en mängd problem. För att lösa dessa problem använder sig hypervisorer av typ 2 i stor utsträckning av emulering. Emulering innebär att en mjukvarukonstruktion efterliknar gränssnitten hos en hårdvaruenhet. VirtualBox emulerar alla de saker som jag räknade upp i föregående stycke och mer därtill. Client Hyper-V emulerar mycket lite – mest anmärkningsvärt är dess IDE-kontroller och det gamla nätverkskortet.
Emulering löser problemen med utbredd tillämpbarhet. Som ni kan föreställa er har denna mångsidighet ett pris. Hela syftet med specialiserad hårdvara, såsom nätverkskort och videokort, är att de ska hantera sina respektive arbetsuppgifter så att bördan inte faller på andra ställen. Eftersom de är byggda specifikt för sina uppgifter gör de det (förmodligen) bättre än andra komponenter som är byggda med andra mål i åtanke. Med emulerad hårdvara tar din CPU för allmänt ändamål på sig allt ansvar som dedikerad hårdvara har.
Takeaway från det här avsnittet: VirtualBox fungerar med ett bredare utbud av hårdvara på ett bredare utbud av system på bekostnad av prestandainspirerande overhead.
Hyper-V vs. VirtualBox: Resursprioritet
Då VirtualBox endast körs i det hårdvaruinstallerade operativsystemet är den utlämnad till det operativsystemets schemaläggare. En av anledningarna till att jag hoppade över den typiska diskussionen om CPU-ringar är att VirtualBox innehåller den här dialogrutan:
VirtualBox Acceleration Settings
VirtualBox har tillgång till samma funktioner som många bara förknippar med CPU-ring -1 och de virtuella maskinmätarutvidgningar som används av ”riktiga” typ 1-hypervisorer.
VirtualBox är dock fortfarande bunden av de begränsningar som det maskinvaruinstallerade operativsystemet medför. Om du har ett Flash-spel på löpande band som tar upp minne och processor i det hårdvaruinstallerade operativsystemet, kan och kommer operativsystemet att leda till att de virtuella maskinernas prestanda i VirtualBox försämras i den utsträckning som det vill. Om det kommer till kritan kan du använda Aktivitetshanteraren för att döda alla VirtualBox-processer eller -gäster.
Client Hyper-V erbjuder däremot samma prioriteringskontroller som sin serverbaserade storebror. Du kan prioritera CPU och minne, aktivera lagring Quality of Service och ställa in begränsningar för nätverksbandbredd för alla dina virtuella maskiner.
Takeaway från det här avsnittet: Klient Hyper-V ger finkornig kontroll över resursprioritering; VirtualBox gör det inte.
Hyper-V vs. VirtualBox: Videoacceleration
Detta avsnitt skiljer sig lite från den föregående diskussionen eftersom ingenting här kommer att vara universellt sant. Jag kommer att återberätta hur skillnaderna mellan de två hypervisors påverkade mina erfarenheter. Dina erfarenheter kan variera.
Både Client Hyper-V och VirtualBox emulerar video. Enligt mina erfarenheter har jag inte kunnat urskilja att den ena är bättre än den andra när det gäller 2D-acceleration. Jag tror inte att jag ber om särskilt mycket 2D-acceleration, men jag vet också att de flesta moderna skrivbordsoperativsystem utnyttjar 2D-acceleration på sätt som inte alltid är uppenbara förrän de inte är tillgängliga. Två utmärkta exempel är utjämning av teckensnitt och fönsteranimationer. Med det uttryckliga förbehållet att det kan variera, anser jag inte att 2D-acceleration bör spela en stor roll för någon av hypervisorerna.
3D-acceleration är en annan historia. Client Hyper-V erbjuder RemoteFX. I mitt experimenterande fungerar den mycket bra inom ramen för vad den är utformad för att göra. RemoteFX projicerar inte videokortet i gästoperativsystemet, så du kan inte komma åt alla dess funktioner. RemoteFX har också fungerat på alla system som jag någonsin försökt använda det med, så länge det innehöll den nödvändiga 3D-accelererande WDDM-kompatibla drivrutinen.
3D-acceleration i VirtualBox är en helt annan historia. Jag har helt misslyckats med att någonsin få den att fungera tillräckligt bra för att ens visa ett grundläggande Windows-skrivbord ordentligt. Jag har aldrig varit i närheten av att prova några funktioner för 3D-acceleration. Så jag kan inte ge dig några meningsfulla jämförelser mellan de två.
Takeway från det här avsnittet: 2D-acceleration verkar vara lika bra mellan de två. 3D-acceleration verkar mer tillförlitlig i Client Hyper-V.
Hyper-V Vs. VirtualBox: Kompatibilitet med virtuella hårddiskar
VirtualBox stöder flera format för virtuella hårddiskar. Du kan välja mellan:
- VDI, det ursprungliga VirtualBox-formatet
- VMDK, VMwares format
- VHD, Microsofts format
- HDD, Parallels format
- QED och QCOW, som används i QEMU och andra hypervisorer
Du kan inte använda VHDX med VirtualBox. Möjligheten att använda en annan hypervisors diskformat innebär inte heller nödvändigtvis att du smidigt kan överföra en virtuell hårddisk från en hypervisor till en annan.
Tag med dig från det här avsnittet: Det här är nästan allmän information, eftersom möjligheten att använda flera format för virtuella hårddiskar inte är så användbar som det kan verka till en början. Om du planerar att försöka flytta en virtuell hårddisk från en plattform till en annan utan att använda en konverterare är VirtualBox ditt bästa val.
Hyper-V vs VirtualBox: Andra videofunktioner
VirtualBox erbjuder några videofunktioner som Client Hyper-V inte direkt konkurrerar med.
- Client Hyper-V kan visa endast på en bildskärm eller alla bildskärmar. Du kan ange mellan en och åtta monitorer för VirtualBox.
- VirtualBox tillhandahåller ett serverläge som gör det möjligt för fjärrdatorer att ansluta till det maskinvaruinstallerade operativsystemet för att visa konsolen för en eller flera specifika gäster. Varje slutpunkt tillåter flera samtidiga fjärranslutningar. Klient Hyper-V tillhandahåller liknande funktionalitet med vmconnect.exe, men den är inte lika mångsidig.
- VirtualBox kan göra en videoinspelning av ett gästoperativsystem.
- VirtualBox gör det möjligt att ställa in en virtuell maskin i ”sömlöst” läge. Program som du startar i den virtuella maskinen visas och fungerar som om de körs i det hårdvaruinstallerade operativsystemet.
Tag med dig från det här avsnittet: Om någon av de här funktionerna tilltalar dig är VirtualBox det enda valet.
Hyper-V vs. VirtualBox: Tillgång till källkod
VirtualBox är programvara med öppen källkod. Om du inte tycker om något och tror att du kan göra det bättre, så gör det. Om du bara vill veta hur det fungerar kan du ladda ner koduppsättningen och sätta dig in i den.
Microsoft börjar gradvis värma upp för begreppet öppen källkod och har lämnat in en stor mängd kod till gemenskapen. Windows är notoriskt frånvarande. Som jag förstår det är kodbasen för Hyper-V mycket tätt kopplad till Windows. Jag tvivlar på att vi någonsin kommer att få se Hyper-V:s kod publicerad.
Tag med dig från det här avsnittet: Om det är viktigt för dig att använda en hypervisor med öppen källkod diskvalificerar det Client Hyper-V.
Hyper-V vs VirtualBox: Användningslicens
Client Hyper-V levereras som en komponent i Windows 10 Professional och Enterprise SKU:er. Om du på annat sätt har licens för att använda någon av dessa har du licens för att använda Client Hyper-V.
Oracle licensierar det nuvarande kärnpaketet VirtualBox (versioner 5.x+) under GPLv2. De tillhandahåller också vissa ”tillägg” under en separat licens som kallas ”VirtualBox Personal Use and Evaluation License”. Jag använder inte personligen någon av dessa funktioner, även om de omfattar några av de funktioner som jag talade om ovan. Jag har inte gått djupare in på villkoren för denna licens, men den verkar vara ganska generös. Som alltid rekommenderar jag att du låter en utbildad juridisk rådgivare svara på alla dina licensfrågor.
När det gäller licenser för gästoperativsystem så är det en separat historia. Varken Client Hyper-V eller VirtualBox tillhandahåller några licenser för gästoperativsystem överhuvudtaget. Om du installerar någon variant av Windows eller Windows Server i ett gästoperativsystem under någon av hypervisorerna måste du licensiera hårdvaran på rätt sätt.
Tag med dig från det här avsnittet: licensiering är alltid viktigt.
Köp av Client Hyper-V och VirtualBox
Om du kör Windows 10 Professional eller Enterprise behöver du bara aktivera Hyper-V-rollen för att kunna börja använda den.
VirtualBox finns tillgänglig på dess webbplats: https://www.virtualbox.org/