Skip to Content


Technologie wirtualizacji serwerów

Wiele pomysłów na wirtualizację serwerów

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 (full virtualization)

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:

  • dostęp do pamięci
  • operacje dyskowe
  • komenda zatrzymania systemu

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:

  • możliwość uruchomienia dowolnego systemu operacyjnego w  wirtualnym środowisku
  • nie jest wymagana modyfikacja systemu uruchamianego w wirtualnym środowisku
  • bardzo wysoki poziom izolacji między wirtualnymi środowiskami (zwiększone bezpieczeństwo)

Wady:

  • bardzo duża utrata wydajności (nawet do 20-30% narzutu na obsługę wirtualizacji)

Wirtualizacja wspierana sprzętowo (hardware-assisted virtualization)

Zarówno Intel jak i AMD wprowadziły w nowych procesorach sprzętowe wsparcie wirtualizacji (procesory wyprodukowane po 2007 roku, technologie to Intel VTAMD-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:

  • możliwość uruchomienia dowolnego systemu operacyjnego w  wirtualnym środowisku
  • nie jest wymagana modyfikacja systemu uruchamianego w wirtualnym środowisku
  • niższy narzut na wydajność w porównaniu do pełnej wirtualizacji
  • zapewnia wysoki poziom izolacji między wirtualnymi środowiskami

Wady:

  • wymaga stosunkowo nowych procesorów (wyprodukowanych po 2007 roku), wspierających technologie
    Intel VT lub AMD-V
  • zastosowanie wirtualizacji wspieranej sprzętowo w „czystej postaci” na jej obecnym etapie rozwoju nadal wiąże się ze sporą utratą wydajności

Parawirtualizacja (paravirtualization)

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:

  • wysoka wydajność dzięki ograniczeniu środowiska, które trzeba symulować

Wady:

  • brak możliwości uruchomienia w wirtualizowanym środowisku dowolnego systemu operacyjnego; w praktyce lista systemów ogranicza się do systemów open source

Wirtualizacja na poziomie systemu operacyjnego (OS-based virtualization)

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:

  • bardzo wysoka wydajność, zbliżona do pracy na rzeczywistym systemie
  • nie wymaga do działania dedykowanego wsparcia wirtualizacji w procesorze
  • efektywne zarządzanie przestrzenią dyskową

Wady:

  • możliwość uruchomienia tylko systemów z rodziny, do której należy główny system (na przykład tylko Microsoft Windows albo tylko Linux)
  • wewnątrz kontenera nie ma możliwości zmiany kernela, ładowania dodatkowych modułów czy uzyskiwania dostępu bezpośrednio do fizycznych urządzeń