Co to jest maszyna wirtualna? (Dlaczego i kiedy go używać)

Jeśli pracujesz w branży oprogramowania lub w jej pobliżu, prawdopodobnie słyszałeś o maszynach wirtualnych. Jeśli nie, możesz się zastanawiać, czym one są i do czego służą.

Jako inżynier oprogramowania na co dzień korzystam z maszyn wirtualnych. Są potężnymi narzędziami do tworzenia oprogramowania, ale mają też inne zastosowania. Znane również jako maszyny wirtualne, wiele firm korzysta z nich ze względu na ich elastyczność, niezawodność i opłacalność; zapobiegają również katastrofom spowodowanym niekontrolowanym testowaniem oprogramowania.

Przyjrzyjmy się, czym są maszyny wirtualne i dlaczego są używane.

Co to jest maszyna wirtualna?

Maszyna wirtualna to wystąpienie systemu operacyjnego (OS), takiego jak Windows, Mac OS lub Linux, działającego w głównym systemie operacyjnym komputera.

Zazwyczaj działa w oknie aplikacji na pulpicie. Maszyna wirtualna ma pełną funkcjonalność i działa jak osobny komputer lub maszyna. Zasadniczo maszyna wirtualna to komputer wirtualny działający wewnątrz innego komputera, znanego jako maszyna hosta.

Maszyna wirtualna 1
Obraz 1: Maszyna wirtualna działająca na laptopie.

Maszyna wirtualna nie ma sprzętu (pamięci, dysku twardego, klawiatury lub monitora). Wykorzystuje symulowany sprzęt z komputera hosta. Z tego powodu wiele maszyn wirtualnych, zwanych również „gośćmi”, może być uruchamianych na jednym komputerze hosta.

Maszyna wirtualna 2
Obraz 2: Maszyna hosta z wieloma maszynami wirtualnymi.

Host może również uruchamiać wiele maszyn wirtualnych z różnymi systemami operacyjnymi, w tym Linux, Mac OS i Windows. Ta funkcja zależy od oprogramowania zwanego hiperwizorem (patrz Rysunek 1 powyżej). Hiperwizor działa na maszynie hosta i umożliwia tworzenie, konfigurowanie, uruchamianie i zarządzanie maszynami wirtualnymi.

Hiperwizor przydziela miejsce na dysku, planuje czas przetwarzania i zarządza wykorzystaniem pamięci dla każdej maszyny wirtualnej. To właśnie aplikacje takie jak Oracle VirtualBox, VMware, Parallels, Xen, Microsoft Hyper-V i wiele innych tak: są hipernadzorcami.

Hypervisor może działać na laptopie, komputerze PC lub serwerze. Udostępnia maszyny wirtualne komputerowi lokalnemu lub użytkownikom rozproszonym w sieci.

Różne typy maszyn wirtualnych i środowisk wymagają różnych typów hipernadzorców. Przyjrzyjmy się niektórym z nich.

Rodzaje maszyn wirtualnych

Systemowe maszyny wirtualne

Maszyny wirtualne systemu, czasami nazywane pełną wirtualizacją, są obsługiwane przez hipernadzorcę i zapewniają funkcjonalność rzeczywistego systemu komputerowego. Używają rodzimego systemu operacyjnego hosta do zarządzania i udostępniania zasobów systemowych.

Systemowe maszyny wirtualne często wymagają wydajnego hosta z szybkimi lub wieloma procesorami, dużą ilością pamięci i mnóstwem miejsca na dysku. Niektóre, działające na komputerach osobistych lub laptopach, mogą nie wymagać mocy obliczeniowej, której potrzebują wirtualne serwery dużych przedsiębiorstw; jednak będą działać wolno, jeśli system hosta nie jest odpowiedni.

Przetwarzaj maszyny wirtualne

Maszyny wirtualne procesu różnią się znacznie od maszyn SVM — możesz mieć je uruchomione na swojej maszynie i nawet o tym nie wiedzieć. Są one również znane jako maszyny wirtualne aplikacji lub zarządzane środowiska wykonawcze (MRE). Te maszyny wirtualne działają w systemie operacyjnym hosta i obsługują aplikacje lub procesy systemowe.

Dlaczego warto korzystać z PVM? Świadczą usługi bez uzależnienia od konkretnych systemów operacyjnych lub sprzętu. Mają swój własny mały system operacyjny z niezbędnymi zasobami. MRE znajduje się w oddzielnym środowisku; nie ma znaczenia, czy działa na systemie Windows, Mac OS, Linux, czy na jakimkolwiek innym komputerze hosta.

Jedną z najczęstszych maszyn wirtualnych procesów jest taka, o której prawdopodobnie słyszałeś i mogłeś widzieć działającą na swoim komputerze. Służy do uruchamiania aplikacji Java i nazywa się w skrócie Java Virtual Machine lub JVM.

Rodzaje hipernadzorców

Większość maszyn wirtualnych, którymi się zajmujemy, korzysta z hipernadzorcy, ponieważ emulują one cały system komputerowy. Istnieją dwa różne typy hipernadzorców: hiperwizory Bare Metal i hostowane hiperwizory. Przyjrzyjmy się im pokrótce.

Hypervisor z nieosłoniętym metalem

BMH mogą być również nazywane natywnymi hiperwizorami i działają bezpośrednio na sprzęcie hosta zamiast w systemie operacyjnym hosta. W rzeczywistości zastępują one system operacyjny hosta, planując i zarządzając wykorzystaniem sprzętu przez każdą maszynę wirtualną, odcinając w ten sposób „człowieka pośredniego” (system operacyjny hosta).

Natywne hipernadzorcy są zwykle używane w przypadku dużych maszyn wirtualnych przedsiębiorstw, których firmy używają do udostępniania pracownikom zasobów serwerowych. Microsoft Azure lub Amazon Web Services to maszyny wirtualne hostowane w tego typu architekturze. Inne przykłady to KVM, Microsoft Hyper-V i VMware vSphere.

Hostowany hiperwizor

Hostowane hiperwizory działają w standardowych systemach operacyjnych — tak jak każda inna aplikacja uruchamiana na naszych maszynach. Używają systemu operacyjnego hosta do zarządzania i dystrybucji zasobów. Ten typ hiperwizora jest lepiej dostosowany do indywidualnych użytkowników, którzy muszą uruchamiać wiele systemów operacyjnych na swoich komputerach.

Należą do nich aplikacje takie jak Oracle VirtualBox, VMware Workstations, VMware Fusion, Parallels Desktop i wiele innych. Więcej szczegółowych informacji o hostowanych hipernadzorcach znajdziesz w naszym artykule, Najlepsze oprogramowanie do maszyn wirtualnych.

Dlaczego warto korzystać z maszyn wirtualnych?

Teraz, gdy masz podstawową wiedzę na temat maszyny wirtualnej, prawdopodobnie możesz pomyśleć o kilku doskonałych aplikacjach. Oto niektóre z głównych powodów, dla których ludzie używają maszyn wirtualnych.

1. Ekonomiczny

Maszyny wirtualne są opłacalne w wielu sytuacjach. Jednym z najbardziej znanych jest świat korporacji. Korzystanie z serwerów fizycznych w celu zapewnienia zasobów pracownikom może być bardzo kosztowne. Sprzęt nie jest tani, a jego utrzymanie jest jeszcze bardziej kosztowne.

Wykorzystanie maszyn wirtualnych jako serwerów korporacyjnych stało się obecnie normą. Dzięki maszynom wirtualnym od dostawcy, takiego jak MS Azure, nie ma wstępnych zakupów sprzętu ani opłat za utrzymanie. Te maszyny wirtualne można konfigurować, konfigurować i używać za jedyne grosze na godzinę. Można je również wyłączyć, gdy nie są używane i nie ponoszą żadnych kosztów.

Korzystanie z maszyny wirtualnej na swoim komputerze może być również ogromną oszczędnością pieniędzy. Jeśli musisz pracować w wielu systemach operacyjnych lub różnych konfiguracjach sprzętowych, możesz:
korzystaj z wielu maszyn wirtualnych na jednym hoście — nie musisz kupować osobnego komputera do każdego zadania.

2. Skalowalny i elastyczny

Niezależnie od tego, czy są to serwery korporacyjne, czy maszyny wirtualne działające na Twoim laptopie, maszyny wirtualne są skalowalne. Łatwo jest dostosować zasoby do swoich potrzeb. Jeśli potrzebujesz więcej pamięci lub miejsca na dysku twardym, po prostu przejdź do hipernadzorcy i ponownie skonfiguruj maszynę wirtualną, aby mieć więcej. Nie ma potrzeby kupowania nowego sprzętu, a proces można zakończyć szybko.

3. Szybka konfiguracja

Nową maszynę wirtualną można szybko skonfigurować. Miałem przypadki, w których potrzebowałem nowej konfiguracji maszyny wirtualnej, zadzwoniłem do mojego współpracownika, który nimi zarządza, i miałem je gotowe do użycia w mniej niż godzinę.

4. Odzyskiwanie po awarii

Jeśli próbujesz zapobiec utracie danych i przygotować się do odzyskiwania po awarii, maszyny wirtualne mogą być wspaniałym narzędziem. Można je łatwo tworzyć w kopii zapasowej i w razie potrzeby można je rozprowadzać w różnych lokalizacjach. Jeśli firma trzecia, taka jak Microsoft lub Amazon, hostuje maszyny wirtualne, będą one znajdować się poza siedzibą firmy, co oznacza, że ​​Twoje dane są bezpieczne, jeśli Twoje biuro spłonie.

5. Łatwy do odtworzenia

Większość hipernadzorców umożliwia wykonanie kopii lub obrazu maszyny wirtualnej. Obrazowanie umożliwia łatwe tworzenie dokładnych reprodukcji tej samej podstawowej maszyny wirtualnej w każdej sytuacji.

W środowisku, w którym pracuję, dajemy każdemu programiście maszynę wirtualną do wykorzystania do rozwoju i testowania. Ten proces pozwala nam na skonfigurowanie obrazu za pomocą wszystkich potrzebnych narzędzi i oprogramowania. Kiedy dołączamy nowego programistę, wszystko, co musimy zrobić, to zrobić kopię tego obrazu, a oni mają to, czego potrzebują, aby zacząć działać.

6. Idealny do tworzenia/testowania

Jedną z największych zalet korzystania z maszyn wirtualnych jest to, że są one doskonałym narzędziem do tworzenia i testowania oprogramowania. Maszyny wirtualne umożliwiają programistom programowanie na wielu platformach i środowiskach na jednej maszynie. Jeśli ta maszyna wirtualna zostanie uszkodzona lub zniszczona, można szybko utworzyć nową.

Pozwalają testerowi mieć nowe, czyste środowisko dla każdego cyklu testowego. Pracowałem nad projektami, w których konfigurowaliśmy automatyczne skrypty testowe, które tworzą nową maszynę wirtualną, instalują najnowszą wersję oprogramowania, uruchamiają wszystkie wymagane testy, a następnie usuwają maszynę wirtualną po zakończeniu testów.

Maszyny wirtualne działają znakomicie podczas testowania produktów i recenzji, takich jak te, które robimy tutaj na TechFewer.com. Mogę instalować aplikacje na maszynie wirtualnej działającej na moim komputerze i testować je bez zaśmiecania mojego podstawowego środowiska.

Kiedy skończę testowanie, zawsze mogę usunąć maszynę wirtualną, a następnie utworzyć nową, gdy jej potrzebuję. Ten proces pozwala mi również testować na wielu platformach, mimo że mam tylko komputer z systemem Windows.

Ostatnie słowa

Jak widać, maszyny wirtualne są ekonomicznym, wszechstronnym narzędziem, które można wykorzystać do wielu zastosowań. Nie musimy już kupować, konfigurować i utrzymywać drogiego sprzętu, aby zapewnić dostęp do serwera testerom, programistom i innym osobom. Maszyny wirtualne zapewniają nam elastyczność w łatwym i szybkim tworzeniu potrzebnych systemów operacyjnych, sprzętu i środowisk — w dowolnym momencie.