Virtualizáció Linuxon: XEN
Szalai Ferenc
[email protected] http://www.avaxio.hu
Bevezető ●
Mit? –
●
Miért? – –
●
intézményi vállalati szolgáltatásokat (web, állomány, levelező szerver, egyedi teszt rendszerek, virtuális oktatási hálózatok) sok egyedileg felügyelt rendszer alacsony kihasználtsággal (< 10%) sok vas, magas fenntartási költségek (pl.: áramszámla)
Hogyan? –
szabad szoftverekkel, nyílt technológiákkal http://www.avaxio.hu
Miért virtualizáljunk? ●
●
Vezetői szemlélet: a vas ára állandó, a adminisztrációs költségek nőnek Motiváció: költségtakarékosság: 51.7 % – üzemeltetés egyszerűsítése: 14.6 % – flexibilis infrastruktúra: 13.1 % – leállási idő csökkentése: 12.6 % – helytakarékosság: 10.9 % – skálázhatóság: 10.9 % – megbízhatóság: 10.9 % (IDC 2005) –
http://www.avaxio.hu
Virtualizáció - elvek ●
●
●
Virtuális gép: absztrakció, a fizikai erőforrások megosztása, delegálása révén létrejött virtuális erőforrásokat használja. Host gép: a virtuális gépeket befogadó fizikai eszköz Mit lehet virtualizálni: –
CPU (erről lesz szó), Adattároló (storage), I/O (pl.: Infiniband)
http://www.avaxio.hu
Virtualizáció - elvek ●
Virtualizációs technikák (x86): – – – – –
alkalmazás szintű: pl.: cygwin, wine operációs rendszer szintű: pl.: chroot, jail, openVZ, linuxvserver, solaris containers emuláció: pl.: VMWare (sok okos, optimalizáció), QEMU paravirtualizáció: pl.: XEN, User Mode Linux hardverrel támogatott: Intel VT, AMD SVM
http://www.avaxio.hu
Virtualizáció - XEN ●
Hipervisor: szuperprivilégizált módban futó kernel, közvetlenül a hardvert kezeli, erre portolják a virtualizált rendszereket
●
Előnyök: – – –
●
fizikai géphez közeli teljesítmény (23 % veszteség) nyílt forrás, ipari támogatás (XenSource, IBM, SUN, Novell stb.) linux terjesztések része (Debian, SuSE, RedHat EAL)
Hátrányok: – –
operációs rendszert módosítani kell (no Windows) nyílt management eszközök hiánya
http://www.avaxio.hu
Xen felépítése
http://www.avaxio.hu
XEN telepítése ●
●
●
Csomagok: – xenhypervisor, xenutils, linuximagexen686, libc6xen (?) – xenioemu (HVM esetén) xend daemon: management és kommunikáció – /etc/xen/xenconfig.sxd grub konfiguráció:
title XEN hypervisor booting 2.6.162xen686 root (hd0,0) kernel /boot/xen3.0i386.gz dom0_mem=256000 noreboot module /boot/vmlinuz2.6.162xen686 root=/dev/md0 ro BOOT console=tty0 module /boot/initrd.img2.6.162xen686 http://www.avaxio.hu
Xen kezelése I. # cat /etc/xen/noc.grid.conf name = "noc.grid" kernel = "/boot/vmlinuz2.6.162xen686" ramdisk = "/boot/initrd.img2.6.162xen686" memory = 256 vif = [ 'mac=00:16:3E:00:00:13, bridge=xenbr1' ] disk = [ 'phy:/dev/xenimages/noc.grid,sda1,w' ] root = "/dev/sda1 ro" extra = "2" on_poweroff = 'destroy' on_reboot = 'restart' on_crash = 'restart' # xm create noc.grid.conf # xm list Name ID Mem(MiB) VCPUs State Time(s) Domain0 0 250 4 r 47073.3 noc.grid 7 256 1 b 101501.6 service.grid 8 128 1 b 4728.6 # xm console noc.grid # xm shutdown noc.grid http://www.avaxio.hu
Xen kezelése II. # xm save noc.grid /var/xen/noc.grid.save (dom le is áll) # xm restore noc.grid # xm pause noc.grid noc.grid 7 256 1 p 101501.6
# xm unpause noc.grid CPU, Memória, Hálózat használat # xm top # xm memset noc.grid 270 # xm migrate noc.grid dom01
http://www.avaxio.hu
Fizikai gép virtualizálása alkalmazások leállítása fizikai gépen ● dom0án Volume kialakítása és csatolása (/mnt) ●
tar czf / | ssh dom0 'cd /mnt; tar xzf '
hálózati interfészek beállítása dom0ban (főleg, ha 802.1q VLAN technikát használjuk) ● xen config állomány elkészítése ● domain indítása (xm ceate domu.conf) ●
http://www.avaxio.hu
XEN hálózat I. ● ●
/etc/xen/scripts/ lehetőségek: – – – – –
bridge route nat (problémás) vegyes megoldások saját scriptek
http://www.avaxio.hu
XEN hálózat II. ●
xenconfig.sxd – –
●
(networkscript networkbridge) (vifscript vifbridge)
bridge eset működése – – – – – – – –
bridge: xenbr0 eth0 down eth0 IP, MAC > veth0 eth0 > peth0 veth0 > eth0 peth0, vif0.0 a bridgehez adja mindenki up minden további vifx.y automatikusan a xenbr0ba kerül http://www.avaxio.hu
Megfelelő tároló alrendszer ●
●
Hol tároljuk a virtuális gépek virtuális merevlemez tartalmát? Lehetőségek tárolóra: – – – –
●
dom0ba rakjunk sok lemezt: nehezen skálázható, nagy rendelkezésre állás kialakítása nehézkes NAS (NFS): három egymástól független állományrendszer konzisztencia problémája FC SAN: jó de általában drága (Fibre Channel) IP/Ethernet SAN: perfect!
Virtuális lemezek: – – –
image állomány LVM NFS
http://www.avaxio.hu
IP/Ethernet SAN ● ● ● ●
forrás (target), cél (initiator) architektúra IP SAN: iSCSI Ethernet SAN: AOE (AtaoverEthernet) AOE: egyszerű protokoll ATA üzenetek natív etherneten történő továbbítására – –
initiator 2.6.11 óta Linux kernel része hardveres target (Coraid Inc.)
http://www.avaxio.hu
Példa egy nagy rendelkezésre állású virtuális kiszolgáló platformra
http://www.avaxio.hu
Hova tovább? I. ● ●
● ●
● ● ● ●
Teljesítmény: xenoprofile Guest API: hipervisor inkompatibilitások (virtual I/O interfészek) IOMMU OS támogatást: Linux, NetBSD3, FreeBSD7, OpenSolaris10, Plan9 Vanilla kernel része? XML konfig állomány sxd helyett DTMF CIM támogatás, Xen XMLRPC Copy on Write virtuális diskek támogatása, VMDK, MS VHD, blktap (user space) http://www.avaxio.hu
Hova tovább? II. ●
●
Erőforrás kezelés: VCPU fizikai CPU dinamikusan, QoS, limitek HVM (hardver virtualizáció) – – – –
● ● ● ● ●
Qemu I/O emutól megszabadulni USB támogatás teljesítmény fokozás save/restore/migration
XenFS: közös állományrendszer VMk kötött IA64 port PowerPC port XEN Enterprice: grafikus management Infiniband támogatás http://www.avaxio.hu
Kalandra fel!
http://www.avaxio.hu