Wraz z rozwojem technologii wirtualizacji serwerów powstało wiele pomysłów na rozwiązania techniczne. Można wyróżnić następujące grupy systemów wirtualizacji:
Wybór optymalnego oprogramowania w zależności od oczekiwanych efektów jest kluczowy dla uzyskania korzyści z wirtualizacji serwerów.
Zbyt dużo możliwości? Pomożemy Ci zyskać na wdrożeniu wirtualizacji!
Pełna wirtualizacja to najstarszy sposób wirtualizowania serwerów. Oprogramowanie do wirtualizacji symuluje w 100% fizyczny serwer. Obsługa uprzywilejowanych instrukcji wykonywanych przez system operacyjny uruchomiony w wirtualnym środowisku takich jak:
polega na ich przechwytywaniu i odpowiedniej modyfikacji, tak by dotyczyły wyłącznie konkretnego wirtualnego środowiska, w którym zostały wywołane. Taki sposób obsługi wpływa negatywnie na wydajność.
Instrukcje nieuprzywilejowane, wywoływane przez aplikacje są najczęściej bezpośrednio przekazywane do procesora.
Nowe procesory firm Intel i AMD umożliwiają zastosowanie bardziej wydajnej wirtualizacji wspieranej sprzętowo.
Zalety:
Wady:
Zarówno Intel jak i AMD wprowadziły w nowych procesorach sprzętowe wsparcie wirtualizacji (procesory wyprodukowane po 2007 roku, technologie to Intel VT i AMD-V). Dzięki temu obsługa systemu operacyjnego uruchomionego w wirtualnym środowisku jest realizowana bezpośrednio przez procesor, co pozwala uzyskać większą wydajność. Istotną zaletą tej technologii jest możliwość uruchomienie w wirtualnym środowisku dowolnego systemu operacyjnego, bez potrzeby jego modyfikacji.
Wirtualizacja wspierana sprzętowo jest dość nowym rozwiązaniem, jednak zdobywa coraz większą popularność. W najbliższym czasie należy spodziewać się dynamicznego rozwoju procesorów wspierających wirtualizację oraz oprogramowania do zarządzania wirtualnymi środowiskami.
Zalety:
Wady:
Parawirtualizacja zapewnia wysoką wydajność kosztem możliwości uruchamiania niezmodyfikowanych systemów operacyjnych w wirtualnych środowiskach. Działanie tej technologii zakłada, że wirtualizowany system „wie”, że nie został uruchomiony bezpośrednio na fizycznym serwerze. Nie próbuje więc wykonywać zastrzeżonych poleceń samodzielnie, tylko przekazuje je do głównego systemu lub hypervisora.
Przygotowanie systemu operacyjnego do pracy w wirtualnym środowisku wymaga modyfikacji jego jądra. Uniemożliwia to uruchomienie w ten sposób systemów Microsoft Windows. W przypadku Linuksa wszystkie wiodące dystrybucje posiadają kernele wspierające popularne rozwiązania stosujące parawirtualizację.
Zalety:
Wady:
Podział na wirtualne środowiska odbywa się na poziomie systemu operacyjnego, który zamiast pojedynczego środowiska obsługuje ich kilka, zapewniając określony poziom odseparowania między nimi. Często wirtualne środowiska udostępnione w tej technologii są nazywane kontenerami (Container).
Główną zaletą jest bardzo wysoka wydajność i efektywne zarządzanie zasobami dyskowymi (dla wszystkich środowisk istnieje jedna kopia współdzielonego pliku, dopiero w przypadku jego modyfikacji tworzona jest kolejna). Dzięki temu możliwe jest uruchomienie na jednym fizycznym serwerze nawet kilkuset „lekkich” kontenerów, co jest trudniejsze do osiągnięcia w przypadku inych technologii wirtualizacji.
Technologia ta jest bardzo popularna wśród firm hostingowych, ponieważ pozwala na zapewnienie bezpieczeństwa i elastyczności konfiguracji poszczególnym klientom przy bardzo niskich nakładach na obsługę.
Zalety:
Wady: