1. Seguretat Informàtica
UF4 Alta disponibilitat – Part 2
Virtualització
Xavier Sala Pujolar
Institut Cendrassos
2. Introducció
● Des de fa molt de temps en Informàtica s'ha
intentat fer servir l'ordinador per simular
sistemes diferents del que es té...
Administració de Sistemes Informàtics i Xarxes
3. Tipus
● Es fan servir diferents tècniques per simular els
sistemes:
Emulació Virtualització
completa
Virtualització Paravirtualització
Virtualització
Virtualització a nivell de SO
parcial
Administració de Sistemes Informàtics i Xarxes
5. Emuladors
● Es basa en crear programes que emulen el
funcionament d'una o diverses plataformes de
maquinari
– Normalment per aconseguir executar programes
que només s'executen en aquestes plataformes
Administració de Sistemes Informàtics i Xarxes
6. Emulació
● És el tipus de virtualització més costosa i per
tant la menys eficient
– Obliga a simular completament per software
qualsevol aspecte del maquinari a simular
– Com que s'ha de traduir tot el resultat és força lent
● Però també ofereix alguns avantatges:
– Pot executar sistemes operatius dissenyats per
altres plataformes sense modificar-los
– Permet desenvolupar firmware per dispositius
hardware sense tenir el maquinari real
Administració de Sistemes Informàtics i Xarxes
7. Bochs
● Emulador de PC de
codi lliure
● Funciona en
arquitectures x86 de
32 i 64 bits
● Pot executar la major
part dels sistemes
operatius emulant-los
http://bochs.sourceforge.net/
Administració de Sistemes Informàtics i Xarxes
8. QEmu
● QEMU és un emulador i
virtualitzador de codi
obert
● Pot emular diferents
plataformes com x86,
x86-64, PowerPC,
SPARC o MIPS.
● Amb Xen i KVM pot
funcionar com
virtualitzador
Administració de Sistemes Informàtics i Xarxes
9. MAME
● Un dels camps en
que els emuladors
són més populars és
en l'emulació de jocs
● El Multiple Arcade
Machine Emulator
(MAME) és un
emulador de
màquines recreatives
– Funciona a partir de
volcats de les ROM
originals
Administració de Sistemes Informàtics i Xarxes
10. DOSBOX i DOSEmu
● També ha tingut èxit
l'emulació d'antics
sistemes operatius
● MS-DOS ha estat un
dels més emulats (i
per tant les primeres
versions de Windows)
● Exemples poden ser:
– DOSBox
– DOSEmu
Administració de Sistemes Informàtics i Xarxes
12. Virtualització completa
● La virtualització fa referència a l'abstracció dels
recursos d'un ordinador per crear-ne d'altres
Administració de Sistemes Informàtics i Xarxes
13. Virtualització
● La virtualització intercepta els intents d'accedir
al hardware de les màquines virtuals i n'emula
el funcionament per programari
Escriure
a disc
Això fa que els sistemes
virtualitzats siguin més
lents que els sistemes
instal·lats en màquines
reals
Administració de Sistemes Informàtics i Xarxes
14. Classificació
● A grans trets es pot dividir la virtualització de
sistemes en dues grans categories:
Virtualització de
sistemes operatius
sencers
Virtualització a
nivell de procés
Administració de Sistemes Informàtics i Xarxes
15. Virtualització per maquinari
● Els processadors basats en l'arquitectura x86
han inclòs millores tècniques per millorar el
rendiment de les VM
– Intel VT: Plataformes d'Intel
– AMD-V: Processadors d'AMD
● El maquinari gràcies a aquestes extensions
ajuda a incrementar el rendiment de la
virtualització
● En molta documentació això es coneix com
HVM (Hardware Assisted Virtualization)
Administració de Sistemes Informàtics i Xarxes
16. Virtualització per maquinari
● Hi ha moltes eines que permeten comprovar si
un processador suporta virtualització per
hardware
– Securable (http://www.grc.com/securable.htm)
Administració de Sistemes Informàtics i Xarxes
17. Virtualització per maquinari
● En alguns processadors no està activada però
normalment es pot activar en la BIOS
Administració de Sistemes Informàtics i Xarxes
19. Virtualització de sistemes
● És la més coneguda
● Permet que es puguin executar diferents
sistemes operatius alhora
Administració de Sistemes Informàtics i Xarxes
20. Virtualització completa
● Són solucions que permeten executar sistemes
operatius sense haver-los de modificar
– Però ha de ser un sistema compatible amb la
plataforma usada
NO
64 bits
32 bits
SI
Intel x86
32 bits 32 bits
Administració de Sistemes Informàtics i Xarxes
21. Virtualització completa
● La virtualització
completa sovint no
vol dir simular tot el
maquinari de l'equip
sinó els components
principals
– Els altres perifèrics
(targetes de vídeo,
xarxa, etc..) no es
virtualitzen
– Es fan servir
dispositius genèrics
Administració de Sistemes Informàtics i Xarxes
22. Virtualització completa
● El resultat és un sistema amb un rendiment
molt superior a l'emulació
● Tot i fer servir l'ajuda que ofereix el maquinari el
rendiment és inferior a l'execució nativa
Execució
Nativa
Virtualització
Emulació
1
2 3
Administració de Sistemes Informàtics i Xarxes
23. Capa d'abstracció
● L'abstracció dels recursos es fa a través d'un
hipervisor o un monitor de màquines virtuals
(VMM)
Administració de Sistemes Informàtics i Xarxes
24. Hipervisors
● Els hipervisors es poden classificar en dos
grans grups:
Tipus 1: Hipervisor nadiu Tipus 2: Hipervisor hoste
Administració de Sistemes Informàtics i Xarxes
25. Hipervisor hoste
● S'executa sobre el sistema
operatiu convencional
● La virtualització es fa més
lluny del maquinari i el
rendiment és inferior
● Exemples:
– Oracle Virtualbox
– VMWare Workstation
– VMWare Server
– Microsoft Virtual PC
– KVM
Administració de Sistemes Informàtics i Xarxes
26. VMWare Workstation/Player /Server
● Per plataformes x86
● Permet executar
múltiples instàncies
de sistemes operatius
● A través de drivers
específics
aconsegueix una
integració
● La versió Player i
Server són gratuïtes
Administració de Sistemes Informàtics i Xarxes
27. Oracle VirtualBox
● Per arquitectures x86
● A través de drivers
específics
aconsegueix una
integració
● Té una versió GPL i
una comercial
Administració de Sistemes Informàtics i Xarxes
28. Windows Virtual PC
● Per plataformes x86
● Només funciona en
Windows 7 i
posteriors
● Permet simular
sistemes Windows
des de Windows XP
● Gratuït per versions
professional i
Enterprise
Administració de Sistemes Informàtics i Xarxes
29. Mode XP
● En els Windows 7 es
pot instal·lar el “XP
Mode”
● Permet executar
aplicacions simulant
un XP SP3
● Els programes
apareixen el menú i
s'executen en
l'escriptori
● Necessita Windows
Virtual PC
Administració de Sistemes Informàtics i Xarxes
30. Hipervisor nadiu
● S'executa directament
sobre el maquinari real
● Controla el maquinari i en
monitoritzar els sistemes
virtualitzats.
● Exemples:
– VMware vSphere
– VMWare ESX
– XEN
– Citrix XenServer
– Microsoft Hyper-V Server
Administració de Sistemes Informàtics i Xarxes
31. VMWare ESXi
● VMware ESXi i ESX
són hipervisors
nadius
● Específicament
pensats per executar
servidors
● El client només
funciona en sistemes
Windows
Administració de Sistemes Informàtics i Xarxes
32. XEN
● Xen pot funcionar
com a hipervisor
nadiu
● La capa d'hipervisor
sol ser Linux però pot
ser Solaris, BSD, ...
● Pot usar-se per:
– Virtualització
completa si es té
acceleració de
maquinari
– Paravirtualització
Administració de Sistemes Informàtics i Xarxes
33. XEN
● Xen està format per una màquina virtual que
anomena Dom0 i una sèrie de clients (DomU)
– Dom0 controla el maquinari real i els clients
– Pot donar exclusivitat a una màquina (PCI
passthrough)
Dom0
DomU
Administració de Sistemes Informàtics i Xarxes
34. XEN
● Una part dels
sistemes en el núvol
es basen en XEN:
– Amazon, Cloud.com,
Rackspace,
GoGrid...
– Gràcies al suport de
“migració en viu”
● O solucions de
virtualització:
– Citrix Xenserver,
Oracle VM, ...
Administració de Sistemes Informàtics i Xarxes
35. Citrix XenServer
● XenServer és un
hipervisor nadiu
● Està basat en el
funcionament de Xen
● El client, XenCenter,
només funciona en
Windows però hi ha
gestors lliures
Administració de Sistemes Informàtics i Xarxes
36. Xen Cloud Platform (XCF)
● Solució de codi obert
basada en XenServer XCF
● Agafa com a base
CentOS Linux
● Fa funcions
d'hipervisor i de
gestió de núvols
● Suporta virtualització
per maquinari i
paravirtualització
● Sense GUI
Administració de Sistemes Informàtics i Xarxes
37. Hyper-V
● És un hipervisor per
sistemes de 64 bits
– Amb suport de
maquinari
● Està integrat en
Windows 2008 Server
– Té una versió gratuïta
limitada
● Es controla amb el
System Center Virtual
Machine Manager
Administració de Sistemes Informàtics i Xarxes
38. Virtualització a nivell de nucli
● En alguns casos
l'hipervisor és el nucli
d'un sistema operatiu
● Un nucli especialment
modificat per
gestionar i controlar
diverses màquines
virtuals
Nucli
Administració de Sistemes Informàtics i Xarxes
39. Linux KVM
● És un mòdul del nucli
de Linux que permet
virtualitzar en
sistemes x86 amb
virtualització per
maquinari
● En el nucli de Linux
des de la versió
2.6.20
● De codi obert
Administració de Sistemes Informàtics i Xarxes
40. User Mode Linux (UML)
● User-mode Linux (UML)
és una modificació del
nucli perquè suporti la
seva interfície de crides
● Permet virtualitzar
dispositius
– La màquina virtual pot tenir
hardware diferent del real
● La màquina virtual
s'emmagatzema en un sol
arxiu
http://user-mode-linux.sourceforge.net/
Administració de Sistemes Informàtics i Xarxes
42. Paravirtualització
● Va sorgir com una forma de millorar l'eficiència
de les màquines virtuals i acostar-la més al
rendiment nadiu.
Execució
Nativa
Paravirtualització
Virtualització
1
2 3
Administració de Sistemes Informàtics i Xarxes
43. Paravirtualització
● Per poder fer servir la paravirtualització cal que
el sistema virtualitzat estigui preparat per ser
executat dins de l'hipervisor
– Normalment oferint una interfície en forma de
driver que l'hipervisor podrà fer servir
Driver
Hipervisor
Driver
Administració de Sistemes Informàtics i Xarxes
44. Paravirtualització
● Es basa en la idea de que el sistema “sap” que
està sent virtualitzat
● D'aquesta forma la màquina virtual pot
col·laborar amb l'hoste
– No li caldrà controlar totes les instruccions
– Podrà executar les seves instruccions directament
en el processador sense haver de traduir-les
Administració de Sistemes Informàtics i Xarxes
45. XEN
● Xen provablement és
el més conegut dels
sistemes
paravirtualitzadors
● El nucli de Linux, des
de les versions 3.0,
pot ser tant Dom0
com DomU
● També pot ser usat
per paravirtualitzar
Windows (DomU)
Administració de Sistemes Informàtics i Xarxes
46. Hyper-V
● Suporta
paravirtualització
d'alguns sistemes
– La API està disponible
● Divideix els sistemes
operatius en
enlightened
(funcionen sobre
Hyper-V directament)
i unenlightened
Administració de Sistemes Informàtics i Xarxes
47. Virtualització
Virtualització:
Virtualització a nivell
de sistema operatiu
Administració de Sistemes Informàtics i Xarxes
48. Virtualització a nivell de SO
● Aquest tipus de virtualització és típica dels
sistemes Unix
– FreeBSD Jails, Solaris Containers, ...
● S'aprofita de la possibilitat de canviar
dinàmicament l'arrel del sistema operatiu (el
típic chroot)
● Simplificant un sistema operatiu és:
– El nucli
– El sistema de fitxers arrel que té tot el necessari
per poder ser executat (llibreries, dispositius,
etc..)
Administració de Sistemes Informàtics i Xarxes
49. VPS
● La idea és fer que un nucli d'un sistema
operatiu executi diverses instàncies aïllades de
si mateix
En aquest
sistema de
virtualització és
el nucli el que fa
d'hipervisor
Administració de Sistemes Informàtics i Xarxes
50. VPS
● Si cada execució té el seu propi sistema de
fitxers podem fer veure que tenim sistemes
diferents: Servidors privats Virtuals
Administració de Sistemes Informàtics i Xarxes
51. VPS
● Les limitacions estan en que:
– Es comparteix el nucli del sistema operatiu i per
tant ha de ser modificat per poder funcionar
d'aquesta forma.
– Serà el nucli el que farà que cada sistema només
vegi les seves característiques
● Però per contra:
– Són molt més eficients que els hipervisors (només
gasten els cicles de CPU que calen als
programes per funcionar!)
– Fàcils de gestionar des del host
Administració de Sistemes Informàtics i Xarxes
52. VPS
● El rendiment dels VPS és gairebé nadiu
– En realitat és l'execució d'un programa nadiu
● S'estant fent molt populars en:
– Virtualització de servidors
– Desenvolupament d'aplicacions del nucli
– Fer experiments
– Executar programari en Sandbox
● Un problema és que un error en el kernel
original deixar tots els servidors caiguts
Administració de Sistemes Informàtics i Xarxes
53. LinuX Containers (LXC)
● És virtualització a
nivell de sistema
operatiu per executar
màquines aïllades en
un host
– No cal modificar el
nucli
● No són màquines
virtuals sinó entorns
virtuals
● Similar a chroot però http://lxc.sourceforge.net/
més aïllat
Administració de Sistemes Informàtics i Xarxes
54. Linux VServer
● Permet virtualitzar
sistemes Linux
– Nuclis modificats
● Ho fa aïllant el nucli
perquè pugui
executar múltiples
instàncies virtuals
d'ell mateix alhora
● Molt útil per oferir
serveis de hosting a
diferents clients
http://linux-vserver.org
Administració de Sistemes Informàtics i Xarxes
55. OpenVZ
● OpenVZ permet
virtualització VPS per
Linux
● Basat en plantilles i
en la modificació del
nucli
● Permet assignar
dinàmicament els
recursos (memòria,
processador,...)
Administració de Sistemes Informàtics i Xarxes
56. Virtuozzo
● Virtuozzo és una solució
VPS basada en capes.
● Permet fer migracions en
calent, comunicació entre
les màquines virtuals
instal·lades
● Es pot instal·lar en Linux i
Windows (32/64 bits)
● Es fa servir sobretot per
virtualització de servidors
web i de correu
Administració de Sistemes Informàtics i Xarxes
58. Virtualització de processos
● La idea és executar un programa aïllant-lo del
sistema
– Perquè no és compatible amb l'actual o perquè
és d'un altre sistema operatiu
– Per fer-li creure que té accés a zones amb
privilegis que no té
– Perquè es vol saber què fa sense que afecti al
sistema (Sandbox)
Administració de Sistemes Informàtics i Xarxes
59. Virtualització de processos
● Windows pot
virtualitzar processos
– Fa creure als
programes que
tenen accés al
registre o a zones
del disc protegides
– Incrementa la
compatibilitat amb
d'aplicacions
antigues
● També ho pot fer amb
“XP Mode”
Administració de Sistemes Informàtics i Xarxes
60. Virtualització parcial
● Es basen en intentar millorar el rendiment de la
virtualització no emulant tot el sistema operatiu.
● La idea és virtualitzar des del punt de vista de
l'aplicació.
– No cal virtualitzar-ho tot sinó només el que cal per
enganyar al programa perquè ho cregui
Administració de Sistemes Informàtics i Xarxes
61. WINE
● Wine es basa en la
reescriptura de les
llibreries de l'API de
Windows
● Permet executar
programes Windows
des d'altres sistemes
● No emula el sistema
operatiu sinó que
simula algunes
llibreries http://www.winehq.org/
Administració de Sistemes Informàtics i Xarxes
62. Cooperative Linux
● Modificació del nucli
de Linux per ser
executat en espai
d'usuari de Windows
● Només funciona en http://www.colinux.org/
versions de 32 bits
● Desenvolupen una
versió de Debian
– Però és fàcil trobar
enllaços a altres
distribucions
Administració de Sistemes Informàtics i Xarxes
63. andLinux
● Versió Ubuntu que es
pot executar en
sistemes Windows de
32 bits
● Té el nucli de
CoLinux
● Permet executar
aplicacions Linux
sense cap
modificació
http://andlinux.org/
Administració de Sistemes Informàtics i Xarxes