Wirtualizacja - Poznań University of...
Transcript of Wirtualizacja - Poznań University of...
1
Wirtualizacja
Wirtualizacja
Piotr SikoraTomasz Ziółkowski
2
Plan wykładu
■ Pojęcie wirtualizacji■ Historia zagadnienia■ Kryterium realizowalności VM■ Dlaczego stosować wirtualizację?■ Rodzaje wirtualizacji■ Dostępne implementacje
3
Definicja wirtualizacji■ “technique for hiding the physical characteristics of computing resources
from the way in which other systems, applications, or end users interact with those resources. This includes making a single physical resource (such as a server, an operating system, an application, or storage device) appear to function as multiple logical resources; or it can include making multiple physical resources (such as storage devices or servers) appear as a single logical resource.”- Virtualization: Exposing the Intangible Enterprise, 2006, Enterprise Management Associates
4
Definicja wirtualizacji
Wirtualizacja ma na celu definiowanie dowolnych
zasobów (dane jak również moc obliczeniowa), do
których dostęp nie jest ograniczony poprzez:
- położenie geograficzne
- fizyczną konfigurację
- implementacje
5
Historia - początki
■1960 Atlas 1960s, Manchester University and Ferranti Ltd. - program nadzorujący Supervisor
■1964 M44/44X Project - wirtualna maszyna oparta o mainframe IBM 7044(M44), maszyny wirtualne korzystały z wirtualnej pamięci i wieloprogramowania.
■1965 CP40 - wirtualna maszyna oparta na IBM 860/40
■1965 IBM 360/67 - pierwszy 32-bitowy komputer wspierający pełna wirtualizację
■1967 CP67 - (następca CP40) wirtualna maszyna oparta na IBM 360/67
6
Historia - kontynuacja
■ 1970 VM/370 - seria popularnych VM bazujących na CP67
--------------------------------------------------------------
■ 1999 Pierwsza wirtualna platforma dla IA-32 VMware Virtual Platform
■ 2001 x86 Server Virtualization product
■ 2003 Microsoft Virtual PC - technologia wirtualizacji na poziomie maszynowym
7
Kryterium realizowalności VM
Własności maszyny wirtualnej:
- Odpowiedniość
- Kontrola zasobów
- Wydajność
8
Kryterium realizowalności VM
Zbiory instrukcji:
- Instrukcje uprzywilejowane
- Instrukcje wrażliwe ze względu na kontrolę
- Instrukcje wrażliwe ze względu na wykonanie
9
Kryteriur realizowalności VM
■ Kryterium Popka-Goldberga (1974):“Dla każdego standardowego komputera trzeciej generacji wirtualna maszyna może zostać skonstrukowana, jeśli zbiór instrukcji wrażliwych jest podzbiorem zbioru instrukcji uprzywilejowanych.”
■ Udowodniono, iż można zbudować maszynę wirtualną nie spełniająca ww. twierdzenia (parawirtualizacja)
10
Dlaczego stosować wirtualizację ?
■ Logiczna agregacja – jeden logiczny serwer www, farma fizycznych serwerów
■ Uruchamianie 'spadkowych' aplikacji – emulacja
■ Zapewnianie bezpieczeństwa – nieznane aplikacje uruchamiane na izolowanych maszynach wirtualnych
■ Tworzenie środowisk z konkretnymi gwarancjami, restrykcjami oraz regułami szeregowania zadań (testowanie technologii np. QoS)
11
Dlaczego stosować wirtualizację ?
■ Wirtualizacja fizycznych zasobów, które w rzeczywistości nie istnieją
■ Uruchamianie kilku systemów operacyjnych na jednym hoście.
■ Potencjalnie największe możliwości debugowania.
■ Ochrona i kontrolowanie błędów
■ Testowanie oprogramowania typu klient-serwer
12
Dlaczego stosować wirtualizację ?
■ Traktowanie aplikacji jako osobnych 'urządzeń' poprzez uruchamianie ich na osobnych wirtualnych maszynach
■ Eksperymenty – izolacja zapewnie duże bezpieczeństwo pracy
■ Uruchamianie systemów operacyjnych w środowisku multiprocesorowym
■ Ułatwienie zarządzania popularnymi zadaniami (backup, migracja systemów, odzyskiwanie danych)
13
Dlaczego stosować wirtualizację ?
■ Uniezależnienie oprogramowania od platformy sprzętowej (JVM) – zapewnianie kompatybilności
■ Implementacja OS – emulacja procesorów, które jeszcze nie są dostępne
■ Wirtualizacja jest fajna ... :)
14
Rodzaje wirtualizacji - Emulacja
Emulacja – pełna wirtualizacja z dynamiczną rekompilacją kodu. Pozwala na uruchamianie systemu operacyjnego 'gościa' bez żadnej ingerencji w jego kod. Maszyna wirtualna symuluje całe środowisko sprzętowe. Przykładowe realizacje: Bochs, PearPC
15
Rodzaje wirtualizacji – Native
Pełna (natywna) wirtualizacja – Wirtualna maszyna symuluje wystarczającą część fizycznego środowiska, by umożliwić niemodyfikowanemu OS 'gościa' (zaimplementowanego dla odpowiedniej rzeczywistej architektury) izolowane uruchomienie. Przykładowe realizacje: CP-40, VMware Workstation
16
Rodzaje wirtualizacji - Partial
Wirtualizacja częściowa (również wirtualiacja przestrzeni adresowej) – wirtualna maszyna symuluje kilka instancji dużej części rzeczywistego środowiska fizycznego (nie całość!), pozwala na współdzielenie zasobów i izolację procesów, lecz nie zezwala na uruchomienie izolowanego OS. Istotna z historycznego punktu widzenia (IBM M44/44X)
17
Rodzaje wirtualizacji - Para.
Parawirtualizacja - od maszyny wirtualnej nie wymaga się by symulowała sprzęt, lecz aby dostarczała odpowiedniego API, z którego korzysta zmodyfikowany OS 'gościa'. 'Gość' odwołuje się do hypervisora(odpowiednik supervisora w OS). Przykłady realizacji: Xen
18
Rodzaje wirtualizacji – Poziom OS
Wirtualizacja na poziomie OS (zwielokrotnianie OS) – umożliwia uruchomienie kilku wirtualnych serwerów na jednym fizycznym serwerze. OS 'gościa' współdzieli OS hosta, przez co należy rozumieć, iż OS 'gościa' jest zaimplementowany przy użyciu tego samego jądra co OS hosta. Aplikacja uruchomiona na systemie wirtualnym stanowi samodzielny system (bezpieczeństwo). Przykładowe realizacje: Linux-VServer, Virtuozzo
19
Rodzaje wirtualizacji - Application
Wirtualizacja aplikacji – działa w lokalnym OS, z wykorzystaniem lokalnych zasobów, wewnątrz odpowiedniej wirtualnej maszyny. W odróżnieniu od aplikacji zainstalowanych w lokalnym OS, aplikacje wirtualne działają w wirtualnych mini-środowiskach zawierających zasoby umożliwiające prawidłowe wykonanie aplikacji (np. Rejestry I/O, pliki, zmienne środowiskowe). Wirtualna maszyna jest w tym przypadku warstwą pomiędzy OS-em hosta a uruchamianą aplikacją. Przykłady realizacji: JVM, Softricity
20
Dostępne rozwiązania
■ Emulacja procesora: Bochs, PearPC, QEMU.
21
Bochs
■ Host: Procesor:
➔ Intel x86,➔ Alpha,➔ AMD64,➔ ARM,➔ PowerPC,➔ SPARC.
System operacyjny:➔ AIX,➔ BeOS,➔ IRIX,➔ Linux,➔ Mac OS X,➔ Windows.
■ Gość: Procesor:
➔ Intel x86,➔ AMD64.
System operacyjny:➔ *BSD,➔ Linux,➔ MS-DOS,➔ Windows.
22
PearPC
■ Host: Procesor:
➔ Intel x86,➔ AMD64,➔ PowerPC.
System operacyjny:➔ Linux,➔ Mac OS X,➔ NetBSD,➔ Windows.
■ Gość: Procesor:
➔ PowerPC.
System operacyjny:➔ Darwin,➔ Linux,➔ Mac OS X.
23
PearPC
24
QEMU
■ Host: Procesor:
➔ Intel x86,➔ Intel IA-64,➔ Alpha,➔ AMD64,➔ ARM,➔ MIPS,➔ PowerPC,➔ SPARC,➔ SPARC64.
System operacyjny:➔ BeOS,➔ FreeBSD,➔ Linux,➔ Mac OS X,➔ Windows.
■ Gość: Procesor:
➔ Intel x86,➔ AMD64,➔ ARM,➔ MIPS,➔ SPARC,➔ SPARC64➔ PowerPC.
System operacyjny:➔ BeOS,➔ FreeBSD,➔ Linux,➔ Mac OS X,➔ NetBSD,➔ Solaris,➔ Windows.
25
Dostępne rozwiązania
■ Natywna wirtualizacja: Microsoft:
➔ Virtual PC,➔ Virtual Server,
Parallels:➔ Workstation,➔ Desktop for Mac,
VMware:➔ Player,➔ Server,➔ ESX Server.
26
Microsoft Virtual PC/Server
■ Host: Procesor:
➔ Intel x86,➔ AMD64.
System operacyjny:➔ Windows (XP/2003).
■ Gość: Procesor:
➔ Intel x86.
System operacyjny:➔ Linux (RedHat/SuSE),➔ Windows (XP/2003).
27
Parallels Desktop/Workstation
■ Host: Procesor:
➔ Intel x86.
System operacyjny:➔ Linux,➔ Mac OS X,➔ Windows.
■ Gość: Procesor:
➔ Intel x86.
System operacyjny:➔ Darwin,➔ FreeBSD,➔ Linux,➔ Mac OS X,➔ MS-DOS,➔ Solaris,➔ Windows.
28
Parallels Desktop for Mac
29
Parallels Desktop for Mac
30
VMware Player/Server
■ Host: Procesor:
➔ Intel x86,➔ AMD64.
System operacyjny:➔ Linux,➔ Windows.
■ Gość: Procesor:
➔ Intel x86,➔ AMD64.
System operacyjny:➔ FreeBSD,➔ Linux,➔ Mac OS X,➔ MS-DOS,➔ NetWare,➔ Solaris,➔ Windows.
31
VMware Server
32
VMware Server
33
VMware ESX Server
■ Host: Procesor:
➔ Intel x86,➔ AMD64.
System operacyjny:➔ brak.
■ Gość: Procesor:
➔ Intel x86.
System operacyjny:➔ FreeBSD,➔ Linux,➔ Mac OS X,➔ MS-DOS,➔ NetWare,➔ Solaris,➔ Windows.
34
VMware ESX Server
35
VMware ESX Server (High Availability)
36
Dostępne rozwiązania
■ Parawirtualizacja: Xen.
37
Xen 2.0
■ Host: Procesor:
➔ Intel x86,➔ AMD64.
System operacyjny:➔ Linux (port),➔ NetBSD (port).
■ Gość: Procesor:
➔ Intel x86,➔ AMD64.
System operacyjny:➔ FreeBSD (port),➔ Linux (port),➔ Minix (port),➔ NetBSD (port),➔ NetWare (port),➔ OpenBSD (port),➔ OpenSolaris (port),➔ Plan 9 (port).
38
Xen 3.0 + Intel VT
■ Host: Procesor:
➔ Intel x86 (VT).
System operacyjny:➔ Linux.
■ Gość: Procesor:
➔ Intel x86 (VT).
System operacyjny:➔ Linux,➔ Solaris 10,➔ Windows (XP/2003).
39
Xen
40
Dostępne rozwiązania
■ Zwielokrotnianie instancji systemy operacyjnego: FreeBSD jail(8), Solaris Containers, SWSoft:
➔ Virtuozzo,➔ openVZ.
41
FreeBSD jail(8)
■ Host: Procesor:
➔ Intel x86,➔ Intel IA-64,➔ Alpha,➔ AMD64,➔ PowerPC,➔ SPARC64.
System operacyjny:➔ DragonFlyBSD,➔ FreeBSD,➔ HomeBSD.
■ Gość: Procesor:
➔ ten sam.
System operacyjny:➔ ten sam.
42
Solaris Containers
■ Host: Procesor:
➔ Intel x86,➔ SPARC,➔ SPARC64.
System operacyjny:➔ Solaris 10.
■ Gość: Procesor:
➔ ten sam.
System operacyjny:➔ ten sam.
43
Virtuozzo
■ Host: Procesor:
➔ Intel x86,➔ Intel IA-64,➔ Alpha,➔ AMD64,➔ ARM,➔ MIPS,➔ PowerPC,➔ SPARC,➔ VAX.
System operacyjny:➔ Linux,➔ Windows.
■ Gość: Procesor:
➔ ten sam.
System operacyjny:➔ ten sam.
44
Virtuozzo
45
openVZ
■ Host: Procesor:
➔ Intel x86,➔ Intel IA-64,➔ Alpha,➔ AMD64,➔ ARM,➔ MIPS,➔ PowerPC,➔ SPARC,➔ VAX.
System operacyjny:➔ Linux.
■ Gość: Procesor:
➔ ten sam.
System operacyjny:➔ ten sam.
46
Wirtualizacja
Pytania?