Upload
david-tovar-g
View
219
Download
0
Embed Size (px)
Citation preview
MONOGRAFIA:MAQUINASVIRTUALES
Grupon:8
Fecha:28/11/2006
Integrantes:
FrancoPelegrini([email protected])
MatiasCordoba([email protected])
RodrigoCarreras([email protected])
ndice
1. Historia
2. Introduccindemquinasvirtuales
3. Tiposdemquinasvirtuales
4. VMParaemularhardwareespecifico.
5. VMParacorrerdistintosSO
6. VMParaSoftware
7. Formasenlasqueseintegranlasmquinasvirtuales.
8. Virtualizacin
9. MquinaVirtualJava.
1. Procesodeejecucin
10. MquinaVirtualQEMU
1. Emulacincompletadeunacomputadora
2. Emulacinde"mododeusuario"
3. HostCPU
4. MdulodeaceleracinparaQemu
5. EjemplosdefuncionamientodeQemu
6. Qemumonitor
7. TraduccinDinmica
8. Alocacinderegistro
9. Optimizacindecdigocondicional
10. OptimizacindeestadodeCPU
11. Cachedetraduccin
12. Cdigoautomoficanteeinvalidacindecdigotraducido
13. SoportedeExcepciones
14. EmulacindelaMMU
15. InterrupcionesdelHardware
16. Detallesespecficosdelaemulacindeusuario
17. SealesdeLinux
18. Autovirtualizacin
19. VentajasdeQemu
20. DesventajasdeQemu
11. MquinavirtualVmWare
1. Funcionamiento
2. Hardwareemulado
3. Detalles
4. VmwareESXserver
5. VmwareGSXserver
6. VmwareWorkstation
7. Ventajas
8. Desventajas
12. MquinaVirtualXen
1. Administracindememoria
2. AdministracindelaCPU
3. DispositivosdeEntrada/Salida.
4. Llamadasalsistemaytiempo
5. Dispositivodealmacenamiento
6. MigracindeMquinasVirtuales
7. ComofuncionaXen?
8. Pruebasderendimiento
13. Comparativasentremquinasvirtuales
14. Malware
15. Conclusin
16. Bibliografa
HISTORIA
Lahistoriadelascomputadorasdatadevariasdcadasatrs.Paraserpreciso,suhistoriasedivideenetapasquedancomienzodesde1955hastalaactualidad.Laevolucindetodosloselementosrelacionadosconlascomputadorasactualesnoesloquenosocupa,sinoquenosreferiremosalaformaenqueevolucionaronlossistemascapacesdecorrermaquinasvirtuales(VM).LanecesidaddelaexistenciadeVMdacomienzoporlanecesidaddeobtenerunsistemaoperativoquefuesecapazdesoportarmltiplesusuarioscorriendosobrel(timesharing1),esdecirquefuesecapazdeejecutarlosprocesosquestosnecesitabancorrer.DuranteesteperodosurgieronvariosSistemasoperativos(SO)quetratarondesolucionarestanecesidad.IBMdesarrollunSOllamadoOS/360.Enuncomienzonoestabacapacitadoparasoportartimesharing,perotrassurgirestanecesidadseleincorporestafuncin.ApesardelosintentosdeIBMpordotaral360constafuncionalidad,lograronobtenerunsistemaqueeramuypesado,einconsistente.Parasolucionarlosepropusounnuevosistema(en1972queaunestapresenteenlaactualidad)llamadoVM/370(1).stemarcunpuntomuyimportanteenlahistoria,yaqueparapoderproporcionarunsistemadetiempocompartido,sebasenunaseriedeconceptosquenosehabantenidoencuentahastalafecha.stosfueron:
Multiprogramacin:variosprocesoscorriendoensimultneo. Unmquinaextendidaconinterfazmsconvenientequeelmerohardware.
VM/370eslaesenciadestasdosfunciones.stesimulabavariasmquinascompartidasycadaunadeellasbrindabaacadausuariounacopiaexactadelhardwaredelamquina(cuandoenrealidadsecontabaconunsolohardwareyesteserepartaentretodaslasVM).Tenauncorazn,llamadomonitordelsistema,queeraelencargadodesimularlasmtiplesmaquinas.UnodelosinconvenientesdeesteSOesquesolocorreenarquitecturasIBM/370,hechoquenosignificabaunagranlimitacindurantesusurgimiento.ConeltiempolasVMhanevolucionadomucho,siempreteniendoelmismoconcepto,esdecirunsistemaquebrindaunaabstraccinaotrosentes(SO,procesosdeusuarios,etc).EnlaactualidadnosencontramosconVMquesoncapacesdecorreraplicacionesindependienteshastaunconjuntodesistemasoperativos,siendoestounhechoqueproporcionaindependenciaenlosdistintossistemas.
INTRODUCCINALASMAQUINASVIRTUALES
InicialmenteseutilizabaeltrminoHardwareVirtualMachine,quesurgadeunsistema(VM/370porejemplo)queemulabamltiplesmquinasconsuhardwareparticular,siendoqueenlarealidadestabancorriendosobreunslohardwarequepodasermslimitadodeloquelasVMofrecan.ActualmentenospodemosreferircomoVirtualMachineyaquestashanevolucionadodetalformalquenoesprecisomodificarelhardwareparacorrerlas,sinoquesoncapacesdetrabajarenotrascapasdelsistema.Seharunadescripcindelascapassobrelasquetrabajanmsadelanteenestetrabajo.
Lapreguntaes:Quesunamquinavirtualyquesloquehacen?,pararespondersto,dependedelenfoquequeselehayaqueridodarenelmomentodesudesarrollo.Sinembargolatareaquetieneasignadaesladeproporcionarunacapadeabstraccinaunentre(Proceso,programa,sistemaoperativo,etc)determinado,conelfindequestecreaqueestcorriendosobreunsistemaquecuentaconciertascaractersticas.Dichodeotromodoescrearunentornovirtualentrelaplataformadelacomputadorayelusuariofinal,permitiendoquesteejecuteunsoftwaredeterminado.MsadelantesepuedeconsultarunapartadoparticularquehabladelosdistintosenfoquesqueposeenlasVM.Aqupodemosestablecer3gruposenloscualesenglobarlasVM:
1. VMqueemulanhardware:comoenelcasodela370deIBM.Mquinasquesimulanunacopiadel
1 timesharing:estareferidoalamultiprogramacin,esdecirlaposibilidaddeejecutarmltiplesprocesosalmismotiempo,odarlasensacindequeestoestaocurriendo.
Hardwaresobreelqueestncorriendo.2. VMquepermitencorrerSO:dentrodestaspodemosmencionaraquellasquesoncapacesde
soportardistintossistemasoperativos.3. VMquepermitencorrercorrerlenguajesdeprogramacincompilados.Esdecirlosprogramasse
compilanparaejecutarsesobreunamaquinadeterminada,quegeneralmentefuncionaenvariosSO.DeestaformaseevitatenerquecompilarelsoftwarecadaunodelosSO.
LasVMbrindanbeneficisvariosquedependendeltipodemquinaqueseestejecutando,dentrodestospodemosmencionar:
Permiteaprovecharalmximolascapacidadesdelharwaresobreelquecorren.stoesposibleyaquealtenervariasmquinasejecutandosesobreunamismalosrecursossevenobligadosamantenerseenunusocasiconstante.Unejemplodeestoesunhardwareespecificoquebrindaintel2,queescapazdecorrerVmWare(untipodeVM),endondesepuedereducir100sevidoresauntotalde10,lograndoaprobecharalmaximolascapacidadesdelhardware.
Seguridad.Soncapasesdecorrersobreunhardwaredeterminado,peroabstraertotalmentealusuariodeeste,esdecirquelebrindaunainterfazparaqueestetrabaje,peronopermitequedaenialterelapartefsicadelamquina.Porellosonunelementointeresantealmomentodehacerdistintaspruebasquepuedenperjudicarelsistemadeterminado.
Estabilidad.CorrersobreunaVMunaaplicacinpuedenosermasestablequehacerlosobreunSO.PeroapesardeestobrindaestabilidadenelSOquecorrelaVM,yaqueencasodequeelprogramacausealgunerror,lounicoqueseveraafectadoseralaVM.
MultiplePlataforma.Siestamoshablandodelengujescompilados,solodebemoscompilarunprogramaparacorrersobreunaVMyestaseencargaradepermitirqueseejecuteenmultiplesSO.UncasodeestoeseldeJAVA.EstelenguajeproporcionaunamquinavitualquecorresobreLINUX,WINDOWS,MAC,etc.Luegounprogramadejavaseejecutaraentodosellossinquehallanecesidadderecompilarlo.
PodemosestarejecuntandodosomasSOalmismotiemposobreunamismamquina
EstassonalgunasdelasventajasdeutilizarVM,yotrassurgirandelacombinacindelasmismas.Puedenexistirinfinitasfuncionesquesepuedenhacerconestasydependerandelacapacidaddeaprobecharlaquetengacadausuarioenparticular.
TIPOSDEMAQUINASVIRTUALES
Comoyasemostroenloanteriormencionadoexistendistintostiposdemquinasvirtuales.Apesardeestotodascompartenunmismoconceptoqueesladebrindarunaabstraccinalente..quelosutiliza.AcontinuacinsemostraralosdistintostiposdeVMqueexistenasicomoejemplospuntualesdecomofuncionanestas.
VMParaemularhardwareespecifico.
UnejemplodeestaeslaVM/370deIBM.Sebasanenunharwareespecificoqueposeememoria,procesador,espaciodealmacenamiento,dispositivosdeE/Setc.Sobreestehardwaresecorrelamquinavirtualqueseencargadedividirestedemodoquepuedabrindaralosusuariosfinalesunacopiaexactadeeste.Paraelloexisteuncorazndelsistemaqueseencargadesimularesto.
SistemaoperativoX SistemaoperativoX SistemaoperativoX
Mquinavitual
Hardware
LaCantidaddesistemasoperativosquesepuedencorrerenlacapamasaltadependedelamquina
2 Puedeverseestoenelarticulo:http://www.intel.com/network/connectivity/solutions/virtualization.htm
virtualqueseestecorriendo.EnelcasodelasVM/370sepodanejecutarcomomximo370.Paraquestaspuedanusarseesnecesarioqueelhardwarecumplaciertosrequerimientos,esdecirquenopuedecorrersesobrecualquierarquitecturadecomputadora.ActualmentelasVMsoncapacesdeemularelhardwarequeelusuariosolicite.ParaestohayquetenerencuentaquenodebesuperarconcrecesalHardwarefsicoyaquedelocontrarionosepodrsatisfacerlasnecesidades.LacapasobrelaquecorrenestetipodeVMeslasegunda,siendolaprimeraelhardwarefsico.UnproyectoqueestaencontinuodesarrolloesVMware.EsinteresantemencionarloyaqueproporcionaunainnovacingrandeenrelacinconVM/370.Estaradicaenquepermiteajustaralasnecesidadesdelusuarioelhardwarequeelusuarioprecisa,alavezquepuedecorrersobredistintasarquitecturasdehardware.MsadelanteseharunapartadoespecialparaVMware.EstetipodeVMseencargasimularlacapamasbaja,esdecirladelHardware(deaququelatareaquetengaencargadaesladerecrearvariascopiasdelhardwareoriginal.
VMParacorrerdistintosSO
AntesdecontinuardebemosaclararquelasVMnotienenquepertenecersoloaunodeestosgrupos,porcitaruncasoyamencionadoVMwareescapazdeemularuntipodehardwareespecficoalavezquepermitecorrerdistintossistemasoperativos.ConestoqueremosmostrarlosgruposdefuncionalidadesqueposeenlasVMdemododepoderdescribirlas.Actualmenteexistenmuchossistemascapacesdellevaracaboestafuncionalidad.DentrodeellospodemosmencionarVMware,QEMU,Xen,Botch,VirtualPC,etc.Entreellosdifierenenlaformaenlaquelogranobtenerelmismoobjetivo.AlgunastrabajanconelSistemaoperativohost3ysobreelhardware(comoVMware)otrastrabajansobreunacapasuperioraladelsistemaoperativocomoeselcasodeQEMU.SinembargotodosbuscanlograrcorrerunSOcompleto(quevaradependiendodelaVMqueseestcorriendo).NohablaremosaqudelmodoenquecadaVMllevaacabosutarea,stoseaclararmasadelanteensteinforme.Sibiencadaunoposeeunaformaparticulardellevaracabosutarea,unacaractersticacomnqueposeenesladecrearunanueva"capaenelsistema".Estacapaseubicarentreelsistemaoperativohost(yelhardwaredesernecesario)ylosmltiplessistemasoperativosquequerramoscorrer.PorlocualcuandocorramosunSOXenlaVMestecreerqueseestejecutandodirectamentesobreelHardware4.
VMParaSoftwareEstetipodemquinasvirtuales,aligualquelasdelapartadoanterior,creanunacapaentreelsistemaoperativohostyelprogramaquedeseacorrerelusuario.stasenvaninstruccionesalSOHostysteseencargadehacerlasllamadasnecesariasalhardware(creaunacapadeabstraccinentreelsoftwareyelSOHost),porloquelaVMnotrabajadirectamenteconste.UnejemplodeestetipodeVMeslaJavaVirtualMachine.LaventajadestasesqueunprogramadordesarrollaunsoftwarequeseacapazdeejecutarseenunaVMespecficaylocompilaparasta.LuegoelprogramafuncionarentodoslosSOqueseacapazdecorrerlaVM.DestaformaseahorramuchotiempodedesarrolloyseestableceunestndardeprogramacinenlosdistintosSO.LaCapaqueseencargaderecrearstetipodeVMesladelSO,esdecirelprogramaquecorresobresteenvalasllamadasalsistema5alaVMcomosilohicieraconelSO.Luegostelainterpretayhacelallamadacorrespodiente.
3 EselSistemaOperativosobreelquecorrelamaquinavirtual.PuedeserWindows,Linux,Mac,BSD,etc.EstedependerdelaVMqueseestecorriendo.
4 Notienequecreerqueestacorriendoexactamenteconlascapacidadesdelhardwarereal,laVmpuedehacerquecreaqueesunhardwaredistinto,porejemplolimitandolacantidaddememoria.
5 LlamaalsistemaoSystemcall.EsunmecanismopormediodelcualunprogramadeusuarioutilizaunaseriedeprocedimientosdelSOquehacendiversastareas,porejemplomanejodememoria,E/S,etc.
FORMASENLASQUESEINTEGRANLASMAQUINASVIRTUALES.
Cadatipodemquinavirtualposeeunaformadiferentedefuncionar,dependiendoenlacapaenlaquetrabaje.Parallevaracabosutareasevalededistintastcnicasquetienesusventajasydesventajas.Muchasdeellassacrificanvelocidadyrendimientodelhardware(yaquealabstraercapasconllevaaunmenortiempoderespuesta)yobtienenunmenorcompromisoconelhardwarefsico,mientrasqueotrasprefierentodolocontrario.UntrminoutilizadoenelmbitodelaVMeslavirtualizacin.UnaMquinavirtualestambinllamadaServidordeVirtualizacin.AcontinuacinsehablardelosdistintosmediosquesevalenlasVMparapoderhacerstastareas.
VIRTUALIZACION
Virtualizacineslacreacindeunaversinvirtual(encontradelaversinreal)dealgo,comounsistemaoperativo,unservidor,undispositivodealmacenamientoorecursosdelared.Lavirtualizacindelsistemaoperativoeselusodesoftwareparapermitirqueunmismosistemamanejevariasimgenesdelossistemasoperativosalamismavez.Latecnologaseinicienlosmainframeshacedcadas,permitindolesalosadministradoreslamejorutilizacindelpoderdecmputo.Paraserconcretos,consisteenmontarunsistemaoperativovirtual,olosquenuestramquinaseacapazdemanejar,enbaseaunsistemaoperativo"anfitrin"oHost.Destemodopodemoscargardiversossistemas,inclusototalmentediferentes,sobreunmismohardwareydeformaqueestnaisladoslosunosdelosotrosytambinqueaprovechenelhardwaredisponibleenelHostcomosuconexindeRed,suspuertosUSB,susunidadesdealmacenamiento,etc.EstatcnicaesutilizadapormuchasVMparapoderllevaracabosuobjetivo(Xen,VmWare,QEMU,etc).Latcnicadevirtualizacinfueutilizadaaproximadamente4dcadasatrsenlasgrandesMainframesqueexistan.Estatcnicaseutilizabaparapoderoptimizarlautilizacindelosrecursos.Actualmentestatcnicaesutilizadaparaelmismomotivo,ascomotambinenotrosmbitos,comoenlaseguridad.
EmpresascomoInteloAMDseencuentraneneldiseodeprocesadoresqueseancapazdesoportarlavirtualizacin.Estatecnologaamplalacapacidaddedichosprocesadoresconlacapacidaddeaislarlaejecucindelossistemasoperativosvirtualescargadosenelsistema.Esteaislamientodeprocesosfavorecenotablementealrendimientoyalaestabilidaddelosdiferentessistemasoperativoscargadosenelsistemaanfitrin.CadaunofuncionacomounaparticindentrodelprocesadorloquefavoreceelfuncionamientodelosSOaumentandolaseguridadyelbuenfuncionamientodelmismo.
Dentrodelavirtualizacinsedesprendendistintostipos,queseespecializanenunaspectoenparticular,dentrodelosquepodemosmencionar:
Emulacin,Tambinllamadavirtualizacincompletaconrecompilacindinmica.Consisteenunasimulacincompletadelhardware.Sepuedecorrerunsoftwaredeformaindependientecomosiestuvieraejecutndoseconunprocesadorindependiente.Esunatcnicamuyutilizadaparabrindarcompatibilidaddesoftwarey/ohardware.Porejemploesutilizadoparasimularconsolasdevideojuegosquetienenunhardwarequedifieretotalmenteconeldeunacomputadora.Programasqueutilizanestatcnicasonmuchos,unejemploqueposeeunaexplicacinmsampliaensteinformeesQEMU.
VirtualizacinNativaoVirtualizacinCompleta.statcnicaconsisteensimularunhardwareespecfico.LasVMqueseencargandeestocorrendemaneraindependientelosdistintosSOquecorrensobresta.ExisteunnicoprocesadorqueescompartidoentretodaslasVM.Esdecir,nosesimulacomoenlaEmulacinlaexistenciadeotroprocesadordiferentealqueexistefsicamente.EjemplodeestesistemaesVmwareoXen(consoportedelmicroprocesador).
Paravirtualizacin.statcnicarequieredeayudaespecialdehardware(microprocesador)obienqueelsistemaoperativosobreelquesecorraestparchadoparapoderejecutarse.LaVMqueutilizaestatcnicaseejecutaenunacapainferioraladelSOhost,ydesdeaquseencargaderealizarlassucesivasadministraciones.SehaceunapartadoespecialparaXen(queutilizaestatcnica)endondeseamplalainformacinacercadesta.
CadatcnicaesunaformadevirtualizacindequecadatipodeVMutilizaparasatisfacersuspropsitos.
MAQUINAVIRTUALJAVA
EsunamquinavirtualdesarrolladaporSunMicrosistem.Estaseencargadeinterpretaryejecutaruncdigobinariodejava.Esteesgeneradoporuncompiladorespecificoparadichofin.Enuncomienzoesteerasolopropiedaddelaempresaantesmencionada,enlaactualidadexistendiversoscompiladoresquellevanacaboesafuncin.Esporelloquesehaestablecidounestndardedesarrollodejava.Existeunlibroqueespecificaelestndardelamquinavirtualdejava(JVM),esteesdenominadoelLibroAzul.Unafraseextradadeeldice:
WeintendthatthisspecificationshouldsufficientlydocumenttheJavaVirtualMachinetomakepossiblecompatiblecleanroomimplementations.Sunprovidestestswhichverifytheproperoperationof implementationsoftheJavaVirtualMachine.
Dondesutraduccines:
PretendemosqueestaespecificacindocumentesuficientementelaMquinaVirtualdeJavaparahacerposiblesimplementacionescompatiblesdeentornosdeconfianza.SunofrecemecanismosparaverificarunacorrectaoperacindelasimplementacionesdelaMquinaVirtualdeJava.
EstetipodemquinavirtualesunclaroejemplodeuntipodeVMqueesusadaparacorrerprogramas.Parapoderllevaracaboestatareaesprecisoqueserealicenunaseriedepasosquesedescribirnacontinuacin.Esprecisollevaracaboinicialmenteunprocesodecompilacin.Enesteperiodoseconvierteelcdigofuenteacdigoquepuedainterpretarelcompilador.Enelcasodejavasetransformaenunbytcode.Losproyectosseseparanenclases,endondeseencuentranlosdiversosprocedimientos,funciones,etc.Estaspuedenserempaquetadasenunsoloobjetoconexencin.jar,elcualesusadodirectamenteporelcompilador.ParapoderejecutarlasinstruccionesJava,inicialmentellevabaacabounmtodollamadoInterpretacin.Esteconsisteenleerinstruccinporinstruccineiremulndolassegnelsistemaoperativosobreelcualseestabacorriendo.EnlaactualidadsellevaacabounprocesollamadocompilacinJIT(JustInTime,oalmomento).Estaseaplicasobreelbytecodegeneradotraslaprimeracompilacinaliniciodelaaplicacin,ydacomoresultadounaejecucinmuchomseficiente,aunqueconlapenalizacinentiempoqueconllevaestasegundacompilacin.
ProcesodeEjecucin
Antesdeejecutarunbytcodedejava,laJVMllevaacabounprocesodeverificacin.Estosehaceantesdeejecutarcualquierinstruccincontenidoenelobjeto.jar.Aquseverificancosascomoquenoseaccedanadireccionesdememoriaincorrectas,ahorrandotrabajosalSOporejemplo.
JVMpuedeemplearinstruccionesqueejecutencomandosdiversos.EstetipodecomandosasegurandequeexistancompatibilidadentretodoslosSO.LlevaracaboestatareaesunodelosfactoresmasdifcilesalahoradedesarrollarlaJVM.Elgrupodeinstruccionesquepuedenusarseson:
Cargayalmacenamiento Aritmticas Conversindetipos Creacindeobjetosysumanipulacin Gestindelapila(push/pop,meter/sacar) Saltos Llamadaamtodosysalidadeestos Generacindeexcepciones
Unodelosfactoresparaloscualesfuedesarrolladojavafueparapoderejecutarcomandosollevaracabotareasdeformaremota.Esdecirqueunusuarioqueseencuentraensunavegadorweb
puedeejecutarcdigoprovenientedeunservidorremoto.EsteCdigopuedesermalicioso.PorelloslaJVMproporcionaunentornoseguroquenodejaquesedaeelSO.Encasosdetenerqueejecutaraccionesquelocomprometan,seavisaalusuarioquienpuedepermitirsuejecucin.
UnaspectointeresantedelaJVMessugranpotencial.NoesprecisoqueelbytcodequeejecutehallasidoescritoenJAVA(ellenguaje),sinoquepuedesertambinenC,ADAoCOBOL.SoloesprecisoteneruncompiladorqueinterpreteellenguajeyloconviertaenunbytecodedeJVM.Estoproporcionaunalibertaddedesarrolloparalosdistintosprogramadores.
MAQUINAVIRTUALQEMU
Qemuesunprogramalibrequeproporcionaunavelozemulacindeprocesador,permitiendoalusuariosimularunacomputadoracompletadentrodeotra,fueescritoporFabriceBellard,unprogramadorfrancesqueademsdeserelcreadordeQemu,eselfundadordeFFmpeg,unpequeocompiladordeC"TinyC"entreotros,yadems,eldescubridordelaformulamsrpidaqueseconoceparacalcularcifrasdelnmeroPI.
Qemuesunamquinavirtualcapazdeemularmltiplesarquitecturas,ylaaltavelocidaddeemulacinlalogragraciasaunatcnicallamada"Traduccindinmica",lacualesunacombinacindeotrasdos,la"compilacionabytecode"yla"compilacindinmica",dondebsicamenteelprogramasecompilaabytecodeprimero,queesunlenguajeintermedioantesdellenguajedemquina,pudiendodeestamaneraserportadoacualquierarquitectura.Esaqucuandounamquinavirtuallointerpretayloejecuta.
QemupuedeserinstaladobajoLinux,Windows,FreeBSDyMacOSX,perolaversinparaWindowstodavaseencuentraenestado"Alfa"dedesarrollo.
Poseedosmodosdeoperacin:
1)Emulacincompletadeunacomputadora2)Emulacinde"mododeusuario"
Emulacincompletadeunacomputadora:
Enestemodo,QemuemulaunacomputadoracompletaincluyendoProcesadoryperifricos.
LasarquitecturasqueQemuescapazdeemularensutotalidadson:
X86 X86_64 ARM SPARC PowerPC MIPS
LasArquitecturasqueseencuentranendesarrollodepoderseremuladasson:
SPARC64 PowerPC64 m68k SH4
Asmismo,losperifricosqueQemuemulason:
i440FXhostPCIbridgeandPIIX3PCItoISAbridge TarjetadevideoCirrusCLGD5446PCIVGAotarjetastandardVGAconextensionesVESABochs
(niveldehardware,incluyendotodoslosmodosnostandard) TecladoyMousePS/2 2interfacesPCIIDEconsoportedediscorgidoyCDROM Disquetera AdaptadorderedNE2000PCI PuertoSerial TarjetadesonidoCreativeSoundBlaster16 TarjetadesonidoENSONIQAudioPCIES1370 ChipcompatibleconYamahaYM3812Adlib(OPL2) ControladoraPCIparaUSBUHCIyHUBUSBvirtual
Qemuposeetambinlacapacidaddesimularunsistemaqueposeahasta255procesadores
Emulacinde"mododeusuario":
Enestemodo,QemupermiteejecutarprocesosdeLinuxcompiladosparaunadeterminadaarquitectura,enotra.Estoserealizapormotivosdediferenciasentrearquitecturasde32bitsode64yporel"endianness"
LasarquitecturasqueQemuescapazdeemularenestemodoson:
X86 ARM SPARC PowerPC MIPS
Lasarquitecturasqueestnendesarrolloparaseremuladasson:
SPARC64 m68k SH4
Lasarquitecturasnosoportadasson:
X86_64 PowerPC64
HOSTCPU's
LasArquitecturasdondecorreQemuson:
X86 X86_64 PowerPC
LasarquitecturasdondeQemuseencuentraenunestadode"testing"son:
Alpha Sparc32 ARM S390
LasarquitecturasdondeQemuseencuentraenestadode"desarrollo"son:
Sparc64 ia64 m68k
MdulodeaceleracinparaQemu
ExisteunmduloparaelkerneldeLinuxqueelevalavelocidaddeemulacindei386enmquinasconi386,endondelavelocidaddeejecucinesprcticamentenativa.ElmduloesllamadoKqemu,escritoporelmismoautordeQemu,soloqueelotroeslibreperonoposeeelcdigoabierto.Laaltavelocidaddeemulacinlalogragraciasaqueejecutaelcdigoen"modousuario"yen"modovirtual8086"directamenteenelprocesadordondeestacorriendoQemu,yusandolaemulacindeprocesadoryperifricossoloparaelcdigoen"modokernel"yen"modoreal".AdemsKqemuposeeunmodode"Virtualizacincompleta",enlacualnosoloseejecutaelcdigode"modousuario"enlaCPUhost,sinoqueseejecutatambinelcdigode"modokernel",aumentandoanmslavelocidad.
ExisteotromodulodeaceleracinllamadoQVM86,peroalparecerestabandonado.
EjemplosdefuncionamientodeQemu:
qemuimgcreatefqcowimagen.img3G
Estocreaunaimageneneldiscollamada"image.img"conqcowcomotipodeimagen,lacualpermiteiragrandandoelarchivoamedidaquesevaescribiendoenlhastauntamaomximode3GB
qemuhdaimagen.imgcdrom/dev/hdcbootdm128soundhwsb16localtime
Estoinicialamaquinavirtual,especificandoquelaunidadhdaseralaimagencreadaanteriormente,elcdromeseldispositivo/dev/hdc,queiniciedesdeelcdrom,conunamemoriaramde128MBseemulaunaplacadesonido"SoundBlaster16"yseespecificalahoralocal
Qemumonitor:
LamquinavirtualQemuposeeunmonitorquefuncionaentiemporeal.Estemonitoresaccedidoconlacombinacindeteclas"Ctrl+Alt+2"ysepuedehacertodotipodeconsultas,desdelaversinactualdeQemu,hastasaberlosvaloresdelosregistrosdelmicroemulado
TraduccinDinmica:
Qemuesuntraductordinmico.Cuandoencuentraunpedazodecdigo,loconviertealsetdeinstruccionesdelamquinahost.Porlogeneral,lostraductoresdinmicossonmuycomplicados,ygrandesconsumidoresdeCPU.Qemuutilizaalgunostrucosquelohacenporttilrelativamentefcilysimple,almismotiempoquelograbuenaperformanceLaideaesdividirtodaslasinstruccionesx86eninstruccionesmssimples.CadainstruccinestimplementadaporuntrozodecdigoenC.Luegounautilidaddecompilacintomaelcorrespondientearchivoobjetopararealizarungeneradordinmicodecdigo,quienconcatenalasinstruccionessimples,paraarmarunafuncin.
Unaideaclaveparaobtenerunaperformanceptimaesquesepuedanpasarparmetrosconstantesalasoperacionessimples.Paraesepropsito,realocacionesdearchivosELFsongeneradoscongccparacadaparmetroconstante.LuegolautilidaddecompilacinpuedeubicarlasrealocacionesygenerarelcdigoCapropiadocuandoseestconstruyendoelcdigodinmico.Destamanera,Qemunoesmscomplicadodeportarqueunlinkeadordinmico.
Paraanmayorvelocidad,lasvariablesderegistrosestticosdegccsonusadasparamantenerelestado
delaCPUvirtual.
Alocacinderegistro
DesdequeQemuusasimplesinstruccionesfijas,nopuedehacerseunaalocacinderegistroseficiente.Detodasformas,dadoquelosCPU'sRISCposeenmuchosregistros,lamayorpartedelestadodelaCPUvirtualpuedeserpuestoenregistrossinhacerunacomplicadaalocacin.
Optimizacindecdigocondicional
UnpuntocrticoparaobtenerbuenaperformanceesunabuenaemulacindeloscdigoscondicionalesdelaCPU(registrosEFLAGSenx86).Qemuutilizaunaevaluacindecdigocondicionalperezosa:Enlugardecomputarelcdigocondicionalluegodecadainstruccinx86,solamenteguardaunoperando(llamadoCC_SRC),elresultado(llamadoCC_DST)yeltipodeoperacin(llamadoCC_OP).Cuandosepuededemostrarqueloscdigoscondicionalesnovananecesitarseenlasprximasinstrucciones,estasnosecomputan.
OptimizacindeestadodeCPU
LaCPUx86poseemuchosestadosinternos,loscualescambianlaformaenlaqueseevalanlasinstrucciones.Paraobtenerunabuenavelocidad,lafasedetraduccinconsideraquealgunainformacindelosestadosdelCPUx86virtualnopuedencambiarenl.Porejemplo,silossegmentosSS,DSyESposeenunabasecero,entonceseltraductornisiquierageneraunasumaparalabasedelsegmento.
Cachedetraduccin
Unacachde16MBalmacenalastraduccionesusadasmsrecientemente.Unaunidaddetraduccincontienesolounnicobloquebsico(unbloquedeinstruccionesx86terminadasporunsaltooporuncambiodeestadoenlaCPUvirtual,queeltraductornopuedededucirestticamente)
Cdigoautomodicanteeinvalidacindecdigotraducido
elCdigoautomodificanteesundesafoespecialenlaemulacindex86,dadoaque,cuandoelcdigoesmodificado,laaplicacinnoenvaningunasealalainstruccindeinvalidacindecach.Cuandoelcdigotraducidoesgeneradoparaunbloquebsico,lapginacorrespondientedelhost,estprotegidacontraescritura(conlallamadaalsistemamprotect()).Entonces,siunprocesodeescrituraesrealizadoalapgina,Linuxenvaunfallodesegmentacin.Qemuentonces,invalidatodoelcdigotraducidoenlapginaypermitelaescrituraalapgina.Lainvalidacincorrectadelcdigotraducidoesrealizadaeficientementemanteniendounalistaligadadetodoslosbloquestraducidoscontenidosenunapaginadada.Otraslistasligadassontambinmantenidasparadeshacerlaencadenacindebloques.Qemutambininvalidapginasdecdigotraducidocuandodetectaquesemodificanlosmapeosdememoriaconmmap()omunmap().CuandoseutilizaunMMUporsoftware,lainvalidacindecdigoesmseficiente:siunasiunapginadecdigodadaesinvalidadademasiadoseguidoporpermisosdeescritura,entoncesseconstruyeunbitmapquerepresentatodoelcdigodentrodelapgina.Todoalmacenamientodentrodeesapginachequeaelbitmapparaversielcdigorealmentenecesitaserinvalidado.Evitainvalidarelcdigocuandosolamentesehanmodificadodatosenlapgina.
SoportedeExcepciones
Cuandoseencuentranexcepcionestalescomodivisionesporcero,seutilizalongjmp().losmanipuladoresdelassealesSIGSEGV(fallodesegmentacin)ySIGBUS(ErrordeBUS)delhostson
usadosparaobteneraccesosamemoriainvlidos.ElestadoexactodelaCPUpuedeserdevueltodebidoaquetodoslosregistrosdex86sonalmacenadosenregistrosfijosdelhost.Elprogramcountersimuladoesencontradovolviendoatraducirelbloquebsicocorrespondienteybuscandodondeelprogramcounterdelhostestabaenelmomentodelaexcepcin.ElCPUvirtualnopuededevolverlosregistrosEFLAGSexactosporqueenalgunoscasosnosoncomputadosdadoalasoptimizacionesdelcdigocondicional.Noesunagranpreocupacinporqueelcdigoemuladopuedeserrecomenzadoencualquiercaso.
EmulacindelaMMU
ParalaemulacindelaMMU,Qemuutilizalallamadaalsistemammap().FuncionamientraselSistemaOperativoemuladonouseunazonareservadaporelsistemaoperativohost(comolazonasobre0xc0000000enunLinuxx86).Parapodertenerlacapacidaddeejecutarcualquiersistemaoperativo,QemutambinsoportaMMUporsoftware.Enesemodo,latraduccindelaMMUdedireccionesvirtualesafsicassonhechasencadaaccesoamemoria.Qemuusauncachedetraduccionesdememoriaparaacelerarlatraduccin.
InterrupcionesdelHardware
Demaneradesermsrpido,Qemunocontrolacadabloquebsicoporsialgunainterrupcindehardwareseencuentrapendiente,sinoqueelusuariodebellamar,asncronamente,unafuncinespecfica,paraanunciarquehayunainterrupcinpendiente.stafuncinreseteaelencadenamientodelbloquebsicoqueestactualmenteenejecucin..SeaseguraquelaejecucinvaaretornarprontoenelbucleprincipaldelemuladordelaCPU.Luegoelbucleprincipalpuedecomprobarsilainterrupcinestpendienteymanejarla.
Detallesespecficosdelaemulacindeusuario
TraduccionesdelasllamadasalsistemadeLinux
QemuincluyeuntraductorgenricodellamadasalsistemaparaLinux.Esosignificaquelosparmetrosdelasllamadasalsistemapuedenserconvertidosparaarreglarlostemasde"endianness"yde32/64bits.Lasllamadasalsistemaparamanejarentradasalidasonconvertidaspormediodeunsistemagenricodescriptivodetipo.QemusoportaCPU'shostqueposeenpginasmsgrandesque4KB.Almacenatodoslosmapeosquehacenlosprocesosytratadeemularlallamadaalsistemammap()enloscasosdondelallamadammap()enelhostfallaraporunamalaalineacindepgina.
SealesdeLinux
Lassealesnormalesydetiemporealsonencoladasjuntoconsuinformacin(siginfo_t)comosehaceenelkerneldeLinux.LuegounpedidodeinterrupcinesrealizadoalaCPUvirtual.Cuandoesinterrumpida,unasealencoladaesmanejadagenerandounmarcodepilaenlaCPUvirtualcomoelkerneldeLinuxhace.Lallamadaalsistemasigreturn()esemuladapararetornardelmanejadordesealesvirtuales.Algunasseales(comoSIGALRM)vienendirectamentedelhost.OtrassealessonsintetizadasdesdelasexcepcionesdelaCPUvirtualcomoSIGFPEcuandoserealizaunadivisinporcero.LamscaradelasealbloqueadaesmanejadaporelkerneldelhostLinuxdemaneraquelamayoradelassealesdellamadasasistemapuedanserredirigidasdirectamentealkerneldelhostLinux.Solosigaction()ysigreturn()necesitansercompletamenteemuladas.
Hilosyllamadaalsistemaclone()
lallamadaalsistemadeLinux,clone(),esusadaporlogeneral,paracrearhilos.Qemuusalallamadaalsistemaclone()delhostdemaneratalquesecreenhilosenelhostporcadaunoemulado.UnaCPUvirtualescreadaporcadahilo.LasoperacionesatmicasdelaCPUx86virtualsonemuladasconbloqueosglobalesdemaneraquesusemnticaespreservada.ActualmentehayalgunosproblemasdebloqueoenQemu.Particularmente,elvaciadotraducidodecachonoestaprotegidocontrareentrada
Autovirtualizacin
Qemufueconcebidodemaneraqueelpuedaemularseasimismo.Apesardenosermuytil,esuntestimportanteparademostrarelpoderdelemulador.Conseguirautovirtualizacinnoesfcildadoquepuedehabermuchosconflictosdeespaciosdedireccionamiento.QemuresuelveesteproblemasiendounobjetocompartidoELFejecutablecomoelintrpreteELF"ldlinux.so".Deesamanerapuedeserrealocadoenelmomentodecarga
VentajasdeQemu
CapacidaddeemularArquitecturasx86,AMD64,MIPS,SPARC,ARM,SH4yPowerPC AltavelocidadCiertasaplicacionesseejecutanaunavelocidadmuycercanaalanativa ImplementaformatodeimagendediscoCopyOnWrite,loquepermitedeclararunaimagendel
tamaoquesea,peroquesolovaaserdeltamaodeloquerealmenteseuse Implementaelusodeimgenes.Sepuedemantenerunaimagendelsistemaemuladopara
recuperarlosihuboalgnproblema soportalaejecucindebinariosdeLinuxparaotrasarquitecturas. Puedeguardaryrecuperarelestadodeunamquina EmulacindetarjetasdeRedvirtuales SoporteparaSMP(capazdeemularunsistemaconhasta255CPU's) Elsistemaoperativoemuladonotienequesermodificadoni"parcheado" MayorvelocidadcuandoseutilizaKqemu LasherramientasdelineadecomandospermitenuncontroltotaldeQemusinnecesidaddetener
queejecutarX11 ControlremotodelamquinaemuladavaservidorVNDintegrado Dadoquenorequiereejecucinen"modokernel"esmuysegurodeutilizar
DesventajasdeQemu
SoporteincompletoparaMicrosoftWindowsyotrosistemaoperativocomoHost Soporteincompletoparaarquitecturaspocousadas NoposeesoportedeSSEniMMXtodava NoposeellamadasalsistemaparaIPC
SolamenteposeesoporteparalaslibrerasgrficasSDLyCocoaapesarqueexisteunparcheparaGGI
MAQUINAVIRTUALVMWARE
StanfordhasidolacunadeempresastcnicasycientficastanimportantescomoHewlettPackard,CiscoSystem,Yahoo,GoogleyVMwareentreotras.VMwareesunsistemadevirtualizacinporsoftware.Unsistemavirtualporsoftwareesunprogramaquesimulaunsistemafsicoconcaractersticasdehardwaredeterminadas.Cuandoseejecutaelprograma,proporcionaunambientedeejecucinsimilaratodoslosefectosaunordenadorfsico.VMwareemulacompletamenteunaPCconunaplataformahardwaredeterminada.Elhardwareemuladonotienenadaqueverconelequipoquehacedeanfitrin,yaqueelsistemainvitadosoloveloscomponentesvirtuales.VMwarefuncionaenWIndowsyLinuxyproximamenteenMACO2.LaempresaVMwarebrindaasususuarioinfinidaddeproductosparaoptimizarlavirtualizaciondehardwareolasimulacindesistemasoperativosporsoftware.DebidoalafinalidaddeestamonografasolomostraremoslosproductosVMwareworkstation,VMwareESXserveryGSXserver
Funcionamiento
EncasodeWorkstationyGSXserverelfuncionamientoeselsiguiente:
Aplicacin>SO>Hardware>VMware>SOHost>Hardware
EstediagramaindicadederechaaizquierdalascapasenlasqueseimplantaVMware.Enlaprimeraencontraremosalhardwaresubyacente.EnlasegundaesdondesediferencianWorkstationyGSXserverdeESXserver.Yaqueenestasenecesitaunsistemaoperativobaseendondeejecutarlamquinavirtual(Estoafectaelrendimientoydesempeodelasmquinasvirtuales).Enlaterceraencontramosalamquinavirtualpropiamentedichalaqueemulaunhardwarecompletamentevirtual,queseencuentraenlacuartacapa.Siguiendoeldiagramaencontramoselsistemaoperativovirtualquepuedesermasdeuno.Luegoseencuentranlasaplicacionesqueestnvirtualmenteejecutndosesobreelsistemaoperativoantesmencionado.
AdiferenciadelaversinESXserverquefuncionamsomenosdelasiguientemanera.
Aplicacin>OS>Hardware>VMware>hardwarefsico.
Enestecasoencontramoslamaquinavirtualenlasegundacapa,desdeaquseemulaelhardware,yluegoenlasiguientecapasealojaelsistemaoperativovirtual.Estaformadeubicarlamaquinavirtualenlasegundacapaimplicaquedichosoftwarehagalasfuncionesdeunsistemaoperativo.Loqueoptimizaconsiderablementelavirtualizacin.Estamaquinavirtualcuentaconestrategiasdepaginacinysegmentacinparahacerunmejorusodelosrecursosdememoria.
VM1VM2VM3
|||
VMWare>virtualizacin>Hardwareemulado|||
Hardwarefsico
Hardwareemulado
Procesador
IntelPentiumoposteriorAMDAthlonoposterior(DependiendodelaCPUoriginal)SoporteexperimentalparalasprocesadoresAMD64yIA32eRAMHasta3.6GBytesdependiendodelamemoriafsica
UnidadesIDEHasta4unidadesIDEDiscosfsicosyvirtuales(mx.128GBytes)UnidadesCD/DVDROM
UnidadesSCSIHasta7UnidadesDiscosfsicosyvirtuales(mx.256GBytes)SoportedeSCSIgenricoSoporteparaescneres,CD/DVDROM,unidadesdecinta,etc.ControladordeentradasalidaLSILOGICLSI53C1030Ultra320
AnfitrincompatibleconeladaptadordebusMylex(BusLogic)BT958(solamentesobreWindowsXPconcontroladoresdedispositivoadicionales)
MediosextrablesUnidadesCDROM/CDR/CDRW(fsicasoimgenesISO)UnidadesDVDROMUnmximode2unidadesde1.44Mbytes(fsicasocomoimgenes)
HardwaregrficoVGAySVGAconBIOSVESA
Puertos
Hastaunmximode4puertosserie(COM)Hasta2puertosparalelosbidireccionales(LPT)DoscontroladoresUSB1.1UHCITecladocompatibleRatnPS/2
Dispositivosdered
Unmximodetresadaptadoresderedvirtuales(Ethernet)TarjetadesonidocompatibleconAMDPcnetPCIIICompatibleconSoundBlasterAudioPCI(sinsoporteparaMIDIniparajoystick)
BIOSSoporteparalaversin6VESABIOSdePhoenixBIOS4.0conDMIv2.2/SMBIOS
Detalles
Paraquelaemulacinpuedaejecutarcualquieraplicacinconunavelocidadaceptable,esnecesarioquehardwareseabastanterpido.VMwarerecomiendaunPentiumIIAMDequivalente,256MBytesdeRAM,
unadaptadorgrficode16bityporlomenos20MbytesdeespaciolibreeneldiscoduroparaelsoftwareVMware.Porsupuestoquehabrqueaadirespacioendisco,paraqueestdisponiblealsistemaoperativoinvitado,yunatarjetadered,suponiendoqueelhardwarevirtualnecesiteaccederalared.
VmwareESXserver
Esunproductoparaservidores.Constituyeunacapadevisualizacinderecursosmontadadirectamentesobreelhardware,sinlanecesidaddeunsistemaoperativobase.YaqueESXserveresunsistemaoperativoensi.LafuncinprincipalesladevirtualizarygestionarlosrecursosentrelasmltiplesmquinasvirtualesmontadassobrelacapaVmware.
Arquitectura:Diseadaparaelfuncionamientoenproduccindemltiplesmaquinasvirtualesdeformaindependientes.
Virtualizacin:Proporcionaacadamquinavirtualunamquinafsicaidealizada,totalmenteaisladadeotrasmquinasvirtuales.
Gestinderecursos:reaprovecharecursosdeunamquinavirtualaotramediantelamultiprogramacin.
Caractersticas:Particionanadoenmquinasvirtuales,encapsulado,aislamientodefallosygestindinmicaderecursos.
VmwareGSXserver
Esunsoftwaredevirtualizacinenentornoscomercialescrticos.Simplificalasestructurasinformticasmediantelaparticinyaislamientodeservidoresenmquinasvirtualessegurasytransportables.VMwareGSXServerpermitequeestosservidoresdemquinasvirtualessepuedanadministrardeformaremotayestandarizarsobreunaplataformasegurayuniforme.Transformalosordenadoresfsicosenunconjuntodemquinasvirtuales.Lossistemasoperativosylasaplicacionesseaislanendistintasmquinasvirtuales.Losrecursosdelsistemaseutilizanencualquiermquinavirtual,dependiendodelasnecesidadesquesetengan,detalformaqueseconsigaunagestindecapacidadyuncontrolsobrelasinfraestructurastecnolgicas(hardware).Sepuedeutilizarparaimplantarlaconciliacinentreservidoresoparamejorarelsoportetcnicodesoftware.ConVMwareGSXServerhacequelaaltadisponibilidadseaeconmicayescalable,protegiendolasaplicacionescrticasylosdatosenunmximode64mquinasvirtualesaisladasysegurassobreunanicaplataformadehardware.
VmwareWorkstation
EsunpotentesofwareparavisualizacindeEscritorios(desktop).Ejecutamltiplessistemasoperativoscomo,MicrosoftWindows,LinuxyNovellNetWare,deformasimultneaenmquinasvirtuales.VMwareWorkstationproporcionamsopciones,mayorflexibilidadyunafuncionalidadmspotentequecualquierotrosoftwaredevirtualizacinquehayaenelmercado.
Desdesulanzamientoen1999,VMwareWorkstationharevolucionadolaformaenquesedesarrollantantoelsoftwarecomolasinfraestructurastecnolgicasysehaconvertidoenunestndardefactoparalosprofesionalesdelastecnologasylosdesarrolladores.
Lopodemosutilizarparadesarrollo,pruebaeinstalacindesoftware.SepuedencrearaplicacionescrticasbasadasenLinuxoMicrosoftydesarrollaryrealizarpruebassobreaplicacionesmltiplesendiferentessistemasoperativossimultneamentey,adems,archivarentornosdepruebasyrestablecerlosrpidamente.
Asegurarcedelacompatibilidaddelasaplicacionesylamigracindesistemasoperativos.Sepuededarsoporteaaplicacionesexistentesalmismotiempoqueserealizalamigracinaunsistemaoperativonuevo
deunaformasegura,alavezquesepuedenrealizarpruebassobreestenuevosistemaoperativoantesdelainstalacin.
Permiteexperimentarconlasnuevasaplicacionesoherramientasy,adems,distribuireinstalarsoftwareparademosyaplicacionescomplejasencualquierPC.
Mejorarelsoportetcnicodesoftware.ConVMwareWorkstationsepuedenresolverproblemasrpidamenteyproporcionarunservicioalclientedecalidad.
AdiferenciadelosemuladoresdeAPI(delinglsApplicationProgrammingInterfaseInterfazdeProgramacindeAplicaciones)comoWINE,VMwareworkstationemulaunordenadorcompletocomounprogramadesoftware.EldenominadosistemaoperativoinvitadofuncionadentrodelaemulacinVMwaresinquepuedadistinguiresteentornodelaPCdeverdad.
Ventajas
Sepuedenejecutarmltiplessistemasoperativosalmismotiempoenunamismamquinafsica. Totalutilizacindelosrecursosdecadaservidor. Aislamientodefallosyaltaseguridadaniveldehardware. RendimientocontroladodelosrecursosdeCPU,RAM,Disco,ynetwork. TodoelconjuntobajoVMseencapsula:Memoria,disco,imgenes,dispositivoE/S. ElconjuntoVMsepuedesalvaraunfichero(Checkpointing,Suspend/Resume). SepuedentransferirlosVMscomoficheros,aesamismavelocidad. Flexibilidadyfacilidadenloscambios. Pruebasenentornosidnticosalosdeproduccinsinningnproblemadeejecucin. Rpidarecuperacinydisponibilidad. AumentodelaSeguridad.
Soportanuevasyviejasaplicaciones,SistemasOperativosyherramientasdegestin.
Soporteparasistemasoperativosde64bits.
SoporteparalasltimasdistribucionesLinux,Windows,Solaris,BSD. MejoracapacidadeswirelesendistribucionesLinux.
Desventajas
Lasmquinassolodisponendedriverestndar.
Nosoportaaceleracingrfica.
Algunosproductosnosoportanlavirtualizacin
Elsoftwaredevirtualizacinnoestacertificadoparatodoslosservidores
Rendimientoenaccesoadisco
GastamemoriaRAMfsica,noseusaswap.
MAQUINAVIRTUALXEN
XenesunaMquinaVirtualdesarrolladaporlauniversidaddeCambridgeenEEUUquecorresobrearquitecturasx86.SeencuentrabajolalicenciadeGNUGeneralPublicLicence.FueelresultadadeXXXaosdetrabajo.ElobjetivodelequipoeradesarrollarunaVMquefueracapazdecorrermltiplesSistemasOperativosteniendoelmenordesperdicioderecursosposibles,esdecirquesepudieralograrundesarrollosimilaraldeunSOcorriendodeformanativa.
Dichoobjetivofueconseguido,llegndosealograrperdidasderendimientoverdaderamentebajas,siendoincluso,eldesempeodeXen,superiorenotrosmbitos.
Parapoderllevaracaboesto,elequipodedesarrollo,utilizunatcnicallamadaParavitualizacin.EstaSedescribirmasadelante.Peroloqueesimportantetenerpresente,esque,paraqueXenpuedafuncionarprecisaqueelSOhostposeaunportparaeste,obienestecorriendobajounmicroprocesadorquesoportelatcnicamencionada(LineaPacficaencasodeAMDyVanderboolenINTEL).
LossistemasoperativosquetienenportsdesarrolladossonLinux,MacOS,BSDyWindowsXP.Enelultimoporcuestioneslegalesnoesposiblelanzarelportalpblico6.
Xenescapazdecorrer100mquinasalmismotiempo(siempreycuandoelhardwaresobreelqueseejecutesoporteesto),brindandounaindependenciadeentreestasmuyefectiva.DeestaformacadasistemaoperativoquecorresobreunaVMdiferentenosepercatasobrelaexistenciadelosotrosSO.
Lograrunaejecucincasinativaesunatareaquerequieretrabajarconmuchocuidadoalmomentodeimplementardiferentesaspectoscomoson:
1. Administracindememoria
2. AdministracindelaCPU
3. AdministracindelosdispositivosdeE/S(discosduros,grabadoras/lectoras,Interrupciones,etc.)
ParaverdequeformalograestoXen,analizaremosdeformaindependientelosapartadosrecinmencionados.
Administracindememoria.
EsteesunaspectomuyimportanteyaqueesunodelospuntosquemarcarnloptimoonodelaejecucindelasVM.Estosedebeaquesinoseadministrabienlamemoria,elSOseveraobligadoarealizarmuchosintercambiosconeldiscoduro.
Laadministracinesdejadaalsistemaoperativohost,esteseencargaderesolverlospedidosdealocacinyliberacindememoria.ParapodermantenerlaindependenciassobrelasdiversasVMqueestncorriendo,Xendeberealizaralgunamodificacionesendichaadministracin.
Loprimeroquehaceesreservarunespaciode64MBaltopedelamemoria.EstamemoriaesdedicadaaltrabajodeXen,ysolopuedeseraccedidaporeste.Estosedebealanecesidaddecontarentodomomentoconunespacioparaalmacenarsusdatos(quesearpido7).ElSOhostseencargadecolocarlospermisosnecesariosparaquesoloXenpuedautilizarla.
OtroaspectoenelqueseinvolucraXenesenlospermisosdelamemoria.LosSOmodernosadministranlamemoriaatravsdesegmentos,estostienediversospermisosquedeterminanqueprocesopuedeaccederaestos.Porcuestionesdeeficienciaunsegmentopuedesercompartidoconconvariosprocesos(yaque
6 MicrosoftasumequenopuedengarantizarelcorrectofuncionamientodelaVMdeXenaltenerqueparcharsuKernel(eldeWindows),porestemotivorecomiendanlautilizacindeVirtualPC,unaMquinavirtualadquiridaporestos.
7 porestoesquesequiereevitarreservarmemoriaeneldiscoduro,yaqueesterepresentaunaamenazaaltiempoderespuesta,loquederivaenuntiempoderespuestamenor.
esmaseficientetenerunacopiadelosdatosquevariasdeeste).Paraevitarproblemasconaccesosindebidosdesegmentos,Xenrevisalospermisosconlosqueseadministranlosrecursos.
Debetenerespecialcuidadocuandoseactualizanlastablasdememoria,paraquenoquedeinconsistente.EstosedebeaqueelSOhostenconjuntoconlasactualizacionesquellevaacaboXenpuedenafectarlaintegridaddelaspginas.
UnultimoelementoquetieneencuentaXen,esquetodoslossegmentosdememoriaqueseanresultadodelasallocacionesdelasVMquecorrensobreeste,debenpoderseraccedidosporel.XendalailusinacadaVMquetieneunsegmentodememoriacontiguoparasuutilizacin,esdecirqueposeeunbloquedeXtamaoparautilizar.Sinembargoenlarealidadlamemoriaquelesbrindapuedeestardistribuidaensegmentosseparados.Deestaformaselograoptimizarlosespaciosdememoriaquesonotorgados.
AdministracindelaCPU
Coneltiempolosmicroprocesadoreshanevolucionadoensuarquitectura.Estostieneunvariosmodosenlosquedeterminanlaprioridaddelaejecucin.Esteesunaspectomuyimportanteenlaparavirtualizacin.Hacemosaquunadivisinenlostiposdemicroprocesadores:
1. Losqueposeendosnivelesdeprioridad.Existeunniveldemayorprioridad(elcero).EnesteseejecutaelSO,dejandoelotroparalasinstruccionesdelasaplicacionesquecorrensobreeste.
2. Losqueposeen5nivelesdeprioridad.Laarquitecturax86sebasaenunsistemadeanillos,siendoelanilloceroeldemayorprioridad,yel4eldemenor.DejandoelprimeroparaelSOyelultimoparaelsoftwaredelusuario.
3. ProcesadoresdelaLineaPacficayVanderbooldeAMDeIntel.Estoscuentanconunatecnologaquebrindanunniveldeejecucinnuevo,queeselquemayorniveldeprioridadposee.Esteesusadoparalaparavirtualizacin.
EntodosloscasosesposiblecorrerXen,peroinvolucrandistintasmodificacionesanivelsoftware.ParalosdosprimeroscasosesnecesarioqueexistaunPortdelSOhost,estosedebeaqueesnecesariodesplazarlounaniveldeprioridad,yaqueXennecesitaejecutarseenelmasbajo.EnelprimercasoelSOesdesplazadoalsegundonivelenconjuntoconlosprogramasdelusuario.Estedebeserprotegido(espaciosdememoria,prioridades,etc).ParaelsegundocasoelSOesmovidoalanillo1,mientrasqueXenseinstalaenelanillo0.EltercercasosonmicroprocesadoresquenodemandanrealizarunportdelSOhost.YaseencuentranpreparadosparaqueelSOcorraenlacapanumero1ylasmquinasvirtualespreparadasparaparavirtualizacinenlanumero0.
XenprecisainstalarseenlacapadeprioridadmasbajayaquenecesitatenertodoslosprivilegiosparapoderrealizaroperacionescomoadministrarciertasLlamadasalsistema.Deestaformalaspuedemanejardeformamaseficiente,esdecirsincronizarlasconlasmltiplesVM.
Antesdecontinuar,semostraraunatablacomparativaenlaqueseilustraelcostodeportarunSOxparautilizarXen.Elcostoestamostradoenlineasdecdigoquesonnecesariasimplementar.
SO Linux WindowsXP
Arquitecturaindependiente
78 1299
Red 484
SO Linux WindowsXP
Driverdedispositivosdebloque.
1070
Xen(NoinvolucranDriver).
1363 3321
Total 2995 7620
DispositivosdeEntrada/Salida.
Xenposeeseencuentramuyinvolucradoenesteaspecto.Encuantoalosdispositivosdealmacenamientobrindaunaabstraccindeestos,proporcionandoasiunaindependenciaentrelasdistintasVM.AlmomentodecrearseunanuevaVM,Xendeterminaendondesemontaraeldispositivodealmacenamientoasicomosucapacidadypermisosqueestetendr.Estossealmacenanenunarchivoqueposeeunaestructuraespecial.
AdemsproporcionaunaMemoriacompartidayunbufferasncrono.DeestaformacuandounprocesocorriendoenunaVMutilizaalgndispositivodeE/S,suspeticiones,datos,etc.sonenviadosenestebufferparasuanlisisysuposterioradministracin.
Porltimoproporcionaunainterfazdeadministracindelasinterrupciones.Seencargadederivarlasadondeseannecesarias.PuedehacerqueelsistemaoperativoHostnolasvea,paracasoscomoWakeUpdeprocesos,porejemplo.
Llamadasalsistemaytiempo.
XenimplantounmecanismoquepermiteadministrarlasSyscallsquellevanacabolosSOqueseencuentracorriendoenlasVM.EstesedenominaHipercalls.Cuandounprocesollamaaunadeterminadapginadememoria,yestanoseencuentra,esprecisocargarlaparaqueestedisponible.Cuandounechocomoesteocurreentraenmarchaelmecanismodehiperllamadas.Xeninterceptaenestallamada,yrealizalasoperacionesnecesariassegnsusistemadeadministracindememoria.LuegodeechoestoregresaelcontrolalaVMquellevoacabolallamada.
Lasmquinasconvencionalesusanunrelojinternoparadeterminarlahoraactual.TenerunaunidaddemedidadeltiempoesfundamentalparaelfuncionamientodelSO.Xenposeeunrelojvirtualyunrelojbase.ElprimerocomienzasucontadordetiempoenelmomentoenquesecrealaVMyluegolomideennanosegundosdesdeelmomentodesucreacin.EsusadoparahacerlosclculosdelSchedulerporejemplo.ElotroesunrelojconvencionalqueXendebeencargarsedeajustaralahoracorrectaymantenerloencorrectofuncionamiento.
Dispositivodealmacenamiento.
SoloellaVM0eslaautorizadaparaaccederalosdispositivosdedisco.Lasrestantesutilizanunaabstraccindeeste,queconsisteenunarchivoalmacenadoeneldispositivofsico,queendondesonalmacenadoslosdatos.
Xenmantieneunalgoritmodecola,paraadministrarlospedidosdeE/Sdeldisco,quesonproporcionados
porlasdistintasVM.Buscahacerlaformamsrpidaderesponderalospedidosdeestos.
MigracindeMquinasVirtuales.
UnacaractersticamuyinteresantedeXeneslaposibilidaddepodermigrarlasmquinasVirtualesdeunacomputadoraaotra.Enesteprocesolamemoriaesmigradaiterativamentedesdeundispositivoalotro.Lointeresantedeesteprocesoesqueesposiblerealizarlosinhaberdetenidolamquinavirtual.Existeunpequeoretardodealrededorde60a300ms,quesonutilizadospararealizarajustesysincronizarlaVMquehasidocopiada.LatcnicademigracindeunaVMescomplejayabarcamuchosaspectosatenerencuenta(Memoria,datosalmacenadosendispositivosfsicos,etc.).LaMemoriaescopiadadeapginas.Siunprocesointentaaccederaunapginaqueestasiendocopiada,sedarunfalloysevolveratenerelaccesocuandoestedisponibles(queserluegodequehallasidocopiada).Sinembargo,elusuariopuedeutilizardistintaspolticasparaelcopiadodememoria.LamseficienteconsisteendetenerlaVMycopiarensutotalidadlamemoria.Estaalternativanoeslaapropiadaencasodequeseestecorriendounsistemaquenopuedeserdetenido.Otraalternativaeslacopiasegnlademanda.Primerocopialamemoriaesencialparapodercorreryluegocopialaspginassegnsondemandadasporlosprocesosqueestnenejecucin.Porultimoexisteunmtodollamadoprecopia,queconsisteencopiarnpaginasenintervalosdetiemposcortos.DurantelacopialaVMesdetenida.ParacopiarlosDatosdedispositivosfsicosseutilizantcnicassimilaresalasdememoria,siendomassimpleeltraspasodeestos.Paraevitarlacopialosservidoresgeneralmentesuelenutilizarotrotipodealmacenamientodedatos,comodispositivoscompartidos,porloquenoesnecesariohacerlacopiadelosdatos.
EstatcnicapuedeserinteresantesiesnecesariomigrardeservidorunaVMydetenerestaimplicaconflictos.
Acontinuacinsemuestrauncuadroqueresumeelprocesodemigracin8.
Paso1PreMigracin.SeinicialanuevaVMenlaquesequieremigrarlosdatos(VMB).Estaesseleccionadocomoobjetivoparacopiarlosdatos.
Paso2
Confirmacin.LaVMAenvaunpedidodeconfirmacinalaVMB.EstadebeconstatardequedisponedelosrecursosnecesariosparasoportarlaVmquesecopiara.Encasodequeestonoocurre,Acancelalacopiaysiguecorriendosinningnefecto.
Paso3Secopialamemoriadeformaiterativaobienconalgunodelosmtodosantesmencionados.
Paso4SesuspendelaVMA.ENestemomentoseredireccionaeltraficodelaredaBysecopianlaspginasdememoriaquenohanpodidocopiarseantes.Esunaetapadereajustedelosdatos.
Paso5Benvauncomunicadodequerecibicorrectamentelacopiadelaimagen.AseeliminayBseconvierteenelVMprimaria.
Paso6LuegoqueBesactivadocomoprimariaesprecisoactivarelprocesodepostmigracin,queseencargadereconfigurarlosdriversdelosdispositivos.
ComofuncionaXen?
Enesteapartadomostraremoscomofuncionadesdeelmomentodesuinstalacin.ParasupruebafueutilizadoLinuxSUSU10.1conKernel2.6.Comonocontamosconmicroprocesadoresquesoportenparavirtualizacin,esprecisoinstalarXenconunconjuntodeparchesparaelKernel.Lospaquetesestndisponiblesparasuinstalacinencualquieradelosrepositoriosdeladistribucin.Unavezinstalados,Seagregaunanuevaopcindebooteoenlamquina,enlacualsepuedeiniciarelnuevokerneldelinux
8 LiveMigrationofVirtualMachines.ChristopherClark,KeirFraser,StevenHand,JacobGormHansen,EricJul,ChristianLimpach,IanPratt,AndrewWarfield.
corriendobajoXen.
AlIniciardeestaforma,secrealaprimeramaquinavirtualsobrelaquecorrerelLinuxhost(lanmero0).Xencreadostiposdekernel,unoqueposeeprivilegiosespecialesyotroquenolosposee.ElprimeroesdejadoparalaprimeraVM(la0)mientrasqueelsegundoesdejadoparalassucesivasVMquesepuedancrear.LanecesidaddehacerestoesquelaVM0precisaadministraralasrestantes,porellodebepoderhaceroperacionesespecialesquenoleestnpermitidasalasotras.Elpasoaseguirescrearlassucesivasmquinasquesenecesitencorrer.Enelmomentodehacerlosedebeespecificarlacantidaddememoriaquesequierequeutilicecomomximo,unespaciodediscoendondesevanaalmacenarlosdatos,unidadesdeE/S,etc.Unavezespecificadosestosparmetrossecrealamquinavirtualquesimulaunanuevacomputadoraconelelhardwareantesmencionado.
PruebasdeRendimiento.
Acontinuacinsemuestranbenchmarkrealizadossobredistintosaspectos,endondesevequeXenbrindaunrendimientoqueesmuysimilaraldeunSOcorriendosinningunaVM.Enalgunosaspectossepodrobservarqueelrendimientoesinclusosuperior.AcontinuacinsedetallaranpruebasoficialesderendimientollevadasacaboconXenVMqueseencuentranenelmercado.
1. LaprimerapruebafuellevadacaboconunasuitedeevaluacinderendimientollamadaSPECINT200.EstaseencargaderealizarpruebasendistintosmbitosdelaPC.DentrodeellosseveelrendimientodelaCPU,pruebasdeE/S,pruebasdememoria,etc.
2. EnlasegundasepuedeobservareltiempoensegundosquetomocompilarLinuxconkernel2.4conlacompilacinpordefecto.
3. LasdospruebassiguientesfueronllevadasacaboconlabasededatosPostgreSQL7.Seevaluaronconlaconfiguracinpordefecto.Enlaprimeraseviolallegadadedatosdemltiplesusuarios,yenlasegundallegadaportransferenciaonline.
4. dbenchesunprogramaparahacertestingdesistemasdearchivos.EmulalacargaenunservidorrealizadaporclientesconWindows95.
5. Lasultimasbarras(SPECWEB99)esunasuitequeevalaelrendimientodeunservidorwebydelossistemasquelohostean.
COMPARATIVAENTREMAQUINASVIRTUALES
Seadjuntaarchivodehojadeclculos(comparativa.ods)endondesecomparandistintosaspectosdediversasmquinasvirtuales.Estatablafueextradadelawikipediaenespaol.
SPECINT200(score)
CompilaciondeLinux(Segundos)
OSDBIR(tups/s)
OSDBOLTP(tups/s)
dbench(score)
SpecWEB99(score)
0
200
400
600
800
1000
1200
1400
1600
1800
567
263172
1714
418518
567
271158
1633
400514554
334
80199
310
150
550 535
65
306
111172
PruebasdeRendimiento
LinuxNativoXen
VmwareWorkstation
LinuxUserMode
MALWARE
EnesteapartadoharemosunaespecialreseaauntemaqueinvolucraenlaactualidadalasVM.Comomalwaresedenominaauntipoespecialdesoftwarequetieneintencionesperjudicialesparaelusuarioylamquinaenlaqueseestcorriendo.Estetienelaparticularidaddequeposeeuncontrolsobreelsistemamuchomasampliodeelquetienecualquierotrosoftwareconlamismaintencin.
Elsoftwaremaliciosopuedecorrersobreunacapasuperioraladecualquiersoftwarequeseesteejecutando,generandodeestaformaquesepuedaninterceptarlassealesollamadasquerealiceelprimero.Porelloparapodercombatirlosenprecisoqueelsoftwaredeproteccinseencuentreenunacapainferioraeste.
ElmalwaresepresentacomounamquinavirtualqueseinstalasobreunhardwaredeterminadoycorreluegosobrecapasinferioresalsistemaoperativoHost(queesunacopiadeloriginal).Otraformaesquesecorradosomasmquinasvirtualesenparaleloyenalgunasdeellasseencuentrainstaladoelsoftwaremalicioso.
ElMalwaresacaprovechodedosaspectosquelebrindanpodercorrersobreunamquinavirtual,elprimeroserefierequealcorrersobreunaVMqueesindependientealasotrasloquelaaisladelosprogramasdeproteccin.Lootroqueutilizaesquepuedevermodificacionesqueocurranenelsistema,comocambioseneldisco,memoria,puertoscomoastambinlainterceptacindeseales,etc.
Acontinuacinseexplicaracomohacenestosprogramasmaliciososparainstalarse.Inicialmentenecesitantenerprivilegiosaltosparapodermodificarelmododebooteodelamquina,deestaformasebooteaconlaVMmaliciosa.Parahacerestosepuedenutilizardiversastcnicasquevandesdeelusodeprogramasparadichainstalacin,comoadquisicindeunacontraseaderoot,etc.Unavezqueestahaconseguidobootearmodificaelsistemadeformaquepuedacorrersinqueesteseadviertadesuexistencia.Deestaformalograquedarinstalada.
Luegodeestopuedecorrerdiversasaplicacionesmaliciosasqueafectenelsistema.Unodelosprimerospasosarealizaresdesactivarlossistemasdeproteccindelsistema.
Existentrestiposdeataquesposibles
1. Aquellosquenointerfierenconelsistema.Esdecirnoafectansufuncionamiento,laVMcorredeformaindependiente.
2. Aquellosqueinteractanconelsistema,peroparainterceptarseales,porejemplopararobarinformacin.
3. Aquellosquetienecomoobjetivodesestabilizarelsistema.Afectansufuncionamiento.
SibienunMalwaretieneunformadefuncionamientoquepuedecomprometermuchoalsistema,paraqueestospuedancorrerelprecisoinstalarseenunamquinadeterminadayparaellosprecisadeprivilegiosaltos.Sinesterequisitonoesposiblequepuedacorrer.
Losesquemasantesmostradossepuedenobservarenelsiguientegrfico
[SistemaoperativoREAL]|\>[Malware]+[MquinaVirtual]
\>[CopiadelSO]\>[Programasdelusuario]
obienpuedeserdelasiguienteforma:
[Mquinavirtual]\>[SOReal]+[MquinaVirtual]
\>[Mquinavirtual]
\>[SOCopia]\>[Programasdelusuario]
Lasegundaestructuraesmascomplejaynoestanfcilqueselleveacabo.Parapoderhacerestoesnecesarioutilizarlaparavirtualizacinobienunmicroprocesadorconsoporteparavirtualizacin.
CONCLUSION
LasVMhanevolucionadomuchodesdelasprimerasquefueronimplementadasporlosMainframesdeIBM.Sinembargoconelpasodeltiemposepudoverquesemantuvieronlosconceptosiniciales.
Elusodestasbrindasolucionesaproblemasdelosusuarios.Ademsexistendediversostiposparalasdistintasutilidades.Suprincipalaplicacinseharadicadoenelmbitoderedesparaoptimizarlautilizacindelosrecursos(Xen,VmWare,etc.),brindarfuncionesespeciales,compatibilidaddesistemasoperativos(JAVAvirtualmachine)yproporcionarseguridadenmbitosenlosqueesnecesarioprotegerelhardwarefsico.
Apesardelasventajassehapodidoverquepuedenserutilizadasconfinesmaliciosos(Malwares),siendounaformadeataquesofisticadoquepuedecausargrandesdaosenlossistemasafectados.
PodemosconcluirdiciendoquelaslasVMtieneunfuturoextenso,sepuedeobservarcomoelhardwareevolucionaparapoderbrindarlesmayoresfuncionalidadesyposeenunestadodemaduracinquepermitesuutilizacindeformasegura.
Bibliografa
www.wikipedia.com
www.qemu.com
http://www.cl.cam.ac.uk/research/srg/netos/xen/
http://www.vmware.com/
http://www.sun.com/
http://es.morse.com/tp_18.htm
www. intel .com/
www. amd .com
www.eecs.umich.edu/ virtual /papers/king06.pdf
SistemasOperativosModernos.AndrewS.Tanenbaum
XenandtheArtofVirtualization.PaulBarham,BorisDragovic,KeirFraser,StevenHand,TimHarris,AlexHo,RolfNeugebauer,IanPratt,AndrewWareld