Detta dokument visar hur man snabbt kan flytta tillståndet för en dator som körs över ett nätverk, inklusive tillståndet i dess diskar, minne, CPU-register och I/O-enheter. Vi kallar detta tillstånd en kapsel. Capsule state är hårdvarutillstånd, så det omfattar hela operativsystemet samt applikationer och körprocesser. Vi har valt att flytta x86-datortillstånd eftersom x86-datorer är vanliga, billiga, kör den programvara vi använder och har verktyg för migrering. Tyvärr kan x86 kapslar vara stora, som innehåller hundratals megabyte minne och gigabyte av diskdata. Vi har utvecklat tekniker för att minska mängden data som skickas över nätverket: copy-on-write disks spåra bara uppdateringar till kapseldiskar, "ballooning" nollor oanvända minne, kräver personsökning hämtar bara behövliga block, och hashing undviker att skicka block som redan finns i den avlägsna änden. Vi demonstrerar dessa optimeringar i ett prototypsystem som använder VMware GSX Server virtuella, maskinmonitor för att skapa och köra x86 kapslar. Systemet riktar sig mot nätverk så långsamt som 384 kbps. Våra experimentella resultat tyder på att effektiv kapselmigration kan förbättra användarens rörlighet och systemhantering. Programuppdateringar eller installationer på en uppsättning maskiner kan utföras helt enkelt genom att distribuera en kapsel med de nya förändringarna. Förutsatt att det finns en tidigare kapsel står trafikmängden i proportion till själva uppdaterings- eller installationspaketets storlek. Kapselmigrering gör det möjligt för maskiner att börja köra ett program inom 20 minuter på en 384 kbps länk, utan att först behöva installera programmet eller ens det underliggande operativsystemet. Dessutom kan användarens kapslar migreras under en pendlande mellan hemmet och arbetet på ännu mindre tid. Dagens datormiljöer är svåra att underhålla och svåra att flytta mellan maskiner. Dessa miljöer omfattar mycket tillstånd, inklusive ett operativsystem, installerade program, en användares individuella data och profil, och, om användaren är inloggad, en uppsättning processer. Det mesta av detta tillstånd är djupt kopplat till datorutrustningen. Även om en användares data och profil kan monteras från en nätverksfilserver, är operativsystemet och applikationerna ofta installerade på lagring lokalt till datorn och därför bundna till den datorn. Processer är ännu tätare kopplade till datorn; mycket få system stöder processmigrering. Som ett resultat, användare kan inte flytta mellan datorer och återuppta arbetet oavbruten. Systemadministrationen är också svårare. Operativa system och applikationer är svåra att underhålla. Maskiner vars konfigurationer är avsedda att vara samma drift isär som olika uppsättningar av patchar, uppdateringar och installationer tillämpas i olika order. Vi valde att undersöka om frågor som användares rörlighet och systemadministration kan hanteras genom att inkapsla tillståndet i datormiljöer som förstklassiga objekt som kan namnges, flyttas och på annat sätt manipuleras. Vi definierar en kapsel för en maskinarkitektur som datatyp som inkapslar det fullständiga tillståndet för en (löpande) maskin, inklusive dess operativsystem, applikationer, data, och eventuellt processer. Kapslarna kan bindas till vilken instans som helst av arkitekturen och tillåtas att återupptas; på liknande sätt kan de avstängas från utförandet och serialiseras. En datorarkitektur behöver inte implementeras direkt i hårdvaran; den kan implementeras i programvara med hjälp av virtuell maskinteknik [12]. Det senare alternativet är särskilt attraktivt eftersom det är lättare att extrahera tillståndet för en virtuell dator. Virtuella datortillstånd är USENIX Association 5:e symposium om systemdesign och implementering 377
Arbetet inom REF inriktades på användarrörlighet och systemadministration genom att man inkapslade datamiljön som kapslar som ska överföras mellan olika värdar.
Optimizing the migration of virtual computers
{'venue': 'OPSR', 'journal': None, 'mag_field_of_study': ['Computer Science']}