Virtualizacija
Virtualizacija
Sadr
Sadr
ž
ž
aj
aj
:
:
v Virtualizacija (općenito)
w Što je virtualizacija, tipovi virtualizacije, komparacija softvera.
v Virtualizacijski alati:
Pregled:
w MS Virtual PC
w VMWare Workstation w VMWare Virtual Server w VMWare Player
Instalacija, konfiguracija, detalji:
•UML (User Mode Linux) •XEN
•SOLARIS 10 zones Superdetaljno:
Virtualizacija?
Virtualizacija?
v
“Apstrakcija” računalnih resursa
w Platformska… virtualni strojevi
Platformska virtuali
Platformska virtuali
zacija
zacija
v
Emulacija ili simulacija
v
“Native” ili potpuna virtualizacija
v
Parcijalna virtualizacija
v
Paravirtualizacija
v
OS ili system-level virtualizacija
Paravirtualizacija (Xen)
Paravirtualizacija (Xen)
Virtualna mašina nemora neophodno simulirati hardver već postavljaspecijalni API koji se može koristiti kroz modifikaciju “guest” OS-a. Ovaj system-call tom tkzv. “hipervizoru”
Puna virtualizacija (VMware)
Puna virtualizacija (VMware)
Virtualna mašina simulira onoliko hardvera koliko je potrebno da “guest” OS ostane nemodificiran i pokrenut u izolaciji. Uobičajena je mogućnost pokretanja više instanci odjednom.
Resursna virtualizacija
Resursna virtualizacija
v
RAID, volume managers
v
Storage virtualization
vChannel bonding
vVPN, NAT
vGrid/klasteri
vParticioniranje
vEnkapsulacija
Primjena
Primjena
v
Konsolidacija servera
v
Disaster recovery
v
Testiranje i edukacija
x86 virtualizacija
x86 virtualizacija
• Host OS à Guest OS
• 2005, 2006.. Intel, AMD – hardverske ekstenzije
• Virtualni strojevi
– Ekvivalencija – Kontrola resursa – Efikasnost• Instruction set
architecture (ISA)
– Privileged – Control sensitive – Behavior sensitiveVirtualizacijski softver:
Virtualizacijski softver:
• Blue Pill
• Enomalism
• Kernel-based Virtual
Machine
• MS Virtual PC / Virtual
Server
• Parallels Workstation
• UML
• Real-Time Systems
• VirtualBox
• Virtual Iron
• VirtualLogix
• VMware
• Xen
• Solaris 10
Virtualizacijski softver:
Virtualizacijski softver:
1.
Microsoft Virtual PC
2.
Solaris 10 Zones
3.
User Mode Linux
4.
XEN
5.
Microsoft Virtual Server
6.
VMWare Workstation
Virtualizacijski softver:
Virtualizacijski softver:
• http://en.wikipedia.org/wiki/Comparison_of_virtual_machines
NetBSD, Linux, Solaris (Same as host) Intel x86, AMD64 University of Cambridge, Solaris (Same as host) x86, x86-64, SPARC Sun Microsystems Zones (Solaris 10)
None (bare metal install) Intel x86, AMD64
Intel x86, AMD64 VMware
VMware ESX Server 3.0
Windows, Linux Intel x86, AMD64 Intel x86, AMD64 VMware VMware Workstation 6.0 Windows 2003, XP Intel x86 Intel x86, AMD64 Microsoft Virtual Server 2005 R2
Windows Vista (bus+), XP Pro/tablet itd Intel x86 Intel x86 Microsoft Virtual PC 2007 Linux (Same as parent) Intel x86, PowerPC Jeff Dike & co.
User Mode Linux
Host OS Guest Processor
Host Processor Creator
Virtualizacijski softver:
Virtualizacijski softver:
Native speed Consolidation, Separation, Security... CDDL (Free) Operating system-level virtualization Zones (Solaris 10) Up to near native Consolidation, Continuity, Dev/Test Proprietary VirtualizationVMware ESX Server 3.0
Up to near native Advanced Dev/Test, Trainer
Proprietary Paravirtualization (VMI) and
Virtualization
VMware Workstation 6.0
Near native with Virtual Machine additions Server, Server Farm
Proprietary (Free) Virtualization
Virtual Server 2005 R2
Near native with Virtual Machine additions Hobbyist, Developer,
Business workstation Proprietary (free from Jul
2006) Virtualization
Virtual PC 2007
Native speed used as a separate machine
GPL version 2 Porting
User Mode Linux
Guest OS speed relative to Host OS Typical use
License Method of operation
Virtualizacijski softver:
Virtualizacijski softver:
NAT. A modified guest kernel required for guest Yes
Yes Linux, *BSD, Solaris,
Windows XP & 2003 Server,
Xen
N/A No
Yes, over 100-way Solaris, Linux (BrandZ)
Zones (Solaris 10)
Yes Yes
Yes Windows, RedHat, SuSE,
Netware, Solaris
VMware ESX Server 3.0
Yes Yes
Yes DOS, Windows, Linux,
FreeBSD, Netware, Solaris,
VMware Workstation 6.0
Yes Yes
No Windows NT, 2000, 2003,
Linux (Red Hat and SUSE)
Virtual Server 2005 R2
Yes Yes
No DOS, Windows, OS/2
Virtual PC 2007
??? No
??? Linux
User Mode Linux
Drivers for supported guest OS Runs Arbitrary OS
Guest OS SMP Officially supported guest
OS Name
Microsoft Virtual PC
Microsoft Virtual PC
v http://www.microsoft.com/windows/downloads/virtualpc/default.mspx
w Besplatan
w PC emulacija
w 32bit, VESA, AMI BIOS, SB16, DEC2104 w Macintosh
w Dynamic recompilation x86 à PowerPC w Linux?
w 16 bit video emulation.
VMWare Workstation
VMWare Workstation
v http://www.vmware.com/products/player/
w Besplatno.
w Pokretanje i korištenje postojećih virtualnih strojeva
kreiranih u VMWare workstationu, serveru i drugim alatima.
w Nemogućnost kreiranja i konfiguriranja vlastitih
VMWare Virtual Server
VMWare Virtual Server
v http://www.vmware.com/products/server/
w Besplatno
w “Standalone” virtualizacijski server.
w Particionira resurse postojećeg fizičkog poslužitelja na
način da se omogući instalacija i rad više virtualnih strojeva na jednom virtualizacijskom poslužitelju
w Nedostaju mnoge napredne opcije dostupne kod ESX
VMWare Player
VMWare Player
v http://www.vmware.com/products/ws/
w “Desktop” virtualizacija
w Mogućnost kreiranja i konfiguriranja te pokretanja
vlastitih virtualnih strojeva
w Omogućava korištenje više OS-ova simultano na
jednom desktop računalu
User Mode Linux
User Mode Linux
v http://user-mode-linux.sourceforge.net/
w Pokretanje linuxa “unutar” linuxa. w Besplatno
User Mode Linux
User Mode Linux
Hardver
Linux kernel
Proces 1
User mode linux
Proces X Proces 2 Hardver Linux kernel Proces 1 Proces 2 Proces X
User Mode Linux
User Mode Linux
v Ako se UML kernel sruši, osnovni kernel ostaje netaknut v Usermode kernel se može pokrenuti pod običnim
korisnikom
v UML se može debugirati kao bilo koji normalan proces v Gprof (profiling), Gcov (coverage testing).
v Sigurno testiranje bez rizika za korupcijom krenela v Izolirano okružje za testiranje novih aplikacija
v Pokretanje različitih distribucija linuxa istovremeno na
istom hardveru
User Mode Linux
User Mode Linux
: Instalacija
: Instalacija
v Download - najnoviju UML zakrpu v Download - pripadajući kernel
v Kreacija direktorija i raspakiravanje kernela:
# mkdir ~/uml
User Mode Linux
User Mode Linux
: Instalacija
: Instalacija
v Primjena uml kernel zakrpe
# cd ~/uml/linux
# bzcat uml-patch-2.4.0.bz2 | patch -p1
v Pokretanje configa po izboru:
# make xconfig ARCH=um # make config ARCH=um
User Mode Linux
User Mode Linux
: Instalacija
: Instalacija
v Te na kraju:
# make linux ARCH=um
v Rezultat je datoteka sa imonom ‘linux’ vršnom direktoriju
User Mode Linux
User Mode Linux
:
:
UML Utilities
UML Utilities
v Mnoge funkcije UML kernela zahtjevaju i paket
uml_utilities koji uključuje alate:
w port-helper - koriste ga konzole koje se spajaju na xterms or ports w tunctl – konfiguracijski alat kojim se kreiraju I brišu tap devices w uml_net - Setuid binary za automatsku tap device konfiguraciju w uml_switch - User-space virtual switch neophodan za for daemon
User Mode Linux
User Mode Linux
: Konzole
: Konzole
v Moguće je spojiti UML serijske linije i konzole na mnoge
tipove host I/O kanala
v Moguće ih je spajati na host pty, tty, file descriptors, i
portove. Čime je moguće:
w imati UML konzolu na neiskorištenoj host konzoli
w Spojiti dva virtualna stroja tako da je jedan spojen na pty a drugi
na pripadajući tty
w Napraviti virtualni stroj dostupan na mreži spajanjem konzole na
port na hostu
User Mode Linux
User Mode Linux
: Konzole
: Konzole
v spajanje UML device na specificirani tty:
con1=tty:/dev/tty3
v spajanje UML device na specificirani host port:
con1=port:9000
User Mode Linux
User Mode Linux
: SKAS
: SKAS
v Problem?
w The UML kernel prisutan u adresnom prostoru svakog procesa…
default writable
w UML-ov “Jail” mod popravlja ovaj problem tako što postavlja UML
podatke u readonly mod dok je proces pokrenut… dramatično usporenje performansi.
w UML koristi svoje signale za prisilno kontroliranje UML krenela
User Mode Linux
User Mode Linux
: SKAS
: SKAS
v
Separate Kernel Address Space (SKAS)
w Zamjenjuje “Stari” Tracing Thread
• Svaki UML proces je proces unutar “host” kernela
• Tracing thread radi system call tracing unutar UMLovih procesa
• Tracing thread poništava system calls i “gura” proces u UML kernel mapiran u istom adresnom prostoru
User Mode Linux
User Mode Linux
: MC
: MC
v
Management Console za UML
w Low-level interface prema kernelu (SysRq) w Omogućava:
• dobivanje kernel verzije
• dodavanje i micanje devices • halt ili reboot virtualnog stroja • slanje SysRq naredbi
• pauziranje UML -a
• backupiranje bez zaustavljanja UML-a • primanje obavjesti od virtualnih strojeva
User Mode Linux
User Mode Linux
: MC
: MC
v Zahtjeva mconsole client (uml_mconsole) koji se može
naći u CVS (/tools/mconsole) u 2.4.5-9um i kasnijim.
v Takoñer je potrebno podesiti CONFIG_MCONSOLE (pod
XEN
XEN
v http://www.cl.cam.ac.uk/research/srg/netos/papers/2003-xensosp.pdf v http://www.dell.com/downloads/global/power/ps3q05-20050191-Abels.pdf
• Paravirualizacija
• x86 virtual machine monitor • Apstrakcija hardware-a
• Modificirani guest OS (kernel) • Paravirtualizirani x86 interface • VM isolation
XEN
XEN
XEN
XEN
Asinhroni IO prsten za prenošenje
podataka izmeñu Xen-a i guest OS-a
XEN: instalacija
XEN: instalacija
# tar xvzf xen-{VERSION}-src.tgz # cd xen-{VERSION}
# cd linux-{VERSION}-xen0 # make ARCH=xen menuconfig
MAKE SURE TO ENABLE THESE OPTIONS: *Connection State Match Support
* Connection Tracking Match Support # cd ..
XEN: instalacija
XEN: instalacija
v Grub.conf
title Xen 2.0 / XenLinux 2.6.11
kernel /boot/xen.gz dom0_mem=131072
module /boot/vmlinuz-2.6.11-xen0 root=/dev/sda4 ro console=tty0
v Ili za serial console pristup xenu:
XEN: instalacija
XEN: instalacija
# Kernel image file. kernel = "/boot/vmlinuz-2.6.10-xenU"
# Optional ramdisk.
#ramdisk = "/boot/initrd.gz"
# The domain build function. Default is 'linux'. #builder='linux‘
# Initial memory allocation (in megabytes) for the new domain. memory = 64
# A name for the new domain. All domains have to have different names,
# so we use the vmid to create a name. name = "VM%d" % vmid
# Which CPU to start domain on? #cpu = -1 # leave to Xen to pick cpu = vmid
# Define network interfaces.
# Number of network interfaces. Default is 1. #nics=1 # Optionally define mac and/or bridge for the network
interfaces.
# Random MACs are assigned if not given. vif = [
'mac=aa:00:00:7f:de:c5, bridge=xen-br0, ip=10.0.0.11' ]
#
---# Define the disk devices you want the domain to have access to, and
# what you want them accessible as.
# Each disk entry is of the form phy:UNAME,DEV,MODE # where UNAME is the device, DEV is the device name the
domain will see,
# and MODE is r for read-only, w for read-write.
# This makes the disk device depend on the vmid - assuming # that devices sda7, sda8 etc. exist. The device is
exported to all domains as sda1. #disk = [ 'phy:sda%d,sda1,w' % (7+vmid),
# 'phy:sda6,sda6,r' ] disk = [ 'phy:hda5,sda1,w',
PYTHON SKRIPTA NA!!:
XEN: za
XEN: za
š
š
to
to
?
?
• Open source
• Pokretanje više instanci operativnih sistema. • Klasteriranje apstrakcijom hardvera.
• Relativno jednostavan (dužina source koda od 40000
linija).
• Podrška za Xen u raznim distribucijama Linux OS, kao i
najave AMD-a, Intel-a za procesorsku podršku virtualizaciji.
Solaris 10 (zones)
Solaris 10 (zones)
v Zone omogućavaju laku konsolidaciju više fizičkih sustava
u jedinstveni fizički sustav pod kojim je pokrenuto više instanci Solaris 10 OS-a.
v Primjena različitih verzija softvera koji inače nemože
funkcionirati na istom sustavu sada mogu biti pokrenute na istom fizičkom stroju ali u različitim odvojenim zonama.
v Aplikacije mogu biti pokretane bez ikakvog utjecaja jedna
Solaris 10 (zones)
Solaris 10 (zones)
Solaris 10 (zones)
Solaris 10 (zones)
v Svaka zona ima svoj osobni identitet sa jedinstvenim:
w Hostname
w Root i korisničkim account i passwordima. w Ip adresom
w Strukturom direktorija.
v Ovime se postiže da svaka zone izgleda kao zasebni
sustav što omogućava brzu, jednostavnu i sigurnu konsolidaciju.
Solaris 10 (zones)
Solaris 10 (zones)
Solaris 10 (zones)
Solaris 10 (zones)
v Može se kreirati do 8192 zasebne zone na jednom
fizičkom poslužitelju.
v Korisnicima, aplikacijama i administratoru zone izgledaju
kao zasebni izolirani sustavi.
v Greška u jednoj zoni nemože kompromitirati ili utjecati na
drugu zonu.
v Zone se kreiraju koristeći zonecfg naredbu u:
w 1. Interactive mode w 2.Command line mode w 3.Command file mode
Solaris 10 (zones)
Solaris 10 (zones)
v Postavljanje konfiguracije zone sa odabranim imenom
zone:
global# zonecfg-z my-zone
v Kreiranje nove konfiguracije zone:
Solaris 10 (zones)
Solaris 10 (zones)
v Postavljanje zone path, /export/home/my-zone
procedurom :
zonecfg:my-zone> set zonepath=/export/home/my-zone
v Postavljanje autobootvalue :
Solaris 10 (zones)
Solaris 10 (zones)
v Dodavanje file sistema:
zonecfg:my-zone> add fs
v Postavljanje mount-point za file sistem /usr/local:
zonecfg:my-zone:fs> set dir=/usr/local
v Specificiranje /opt/local u globalnoj zoni kao mount point
/usr/local u zoni koju konfigururamo:
Solaris 10 (zones)
Solaris 10 (zones)
v Postavljenje tipe file sustava:
zonecfg:my-zone:fs> set type=??? zonecfg:my-zone:fs> end
v Dodavanje virtualnog mrežnog interfejsa:
zonecfg:my-zone>add net
zonecfg:my-zone>set address 192.168.0.1. zonecfg:my-zone>set physical=hme0
Solaris 10 (zones)
Solaris 10 (zones)
v
Dodavanje komentara pomoću attr resource type:
zonecfg:my-zone>add attr
zonecfg:my-zone:attr>set name=comment zonecfg:my-zone:attr>set type=string
zonecfg:my-zone:attr>set value=“Moja zona” zonecfg:my-zone:attr>end
Solaris 10 (zones)
Solaris 10 (zones)
v Provjera konfiguracije zone:
zonecfg:my-zone> verify
v Spremanje konfiguracije zone:
zonecfg:my-zone> commit
v Izlaz iz zonecfg naredbe:
Solaris 10 (zones)
Solaris 10 (zones)
v Instalacija konfigurirane zone my-zone:
# zoneadm – z my-zone install # zoneadm – z my-zone boot
# zoneadm – z my-zone list –v
v Uninstalacija konfigurirane zone my-zone:
# zoneadm – z my-zone uninstall # zoneadm list -iv
Solaris 10 (zones)
Solaris 10 (zones)
v
Moguće je postaviti ograničenja na resurse
dostupne odreñenoj zoni na nekoliko načina:
w Alociranjem prostora dostupnog file sustavu
w Ograničavanjem fizičke memorije projektima unutar
zone
w Alociranjem CPU resursa zona kreacijom “resource
Solaris 10 (zones)
Solaris 10 (zones)
# pooladm -e
# poolcfg -dc ‘create psetmy-pset( uintpset.min= 1 ; unit pset.max= 2 )’
# poolcfg -dc ‘create pool first-pool’
# poolcfg –dc ‘associate pool first-pool (psetmy-pset)’
VMWare Infrastructure 3
VMWare Infrastructure 3
v http://www.vmware.com/download/vi/eval.html
v VMware ESX Server: platforma za virtualizaciju servera, storage
sustava te mreže
v VMware VMFS: klasterirani file sustav za virtualizaciju storage-a
v VMware Virtual SMP: podrška za multiprocesore unutar virtualnih
mašina
VMWare Infrastructure 3
VMWare Infrastructure 3
v VMware High Availability (HA): sustav visoke dostupnosti virtualnih
strojeva
v VMware DRS: dinamičko balansiranje i alokacija resursa za virtualne
strojeve
v VMware Vmotion: migracija virtualnih strojeva “u živo” bez prekida
rada servisa
v VMware Consolidated Backup: Centralizirani backup softver za
VMWare Infrastructure 3
VMWare Infrastructure 3
• Za potpunu
iskorištenost naprednih
funkcija, potreban je:
– klaster dva ili više fizičkih servera za potrebe virtualizacije – centralizirani storage
VMWare
VMWare
VI3: storage
VI3: storage
Centralizirani storage
VMWare
VMWare
VI3: mre
VI3: mre
ž
ž
a
a
Mreža: -VLAN -Trunking -Rapid STP convergence -Failover -VMotion
VMWare
VMWare
VI3: mre
VI3: mre
ž
ž
a
a
Za sve ESX hostove jednaka mrezna konfiguracija (neophodno za pokretanje naprednih opcije: vmotion, HA, DRS). Virtual Center?
VMWare
VMWare
VI3: mre
VI3: mre
ž
ž
a
a
Mrežne postavke: Virtual switch
NIC-teaming Standby-adapter
VMWare
VMWare
VI3: HA/DRS
VI3: HA/DRS
http://download3.vmware.com/vmworld/2006/tac9413.pdf
HA (High Availability)
VMWare
VMWare
VI3: DRS
VI3: DRS
v Poboljšanje iskorštavanja resursa na svim poslužiteljima i
“resource pools”
v Fleksibilna konfiguracija za rayličite modove
automatizacije
v Input: podaci o iskorištenju resursa od strane poslužitelja i
virtualnih strojeva
VMWare
VMWare
VI3: DRS
VI3: DRS
v
Preporuke se baziraju na:
w Pridržavanju resursnim ograničenja i postavki
• Rezervacija – garantirani resursi (barem) • Limitiranju – gornja granica (ne više od)
VMWare
VMWare
VI3: DRS
VI3: DRS
v
Preporuke se baziraju na (2):
w Load balancing virtualnih strojeva
• CPU/memory load
• Host “maintenance mode”
w Ograničenja pri pozicioniranju
VMWare
VMWare
VI3: DRS
VI3: DRS
DRS modovi: - ”ručni”
- ”poluatomatski” - ”automatski”
VMWare
VMWare
VI3: HA
VI3: HA
• Klaster sa omogućenim nadzorom sustava visoke dostupnosti i prestanka rada poslužitelja
• HA za virtualne strojeve • Failover unutar klastera
ESX server poslužitelja • Podesivo ponašanje za
individualne virtualne strojeve.
VMWare
VMWare
VI3: HA
VI3: HA
•Downtime minimalan ali ne i nepostojeći •NE nadgeda individualne virtualne strojeve •Koristi Virtual Center skripte i alarme za nadgledanje statusa ESX poslužitelja •NE KORISTI *VMOTION*!!
VMWare
VMWare
VI3:
VI3:
Virtual Center
Virtual Center
U paketu:
• Virtual Center • Licensing server • Baza (sql)
VMWare
VMWare
VI3:
VI3:
Virtual Center
Virtual Center
v Virtual Center!!!! v Licensing server
VMWare
VMWare
VI3:
VI3:
Virtual Center
Virtual Center
v
Automated availability manager
w Unutar service console sucelja kada se kreira HA
klaster
w Ovisan o funkcionalnom DNS sustavu I host name
resolution!!!!!
• /etc/hosts
• /etc/resolv.conf • /opt/LGTOaam512
VMWare
VMWare
VI3:
VI3:
Virtual Center
Virtual Center
v AAM ß à VC (Windows XP, 2003) v C:\WINDOWS\system32\drivers\etc 127.0.0.1 localhost XX.X.X.101 esx1.domena.hr XX.X.X.102 esx2.domena.hr XX.X.X.103 esx3.domena.hr XX.X.X.104 esx4.domena.hr XX.X.X.105 vc.domena.hr
VMWare
VMWare
VI3:
VI3:
Virtual Center
Virtual Center
Nadzor: •HA klastera •ESX poslužitelja •Virtualnih strojeva 1. Cluster services 2. CPU 3. Disk 4. Memory 5. Network 6. System •Day •Week •Month •Year •Custom…
VMWare
VMWare
VI3: Converter
VI3: Converter
Omogućava tranziciju i kreaciju virtualnih strojeva metodama: •physical to virtual, •virtual to virtual •“version” migration
VMWare
VMWare
VI3: Consolidated Backup
VI3: Consolidated Backup
Centralizirani backup VM-ova. FC-baziran Proxy backup poslužitelj Windows 2003
VMWare
VMWare
VI3:
VI3:
Permisije
Permisije
v Korisnicima koji postoje na Virtual Centrer poslužitelju se
mogu dodjeliti ovlasti na virtualizacijskom klasteru, ESX poslužitelju i/ili virtualnim strojevima.
v Permisije se mogu propagirati ili posebno definirati na
nižim objektima.. Hosts&Clusters à Datecenters à Clusters à Hosts à Virtual Machines
VMWare
VMWare
VI3:
VI3:
Permisije
Permisije
v Permisije mogu biti:
w administrator
w datacenter administrator
w virtual machine administrator w virtual machine power user w virtual machine user
w resource pool administrator w read-only
Extra:
Extra:
QEMU
QEMU
?
?
# apt-cache search qemu
qemu - fast processor emulator
vgabios - VGA BIOS software for the Bochs and Qemu emulated VGA card
Extra:
Extra:
QEMU
QEMU
?
?
Instalacija guest OS-a:
# sudo apt-get install qemu # mkdir windows
# cd windows
Zaklju
Zaklju
č
č
ak!
ak!
v