Serwery VPS a rodzaj wirtualizacji

Przemysław Świderski 2014-06-11

W artykule postaram się wyjaśnić, czym jest serwer VPS oraz opisać popularne rodzaje wirtualizacji ze wskazaniem na ich wady, zalety oraz ograniczenia. Zapraszam do lektury!

Serwery VPS są jedną z bardziej popularnych usług oferowanych przez firmy z branży hostingowej. Ogromna ilość opcji i konfiguracji może powodować problem dla potencjalnego konsumenta podczas wyboru właściwego rozwiązania. Wśród dużej ilości informacji na temat pojemności dysków, pamięci RAM oraz mocy procesora często pojawia się informacja, jaką jest technologia wirtualizacji wykorzystywana przez dostawcę. Xen, KVM, OpenVZ, ESXi – te nazwy niewiele mówią potencjalnego klientowi. 

Serwer VPS

VPS to skrót od Virtual Private Server, czyli wirtualny serwer osobisty/dedykowany. Serwery VPS to wirtualne maszyny uruchomione w ramach fizycznego komputera, które mają przydzielone odpowiednią ilość zasobów pamięci RAM, procesora oraz dysku. Na maszynie fizycznej uruchomione jest specjalne oprogramowanie, które pozwala tworzyć maszyny wirtualne. Oprogramowanie to nazywane jest hipernadzorcą (ang. hypervisor). Dzięki temu tworzone jest wirtualne środowisko, które umożliwia instalację całego systemu operacyjnego. Na jednej maszynie fizycznej może być wiele takich maszyn wirtualnych, które posiadają odpowiednio przydzielone zasoby. Powstało wiele technologii wirtualizacji, a każda z nich posiada swoje indywidualne cechy, które warto znać przed wyborem właściwego serwera VPS.

Słowniczek pojęć

Hypervisor – oprogramowanie nadzorujące i zarządzające procesem wirtualizacji po stronie systemu operacyjnego hosta. Maszyna wirtualna – to wydzielone środowisko z określonymi zasobami i wirtualnymi urządzeniami utworzone przez hiperwizor, które pozwala uruchamiać systemy operacyjne gościa. System operacyjny hosta – system uruchomiony na fizycznej maszynie, w którym działa hypervisor (hypervisor typu II) lub sam hypervisor jest systemem operacyjnym hosta (hypervisor typu I). System operacyjny gościa – system uruchomiony wewnątrz maszyny wirtualnej. Kontener – tym określeniem nazywa się maszyny wirtualne w wirtualizacji na poziomie systemu operacyjnego.

Rodzaje wirtualizacji

Technologie wirtualizacji można podzielić na kilka zasadniczych rodzajów. Każdy rodzaj wirtualizacji prezentuje nieco odmienne podejście do tematu.

Pełna wirtualizacja

W przypadku pełnej wirtualizacji emulowany jest cały wirtualny komputer oraz wszystkie urządzenia. System operacyjny uruchomiony na takiej maszynie wirtualnej nie ma „świadomości”, że uruchomiony jest w środowisku wirtualnym. Technologie pełnej wirtualizacji umożliwiają zasadniczo uruchomienie dowolnego systemu operacyjnego w maszynie wirtualnej. Niestety konieczność emulacji każdego urządzenia znacznie obciąża procesor fizycznej maszyny (hypervisor'a). Dlatego ten rodzaj wirtualizacji nie jest wykorzystywany w środowiskach produkcyjnych. Rozwiązania:

  • QEMU
  • VirtualBox

Wirtualizacja sprzętowa (HVM)

Poprawna nazwa powinna brzmieć: pełna wirtualizacja ze wsparciem sprzętowym (ang. HVM – Hardware-assisted Virtual Machine). Jest to odmiana wirtualizacji pełnej, która korzysta ze sprzętowym rozszerzeń wirtualizacji architektury x86 – dla procesorów Intel (VT-x), dla procesorów AMD (AMD-V). Dużą zaletą tego rozwiązania jest zwiększona szybkość – dzięki wsparciu sprzętowemu część zadań realizowana jest bezpośrednio przez procesor hosta bez kosztownego procesu emulacji. Istotną wadą technologii z tej grupy jest konieczność posiadania sprzętowych rozszerzeń wirtualizacji w procesorze. Jeżeli zamierzamy na fizycznym serwerze dedykowanym uruchamiać maszyny wirtualne do należy się upewnić, że procesor oferowany przez dostawcę posiada odpowiednie rozszerzenia. Obecnie większość dostępnych na rynku procesorów spełnia te wymagania. Rozwiązania:

  • KVM
  • Xen HVM
  • VMware ESXi, vSphere
  • MS Hyper-V
  • VirtualBox (wsparcie dla sprzętowych rozszerzeń uruchamiane automatycznie po wykryciu)

Parawirtualizacja

Parawirtualizacja jest ciekawym podejściem do rozwiązania problemu dostępu do określonych rejestrów procesora jednocześnie przez wiele systemów operacyjnych. W poprzednich rozwiązaniach było to realizowane poprzez emulacje programową, albo przez sprzętowe rozszerzenia w procesorze. W przypadku parawirtualizacji te nefralgiczne instrukcje są wykonywane bezpośrednio przez oprogramowanie hypervisor'a. Niestety wymaga to pewnych zmian w samym systemie operacyjnym gościa tak, aby przekazywał te wywołania nie do procesora tylko bezpośrednio do hypervisora. Wywołania te nazywane są hypercalls (hiper‑wywołania). Przedstawicielem tego podejścia jest Xen w trybie parawirtualizacji. Tryb ten zapewnia dobrą wydajność wirtualnego środowiska, ponieważ usunięta została dodatkowa warstwa emulacji programowej. Wadą tego rozwiązania jest to, że nie uruchomimy na nim dowolnego systemu operacyjnego. Odpowiednio zmodyfikowane jądro posiadają systemy Linux oraz FreeBSD, w tej technologii nie uruchomimy, natomiast systemów z rodziny Windows. Rozwiązania:

  • Xen PV

Wirtualizacja hybrydowa

Nie jest to odmienne podejście do wirtualizacji, tylko odpowiednie połączenie już istniejących rozwiązań. W maszynach wirtualnych obok wirtualizacji pamięci i procesora wirtualizowane są również urządzenia – szczególnie dyskowe oraz sieciowe. Wydajność operacji pamięci masowych oraz sieci są bardzo istotne z punktu widzenia systemów produkcyjnych. Z tego powodu opracowano specjalne sterowniki dla urządzeń dyskowych i sieciowych, które pozwalają systemom operacyjnym wewnątrz maszyn wirtualnych komunikować się bezpośrednio z odpowiednim interfejsem po stronie systemu hosta. W ten sposób eliminowany jest problem wydajnościowy związany z programową emulacją tych zadań. Większość obecnych rozwiązań wirtualizacji sprzętowej udostępnia parawirtualizowane sterowniki dla wirtualizowanych systemów operacyjnych. Rozwiązania:

  • Wszystkie platformy wirtualizacji sprzętowej wymienione w poprzednim akapicie

Wirtualizacja na poziomie systemu operacyjnego

Szczególnie popularny rodzaj wirtualizacji wśród dostawców VPS. W tym rodzaju wirtualizacji mamy do czynienia z uruchamianiem tego samego (lub zbliżonego) systemu operacyjnego w tak zwanym kontenerze. Z technicznego punktu widzenia nie jest to technologia wirtualizacji, a raczej sposób izolacji kolejnych instancji tego samego systemu operacyjnego w ramach jednej maszyny fizycznej. Kontener posiada wydzielone zasoby oraz izolację procesów i urządzeń w celu zapewnienia bezpieczeństwa innych kontenerom, oraz systemowi hosta. Rozwiązanie to zapewnia dużą wydajność ze względu na brak potrzeby tworzenia całego wirtualnego komputera i emulacji urządzeń. Z kontenerami wiąże się również znacznie więcej ograniczeń w porównaniu z wirtualizacją sprzętową. System uruchomiony w kontenerze współdzieli jądro z systemem hostem, przez co nie ma możliwości kompilacji własnych modułów, aktualizacji jądra. Często obsługa iptables realizowana jest w ograniczonym zakresie. Wirtualizacja na poziomie systemu operacyjnego jest świetnym rozwiązaniem z punktu widzenia dostawcy, ponieważ pozwala maksymalnie wykorzystać zasoby w celu uruchomienia dużej ilości kontenerów. Rozwiązanie to jest odpowiednie do zastosowań typowo hostingowych: poczta, www. Rozwiązania:

  • OpenVZ (otwarta wersja Virtuozzo)
  • Parallels Virtuozzo
  • LXC (natywna technologia wbudowana w jądro Linux, na chwilę obecną raczej rzadko spotykana w ofertach firm hostingowych)

Popularne technologie

KVM

KVM (Kernel-based Virtual Machine) to technologia pełnej wirtualizacji sprzętowej wbudowana w jądro systemu Linux. KVM jest modułem jądra, który zapewnia wsparcie dla sprzętowej akceleracji wirtualizacji w procesorze. KVM w znacznej mierze korzysta z dorobku popularnego emulatora QEMU zapewniając mu wsparcie dla sprzętowych rozszerzeń wirtualizacji. Jest to stosunkowo młoda technologia, która zdobywa zoraz większą popularność ze względu na prostotę i dobrze przemyślaną architekturę. KVM posiada komercyjne wsparcie ze strony firmy RedHat i wielu znanych firm z branży IT wchodzących w skład orgranizacji OpenVirtualizationAlliance. Zalety:

  • prosta instalacja wymagająca minimalnej ilości narzędzi do działania
  • wysoka izolacja i bezpieczeństwo uruchomionych maszyn wirtualnych
  • wysoka wydajność ze względu na obsługę sprzętowych rozszerzeń wirtualizacji oraz parawirtualizowane sterowniki dysku i sieci (VirtIO)
  • wiele zaawansowanych otwartych systemów zarządzania wirtualizacją wspiera KVM
  • uniwersalna – wirtualizacja dla serwerów oraz dla stacji roboczych pod kontrolą systemu Linux
  • możliwość uruchomienia dowolnego systemu operacyjnego w pełnej wersji bez ograniczeń

Wady:

  • mniejsza wydajność od rozwiązań opartych na kontenerach (OpenVZ, LXC)
  • konieczność posiadania procesora ze sprzętowym wsparciem wirtualizacji

XEN

Xen jest kolejnym rozwiązaniem typu open source z dłuższą od KVM historią. Przed pojawieniem się technologii KVM był główną technologią wykorzystywaną w środowisku Linux. Z tej technologii korzystają wielcy dostawcy chmury publicznej (Amazon S3, Google). Xen wspiera dwa podstawowe tryby wirtualizacji:

  • Xen PV - tryb parawirtualizacji, podstawowy tryb pracy XEN'a. Wymaga zmodyfikowanej wersji systemu gościa do działania. Brak obsługi standardowego bootloader'a w systemie. W tym trybie możliwa jest jedynie wirtualizacja systemów Linux i FreeBSD.
  • Xen HVM - tryb pełnej wirtualizacji sprzętowej. W tym trybie Xen korzysta z QEMU i działa podobnie do KVM. Jest możliwość instalacji dowolnego systemu oraz obsługa sprzętowych rozszerzeń wirtualizacji.

Firma Citrix opracowała rozwiązanie pod nazwą XenServer (obecnie open source), które korzysta z wirtualizacji w technologii Xen HVM. Zalety:

  • dojrzała technologia
  • dobra wydajność (szczególnie w trybie PV) i izolacja pomiędzy maszynami
  • możliwość uruchomienia na starszym procesorze w trybie PV

Wady:

  • bardziej skomplikowana architektura w porównaniu z KVM
  • brak wsparcia dla wszystkich systemów w trybie PV
  • utrudniona aktualizacja jądra oraz migracja do innej technologii w trybie PV

VMware ESXi, vSphere

To komercyjne rozwiązania firmy VMware, która posiada ugruntowaną pozycję na rynku w dziedzinie rozwiązań wirtualizacji oraz platform chmurowych. Podstawowa wersja hypervisor'a jest dostępna bezpłatnie. Rozwiązania firmy VMware pracują w trybie pełnej wirtualizacji sprzętowej. Zalety:

  • dojrzała technologia
  • dobra dokumentacja i wsparcie komercyjne

Wady:

  • rozwiązanie komercyjne – wysoki koszt w przypadku wdrożeń produkcyjnych
  • mniejsza elastyczność w zakresie budowania infrastruktury

MS Hyper-V

Hyper-V to technologia wirtualizacji od firmy Microsoft wprowadzona w systemach Windows Server 2008, Windows Server 2012 i Windows 8. Jest rozwiązaniem pełnej wirtualizacji sprzętowej. Hyper-V jest dostępne również za darmo w postaci Microsoft Hyper-V Server 2012 w ramach tego dostajemy system operacyjny, który można zainstalować na serwerze w trybie konsoli i zarządzać nim zdalnie z poziomu Hyper-V Managera w systemie Windows 8. Zalety:

  • możliwość instalacji w Windows 8 Professional
  • dostępna wersja darmowa Hyper-V Server 2012
  • dobra integracja z systemami z rodziny Windows

Wady:

  • gorsze wsparcie dla innych systemów operacyjnych w roli systemu gościa
  • większe wymagania sprzętowe w porównaniu z KVM

Parallels Virtuozzo Containers

Virtuozzo to rozwiązanie niemieckiej firmy Parallels specjalizującej się w rozwiązaniach dla firm hostingowych (twórcy popularnego panelu Plesk). Virtuozzo to technologia wirtualizacji na poziomie systemu operacyjnego. Zapewnia wyższą wydajność uruchomionych maszyn wirtualnych w porównaniu do rozwiązań pełnej wirtualizacji. Zalety:

  • bardzo duża wydajność
  • niższe koszty dla dostawcy ze względu na lepszą utylizację zasobów sprzętowych
  • niższa cena dla klienta końcowego

Wady:

  • brak pełnej kontroli nad systemem operacyjnym w kontenerze (aktualizacja jądra, dołączanie modułów)

OpenVZ

OpenVZ - projekt open source powstały z inicjatywy firmy Parallels – jest to wirtualizacja na poziomie OS, która cechuje się podobnymi właściwościami do Virtuozzo. OpenVZ jest jedną z najbardziej popularnych technologii używanych przez dostawców serwerów VPS. Głównie ze względu na maksymalne wykorzystanie zasobów oraz niskie koszty samego rozwiązania. Zalety:

  • bardzo duża wydajność
  • niższe koszty dla dostawcy ze względu na lepszą utylizację zasobów sprzętowych
  • niższa cena dla klienta końcowego

Wady:

  • możliwość uruchomienia tylko systemów z rodziny Linux
  • brak pełnej kontroli nad systemem operacyjnym w kontenerze (aktualizacja jądra, dołączanie modułów)

Co zatem wybrać?

Wybór  zależy od potrzeb i wymagań, dla których decydujemy się na serwer VPS. Poniżej przedstawiam trzy najbardziej prawdopodobne przykłady zastosowań dla poszczególnych typów serwerów VPS. 1. Serwer VPS oparty o pełną wirtualizację sprzętową - KVM, Xen HVM, VMware

  •  instalacja dowolnego systemu operacyjnego: Linux, Windows, BSD
  • pełna kontrola nad wirtualnym systemem
  • możliwość przygotowania dowolnej konfiguracji oprogramowania
  • zwiększona potrzeba izolacji maszyn wirtualnych
  • usługa najbardziej zbliżona do serwera dedykowanego (pod względem funkcjonalności)

2. Serwer VPS oparty o parawirtualizację - Xen PV

  • praca z systemami Linux (czasami również FreeBSD)
  • dobra wydajność
  • dobra izolacja środowiska od innych maszyn

3. Serwer VPS oparty o kontenery - Virtuozzo, OpenVZ

  • ekonomiczne i wydajne rozwiązanie do celów typowo hostingowych
  • brak potrzeby ingerencji w zaawansowane funkcje systemu operacyjnego
  • niższa cena od rozwiązań opartych o wirtualizację sprzętową
  • mniejszy poziom izolacji kontenerów od maszyn wirtualnych
Hosting z dyskami SSD

Szukasz szybkiego hostingu z dyskami SSD? Dobrze trafiłeś.

Pakiety hostingowe Kylos to sprawdzone i niezawodne rozwiązanie dla Twojej strony.

Darmowy okres próbny pozwoli Ci sprawdzić naszą ofertę, bez ponoszenia kosztów.

 

Sprawdź nas

Mogą Cię również zainteresować

comments powered by Disqus