Wirtualizacja Systemy operacyjne



Podobne dokumenty
Czym jest wirtualizacja

Linux -- u mnie działa!

Wirtualizacja. wspomagana sprzętowo - zalety, wady, zagrożenia. Szymon Doroz & Bartosz Janiak & Przemysław Zych

WIRTUALIZACJA. Kamil Frydel, Julia Romanowska, Maciej Sokołowski. 12 listopada 2007 WIRTUALIZACJA. Kamil Frydel, Julia Romanowska, Maciej Sokołowski

Systemy Operacyjne Wirtualizacja

Przegląd dostępnych hypervisorów. Jakub Wojtasz IT Solutions Architect

WIRTUALIZACJA teoria i praktyka. Oskar Skibski, Piotr Sikora, Mateusz Kruszyński

Monitor maszyn wirtualnych

Wirtualizacja. Przegla d wybranych technik. Magda Michalska Krzysztof Kulewski Andrzej Pacuk. Systemy operacyjne 2006

Wirtualizacja. Metody, zastosowania, przykłady

QEMU działa na procesorach procesorach: emuluje procesory: dostępne dla s.o. hosta:

Wirtualizacja. Paweł Mantur Artur Mączka Tomasz Niedabylski

System wspomagania zarządzania wirtualizacją

Wirtualizacja. Piotr Sikora Tomasz Ziółkowski

Hosting WWW Bezpieczeństwo hostingu WWW. Dr Michał Tanaś (

Wirtualizacja wspomagana sprzętowo - zalety, wady i zagrożenia

Wirtualizacja. Systemy operacyjne 9 listopada Aleksander Jankowski Paweł Matysiak Aleksandra Murawska

Wirtualizacja w praktyce.

Q E M U.

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE

RHEL 5 wpływ wirtualizacji na koszty

Prezentacja emulatora QEMU Zajęcia SO

Tablice stron, bezpośredni dostęp do urządzeń z maszyny wirtualnej i IOMMU.

Przepełnienie bufora. SQL Injection Załączenie zewnętrznego kodu XSS. Nabycie uprawnień innego użytkownika/klienta/administratora

Konwersja maszyny fizycznej na wirtualną

Wirtualizacje. Opracowali: Piotr Dąbrowiecki Jakub Gołębiowski Winicjusz Szyszka

Systemy operacyjne III

Wirtualizacja. Co to właściwie jest? Jak działa? W jaki sposób jej używać? Systemy operacyjne 2007/08

Wirtualizacja jako środek zmniejszenia kosztów działalności przedsiębiorstwa w czasach kryzysu

U M L. System operacyjny Linux zagnieżdżony w zewnętrznym systemie operacyjnym (Linux)

System pamięci. Pamięć wirtualna

Wydajność systemów a organizacja pamięci, czyli dlaczego jednak nie jest aż tak źle. Krzysztof Banaś, Obliczenia wysokiej wydajności.

Wirtualizacja. czyli trochę co innego niż rzeczy do tej pory omawiane

Pamięć wirtualna. Przygotował: Ryszard Kijaka. Wykład 4

Architektura komputerów

Zaawansowane systemy operacyjne. Wirtualizacja. Janina Mincer-Daszkiewicz.

Wirtualizacja wspomagana sprz towo

RDZEŃ x86 x86 rodzina architektur (modeli programowych) procesorów firmy Intel, należących do kategorii CISC, stosowana w komputerach PC,

Koncepcja wirtualnej pracowni GIS w oparciu o oprogramowanie open source

System pamięci. Pamięć wirtualna

VMware. Prezentacja na Systemy Operacyjne

3 Literatura. c Dr inż. Ignacy Pardyka (Inf.UJK) ASK SP.06 Rok akad. 2011/ / 22

EPTI: Efficient Defence against Meltdown Attack for Unpatched VMs

Architektura systemu komputerowego. Działanie systemu komputerowego. Przerwania. Obsługa przerwań (Interrupt Handling)

ARCHITEKTURA PROCESORA,

Zarządzanie zasobami pamięci

CyberGuru Wirtualizacja na platformie Hyper-V w pigułce. Prezentuje: Kamil Frankowicz

Budowa systemów komputerowych

Wirtualizacja wspomagana sprzętowo

Prezentacja systemu RTLinux

VMware, QEMU, UML. oraz inne wirtualne maszyny. Piotr Findeisen Filip Grządkowski Piotr Kuśka Krzysztof Mroczek

Architektura komputerów

Systemy operacyjne II

System pamięci. Pamięć wirtualna

Oracle VM - Przegląd architektury i możliwości

SYSTEMY OPERACYJNE. kik.pcz.czest.pl/so. (C) KIK PCz Materiały pomocnicze 1 PROWADZI: PODSTAWOWA LITERATURA: ZAJĘCIA: STRONA

Wprowadzenie do systemów operacyjnych

Konwersja maszyny fizycznej na wirtualną.

Przegląd technik wirtualizacji i separacji w nowoczesnych systemach rodziny UNIX

Zarządzanie pamięcią operacyjną

Architektura komputerów

Emulacja maszyny. Program udaje zupełnie inną architekturę. Musi przetłumaczyć instrukcje emulowane na instrukcje platformy, na której działa

Komputery przemysłowe i systemy wbudowane

BitDefender GravityZone Security for Virtualized Environments VS 1ROK

Grzegorz Jaśkiewicz Dariusz Stefański

Wybrane zagadnienia elektroniki współczesnej

Zadanie1. Wykorzystując serwis internetowy Wikipedii wyjaśnij następujące pojęcia: wirtualizacja, VirtualBox, Vmware, KVM, Virtual PC, Hyper-V.

Architektura chmur i wirtualizacja. Wykład 4 Wirtualizacja

Architektura i administracja systemów operacyjnych

Wykorzystanie wirtualizacji w kluczowych scenariuszach data-center

Wirtualizacja: XEN. Marek Marczykowski 16 czerwca 2010

UNIX: architektura i implementacja mechanizmów bezpieczeństwa. Wojciech A. Koszek dunstan@freebsd.czest.pl Krajowy Fundusz na Rzecz Dzieci

Struktury systemów operacyjnych

dr inż. Jarosław Forenc

INSTRUKCJA I WSKAZÓWKI

Architektura komputerów

LEKCJA TEMAT: Zasada działania komputera.

Architektura komputerów

Działanie systemu operacyjnego

Działanie systemu operacyjnego

Stronicowanie w systemie pamięci wirtualnej

LPAR - logiczne partycjonowanie systemów

Przegląd technik wirtualizacji i separacji w nowoczesnych systemach rodziny UNIX

Badanie wydajności maszyn wirtualnych

Działanie systemu operacyjnego

Linux KVM - wparcie dla wirtualizacji w kontekście serwerów ARM

Sprzętowe wspomaganie pamięci wirtualnej

SYSTEMY OPERACYJNE WYKŁAD 1 INTEGRACJA ZE SPRZĘTEM

Wprowadzenie do informatyki

Wykład 7. Zarządzanie pamięcią

Wirtualizacją nazywamy użycie oprogramowania w celu stworzenia abstrakcji (iluzji) posiadanych zasobów.

WWQ. Wakacyjne Warsztaty QNAP. Zaczynamy o 11:00. Prowadzący: Łukasz Milic Certyfikowany Trener QNAP

Schematy zarzadzania pamięcia

Podstawowe zagadnienia

Sposób funkcjonowania

Podstawy Techniki Komputerowej. Temat: BIOS

Procesor ma architekturę rejestrową L/S. Wskaż rozkazy spoza listy tego procesora. bgt Rx, Ry, offset nand Rx, Ry, A add Rx, #1, Rz store Rx, [Rz]

Zarządzanie pamięcią w systemie operacyjnym

Backup & Recovery 10 Home

SYSTEMY OPERACYJNE: STRUKTURY I FUNKCJE (opracowano na podstawie skryptu PP: Królikowski Z., Sajkowski M. 1992: Użytkowanie systemu operacyjnego UNIX)

Transkrypt:

Michał Albrycht Bartosz Borkowski Radosław Kujawa Wirtualizacja Systemy operacyjne

Agenda Wirtualizacja Historia i współczesne wykorzystanie Podziały wirtualizacji Wirtualizacja tablic stron Shadow Page Tables Nested Page Tables Wspomaganie sprzętowe wirtualizacji XEN i KVM Zagrożenia wirtualizacji 2

Co to jest wirtualizacja? Wirtualizacja jest to abstrakcja zasobów maszyny fizycznej Przykład mówi więcej niż definicja RAID Pamięć wirtualna Wirtualne napędy CD-ROM itp. 3

Historia W latach 60 IBM wprowadził komputer M44 na którym były uruchamiane wirtualne maszyny 44X. Użykownik pracował na wirtualnej kopi systemu Chodziło o lepsze wykorzystanie procesora Zainteresowanie wirtualizacją malało wraz z popularyzacją PC 4

Po co nam teraz wirtualizacja? Tworzenie i rozwój systemów operacyjny Testowanie kompatybilności (np. programów z systemem operacyjnym) Symulowanie wielu komputerów przez jeden komputer fizyczny Testowanie programów w środowisku ze zmienioną ilością zasobów (np. aplikacje komórkowe, zachowanie programów przy małej ilości RAMu itp.) Kontakt ze szkodliwym oprogramowaniem. Korzystanie z kilku systemów operacyjnych jednocześnie Wykorzystywane podczas nauki/szkoleń dzięki łatwej odtwarzalności systemu 5

Co mieści się w pojęciu wirtualizacja? Wirtualizację można badać w wielu aspektach. My spojrzymy pod kątem sposobu tworzenia abstrakcji: Emulacja (pełna) Emulacja API Wirtualizacja (pełna) Parawirtualizacja 6

Emulacja (pełna) - charakterystyka Polega na symulacji sprzętu fizycznego w szczególności procesora, pamięci, rejestrów, czasu systemowego itd... Każda instrukcja w środowisku emulowanym musi być tłumaczona przez emulator Wady: Bardzo duże narzuty na przetwarzanie pojedynczego żądania co skutkuje ogromnymi stratami wydajności Zasobożerność Zalety: Niezależność od architektury Bezpieczeństwo 7

Emulacja (pełna) - przykłady Programy działające na zasadzie pełnej emulacji: QEMU Bochs PearPC Emulatory często wykorzystywane są w celu symulacji środowisk starszych komputerów i konsol (Atari, Commodore, Amiga, Nintendo) gdzie straty wydajności nie są odczuwalne. 8

Emulacja API - charakterystyka NIE symulujemy całego systemu Emulowany jest tylko interfejs udostępniany przez system Zalety: Dużo szybsza od pełnej emulacji Wady: Nieprzenośna Częste problemy w działaniu (zmieniające się biblioteki, lub ich brak) Konieczność przepisania całego API 9

Emulacja API przykład: Wine Najbardziej znany program emulujący API to Wine (Wine is not emulator) Oparty na WinAPI (interfejs systemu Windows) Posiada odpowiedniki znacznej ilości bibliotek Istnieje możliwość podłączenia oryginalnych bibliotek systemu Windows 10

Wirtualizacja Jest niejako hybrydą emulacji pełnej i emulacji API Systemy emulowane ograniczone do jednej architektury Bezpośrednie wykonywanie bezpiecznych instrukcji bezpośrednio na sprzęcie Warstwą pośrednią pomiędzy systemem gospodarzem a systemem gościem jest monitor maszyny wirtualnej (VMM, hypervisor) Szybszy od emulacji pełnej 11

Parawirtualizacja Technika wirtualizacji, która tworzy maszynę wirtualną podobną, ale nie identyczną z tą symulowaną. Pozwala na prostszą budowę monitora oraz na osiągnięcie wyników bliskich do tych niewirtualizowanego sprzętu. Czasami nie tyle symuluje sprzęt, co dostarcza API dla zmodyfikowanego gościnnego systemu operacyjnego. 12

Parawirtualizacja - przykłady Xen KVM OpenVZ 13

Pełna wirutalizacja Tworzy środowisko wirtualnej maszyny, która zapewnia pełna symulację zasobów sprzętowych Gość nie wie, że pracuje w środowisku wirtualnym Gość ma możliwość bezpośredniej pracy na sprzęcie Żadna z operacji wykonywanych przez gościa nie może zmienić stanu innych systemów wirtualnych, VMM czy gospodarza Możliwa tylko dla niektórych architektur 14

Twierdzenie Popek'a Goldberga Wymagania względem wirtualizacji: Równoważność sprzęt symulowany zachowuje się identycznie (w najważniejszych punktach), co prawdziwy Kontrola zasobów maszyna wirtualna ma całkowitą kontrolę nad symulowanymi zasobami Efektywność większość instrukcji maszynowych powinna być wykonywana bez udziału maszyny wirtualnej 15

Twierdzenie Popek'a Goldberga cz.2 Aby stworzyć zestaw wymagań instrukcje podzielono na 3 grupy: instrukcje uprzywilejowane przerywane (wywołuje przerwanie systemowe) gdy procesor działa w trybie użytkownika, wykonywane w trybie systemowym instrukcje kontrolne próbujące zmienić konfigurację zasobów systemu instrukcje środowiskowe ich działanie i wynik zależy od ustawień środowiska 16

Twierdzenie Popek'a Goldberga cz.3 Twierdzenie: Dla każdego komputera 3 generacji można stworzyć maszynę wirtualną jeśli zbiór instrukcji wrażliwych (kontrolne i środowiskowe) jest podzbiorem instrukcji uprzywilejowanych. Instrukcje, które mogą zakłócić działanie monitora są wychwytywane, a sterowanie jest przekazywane do monitora. Architektura x86 nie spełnia tego wymogu! 17

Problemy z wirtualizacją x86 W procesorze x86 istnieje 17 instrukcji które sprawiają problem przy wirtualizacji: SGDT, SIDT, SLDT odczytanie rejestrów gospodarza SMSW odczytanie informacji o monitorze wirtualizacji PUSHF, POPF odczytanie stanu pracy procesora, zmiana rejestru EFLAGS przez Gościa 18

Problemy z wirtualizacją x86 LAR, LSL, VERR, VERW instrukcje te potrzebują informacji o aktualnym poziomie ochrony poziom ochrony na maszynie wirtualnej inny od rzeczywistego POP, PUSH problem z poziomem ochrony, np. PUSH jest w stanie wstrzymać proces wykonywany na maszynie wirtualnej CALL, JMP, RET problem ze zmianą poziomu ochrony INT n, STR - dostęp do rejestru EFLAGS W konsekwencji zaimplementowanie pełnej wirtualizacji na x86 jest niemożliwe! 19

Poziomy ochrony w x86 Zorganizowane za pomocą Ringów Cztery poziomy: od 0 do 3 0 poziom wykonywania jądra 1 poziom sterowników 2 poziom sterowników 3 poziom wykonywania aplikacji Uprawnienia poziomu z numerem n+1 zawierają się w uprawnieniach poziomu n 20

Poziomy ochrony w x86 - przykłady System bez włączonej maszyny wirtualnej App wykonują się w Ring 3 OS wykonuje się w Ring 0 21

Poziomy ochrony w x86 - przykłady Wirtualizacja programowa OS i VMM wykonują się na poziomie Ring 0 VM0 i VM1 wykonuja się na poziomie Ring 1 przez co nie mają bezpośredniego kontaktu z procesorem. 22

Wirtualizacja wspomagana sprzętowo Od 2005 r. niezależne rozwiązania od Intela i AMD Intel VT AMD-V Usprawnienie architektury w celu zwiększenia szybkości działania wirtualnego systemu. Wprowadznie nowego poziomu ochrony Ring -1 23

Wirtualizacja na Intel VT VMM Pracującu w trybie VMX root (Ring 0) Maszyny wirtualne w trybie VMX non-root (Ring 0) 24

Jak to jest w Intel VT? 10 nowych instrukcji (VMPTRLD, VMPTRST, VMCLEAR, VMREAD, VMWRITE, VMCALL, VMLAUNCH, VMRESUME, VMXOFF oraz VMXON) Procesor działa w dwóch trybach VMX root VMX non-root Informacje przechowywane w specjalnej strukturze VMCS (Virtual Machine Control Structure) 25

Stronicowanie a wirtualizacja Czemu wirtualizacja stronicowania jest tak ważna Jak wirtualizuje się tablice stron Para-wirtualizacja Pełna wirtualizacja Realizowana przez software Realizowana przez software i hardware 26

Stronicowanie Tłumaczenie adresu wirtualnego na adres fizyczny Spacer po tablicy stron 27

Stronicowanie Problem TLB TLB pamięć podręczna stosowana, by przyspieszyć translację adresu wirtualnego na fizyczny Potrzeba aktualizacji TLB podczas: dodawnia nowej strony usuwania strony operacji na architekturach SMP gdy jakaś ramka w pamięci jest używana przez wiele procesorów, trzeba dopilnować, by po jej zwolnieniu każdy procesor miał o niej spójne informacje. 28

Stronicowanie Działania procesora na tablicy stron ustawianie bitu użycia gdy strona jest używana, procesor ustawia ten bit na 1 ustawianie bitu modyfikacji gdy strona jest modyfikowana, procesor ustawia ten bit na 1 System operacyjny zbiera informację o zmianiach tych bitów, tworzy statystyki I korzysta z nich podczas swapingu 29

Pierwsza próba wirtualizacji Najprostsza i najszybsza metoda wirtualizacji tablic stron to ich para-wirtualizacja Gość i monitor wspólnie dbają o to, by koszty wirtualizacji były jak najmniejsze Niestety para-wirtualizacja jest sprzeczna z ideą wirtualizacji 30

Wirtualizacja pełna z użyciem tablicy cienia Pomysł opiera się na dublowaniu wszystkich operacji wykonywanych przez gościa w jego tablicy stron (tzw. guest page table gpt) Do owego dublowania wykorzystuje się tzw. shadow page table (spt) Gość nie ma pojęcia, że jest gościem, działa jak najnormalniejszy system spt pilnuje wszelkich modyfikacji dokonywanych na gpt to z spt tak naprawdę korzysta procesor 31

Shadow page table techniki działania Technika ochrony przed zapisem Monitor ustanawia ochronę przed zapisem na wszystkie strony fizyczne zawierające elementy z gpt Każda próba zapisu przez gościa kończy się podniesieniem wyjątku Każdy wyjątek jest łapany przez monitor Monitor obsługuje wyjątek Emuluje operację, którą próbował wykonać gość Ustawia wszystkie odpowienie dane w tablicach gpt i spt 32

Shadow page table technika virtual TLB Brak ochrony przed zapisem Gdy gość próbuje coś zapisać do gpt, po prostu to zapisuje Jednak gdy próbuje się odwołać pod adres, który widnieje w gpt jako fizyczny... procesor dostaje od gościa adres wirtualny próba spaceru po stronach po spt w spt jeszcze nie ma żadnego wpisu generowany jest wyjątek dopiero wtedy monitor interweniuje uzupełniając braki w spt 33

Problem z technikami software'owymi Duża liczba generowanych błędów stron page faulty zwyczajne takie, których gość jest świadom page faulty wynikające z wirtualizacji Każdy błąd musi zostać rozpoznany i obsłużony przez monitor. Procesor zmienia bity użycia I modyfikacji tylko w spt. Monitor musi zadbać o to, by odpowiednie zmiany znalazły się też w gpt 34

Problem z technikami software'owymi w przypadku SMP istnieją co najmniej dwie możliwości tworzenia spt można tworzyć tyle spt ile jest procesorów narzut pamięciowy można tworzyć tylko jedną narzut synchronizacyjny szacuje się, że na niektórych maszynach nawet 75% czasu pracy monitora to operacje na spt. 35

Nested Page Tables głównym problemem z spt jest duża ilość operacji dokonywana przez monitor Należy skupić się na tym, by ograniczyć działania monitora AMD stworzyło technologię, która to umożliwia 36

Abstrakcja gpt ma za zadanie mapować adres wirtualny gościa na adres fizyczny gościa Nested Page Tables mapują adres fizyczny gościa na prawdziwy, systemowy adres fizyczny gva gpa gpt npt gpa spa 37

Abstrakcja spt nie ma wcale. Jest zastąpiona przez npt. na npt nie trzeba symulować każdego ruchu gościa. Służą tylko do wyliczania adresów. Niestety sposób wyliczania adresu fizycznego jest dłuższy w przypadku chybienia w TLB mogą się zdarzyć nawet 24 odwołania do pamięci dla pojedynczego adresu. 38

Schemat działania translacji Po gpt i npt jest wykonywany dwuwymiarowy spacer. 39

Zasada działania nested page tables Wsparcie ze strony hardware'u w postaci dwutrybowości: tryb gościa tryb monitora tryby posiadają osobne rejestry, a także dwa oddzielne TLB gva sva gtlb htlb spa spa 40

Zasada działania nested page tables Dodatkowe usprawnienia Nested TLB inna pamięć podręczna, tym razem tłumacząca adres fizyczny gościa w systemowy adres fizyczny Page Walk Cache (PWC) jeszcze inna pamięć podręczna Ma na celu skrócenie czasu spaceru po stronach PWC równie dobrze może być stosowane przez gpt jak i spt Dzięki PWC schodząc w hierarchii stron cały czas mamy nadzieję, że uda nam się uniknąć dalszych działań 41

Podsumowanie npt - analiza kosztów Pesymistyczny koszt obliczania adresu fizycznego dramatycznie rośnie Udaje się rzadko osiągać ów pesymistyczny koszt dzięki zastosowaniu tylu różnych pamięci podręcznych: dwa rodzaje TLB NTLB PWC Liczbę 24 z dużą nawiązką rekompensuje nam fakt, że monitor niemal nic nie robi 42

Podsumowanie npt jako pełnej wirtualizacji Gość nie widzi absolutnie nic podejrzanego Jedyne co może go niepokoić to właśnie owo długie wyliczanie adresu fizycznego wniosek: npt jest klasyczną techniką wspomaganej sprzętowo wirtualizacji pełnej 43

Namacalne korzyści z zastosowania npt technologia npt została poddana licznym testom, które potwierdziły jej zalety Statystyki, które przedstawione zostaną za moment zostały zebrane na maszynie o następujących parametrach: Processors: 2-socket, 2.0GHz/1800MHz-NB Barcelona (Model 2350), 95W. Memory: 32GB of 4GB DDR2-667MHz. HBA: QLA2432 (dual-port PCIe 2Gb Fiber) HBA: 1 port used. Disk Array: MSA1500, 1 controller, 1 fiber connection, 512MB cache. 15 drives 15K rpm SCSI 73GB disks. 44

Namacalne korzyści z zastosowania npt Wyniki testów używających do wirtualizacji Vmware ESX 45

Namacalne korzyści z zastosowania npt Wyniki testów używających do wirtualizacji Xen 3.1, wirtualizujących Oracle 10G OLTP 46

Co dalej? npt jest technologią nową i jeszcze niedopracowaną między innymi nie ma dobrego software'u implementującego monitor możliwe, że dobrze napisany monitor jeszcze bardziej usprawniłby działanie npt Intel alternatywą dla AMD technologia EPT (extended page tables) do pewnego stopnia inne podejście tak samo stosuje mnogość buforów (BTB, RSB) swoją nową technologię zwaną Nehalem intel niedługo wprowadzi na rynek (o ile już nie wprowadził) 47

Słów kilka o IOMMU IOMMU odpowiednik MMU dla wirtualnych adresów urządzeń 48

IOMMU zalety i wady Zalety Pomocne przy wirtualizacji rozwiązuje problem, gdy gość próbuje użyć DMA Obsługuje adresowanie pamięci większej niż 4GB i stanowi dzięki temu pomoc dla urządzeń zewnętrznych Stosuje ochronę pamięci, gdy urządzenia zewnętrzne się źle zachowują Wady Dodatkowy narzut czasowy związany z operacjami na IOMMU Dodatkowy narzut pamięciowy dla IOPT (da się zniwelować) 49

XEN Opis XEN jest monitorem maszyny wirtualnej dla architektur x86 oraz x86-64 IA-32 oraz IA-64 PowerPC 970 AMD Stworzony na Uniwersytecie Cambridge w 2003 roku Dziś rozwijany przez konsorcjum, składające się z: Citrix IBM Intel Sun Microsystems Hewlett-Packard 50

XEN Parawirtualizacja XEN powstawał jako VMM oferujący parawirtualizację systemy-goście mieli działać na niższych trybach uprzywilejowania niż monitor nie potrzebował zmian w ABI Application Binary Interface oferował wsparcie dla multipexing'u aplikacji jednoczesne korzystanie z tego samego kanału przesyłu danych przewidywał małą skalę do 100 maszyn wirtualnych działał bardzo sprawnie 51

XEN Pełna wirtualizacja XEN korzysta teraz z rozszerzeń VT-x oraz AMD-V obie architektury są obsługiwane przez jedną abstrakcyjną warstwę Począwszy od wersji 3.0 XEN obsługuje niezmodyfikowane systemy (np. systemy o zamkniętym kodzie) 52

XEN Pełna wirtualizacja Wspomaganie sprzętowe zapewnia nowe instrukcje VMCALL przerwanie w VM i oddanie kontroli do monitora Zapewnia nowe tryby wykonania programu root mode non-root mode oba posiadające swoje własne zestawy Ring 0-3 Gość nie widzi różnicy między VM a środowiskiem natywnym, ale jest ściśle kontrolowany przez monitor 53

XEN Trochę o technologii Niektóre instrukcje zawsze powodują przerwanie w VM RDMSR WRMSR CPUID Inne przerywają tylko dla odpowiednich ustawień kontroli HLT Wykorzystywane są dwie mapy bitowe mapa wyjątków dwie mapy I/O mapa A dla portów 0000-7999 mapa B dla portów 8000-FFFF VM exit obsługiwany jest przez vmx_vmexit_handler () Istnieją 43 podstawowe przerwania, do wglądu w vmx.h 54

XEN Ideologia System działający na maszynie wirtualnej korzysta bezpośrednio z zasobów procesora i pamięci. Pojawia się instrukcja powodująca przerwanie. Procesor jest w trybie non-root, zatem następuje przerwanie. Wywołany zostaje VM exit i kontrola zostaje oddana do monitora. Monitor w sposób bezpieczny wykonuje instrukcję. Kontrola zostaje oddana do procesora. Procesor wznawia pracę. 55

XEN Migracja Jedna z najciekawszych możliwości XEM Migracja odbywa się na żywo podczas działania maszyny następuje iteracyjne kopiowanie danych poprzez sieć LAN następuje zatrzymanie maszyny i synchronizacja danych ta część trwa zwykle bardzo krótko (~300ms) wznowienie pracy już przez drugą maszynę 56

XEN Zasada działania XEN działa w dwóch warstwach niższa monitor, o wyższych uprawnieniach wyższa maszyny wirtualne Wyższa warstwa dzieli się na dwie części dom0 pierwsza wirtualna maszyna domu kolejne wirtualne maszyny 57

XEN Schemat 58

XEN Dostęp do zasobów XEN PV maszyna parawirtualna posiada własne sterowniki XEN HVM HVM korzysta z działającego w tle dom0 daemona 59

KVM Opis Kernel-based Virtual Machine podejście stosunkowo nowe nie tyle metoda wirtualizacji, co część większego rozwiązania korzysta z Intel VT oraz AMD-V niewielki, ok. 10 000 linii kodu w przyszłości ma być funkcja systemową 60

KVM Zasada działania Zamienia jądro natywnego linuksa w monitor VM Systemy-goście są tworzeni w /dev/kvm każdy gość traktowany jest jak pojedynczy proces linuksa każdy ma swoją, oddzieloną od innych przestrzeń adresową KVM korzysta z zasobów natywnego linuksa wirtualizacja pamięci odbywa się poprzez /dev/kvm wsparcie procesora dla niemapowanych adresów wirtualizacja I/O odbywa się poprzez QEMU QEMU emulator symulujący całe środowisko komputera Nowy tryb: guest 61

KVM Schemat 62

XEN i KVM Obsługiwane systemy XEN Windows XP OpenBSD OpenSolaris Plan 9 (Bell Labs) Linux KVM Windows Server Windows Vista Windows XP Windows 2000 Red Hat (poza 7 i 8) Fedora Ubuntu i Debian SUSE Gentoo 63

XEN i KVM Testy 64

XEN i KVM Testy 65

XEN i KVM Testy 66

XEN i KVM Testy 67

XEN i KVM Testy 68

Niebezpieczeństwa wirtualizacji Malware musi wybierać pomiędzy siła a niewykrywalnością Wirtualizacja udostępnia wiele możliwości ukrycia się Łatwiej uzyskać całkowitą kontrolę nad komputerem Trudniej pozbyć się malware 69

Hardware VM Rootkits Rootkit malware, którego zadaniem jest przejęcie kontroli nad komputerem Strategia działania rozpoczyna prace w jądrze instaluje rootkit hypervisor zdobywa dla siebie trochę pamięci migruje natywny system do VM przejmuje dostęp do monitora Prosty w budowie i działaniu rozpoczyna jako ładowalny moduł jądra korzysta głównie z trzech funkcji Teoretycznie jest niewykrywalny 70

Przeciwdziałanie Aby przeciwdziałać trzeba rozpoznać, że zaistniał problem żaden rejestr ani bit nie przechowują informacji czy system działa natywnie czy jako VM Sposoby wykrywania problemu stworzenie nowej maszyny wirtualnej timing attack 71

Przykłady Blue Pill atakuje Microsoft Windows Vista na AMD Pacifica podobno można przeportować na x86 Vitriol atakuje MacOS X na Intel VT-x (Intel Core Duo/Solo) SubVirt atakuje Windows oraz Linux 72

Bibliografia http://www.floobydust.com/virtualization/lawton_1999.txt http://en.wikipedia.org/wiki/popek_and_goldberg_virtualization_requirements http://en.wikipedia.org/wiki/partial_virtualization http://en.wikipedia.org/wiki/full_virtualization http://en.wikipedia.org/wiki/platform_virtualization http://pl.wikipedia.org/wiki/wirtualizacja http://www.virtualization.info/2008/03/intel-to-introduce-new-virtualization.html http://software.intel.com/en-us/articles/ http://developer.amd.com/assets/npt-wp-1%201-final-tm.pdf http://www.intel.com/pressroom/archive/reference/whitepaper_nehalem.pdf http://en.wikipedia.org/wiki/iommu http://www.webopedia.com/didyouknow/computer_science/ http://www.xen.org/ http://kvm.qumranet.com/kvmwiki http://www.phoronix.com 73