VPS SNADNO A RYCHLE Petr Hromádko 13.9.2014 GREENDATA s.r.o. Greenhousing.cz
Agenda
• Proč virtualizovat • Jak virtualizovat • Jak na VPS • Kde vzít a nekrást
Stručný historický úvod
Mainframe – dinosaurus IT věku MulRtasking MulRusers Virtualizace
VM/SP a VM/ XA = virtualizace
1991
PC Svět • • •
1993 – MS DOS 6 Windows NT 1995 – Windows
DATA a VÝKON – zpět u uživatele na stole
PC Svět • • • • •
LAN Vláda Novellu Adresářové služby Telekomunikační a datové sítě – LAN/WAN/MAN Přesun „inteligence“ od centra ke konci a zpět
Open Sytems • • • • •
UNIX NaRvní sítě Všichni výrobci – Sun, IBM, HP, DEC, DG, Bull ….. „Všichni jsou mrtví Dejve“ A kdo je zabil ?
Linux a Internet • • • • •
1995 – Linux na PC s Intel PenRum Internet SSI a PHP/FI mSQL Zrození LAMP stacku
Cloudy a virtualizace • • • • • • • •
Salesforce.com – 1999 AWS – 2002 EC2 – 2006 – „rok virtualizace“ 2008 – OpenNebula a Eucalyptus „WEB 2.0“ Budoucnost ? PC 2.0 – data zpět na tělo Kdo ?
Anatomie Linux serveru •
Co dělá Linux server když se nedíváte – fláká se
Moore's l aw Pro co vše plat ?
Moore's l aw Pro co vše plat ? Pro RAM, bandwith, HDD ?
Anatomie serveru • • • • • • •
Vyřešený paralelismus Obrovský zbytný výkon 8 – 48 vCPU (HT etc.) RAM ve stovkách GB HDD v terabytech IO operace Ethernet 1Gb a 10Gb
Anatomie serveru • • • •
HW zdaleka předbíhá SW Jedním serverem zahltte DC 2 x 1Gb = Rsíce uživatelů Stavající SW neumí využít HW ?
Virtualizace •
Virtualizace je abstraktní vrtsva, která oddělí nebo isoluje nosnou komponentu, tj. fyzický hardware nebo soxware, od provozovaného operačního systému nebo aplikace za účelem vyšších IT zdrojů, flexibility a nebo bezpečnosR…
Virtualizace
Virtualizace • využit výkonu hardware (90 až 95% je nevyužito) • současné provozování různých oper. systémů a jejich verzí (Linux, Windows, Mac OS, …) na jednom hardware • izolace operačních systémů a aplikací nebo jejich rozdílných verzí • testování oper. systémů a aplikací
Virtualizace • klonování instalovaných oper. systémů (rychlá instalace dalších podobných VM) • vzdálené instalace a řešení problémů i při restartu oper. systému • simulace a testování netypických situací (aktualizace, havárie, obnova,…) • provozování clusterového nódu na „jednoduchém“ hardware
Virtualizace • dokonalé zálohování • bezproblémový přesun mezi různým hardwarem (= zkopírování image) => nezávislost na HW • monitoring útoků • instalace a podpora starších verzí oper. systémů • existence hotových VM ke stažení (Linux distribuce, firewally, SMTP servery, aplikační servery)
Virtualizace • možný start oper. systému z read-‐ only medií (CD/ DVD) • Web hosRng • eventuální navýšení rychlosR • manuální nebo dynamické rozložení zátěže na více serverech • úspora energie (servery, podpůrné zařízení, klimaRzace, …)
Jak virtualizovat
Jak virtualizovat – Type 0 hypervisors -‐ Hardware-‐based řešení • IBM LPARs a Oracle LDOMs – Type 1 hypervisors – Operační systém přizpůsoben virtualizaci • VMware ESX a Citrix XenServer – Type 2 hypervisors – obecný OS který ale podporuje virtualizaci • Microsox Windows Server HyperV a Linux s KVM – Type 3 hypervisors – Aplikace, která běží na běžném OS ale poskytuje VMM pro hostovaný OS • VMware WorkstaRon and Fusion, Parallels Desktop, Oracle VirtualBox – Paravirtualizace • OpenVZ
Jak virtualizovat
Type 1 Hypervisor • Beží na “bare metal” • VM beží v user mode – VM provozuje guest OS (který si myslí, že je v kernel módu) – Virtual kernel Mode – Pokud guest OS zavolá citlivou instrukci, hypervisor ji odchyt a provede. – Pokud aplikace provede citlivou instrukci (system calls), hypervisor ji dochyt a předá do guest OS.
Type 1 Hypervisors
Figure 8-‐26. When the operaRng system in a virtual machine executes a kernel-‐only instrucRon, it traps to the hypervisor if virtualizaRon technology is present.
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Type 2 Hypervisor • Běží uvnitř OS. • Podporuje guest OSs nad sebou – Přepisuje senziRvní instrukce VM voláním – binární překlad / binary translaRon – Cachuje funkční bloky – Rychlost blízká naRvnímu kódu
Type 2 Hypervisor Applications Applications Applications OS 1
OS 2
OS 3
Virtualization Platform Base Operating System Hardware
Applications
ParavirtualizaRon • Modifikuje Guest OS • Mění všecny systémová volání na VM volání • Defacto mění hypervizor v mikrokernel
Problemy s Paravirtualizací • Paravirtualizované systémy neběží na hardware • Mnoho různých paravirtualizačních technologií • Možná řešení: – Modifikace OS kernel Který bude volat pouze speciální set instrukcí z dané knihovny (Virtual Machine Interface ) • Bare metal – link do knihovny implementující kód • Na VM – link na speciální knihovnu implementující kód VM
ParavirtualizaRon (2)
Figure 8-‐28. VMI Linux running on (a) the bare hardware (b) VMware (c) Xen. Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Proxmox VE Proxmox je kompletní virtualizační prostředí. Můžete virtualizovat všechny druhy serverů s OS Linux and Windows Servers. Je založeno na Kernel-‐based Virtual Machine (KVM) hypervisor a OpenVZ, nejpoužívanějším řešení pro kontejnerovou virtualizaci.. Proxmox je vhodný pro virtualizaci ale i pro cloud! To nejlepší: je to Open Source! (Debian based) Youtube kanál: h‚p://www.youtube.com/user/ProxmoxVE
Virtualizace Plná virtualizace (KVM)
OS VirtualizaRon (OpenVZ)
Od fy RedHat
Od fy Parallels (Virtuozzo)
Potřebuje hypervisor (qemu/kvm)
Používá stejný kernel jako host
Podporuje více druhů OS
Podporuje pouze linux based OSes
VM Storage jsou soubory nebo svazky.
VM Storage je adresářem na Hostu /etc/pve/openvz/vmid.conf
/etc/pve/qemu-‐server/vmid.conf Resource Management
Resource Management
Command Line Interface API browser: # pvesh get /nodes/<node>/ openvz/
/status/current <<JSON>> Benchmark # pveperf Cluster Management # pvecm status|nodes|... OpenVZ Management # vzctl KVM Management # qm
Update templates # pveam update
Web client Double-‐click to enter text
Nejužitečnější vychytávky VirtualizaRon (KVM AND OpenVZ)
RESTful API |Perl based Žádný centralní management node (upravovatelné)| |podporuje mulRcast/unicast | Distribuovaný Storage (DRBD, NFS, iSCSI) |Fault Tolerant !| Backup & Restore Více způsobů autenRfikace |Scheduling| |Local (Proxmox)| |Compression| |PAM (Unix)| |Live Snapshot| |LDAP (AD)|
Automated CreaOon of CT Shell scripRng jednodůchý, vše co potřebujete je SSH ${SSHCMD} pvectl create ${NEW_CTID} \ /var/lib/vz/template/cache/ubuntu-‐11.10-‐x86_64-‐ taric4.tar.gz \ -‐neOf ifname=eth0,bridge=vmbr0 -‐onboot 1 \ -‐password $PASSWORD -‐hostname $HOSTNAME ${SSHCMD} pvectl start ${NEW_CTID} NEW_IP="" while [ "x${NEW_IP}" = "x" ]; do NEW_IP=$(${SSHCMD} vzctl exec ${NEW_CTID} ip addr ls dev eth0 | awk '/inet / {gsub(/\/24/, "", $2); print $2}') sleep 1 done
knife-‐proxmox knife plugin managuje openvz servery a integruje s chef-‐server pomocí proxmox REST API h‚ps://rubygems.org/gems/knife-‐proxmox Instantní magie ☺ $ knife proxmox server list $ knife proxmox server create $ knife proxmox server info $ knife proxmox template list $ knife proxmox template available $ knife proxmox server st[art,op] $ knife proxmox server destroy Pomáhejte s rozvojem: h‚ps://bitbucket.org/jmoraRlla/knife-‐ proxmox
Reference Proxmox VE h‚p://pve.proxmox.com/wiki/ h‚p://pve.proxmox.com/pve2-‐api-‐doc/ IRC: freenode (##proxmox) OpenVZ h‚p://en.wikipedia.org/wiki/OpenVZ h‚p://openvz.org/Main_Page IRC: freenode (#openvz) KVM h‚p://www.linux-‐kvm.org/page/Main_Page h‚p://en.wikipedia.org/wiki/Kernel-‐ based_Virtual_Machine IRC: freenode (#kvm)
DISKUSE
DĚKUJI ZA POZORNOST