1. Wirtualizacja –
czy to początek końca
znanych nam systemów?
JAROSŁAW SOBEL
(@JAREKSOBEL)
Katowice, 19.03.2016
2. Jarosław Sobel
Projektant i administrator rozwiązań Citrix
Administrator macierzy NetApp
Administrator środowisk wirtualnych: Microsoft Hyper-V, VMware vSphere, Citrix XenServer
Ponad 10 letnie doświadczenie zawodowe (znajomość Citrixa od czasów Metaframe)
Doświadczenie w pracy w dużych środowiskach
~4000 użytkowników, ~500 serwerów XenApp oraz kilkaset stacji VDI
Posiadacz certyfikacji w technologiach:
◦ Citrix – CCA-V, CCP-V oraz „stare” CCA i CCAA
◦ Vmware – VCP-DCV 550
◦ Microsoft – Server Virtualization with Windows Server Hyper-V and System Center
◦ NetApp – NCDA, NCIE-SAN
KATOWICE, 19.03.2016 CAREERCON 2
3. Agenda
Wirtualizacja
◦ Co to jest wirtualizacja?
◦ Co wirtualizujemy?
◦ Historia i rozwój środowisk wirtualnych
◦ Wirtualizacja systemów operacyjnych
◦ Wirtualizacja aplikacji
◦ Główni dostawcy wirtualizacji
◦ Wirtualizacja GPU
◦ Wirtualizacja storage’u
Wirtualizacja w chmurze
Bezpieczeństwo środowisk wirtualnych
Alternatywne rozwiązania
Quo vadis?
Pytania
KATOWICE, 19.03.2016 IT PROFESSIONAL CLOUD CAMP 3
4. Co to jest wirtualizacja?
Tworzenie wirtualnej (nie istniejącej fizycznie) wersji
istniejącego bytu – sprzętu komputerowego, systemu
operacyjnego, sieci, dysków, itp..
Sposób wirtualizacji:
◦ Parawirtualizacja – wirtualizacja, w której system operacyjny
gościa „współpracuje” ze środowiskiem operacyjnym hosta
◦ Pełna wirtualizacja – technika wirtualizacji, w której
wirtualizowany system operacyjny ma wrażenie, że działa na
prawdziwym, fizycznym sprzęcie
Rodzaj hosta:
◦ Wirtualizacja typu 1 (bare metal) – hypervisor instalowany na
sprzęcie
◦ Wirtualizacja typu 2 (hosted) – hypervisor instalowany na już
działającym systemie operacyjnym
Taki podział został zaprezentowany już w 1974 w dokumencie „Formal Requirements
for Virtualizable Third Generation Architectures” autorstwa Geralda J. Popeka and
Roberta P. Goldberga
KATOWICE, 19.03.2016 CAREERCON 4
5. Co wirtualizujemy?
Wszystko ;-)
Sprzęt – procesor, pamięć, dyski, GPU, sieć, …
Systemy operacyjne
◦ Środowiska do wirtualizacji serwerów
◦ Środowiska do wirtualizacji desktopów
Aplikacje
Środowiska definiowane programowo (SDx - Software Defined Storage/Network)
Systemy i aplikacje w urządzeniach mobilnych – telefonach, tabletach
Dzisiaj wirtualizację w różnym zakresie dostarcza wielu vendorów (tych dużych i tych małych) –
Microsoft, VMware, Citrix, IBM, NetApp, EMC, CISCO, Nutanix, Atlantis, etc.
KATOWICE, 19.03.2016 CAREERCON 5
6. Co nam daje wirtualizacja?
Konsolidacja
Zwiększenie niezawodności
Ciągłość biznesowa (HA)
Zarządzanie zasobami
Środowiska testowe
Automatyzacja
Przywracanie po awarii
Obsługa starszych środowisk
Redukcja kosztów
KATOWICE, 19.03.2016 CAREERCON 6
7. Historia i rozwój środowisk wirtualnych
◦ Pierwszym systemem w pełni wspierającym wirtualizację był mainframe IBM System/360-67 (1966) – wspierał
translację pamięci oraz wirtualizację zadań kernela i operacji I/O oraz przerwań.
◦ W 1985 IBM zaprezentował hypervisora 1 poziomu - PR/SM (Processor Resource/System Manager) do
zarządzania logicznymi partycjami (LPAR). Jest on zintegrowany ze wszystkimi systemami IBM System z.
◦ Intel wprowadza w procesorach 80386 (i kolejnych) wirtualny tryb 8086 (virtual real mode).
◦ Wirtualizacja (software’owa) była sprzedawana przez dużych dostawców: Sun Microsystems, HP, IBM, and SGI
jeszcze przed rokiem 2000.
◦ W latach 1999-2001 IBM wprowadza LPARy do pozostałych serwerów zSeries, pSeries i iSeries.
◦ Wirtualizacja software’owa dostępna jest na platformie x86 jeszcze przed rokiem 2000 (1999 – VMware
pokazuje światu pierwszy produkt Workstation – hypervisor poziomu 2).
◦ Lata 2005/2006. Intel prezentuje procesory Pentium 4 w pełni wspierające technologię VT-x (nazwa kodowa
„Vanderpool”). W tym samym czasie AMD wypuszcza serię procesorów Athlon 64 z technologią AMD-V (o
kodowej nazwie „Pacifica”).
◦ 2006 rok - Intel prezentuje drugą generację procesorów Itanium zawierających wsparcie dla wirtualizacji (VT-i).
◦ Lata 2007/2008. Intel implementuje w procesorach Nehalem technologię SLAT (EPT - Extended Page Table).
Jest to druga generacja technologii wirtualizacyjnej platformy x86 (hardware-assisted virtualization).
KATOWICE, 19.03.2016 CAREERCON 7
13. Wirtualizacja GPU
KATOWICE, 19.03.2016 CAREERCON 13
Wirtualizacja kart graficznych jest to możliwość
przekazania do maszyny wirtualnej procesora
graficznego:
◦ PassThrough – przekazanie całe karty tylko do jednej
maszyny
◦ vGPU – współdzielenie karty przez kilka maszyn
wirtualnych
Karta graficzna w trybie vGPU – czyli
współdzielenia pomiędzy systemami operacyjnymi
stwarza możliwość wykonania złośliwego kodu w
celu skompromitowania innej maszyny również
korzystającej z tej karty.
14. Wirtualizacja storage’u
KATOWICE, 19.03.2016 CAREERCON 14
Wirtualizacja storage’u - zebranie (podłączenie) różnych systemów
macierzowych a następnie prezentacja ich zasobów z jednego
wspólnego miejsca
Wprowadzenie kolejnej warstwy abstrakcji
Dodane nowego elementy mogącego wpływać na wydajność i/lub
dostępność całego środowiska
SDS (Software Defined Storage, SSAN – Server SAN) - Sposób
prezentacji przestrzeni dyskowej (NAS, SAN, DAS, Cloud, itd.)za
pomocą dedykowanego software’u dla tego i innych node’ów w
ramach klastra
16. Bezpieczeństwo środowisk wirtualnych
"Any hypervisor is not a new security layer;
it’s a new place to find bugs."
(Xavier Mertens)
KATOWICE, 19.03.2016 CAREERCON 16
17. Bezpieczeństwo środowisk wirtualnych - VENOM
VENOM – Virtualized Environment Neglected Operations Manipulation (CVE-2015-3456)
http://venom.crowdstrike.com/
Jest to podatność kodu hypervisora (QEMU), który odpowiada za obsługę wirtualnego napędu dyskietek
(FDC – Floppy Disk Controller). Może ona być wykorzystana przez napastnika do opuszczenia maszyny
wirtualnej i „przeniesienia się” (wykonania kodu) na maszynie hosta.
Błąd ten występuje w wielu różnych platformach wirtualizacyjnych bazujących na środowiskach Xen, KVM,
VirtualBox oraz natywnym QEMU. W związku z tym, że jest to błąd w kodzie hypervisora, nie ma znaczenia
na jakim systemie operacyjnym pracuje maszyna wirtualna.
Istnieje od 2004 roku, od kiedy FDC zostało dodane do QEMU. Jednak do momentu ujawnienia podatności
nie oficjalnie nie był znany exploit wykorzystujący tę lukę.
VMware, MS Hyper-V oraz Bochs nie są podatne na ten błąd.
CVSS v2 Base Score: 7.7 (HIGH)
KATOWICE, 19.03.2016 CAREERCON 17
19. Bezpieczeństwo środowisk wirtualnych – Hyper-V
Vulnerability in Hyper-V Could Allow Elevation of Privilege (2893986) - MS13-092 - Important
◦ CVSS v2 Base Score: 7.9 (HIGH) (AV:A/AC:M/Au:N/C:C/I:C/A:C)
◦ Microsoft Windows 8 and Windows Server 2012, when Hyper-V is used, does not ensure memory-address validity, which
allows guest OS users to execute arbitrary code in all guest OS instances, and allows guest OS users to cause a denial of
service (host OS crash), via a guest-to-host hypercall with a crafted function parameter, aka "Address Corruption
Vulnerability.„
Vulnerabilities in Windows Hyper-V Could Allow Remote Code Execution (3072000) - MS15-
068 - Critical
◦ CVSS v2 Base Score: 7.2 (HIGH) (AV:L/AC:L/Au:N/C:C/I:C/A:C)
◦ The vulnerabilities could allow remote code execution in a host context if a specially crafted application is run by an authenticated
and privileged user on a guest virtual machine hosted by Hyper-V. An attacker must have valid logon credentials for a guest virtual
machine to exploit this vulnerability.
◦ This security update is rated Critical for Windows Hyper-V on Windows Server 2008, Windows Server 2008 R2, Windows 8 and
Windows Server 2012, and Windows 8.1 and Windows Server 2012 R2.
KATOWICE, 19.03.2016 CAREERCON 19
21. Bezpieczeństwo środowisk wirtualnych - VMware
Warstwy przetwarzająca - computing
◦ Fizyczne bezpieczeństwo urządzeń
◦ Możliwość dostępu do hypervisora
Warstwa storage’u
◦ Konsolidacja może powodować „konkurencję” pomiędzy systemami
Warstwa sieciowa
◦ Wirtualne komponeny sieciowe – łatwa możliwość podsłuchiwania ruchu
Wirtualizator
◦ Konkurencja o zasoby
◦ Separacja uprawnień (host vs. VM)
◦ Możliwość „łatwego” przechodzenia pomiędzy systemami oraz wyciągania z nich danych (np.: haseł)
KATOWICE, 19.03.2016 CAREERCON 21
22. Alternatywne rozwiązania – bare metal
Architektura mieszana
◦ „Małe” specjalizowane serwery zamknięte w pojedynczych kartridżach
◦ Duża obudowa
◦ Brak wirtualizacji – brak narzutu
◦ Lokalna lub współdzielona przestrzeń dyskowa
◦ Dedykowane zasoby sprzętowe (np.: GPU)
◦ Elementy sieciowe umieszczone w obudowie
◦ Możliwość użycia kontenerów aplikacyjnych
◦ Idealne rozwiązanie do budowy klastrów obliczeniowych
lub środowisk typu BigData (np.: Hadoop)
Przykłady:
◦ HP Moonshot
KATOWICE, 19.03.2016 CAREERCON 22
23. Alternatywne rozwiązania – kontenery
Kontenery Linuksowe (LXC - Linux
Kernel Containers) umożliwiają
wydzielanie zasobów (CPU, pamięci)
dla pewnej grupy procesów oraz
separują je od pozostałych części
systemu. Każdy kontener może
działać niezależnie od innych –
posiada osobne drzewo procesów,
system plików, itd., współdzieli jednak
kernel host-a z pozostałymi
kontenerami.
KATOWICE, 19.03.2016 CAREERCON 23
24. Alternatywne rozwiązania – Docker
Docker jest aplikacją pracującą na podbudowie w postaci LXC, która zarządza
obrazami oraz asystuje we wdrożeniach wirtualizacji aplikacji. Dostarcza
automatyzacji oraz mechanizmów szybkiego tworzenia kontenerów LXC.
Dodatkowo udostępnia API, które rozszerza funkcjonalność LXC o możliwość
budowania oferty PaaS (Platform as a Service).
Docker jest aktualnie standardem wirtualizacji aplikacji dla system Linux.
Gdzie jeszcze można spotkać kontenery?
◦ Istnieje wiele innych systemów wirtualizacji na poziomie system operacyjnego – Linux OpenVZ, Linux-VServer,
FreeBSD Jails, WPAR, HP-UX Containers, Solaris Containers.
◦ Mobilne telefony także wykorzystują kontenery do separacji i bezpiecznego uruchamiania aplikacji. W
rzeczywistości telefony z systemem Android wykorzystują LXC na poziomie jądra Android. McAfee oferuje
SecureContainer for Android. Apple iPhones także wykorzystują kontenery do separacji aplikacji i ich danych.
◦ Narzędzia MDM (Mobile Device Management) wykorzystują kontenery w rozwiązaniach zarządzających BYOD.
Wiele systemów MDM rozdziela dzięki kontenerom dane i aplikacje. W przypadku gdy pracownik utraci
urządzenie lub odejdzie z pracy dane i aplikacje mogą zostać rozdzielone.
KATOWICE, 19.03.2016 CAREERCON 24
25. Alternatywne rozwiązania – W2K16
Microsoft Windows Server Containes umożliwiają użytkownikowi uruchamianie aplikacji
izolowanych od pozostałej części system operacyjnego.
Windows Server Containers są częścią projektu Docker.
KATOWICE, 19.03.2016 CAREERCON 25
26. Quo vadis?
Wirtualizacja to nie jest już „rocket science”
Dalsza wirtualizacja środowisk
◦ Zarówno tzw. P2V – Physical to Virtual
◦ Budowanie nowych systemów na bazie rozwiązań SDS/SDN/SDx
(Software Defined Storage/Network/Everything)
Automatyzacja
Migracja środowisk do chmur (zarówno prywatnych jak i publicznych)
◦ Wejście w model PaaS i SaaS (Platform i Software as-a-service)
Rok 2015 określony mianem roku VDI
◦ Migracja systemów użytkownika do środowisk zwirtualizowanych
◦ Możliwość dostępu do swoich danych z dowolnego miejsca i z dowolnego urządzenia
Kontenery (Docker, Virtuozzo, Microsoft Windows Server 2016)
Powrót do korzeni – czyli do czystej fizyki?
KATOWICE, 19.03.2016 CAREERCON 26