ISK: wirtualizacja

This commit is contained in:
Jan Potocki
2019-01-28 21:36:14 +01:00
parent 3be9713d10
commit 0f83bbbad4
+37
View File
@@ -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.