46
1 Wirtualizacja Wirtualizacja Piotr Sikora Tomasz Ziółkowski

Wirtualizacja - Poznań University of Technologysirius.cs.put.poznan.pl/~inf69989/wirtualizacja.pdf2001 x86 Server Virtualization product 2003 Microsoft Virtual PC - technologia wirtualizacji

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Wirtualizacja - Poznań University of Technologysirius.cs.put.poznan.pl/~inf69989/wirtualizacja.pdf2001 x86 Server Virtualization product 2003 Microsoft Virtual PC - technologia wirtualizacji

1

Wirtualizacja

Wirtualizacja

Piotr SikoraTomasz Ziółkowski

Page 2: Wirtualizacja - Poznań University of Technologysirius.cs.put.poznan.pl/~inf69989/wirtualizacja.pdf2001 x86 Server Virtualization product 2003 Microsoft Virtual PC - technologia wirtualizacji

2

Plan wykładu

■ Pojęcie wirtualizacji■ Historia zagadnienia■ Kryterium realizowalności VM■ Dlaczego stosować wirtualizację?■ Rodzaje wirtualizacji■ Dostępne implementacje

Page 3: Wirtualizacja - Poznań University of Technologysirius.cs.put.poznan.pl/~inf69989/wirtualizacja.pdf2001 x86 Server Virtualization product 2003 Microsoft Virtual PC - technologia wirtualizacji

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

Page 4: Wirtualizacja - Poznań University of Technologysirius.cs.put.poznan.pl/~inf69989/wirtualizacja.pdf2001 x86 Server Virtualization product 2003 Microsoft Virtual PC - technologia wirtualizacji

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

Page 5: Wirtualizacja - Poznań University of Technologysirius.cs.put.poznan.pl/~inf69989/wirtualizacja.pdf2001 x86 Server Virtualization product 2003 Microsoft Virtual PC - technologia wirtualizacji

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

Page 6: Wirtualizacja - Poznań University of Technologysirius.cs.put.poznan.pl/~inf69989/wirtualizacja.pdf2001 x86 Server Virtualization product 2003 Microsoft Virtual PC - technologia wirtualizacji

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

Page 7: Wirtualizacja - Poznań University of Technologysirius.cs.put.poznan.pl/~inf69989/wirtualizacja.pdf2001 x86 Server Virtualization product 2003 Microsoft Virtual PC - technologia wirtualizacji

7

Kryterium realizowalności VM

Własności maszyny wirtualnej:

- Odpowiedniość

- Kontrola zasobów

- Wydajność

Page 8: Wirtualizacja - Poznań University of Technologysirius.cs.put.poznan.pl/~inf69989/wirtualizacja.pdf2001 x86 Server Virtualization product 2003 Microsoft Virtual PC - technologia wirtualizacji

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

Page 9: Wirtualizacja - Poznań University of Technologysirius.cs.put.poznan.pl/~inf69989/wirtualizacja.pdf2001 x86 Server Virtualization product 2003 Microsoft Virtual PC - technologia wirtualizacji

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)

Page 10: Wirtualizacja - Poznań University of Technologysirius.cs.put.poznan.pl/~inf69989/wirtualizacja.pdf2001 x86 Server Virtualization product 2003 Microsoft Virtual PC - technologia wirtualizacji

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)

Page 11: Wirtualizacja - Poznań University of Technologysirius.cs.put.poznan.pl/~inf69989/wirtualizacja.pdf2001 x86 Server Virtualization product 2003 Microsoft Virtual PC - technologia wirtualizacji

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

Page 12: Wirtualizacja - Poznań University of Technologysirius.cs.put.poznan.pl/~inf69989/wirtualizacja.pdf2001 x86 Server Virtualization product 2003 Microsoft Virtual PC - technologia wirtualizacji

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)

Page 13: Wirtualizacja - Poznań University of Technologysirius.cs.put.poznan.pl/~inf69989/wirtualizacja.pdf2001 x86 Server Virtualization product 2003 Microsoft Virtual PC - technologia wirtualizacji

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 ... :)

Page 14: Wirtualizacja - Poznań University of Technologysirius.cs.put.poznan.pl/~inf69989/wirtualizacja.pdf2001 x86 Server Virtualization product 2003 Microsoft Virtual PC - technologia wirtualizacji

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

Page 15: Wirtualizacja - Poznań University of Technologysirius.cs.put.poznan.pl/~inf69989/wirtualizacja.pdf2001 x86 Server Virtualization product 2003 Microsoft Virtual PC - technologia wirtualizacji

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

Page 16: Wirtualizacja - Poznań University of Technologysirius.cs.put.poznan.pl/~inf69989/wirtualizacja.pdf2001 x86 Server Virtualization product 2003 Microsoft Virtual PC - technologia wirtualizacji

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)

Page 17: Wirtualizacja - Poznań University of Technologysirius.cs.put.poznan.pl/~inf69989/wirtualizacja.pdf2001 x86 Server Virtualization product 2003 Microsoft Virtual PC - technologia wirtualizacji

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

Page 18: Wirtualizacja - Poznań University of Technologysirius.cs.put.poznan.pl/~inf69989/wirtualizacja.pdf2001 x86 Server Virtualization product 2003 Microsoft Virtual PC - technologia wirtualizacji

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

Page 19: Wirtualizacja - Poznań University of Technologysirius.cs.put.poznan.pl/~inf69989/wirtualizacja.pdf2001 x86 Server Virtualization product 2003 Microsoft Virtual PC - technologia wirtualizacji

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

Page 20: Wirtualizacja - Poznań University of Technologysirius.cs.put.poznan.pl/~inf69989/wirtualizacja.pdf2001 x86 Server Virtualization product 2003 Microsoft Virtual PC - technologia wirtualizacji

20

Dostępne rozwiązania

■ Emulacja procesora: Bochs, PearPC, QEMU.

Page 21: Wirtualizacja - Poznań University of Technologysirius.cs.put.poznan.pl/~inf69989/wirtualizacja.pdf2001 x86 Server Virtualization product 2003 Microsoft Virtual PC - technologia wirtualizacji

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.

Page 22: Wirtualizacja - Poznań University of Technologysirius.cs.put.poznan.pl/~inf69989/wirtualizacja.pdf2001 x86 Server Virtualization product 2003 Microsoft Virtual PC - technologia wirtualizacji

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.

Page 23: Wirtualizacja - Poznań University of Technologysirius.cs.put.poznan.pl/~inf69989/wirtualizacja.pdf2001 x86 Server Virtualization product 2003 Microsoft Virtual PC - technologia wirtualizacji

23

PearPC

Page 24: Wirtualizacja - Poznań University of Technologysirius.cs.put.poznan.pl/~inf69989/wirtualizacja.pdf2001 x86 Server Virtualization product 2003 Microsoft Virtual PC - technologia wirtualizacji

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.

Page 25: Wirtualizacja - Poznań University of Technologysirius.cs.put.poznan.pl/~inf69989/wirtualizacja.pdf2001 x86 Server Virtualization product 2003 Microsoft Virtual PC - technologia wirtualizacji

25

Dostępne rozwiązania

■ Natywna wirtualizacja: Microsoft:

➔ Virtual PC,➔ Virtual Server,

Parallels:➔ Workstation,➔ Desktop for Mac,

VMware:➔ Player,➔ Server,➔ ESX Server.

Page 26: Wirtualizacja - Poznań University of Technologysirius.cs.put.poznan.pl/~inf69989/wirtualizacja.pdf2001 x86 Server Virtualization product 2003 Microsoft Virtual PC - technologia wirtualizacji

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).

Page 27: Wirtualizacja - Poznań University of Technologysirius.cs.put.poznan.pl/~inf69989/wirtualizacja.pdf2001 x86 Server Virtualization product 2003 Microsoft Virtual PC - technologia wirtualizacji

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.

Page 28: Wirtualizacja - Poznań University of Technologysirius.cs.put.poznan.pl/~inf69989/wirtualizacja.pdf2001 x86 Server Virtualization product 2003 Microsoft Virtual PC - technologia wirtualizacji

28

Parallels Desktop for Mac

Page 29: Wirtualizacja - Poznań University of Technologysirius.cs.put.poznan.pl/~inf69989/wirtualizacja.pdf2001 x86 Server Virtualization product 2003 Microsoft Virtual PC - technologia wirtualizacji

29

Parallels Desktop for Mac

Page 30: Wirtualizacja - Poznań University of Technologysirius.cs.put.poznan.pl/~inf69989/wirtualizacja.pdf2001 x86 Server Virtualization product 2003 Microsoft Virtual PC - technologia wirtualizacji

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.

Page 31: Wirtualizacja - Poznań University of Technologysirius.cs.put.poznan.pl/~inf69989/wirtualizacja.pdf2001 x86 Server Virtualization product 2003 Microsoft Virtual PC - technologia wirtualizacji

31

VMware Server

Page 32: Wirtualizacja - Poznań University of Technologysirius.cs.put.poznan.pl/~inf69989/wirtualizacja.pdf2001 x86 Server Virtualization product 2003 Microsoft Virtual PC - technologia wirtualizacji

32

VMware Server

Page 33: Wirtualizacja - Poznań University of Technologysirius.cs.put.poznan.pl/~inf69989/wirtualizacja.pdf2001 x86 Server Virtualization product 2003 Microsoft Virtual PC - technologia wirtualizacji

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.

Page 34: Wirtualizacja - Poznań University of Technologysirius.cs.put.poznan.pl/~inf69989/wirtualizacja.pdf2001 x86 Server Virtualization product 2003 Microsoft Virtual PC - technologia wirtualizacji

34

VMware ESX Server

Page 35: Wirtualizacja - Poznań University of Technologysirius.cs.put.poznan.pl/~inf69989/wirtualizacja.pdf2001 x86 Server Virtualization product 2003 Microsoft Virtual PC - technologia wirtualizacji

35

VMware ESX Server (High Availability)

Page 36: Wirtualizacja - Poznań University of Technologysirius.cs.put.poznan.pl/~inf69989/wirtualizacja.pdf2001 x86 Server Virtualization product 2003 Microsoft Virtual PC - technologia wirtualizacji

36

Dostępne rozwiązania

■ Parawirtualizacja: Xen.

Page 37: Wirtualizacja - Poznań University of Technologysirius.cs.put.poznan.pl/~inf69989/wirtualizacja.pdf2001 x86 Server Virtualization product 2003 Microsoft Virtual PC - technologia wirtualizacji

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).

Page 38: Wirtualizacja - Poznań University of Technologysirius.cs.put.poznan.pl/~inf69989/wirtualizacja.pdf2001 x86 Server Virtualization product 2003 Microsoft Virtual PC - technologia wirtualizacji

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).

Page 39: Wirtualizacja - Poznań University of Technologysirius.cs.put.poznan.pl/~inf69989/wirtualizacja.pdf2001 x86 Server Virtualization product 2003 Microsoft Virtual PC - technologia wirtualizacji

39

Xen

Page 40: Wirtualizacja - Poznań University of Technologysirius.cs.put.poznan.pl/~inf69989/wirtualizacja.pdf2001 x86 Server Virtualization product 2003 Microsoft Virtual PC - technologia wirtualizacji

40

Dostępne rozwiązania

■ Zwielokrotnianie instancji systemy operacyjnego: FreeBSD jail(8), Solaris Containers, SWSoft:

➔ Virtuozzo,➔ openVZ.

Page 41: Wirtualizacja - Poznań University of Technologysirius.cs.put.poznan.pl/~inf69989/wirtualizacja.pdf2001 x86 Server Virtualization product 2003 Microsoft Virtual PC - technologia wirtualizacji

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.

Page 42: Wirtualizacja - Poznań University of Technologysirius.cs.put.poznan.pl/~inf69989/wirtualizacja.pdf2001 x86 Server Virtualization product 2003 Microsoft Virtual PC - technologia wirtualizacji

42

Solaris Containers

■ Host: Procesor:

➔ Intel x86,➔ SPARC,➔ SPARC64.

System operacyjny:➔ Solaris 10.

■ Gość: Procesor:

➔ ten sam.

System operacyjny:➔ ten sam.

Page 43: Wirtualizacja - Poznań University of Technologysirius.cs.put.poznan.pl/~inf69989/wirtualizacja.pdf2001 x86 Server Virtualization product 2003 Microsoft Virtual PC - technologia wirtualizacji

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.

Page 44: Wirtualizacja - Poznań University of Technologysirius.cs.put.poznan.pl/~inf69989/wirtualizacja.pdf2001 x86 Server Virtualization product 2003 Microsoft Virtual PC - technologia wirtualizacji

44

Virtuozzo

Page 45: Wirtualizacja - Poznań University of Technologysirius.cs.put.poznan.pl/~inf69989/wirtualizacja.pdf2001 x86 Server Virtualization product 2003 Microsoft Virtual PC - technologia wirtualizacji

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.

Page 46: Wirtualizacja - Poznań University of Technologysirius.cs.put.poznan.pl/~inf69989/wirtualizacja.pdf2001 x86 Server Virtualization product 2003 Microsoft Virtual PC - technologia wirtualizacji

46

Wirtualizacja

Pytania?