Wszystko, co musisz wiedzieć o maszynach wirtualnych (VM)

Mateusz Ciałowicz

Korzystasz z macOS, ale chcesz uruchomić projekt na Windowsie? Potrzebujesz więcej niż dwóch czy trzech systemów operacyjnych na swoim komputerze? Chcesz włączyć gry retro lub skorzystać z programu, który nie jest dostępny na nowszych systemach operacyjnych? Zależy Ci na przetestowaniu oprogramowania, które może zaszkodzić Twojemu komputerowi? Potrzebujesz kopii istniejącego systemu operacyjnego? W każdym z tych przypadków pomocna może okazać się maszyna wirtualna.

Co to maszyna wirtualna?

Według definicji wirtualizacja to proces symulowania istnienia zasobów logicznych przez oprogramowanie, które wykorzystuje zasoby fizyczne określone podczas konfiguracji. Przykład? Maszyna wirtualna wykorzystuje wirtualizację do emulacji działania maszyny z danym systemem operacyjnym. Dzięki temu można badać zachowanie urządzenia i jej oprogramowania bez wpływu na rzeczywisty system operacyjny, na którym pracujemy. Administratorom systemów i sieci nie muszą więc mieć dedykowanej maszyny do obsługi każdej usługi, którą potrzebują uruchomić. Nie tylko zmniejsza to liczbę wymaganych serwerów fizycznych, ale też oszczędza czas podczas rozwiązywania problemów.

Co to jest hypervisor?

Hypervisor nazywany jest także monitorem maszyny wirtualnej (ang. Virtual Machine Monitor) – w skrócie VMM. Jest to oprogramowanie zarządzające całym procesem wirtualizacji. Umożliwia ono jednemu komputerowi hostowi obsługę wielu maszyn wirtualnych gości poprzez wirtualne współdzielenie zasobów, np. pamięci i przetwarzania.

Istnieją dwa główne typy hypervisorów znane jako typ 1 i typ 2. Różnica między nimi polega na tym, że pierwszy z nich działa jak rzeczywisty system operacyjny i bezpośrednio na sprzęcie. Drugi natomiast bardziej przypomina inne programy komputerowe i działa w warstwie oprogramowania.

Hypervisor typu 1

Nazywa się go także hypervisorem bare metal, ponieważ – jak wspomniałem wcześniej – jest to warstwa oprogramowania instalowana bezpośrednio na fizycznym sprzęcie.

Zalety

  • Wydajność – jest bardzo wydajny ze względu na bezpośredni dostęp do sprzętu.
  • Bezpieczeństwo – bezpośrednie połączenie ze sprzętem zmniejsza do minimum powierzchnię” ataku dla potencjalnego hakera.

Wady

  • Zarządzanie – często wymaga oddzielnej maszyny zarządzającej do administrowania różnymi maszynami wirtualnymi i kontrolowania sprzętu hosta.

Przykładami hypervisorów typu 1 są: VMware dla Windows i KVM dla Linuksa.

Hypervisor typu 2

Nazywa się go także hostowanym hypervisorem. Działa on w systemie operacyjnym komputera fizycznego. Często zawiera dodatkowe zestawy narzędzi, które użytkownicy mogą zainstalować w systemie tzw. gościu. Zapewniają one ulepszone połączenia między gościem a systemem operacyjnym hosta. Często umożliwiają użytkownikowi np. wycinanie i wklejanie między nimi lub uzyskiwanie dostępu do plików i folderów systemu operacyjnego hosta z poziomu maszyny wirtualnej gościa.

Zalety

  • Zarządzanie – nie ma potrzeby instalowania osobnego oprogramowania na innej maszynie, aby utworzyć i utrzymywać środowisko wirtualne. Możesz szybko przełączać się między różnymi systemami operacyjnymi.

Wady

  • Wydajność – system operacyjny hosta wywiera dodatkową presję na sprzęt fizyczny, co może powodować problemy z opóźnieniami maszyn wirtualnych.

Przykładami hypervisorów typu 2 są: Oracle VM VirtualBox i Windows Virtual PC.

Różnice między hypervisorami typu 1 i 2

Główna różnica polega na tym, że typ 2 musi dzielić sprzęt z systemem operacyjnym hosta, podczas gdy typ 1 ma sprzęt dla siebie. Wybór pomiędzy dwoma rodzajami hypervisora zależy od indywidualnych potrzeb. W przypadku mniejszych wdrożeń i użytku osobistego może być zalecany typ 2. Przy dużych projektach, które wymagają wykorzystania w 100 proc. sprzętu, postaw na hypervisor typu 1.

Tworzenie maszyny wirtualnej

Od czego zacząć? Najlepiej od wyboru systemu operacyjnego. Pokażę Ci, jak utworzyć maszynę wirtualną z Ubuntu (link) na moim komputerze hosta z Windows 11. W drugim kroku pobiorę hypervisor typu 2, czyli Oracle VM VirtualBox (link). Po zainstalowaniu VirtualBoxa uruchom go i wybierz „nowa”, aby rozpocząć. Wskaż nazwę folderu VM, w którym ma się on znajdować, oraz obraz ISO pobranego systemu operacyjnego.

Następnym krokiem jest wybór nazwy użytkownika i hasła oraz kilku dodatkowych opcji, które możesz pozostawić jako domyślne. Następnie wybierz rozmiar pamięci i liczbę wirtualnych procesorów. Na co się zdecydować? Wszystko zależy od tego, ile potrzebujesz i na ile Cię stać. Pamiętaj jednak, że jeśli przypiszesz wartości maksymalne, możesz mieć problem z wydajnością systemu operacyjnego hosta. Następnie musisz wskazać, ile miejsca na dysku ma zajmować maszyna wirtualna. Ja użyłem 50 GB. Pomyśl tylko, ile potrzebujesz (oprócz miejsca na system operacyjny). Ostatni krok to podsumowanie. Po kliknięciu „zakończ” Twoja maszyna wirtualna będzie gotowa.

Teraz masz w pełni obsługiwane Ubuntu, które działa całkowicie normalnie. Możesz robić, co chcesz – jak w normalnym systemie operacyjnym.

Przydatne operacje VirtualBox

VirtualBox ma wiele przydatnych opcji, które mogą Ci się później przydać.

Klonowanie

Potrzebujesz więcej niż jednej maszyny o podobnej konfiguracji i tym samym pakiecie programów? Skorzystaj z klonowania. Klon jest kopią istniejącej maszyny wirtualnej tzw. rodzica i przyjmuje jej właściwości oraz ustawienia. Po operacji otrzymujesz więc dokładnie taką samą maszynę wirtualną bez konieczności instalowania i konfigurowania jej oraz niezbędnych programów od tzw. zera. Dzięki klonowaniu wykonujesz te zadania tylko raz, ponieważ masz już podstawy dla kolejnych maszyn wirtualnych. Gdzie warto wykorzystać tę opcję? Jest ona przydatna w przypadku wdrażania wielu identycznych maszyn wirtualnych dla grupy użytkowników. Przykład? Administrator systemu może sklonować maszynę wirtualną dla każdego pracownika w określonym dziale, ponieważ korzystają oni z tych samych aplikacji, a ich konfiguracje powinny być takie same.

Istnieją dwa rodzaje klonowania – klon pełny lub klon połączony.

  • Pełny klon to całkowicie osobna kopia maszyny wirtualnej, która nie współdzieli żadnych zasobów systemowych z rodzicem, gdy obie są uruchomione.
  • Połączony klon udostępnia dysk wirtualny rodzicowi, gdy obaj działają.

Ponieważ zarówno rodzic, jak i klon funkcjonują niezależnie, pełny klon ma większą wydajność niż połączony. Jego utworzenie zajmuje jednak więcej czasu. Klony połączone pozwalają natomiast szybciej tworzyć i oszczędzać miejsce na dysku, umożliwiając uruchomienie wielu maszyn wirtualnych w ramach jednej instalacji oprogramowania.

Migawka

VirtualBox pozwala użytkownikom utworzyć migawkę (ang. snapshot) maszyny wirtualnej. Zachowuje ona jej bieżący stan. Robiąc migawkę, zapisujesz konfigurację maszyny wirtualnej, do której możesz wrócić później. Zapewnia ona także dziennik zmian dysku wirtualnego i służy do przywracania maszyny wirtualnej do określonego punktu w czasie, np. gdy wystąpi awaria lub błąd systemu. Pamiętaj jednak, że same migawki nie stanowią kopii zapasowej!

Ustawienia VirtualBox

Pewne ustawienia VirtualBox mogą być zarówno przydatne, jak i szkodliwe. Przykład? Możesz udostępnić schowek między systemem operacyjnym hosta a maszyną wirtualną, ale też zezwolić na kopiowanie z hosta na maszynę wirtualną, z maszyny wirtualnej na host lub w obie strony.

Domyślnie maszyna wirtualna jest podłączona do sieci za pomocą NAT (ang. Network Address Translation) działającego na zasadzie domowego routera. Oznacza to, że adres Twojej VM różni się od adresu hosta. Możesz to jednak zmienić, np. korzystając z adaptera tzw. zmostkowanego. Wtedy Twoja maszyna wirtualna będzie miała bezpośredni dostęp do Twojej sieci jako host. Wybierając konkretne rozwiązanie, miej na uwadze bezpieczeństwo.

Foldery udostępnione (jako schowek) mogą być miejscem wymiany plików w obie strony. Lepszym pomysłem, o czym pisałem wcześniej, może być jednak trzymanie maszyny wirtualnej w większej izolacji. Zapewnia to większe bezpieczeństwo komputera-hosta.

Podsumowanie

W teście opisałem tylko fragment podstawowej wiedzy o wirtualizacji. Poszczególne programy mają odmienną charakterystykę, będą też różnić się sposobem wdrażania maszyny wirtualnej w chmurze czy na innym zdalnym komputerze. Jest to jednak dobra podstawa, aby zacząć przygodę z maszynami wirtualnymi. Dlaczego warto? W IT używa się ich cały czas, a ich tworzenie jest niezbędną umiejętnością w wielu obszarach w branży.

Odnośniki

Poznaj mageek of j‑labs i daj się zadziwić, jak może wyglądać praca z j‑People!

Skontaktuj się z nami