From 0f83bbbad4c618b1036b793b127f8ea6bbcfd493 Mon Sep 17 00:00:00 2001 From: Jan Potocki Date: Mon, 28 Jan 2019 21:36:14 +0100 Subject: [PATCH] ISK: wirtualizacja --- W4-INF-ISK.md | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 W4-INF-ISK.md diff --git a/W4-INF-ISK.md b/W4-INF-ISK.md new file mode 100644 index 0000000..260d73a --- /dev/null +++ b/W4-INF-ISK.md @@ -0,0 +1,37 @@ +# Charakterystyka wybranej techniki wirtualizacji +(to jest oczywiście dość rozległe zagadnienie i sami możemy wybrać o czym dokładnie powiemy, tu spróbowałem zebrać trochę informacji o różnych odmianach wirtualizacji, tak żebyście mieli rozeznanie w temacie) + +__Wirtualizacja sprzętu__ +Istotą wirtualizacji sprzętu jest uruchamianie na jednym fizycznym komputerze (__gospodarzu__, ang. _host_) wielu maszyn wirtualnych (__gości__, ang. _guest_), działających jak oddzielne komputery i umożliwiających instalację różnych systemów operacyjnych. + +Istnieją dwa rodzaje wirtualizacji sprzętu: +- __pełna wirtualizacja__ – wirtualizacja całego sprzętu wchodzącego w skład maszyny wirtualnej, dzięki czemu system operacyjny gościa pracuje tak samo, jak na fizycznej maszynie (z jego poziomu nie widać żadnej różnicy) i nie musi być modyfikowany do uruchamiania na maszynie wirtualnej, +- __parawirtualizacja__ – uruchamianie w wydzielonym środowisku gościa specjalnie zmodyfikowanej wersji systemu operacyjnego, tak by nie była konieczna wirtualizacja sprzętu, dzięki czemu system gościa może pracować wydajniej niż w przypadku pełnej wirtualizacji. + +Oprogramowanie służące do tworzenia maszyn wirtualnych na maszynie gospodarza nazywa się __hipernadzorcą__ (ang. _hypervisor_) lub __menedżerem maszyn wirtualnych__ (ang. _virtual machine monitor_). + +Wyróżniane są dwa rodzaje hipernadzorców: +- __hipernadzorca typu 1__ – uruchamiany bezpośrednio na sprzęcie gospodarza i mający nad nim pełną kontrolę, umożliwiający uruchamianie systemu operacyjnego gościa w trybie parawirtualizacji lub pełnej wirtualizacji – przykłady: Xen, VMware ESX, Microsoft Hyper-V, +- __hipernadzorca typu 2__ – uruchamiany jako program pod kontrolą systemu operacyjnego gospodarza, umożliwiający uruchamianie systemu operacyjnego gościa w trybie pełnej wirtualizacji jako jeden z procesów w systemie gospodarza – przykłady: VirtualBox, VMware Workstation, KVM. + +W celu zwiększenia wydajności zwirtualizowanych systemów zostały opracowane technologie __sprzętowego wspomagania wirtualizacji__ (w przypadku architektury x86: Intel VT-x, AMD-V). Pozwalają one hipernadzorcy obsługiwać sprzętowo część żądań systemu gościa zamiast ich przetwarzania programowego, co zmniejsza obciążenie maszyny gospodarza (i jest istotne przede wszystkim przy pełnej wirtualizacji). + +__Wirtualizacja na poziomie systemu operacyjnego (konteneryzacja)__ +Konteneryzacja polega na uruchamianiu w obrębie jednego systemu operacyjnego różnych aplikacji w wydzielonych, izolowanych przestrzeniach użytkownika (nazywanych kontenerami). Każdy kontener posiada swój system plików (zawierający wszystkie zależności potrzebne do uruchomienia aplikacji), współdzieli natomiast z systemem gospodarza jądro systemu operacyjnego. Dzięki temu możliwe jest zapewnienie różnym programom oddzielnych środowisk roboczych bez konieczności wirtualizacji systemu operacyjnego i związanych z tym spadków wydajności. Przykłady: Docker (Linux, obecnie najpowszechniejszy mechanizm konteneryzacji), wbudowane mechanizmy Linuksa (LXC), Solarisa (zones), FreeBSD (jails). + +__Wirtualizacja sieci__ +Wyróżnia się dwa podstawowe rodzaje wirtualizacji sieci: +- __wewnętrzną__ – wirtualizacja interfejsów sieciowych, przełączników i innych urządzeń sieciowych w celu zapewnienia łączności maszyn wirtualnych (lub kontenerów) w zależności od potrzeby między sobą nawzajem, systemem gospodarza lub siecią zewnętrzną, +- __zewnętrzną__ – logiczny podział sieci lokalnych na podsieci z wykorzystaniem VLANów (na poziomie konfiguracji urządzeń sieciowych, przede wszystkim przełączników), niezależnie od fizycznej struktury urządzeń w sieci. + +__Wirtualizacja serwerów__ +Wykorzystanie różnych rodzajów wirtualizacji (np. wirtualizacji sprzętu lub konteneryzacji i wewnętrznej wirtualizacji sieci) do uruchamiania na jednej fizycznej maszynie wielu niezależnych serwerów, mogących posiadać różnych administratorów. Umożliwia to często optymalniejsze wykorzystanie zasobów fizycznych serwerów i ułatwia utrzymanie sprzętu w porównaniu z używaniem oddzielnych fizycznych maszyn dla każdego z serwerów. + +__Wirtualizacja pulpitu__ +Wykorzystanie różnych rodzajów wirtualizacji w celu oddzielenia używanego przez użytkownika systemu operacyjnego od sprzętu, przy którym pracuje. Najczęściej system operacyjny jest uruchomiony na serwerze, a użytkownicy łączą się z nim przez sieć (zwykle za pomocą cienkich klientów) – dzięki temu użytkownik ma dostępne zawsze to samo środowisko pracy niezależnie od stanowiska, ułatwia to też administrację systemami użytkowników. + +W prostszym wariancie może być wykorzystana wirtualizacja sesji – wtedy wielu użytkowników używa jednego systemu operacyjnego uruchomionego na odpowiednio wydajnym serwerze – przykłady: LTSP (projekt społecznościowy), Sun Ray (Oracle, wycofywany). +W bardziej skomplikowanym wariancie używa się wirtualizacji sprzętu – system operacyjny każdego z użytkowników jest uruchomiony w maszynie wirtualnej na serwerze – przykłady: VMware Horizon, Citrix XenDesktop. + +__Wirtualne sieci prywatne (VPN)__ +Wykorzystanie wirtualnych szyfrowanych połączeń punkt-punkt zestawianych przez publiczne łącza, w celu łączenia odległych sieci lokalnych bezpiecznym kanałem bez konieczności dzierżawienia własnych łącz od operatorów (kosztowne) lub w celu zdalnego dostępu do sieci wewnętrznej z dowolnego miejsca w internecie (np. do sieci firmowej z domu pracownika) – przykłady protokołów: OpenVPN, IKEv2+IPSec, Cisco IPSec.