Czym jest wirtualizacja?
Czy zastanawiałeś się kiedyś, jak na jednym laptopie wygodnie korzystać z kilku systemów operacyjnych, takich jak Windows czy Ubuntu? Dzięki wirtualizacji jest to jak najbardziej możliwe.
Podobnie jak w przypadku wszystkich nowych technologii, istnieje wiele definicji wirtualizacji. Pomimo pewnych różnic, we wszystkich definicjach wirtualizacja sprowadza się do technologii, która pozwala na jednoczesne uruchomienie wielu systemów na jednym komputerze. Wirtualizacja jest więc procesem wykonywanym przez konkretne oprogramowanie, które pozwala podzielić zasoby jednego komputera (procesor, RAM, dysk, sieć) na wiele maszyn wirtualnych.

Historia wirtualizacji
Żeby dobrze zrozumieć ideę wirtualizacji systemów, warto cofnąć się do czasów, kiedy komputery nie mieściły się na biurku, tylko… na biurku, w szafie i w sąsiednim pokoju.
W latach 60. i 70. komputery typu mainframe były ogromne i drogie, a problem był prosty: z komputera mógł korzystać tylko jeden proces lub użytkownik naraz. To trochę jakbyś kupił Ferrari i używał go tylko do dojazdu po bułki – raz dziennie.
Dlatego zaczęto rozwijać koncepcję podziału czasu (time-sharing), czyli współdzielenia zasobów przez wielu użytkowników. I właśnie to uznaje się za jedne z pierwszych fundamentów wirtualizacji.
W latach 60. firma IBM pracowała nad rozwiązaniami pozwalającymi efektywnie współdzielić zasoby mainframe’ów. Według wielu źródeł IBM stosował już wtedy formy wirtualizacji na swoich komputerach, co umożliwiało jednoczesną pracę wielu użytkowników oraz lepsze wykorzystanie bardzo drogiego sprzętu.
Z czasem wydajność komputerów rosła, a wirtualizacja dojrzewała:
- pojawiały się narzędzia do zarządzania VM-kami,
- rozwijały się hiperwizory,
- wirtualizacja z serwerowni zaczęła trafiać „pod strzechy”.
Przełomowy moment? 1999, gdy VMware wypuścił VMware Workstation (dziś kojarzony m.in. jako VMware Workstation Player/Pro).
W 2008 Microsoft rozwijał swoją platformę Hyper-V, która stała się bardzo mocnym graczem w środowiskach serwerowych.
Mimo że technologia ewoluowała od dekad, jej cel pozostał ten sam: uruchomić wiele systemów na jednym sprzęcie i zrobić to możliwie szybko, bezpiecznie i wygodnie.
Zalety i wady wirtualizacji
W poniższym rozdziale omówione zostaną zalety i wady wirtualizacji. Organizacje decydują się na wirtualizację ze względu na różne korzyści, jakie zapewnia. Ale, jak wszystkie rzeczy na tym świecie wszystko ma swoje plusy i minusy.
Zalety wirtualizacji
Dotychczas wiele firm posiadało w swoich serwerowniach wiele serwerów, przeznaczonych do obsługi oddzielnych usług. Serwery te były bardzo zaawansowane ich moc obliczeniowa była tak duża, że znaczna część pozostawała nieużywana w momencie, gdy na takim serwerze znajdowała się jedna usługa.
Wirtualizacja rozwiązała ten problem poprzez zastąpienie kilku serwerów jednym, na którym zostały utworzone maszyny wirtualne kilku systemów. Zapewniło to szereg korzyści:
- Oszczędność kosztów (mniej sprzętu, mniej prądu, mniej chłodzenia)
- Oszczędność miejsca w serwerowni (i mniej kabli do potykania się)
- Lepsze wykorzystanie zasobów CPU/RAM/dysku
- Wysoka dostępność i łatwiejsze odtwarzanie po awarii dzięki kopiom zapasowym, migracji VM między hostami i szybkim odtwarzaniu
- Łatwiejsze zarządzanie: konfiguracja, monitoring i aktualizacje wielu maszyn z jednego miejsca, bez latania jak pingwin z gaśnicą po szafach rackowych
Minusy wirtualizacji
Żeby nie było zbyt pięknie:
- Wysoki koszt początkowy (sprzęt, licencje, konfiguracja) – nie każdą firmę stać na start
- Potrzeba kompetencji: wirtualizacja lubi doświadczonych administratorów (a nie „kuzyna, co kiedyś instalował Windowsa”)
- Nie wszystko da się łatwo zwirtualizować: część urządzeń i aplikacji wymaga bezpośredniego dostępu do sprzętu
- Spadek wydajności przy dużej liczbie VM: jeśli host jest przeciążony, maszyny zaczną „kaszleć” i trzeba rozbudować zasoby
Typy maszyn wirtualnych
Wirtualizacją zarządza hiperwizor (hipernadzorca) – program, który oddziela zasoby sprzętowe od systemów operacyjnych i kontroluje pracę maszyn wirtualnych.
Robert P. Goldberg (1973) wyróżnił dwa główne typy:
- Hipernadzorca (hiperwizor) typu 1
- Hipernadzorca (hiperwizor) typu 2

Wirtualizacja typu pierwszego
Hiperwizor typu 1 działa bezpośrednio na sprzęcie, bez „pośrednictwa” systemu operacyjnego hosta.
To rozwiązanie jest:
- wydajne (ma bezpośredni dostęp do zasobów),
- bezpieczne (mniejsza powierzchnia ataku),
- popularne w firmach i data center.
Przykładami wirtualizacji typu pierwszego są: Microsoft Hyper-V, Citrix XenServer, Oracle VM Server.
Wirtualizacja typu drugiego
Hiperwizor typu 2 działa jak zwykła aplikacja w systemie operacyjnym. Wirtualizacja ta jest mniej wydajna, ponieważ sprzęt jest symulowany przez hipernadzorce. Jest również bardziej zawodna, ponieważ jej działanie zależy od sprawnej pracy głównego systemu. Jedną z zalet tego modelu jest to, że świetnie się sprawdza podczas testowania innego systemu operacyjnego, jest łatwy w instalacji i zarządzaniu.
Przykładami wirtualizacji typu drugiego są: Oracle VirtualBox, VMware Workstation
Rodzaje wirtualizacji
Rozwiązań wirtualizacyjnych jest sporo i różnią się podejściem do izolacji oraz wydajności. Poniżej krótkie, uporządkowane podsumowanie.

Pełna emulacja
Emuluje inny sprzęt niż ten, na którym działa. Maszyna gospodarza jest ukrywana przed systemami operacyjnymi gościa. Plusem jest to, że uruchomisz środowisko “nie z tej bajki” ale jest bardzo wolno bo emulowane jest praktycznie wszystko.
Pełna wirtualizacja
Maszyny wirtualne są całkowicie odseparowane od sprzętu hosta, a gość widzi „wirtualny” sprzęt.
Wadą tego rodzaju wirtualizacji jest to, że przy uruchomieniu większej ilości maszyn wirtualnych część instrukcji nie zostanie wykonana na sprzęcie. Instrukcje te zostaną przeprowadzone w trybie emulacji co zmniejszy wydajność.
Wirtualizacja sprzętowa
Określana jest często pełną wirtualizacją wspomaganą sprzętowo. Zasadniczo jej założenia są podobne do pełnej wirtualizacji, różni się tylko tym, że może korzystać z procesora. Dzięki wspomaganiu przez procesor wirtualizacja sprzętowa może wykonywać dodatkowe instrukcje ułatwiające wirtualizacje sprzętu bez wpływu na gospodarza.
Zaletą tego rodzaju wirtualizacji jest to, że możemy zainstalować dowolny system operacyjny bez ingerencji w system fizyczny gospodarza.
Parawirtualizacja
W tej metodzie system operacyjny gościa nie jest całkowicie odizolowany od gospodarza. W porównaniu z pełną wirtualizacją parawirtualizacja modyfikuje system operacyjny gościa w celu komunikacji z hiperwizorem za pomocą wywołań API.
W ten sposób skraca czas, jaki zajmuje systemowi operacyjnemu wykonywanie operacji, które są trudne i zajmują więcej czasu w środowisku wirtualnym.
Wirtualizacja hybrydowa
Jest to połączenie możliwości pełnej wirtualizacji i parawirtualizacji. Metoda ta posiada zainstalowane sterowniki do urządzeń, dzięki czemu zapewnia wysoką wydajność jak parawirtualizacja, jednocześnie nie wymagając modyfikacji systemu zwirtualizowanego jak to miało miejsce w parawirtualizacji.
Wirtualizacja ze współdzielonym jądrem
Wykorzystywana jest głównie w systemach operacyjnych z rodziny Linux i UNIX. Systemy te składają się z dwóch części jądra i systemu plików. Technika tej wirtualizacji pozwala na utworzenie wielu systemów gości, którzy posiadają swoje osobne systemy plików i współdzielą jądro systemu gospodarza.
Główną zaletą tej metody jest bardzo wysoka wydajność co można zauważyć na rysunku powyżej. Wadą jest konieczność używania systemów zgodnych z jądrem gospodarza ponieważ używane jądro musi być kompatybilne z nim.
Wirtualizacja z wykorzystaniem aplikacji
Wirtualizacja realizowana przez aplikację uruchomioną w systemie hosta. W praktyce: instalujesz program (np. VirtualBox), tworzysz VM i zarządzasz nią z GUI.
Przykłady: VirtualBox, VMware Server/Workstation.
Przegląd oprogramowania do wirtualizacji

Poniżej krótkie zestawienie najpopularniejszych rozwiązań: Microsoft, VMware, Citrix i Oracle.
VMware
VMware to jeden z liderów rynku. Dostarcza rozwiązania zarówno typu 1, jak i typu 2.
- VMware vSphere / ESXi – hiperwizor typu 1, działający bezpośrednio na sprzęcie. ESXi pełni rolę „serca” środowiska. (W praktyce spotykany bardzo często w firmach.)
- VMware Workstation – hiperwizor typu 2 dla Windows i Linux. Na macOS występuje jako VMware Fusion. WMware Workstation posiada bardzo intuicyjny interfejs, utworzenie maszyny to dosłownie kilka kliknięć myszki. Wersja Player bywa używana jako darmowa do prostszych zastosowań, a Pro oferuje m.in. migawki i bardziej zaawansowane funkcje.
Citrix XenServer
XenServer (w ekosystemie Citrix) to rozwiązanie głównie dla środowisk serwerowych, często spotykane przy Linuxie. Jest hiperwizorem typu 1.
- może działać jako oddzielna instalacja (podobnie jak ESXi),
- występują edycje o różnym zakresie funkcji (w tym płatne dodatki w zależności od dystrybucji/wersji).
W starszych podejściach goście często wymagali zmian w jądrze (co ograniczało wybór systemów), ale nowsze wersje wspierają również tryby pełnej wirtualizacji wspomaganej sprzętowo, co ułatwia uruchamianie systemów Microsoft.
Oracle VirtualBox
VirtualBox od Oracle to bardzo popularne, darmowe narzędzie typu 2, szczególnie wśród użytkowników desktopowych i osób uczących się wirtualizacji.
- działa na Windows, Linux (i innych),
- ma migawki (snapshots), dzięki którym można cofnąć stan VM po eksperymentach typu „a co się stanie, jak usunę /etc…”.
Microsoft Hyper-V
Hyper-V to mocny konkurent VMware w świecie Microsoftu. To hiperwizor typu 1, choć bywa mylony z typem 2, bo na pierwszy rzut oka „Windows nadal działa”.
Po instalacji Hyper-V system, który widzisz jako „host”, sam działa jako VM na hiperwizorze (czyli host staje się gościem… brzmi jak fabuła thrillera, ale to normalne).
Wady? Największa praktyczna to ścisła integracja i kompatybilność głównie z Windows (w zależności od scenariusza).
Podsumowanie
W artykule wyjaśniliśmy, czym jest wirtualizacja, jak działa i dlaczego pozwala uruchamiać kilka systemów operacyjnych na jednym komputerze (np. Windows i Ubuntu) bez kombinowania z partycjami. Omówiliśmy też historię wirtualizacji – od czasów mainframe’ów i podziału czasu, aż po współczesne rozwiązania wykorzystywane w firmach i na komputerach domowych.
W kolejnej części zademonstruję obsługę programu VirtualBox oraz tworzenie i konfigurację maszyn wirtualnych.