Virtualisering

Virtualisering  är tillhandahållandet av en uppsättning datorresurser eller deras logiska kombination, abstraherat från hårdvaruimplementeringen , och som samtidigt tillhandahåller logisk isolering från varandra av datorprocesser som körs på samma fysiska resurs.

Ett exempel på användningen av virtualisering är möjligheten att köra flera operativsystem på en dator: medan var och en av instanserna av sådana gästoperativsystem fungerar med sin egen uppsättning logiska resurser (processor, RAM, lagringsenheter), vars tillhandahållande från en gemensam pool tillgänglig på hårdvarunivå styrs av värdoperativsystemet - hypervisor . Datanätverk , lagringsnätverk , plattformar och applikationsprogramvara ( emulering ) kan också virtualiseras .

Typer av virtualisering

Utrustning Operativsystem programvara Minne Förvaringssystem Databas Netto

Operativsystemvirtualisering

För virtualisering av operativsystem används en rad tillvägagångssätt, som, beroende på typen av implementering, är uppdelade i mjukvara och hårdvara [3] .

Programvaruvirtualisering

Dynamisk översättning

Med dynamisk ( binär ) översättning fångas problematiska kommandon från gästoperativsystemet upp av hypervisorn . Efter att dessa kommandon har ersatts med säkra, återgår kontrollen till gästsystemet.

Paravirtualisering

Paravirtualisering är en virtualiseringsteknik där gästoperativsystem är förberedda att köras i en virtualiserad miljö, för vilken deras kärna är något modifierad. Operativsystemet interagerar med hypervisorprogrammet, som förser det med ett gäst -API istället för att direkt använda resurser såsom minnestabellen.

Paravirtualiseringsmetoden gör det möjligt att uppnå högre prestanda än den dynamiska översättningsmetoden.

Paravirtualiseringsmetoden är endast tillämplig om gästoperativsystemen har öppna källkoder som kan modifieras enligt licensen, eller hypervisorn och gästoperativsystemet är utvecklade av samma tillverkare, med hänsyn till möjligheten till paravirtualisering av gästsystemet ( även om det under hypervisorn kan finnas en hypervisor på lägre nivå körs, då paravirtualisering av hypervisorn själv).

Termen dök först upp i Denali -projektet .

Inbyggd virtualisering

Fördelar:

  • Dela resurser mellan flera gästoperativsystem (kataloger, skrivare och så vidare).
  • Bekvämt gränssnitt för applikationsfönster från olika system (överlappande applikationsfönster, samma minimering av fönster som i värdsystemet).
  • När den är finjusterad till hårdvaruplattformen skiljer sig prestanda lite från det ursprungliga operativsystemet. Snabb växling mellan system (mindre än en sekund).
  • En enkel procedur för att uppdatera gästoperativsystemet.
  • Tvåvägsvirtualisering (applikationer från ett system körs på ett annat och vice versa).

Implementeringar:

Hårdvaruvirtualisering

Fördelar:

  • Förenkla utvecklingen av mjukvaruplattformar för virtualisering genom att tillhandahålla hårdvarubaserade hanteringsgränssnitt och support för virtualiserade gäster. Detta minskar komplexiteten och tiden för utveckling av virtualiseringssystem.
  • Möjlighet att öka prestandan hos virtualiseringsplattformar. Virtuella gästsystem hanteras direkt av ett litet mjukvarulager, hypervisorn, vilket resulterar i en prestandaökning.
  • Säkerheten förbättras, det blir möjligt att växla mellan flera körande oberoende virtualiseringsplattformar på hårdvarunivå. Var och en av de virtuella maskinerna kan arbeta oberoende, i sitt eget utrymme av hårdvaruresurser, helt isolerade från varandra. Detta gör att du kan eliminera prestandaförluster för att underhålla värdplattformen och öka säkerheten.
  • Gästsystemet är inte bundet till värdplattformens arkitektur och till implementeringen av virtualiseringsplattformen. Hårdvaruvirtualiseringsteknik gör det möjligt att köra 64-bitars gäster på 32-bitars värdsystem (med 32-bitars värdvirtualiseringsmiljöer).

Teknologi:

Plattformar som använder hårdvaruvirtualisering:

Containervirtualisering

Containervirtualisering — virtualisering  på operativsystemnivå — låter dig köra isolerade virtuella system på en enda fysisk värd, men tillåter dig inte att köra operativsystem med kärnor som skiljer sig från det underliggande operativsystemets kärntyp. Med detta tillvägagångssätt finns det inget separat hypervisorlager, istället är värdoperativsystemet självt ansvarigt för att dela hårdvaruresurser mellan flera gästsystem (containrar) och säkerställer deras oberoende. Vissa implementeringar är FreeBSD Jail (2000), Virtuozzo Containers (2000), Solaris Containers (2005), Linux-VServer , OpenVZ (2005), LXC (2008), iCore Virtual Accounts (2008), Docker (2013).

Tillämpningar av virtualisering

Virtuella maskiner

En virtuell maskin är en miljö som presenteras för "gäst"-operativsystemet som hårdvara. Men det är faktiskt en mjukvarumiljö som emuleras av värdsystemets programvara. Denna emulering måste vara tillräckligt robust för att tillåta gästdrivrutinerna att fungera stabilt. När du använder paravirtualisering emulerar den virtuella maskinen inte hårdvaran, utan erbjuder istället att använda ett speciellt API .

Applikationsexempel:

  • Testlabb och utbildning: Testning i virtuella maskiner är användbart för att testa applikationer som påverkar operativsystemets inställningar, till exempel installationsapplikationer. På grund av den enkla utplaceringen av virtuella maskiner används de ofta för att träna nya produkter och teknologier.
  • Distribution av förinstallerad programvara: Många mjukvaruutvecklare skapar färdiga virtuella maskinavbildningar med förinstallerade produkter och tillhandahåller dem gratis eller kommersiellt. Dessa tjänster tillhandahålls av Vmware VMTN eller Parallels PTN .

Resursvirtualisering

Resursvirtualisering (eller resursdelning , eng.  partitionering ) kan representeras som uppdelningen av en fysisk nod i flera delar, som var och en är synlig för ägaren som en separat server. Det är inte en virtuell maskinteknik, den är implementerad på operativsystemets kärnnivå.

På system med en typ 2 hypervisor tar både gäst- och hypervisoroperativsystemen upp fysiska resurser och kräver separat licensiering. Virtuella servrar som arbetar på OS-kärnnivå tappar nästan aldrig hastighet, vilket gör det möjligt att köra hundratals virtuella servrar på en fysisk server som inte kräver ytterligare licenser.

Diskutrymme eller nätverksbandbredd är uppdelad i ett antal mindre komponenter, och därför lättare att använda resurser av samma typ.

Till exempel kan implementeringen av resursdelning tillskrivas OpenSolaris Network Virtualization and Resource Control (Project Crossbow), som låter dig skapa flera virtuella nätverksgränssnitt baserat på ett fysiskt.

Aggregering, distribution eller tillägg av många resurser till stora resurser, eller sammanslagning av resurser. Till exempel kombinerar symmetriska multiprocessorsystem flera processorer; RAID och diskhanterare kombinerar många diskar till en stor logisk disk; RAID och nätverk använder flera kanaler buntade tillsammans för att visas som en enda bredbandskanal. På metanivå gör datorkluster allt ovanstående. Ibland inkluderar detta även nätverksfilsystem som abstraherats från datalagren som de är byggda på, till exempel Vmware VMFS , Solaris / OpenSolaris ZFS , NetApp WAFL .

Applikationsvirtualisering

Applikationsvirtualisering  är processen att använda en applikation som har konverterats från att kräva installation på operativsystemet till att inte kräva installation (krävs endast för att köras). För applikationsvirtualisering avgör virtualiseringsprogrammet när applikationen som virtualiseras installeras vilka OS-komponenter som krävs och emulerar dem. Således skapas den nödvändiga specialiserade miljön för denna speciella virtualiserade applikation och därigenom säkerställs isoleringen av driften av denna applikation. För att skapa en virtuell applikation placeras den virtualiserade i en behållare , vanligtvis utformad som en mapp. När en virtuell applikation startas startas applikationen som virtualiseras och behållaren som är dess arbetsmiljö. Körtiden startar och exponerar de lokala tidigare skapade resurserna, som inkluderar registernycklarna, filerna och andra komponenter som behövs för att starta och köra programmet. Denna virtuella miljö fungerar som ett lager mellan applikationen och operativsystemet och undviker på så sätt konflikter mellan applikationer. Applikationsvirtualisering tillhandahålls till exempel av Citrix XenApp [6] , SoftGrid [7] och VMware ThinApp-program .

Fördelar:

  • isolering av applikationskörning: frånvaro av inkompatibiliteter och konflikter;
  • varje gång i sin ursprungliga form: registret är inte rörigt, det finns inga konfigurationsfiler - det är nödvändigt för servern;
  • lägre resurskostnader jämfört med att emulera hela operativsystemet.

Anteckningar

  1. Enterprise Systems Group White paper, Sida 5 (länk ej tillgänglig) . Enterprise Strategy Group White Paper skriven och publicerad den 20 augusti 2011 av Mark Peters. Arkiverad från originalet den 30 mars 2012. 
  2. dataWerks – innovativa datavirtualiseringslösningar som erbjuder ett radikalt nytt tillvägagångssätt för att leverera affärsinsikter i realtid  (  otillgänglig länk) . www.datawerks.com. Hämtad 12 december 2017. Arkiverad från originalet 12 december 2017.
  3. Natalia Elmanova, Sergey Pakhomov Virtual Machines 2007. Arkiverad 7 oktober 2011 på Wayback Machine ComputerPress 9'2007
  4. www.bluestacks.com/technology.html . Hämtad 31 maj 2011. Arkiverad från originalet 28 maj 2011.
  5. Skärmdumpar av BlueStacks  (nedlänk)
  6. Citrix News (www.citrixnews.ru) - 09/30/2008 (otillgänglig länk) . Hämtad 20 juni 2011. Arkiverad från originalet 2 februari 2014. 
  7. John Saville - SoftGrid virtuella applikationer. - 25.12.07 . Hämtad 13 juni 2010. Arkiverad från originalet 19 september 2010.

Länkar