Co to jest maszyna wirtualna (dlaczego i kiedy jej używać)

  • Udostępnij To
Cathy Daniels

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

Jako inżynier oprogramowania, codziennie używam maszyn wirtualnych. Są one potężnym narzędziem w tworzeniu oprogramowania, ale mają też inne zastosowania. Znane również jako maszyny wirtualne, wiele firm używa ich ze względu na ich elastyczność, niezawodność i opłacalność; zapobiegają one również katastrofom związanym z nieudanym testowaniem oprogramowania.

Przyjrzyjmy się, czym są maszyny wirtualne i dlaczego są wykorzystywane.

Co to jest maszyna wirtualna?

Maszyna wirtualna to instancja systemu operacyjnego (OS), takiego jak Windows, Mac OS lub Linux, działająca w ramach głównego systemu operacyjnego komputera.

Maszyna wirtualna posiada pełną funkcjonalność i działa jak oddzielny komputer lub maszyna. W istocie, maszyna wirtualna jest wirtualnym komputerem działającym wewnątrz innego komputera, znanego jako maszyna główna.

Obraz 1: Maszyna wirtualna uruchomiona na laptopie.

Maszyna wirtualna nie posiada sprzętu (pamięci, dysku twardego, klawiatury czy monitora). Wykorzystuje ona symulację sprzętu z maszyny głównej. Dzięki temu na jednej maszynie głównej można uruchomić wiele maszyn wirtualnych, zwanych również "gośćmi".

Obraz 2: Maszyna główna z wieloma maszynami wirtualnymi.

Na hoście można również uruchomić wiele maszyn wirtualnych z różnymi systemami operacyjnymi, w tym Linux, Mac OS i Windows. Ta możliwość zależy od oprogramowania zwanego hiperwizorem (patrz obrazek 1 powyżej). Hiperwizor działa na maszynie głównej i umożliwia tworzenie, konfigurowanie, uruchamianie i zarządzanie maszynami wirtualnymi.

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

Hiperwizor może być uruchomiony na laptopie, komputerze PC lub serwerze. Udostępnia on maszyny wirtualne lokalnym komputerom lub użytkownikom rozproszonym w sieci.

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

Rodzaje maszyn wirtualnych

Systemowe maszyny wirtualne

Systemowe maszyny wirtualne, nazywane czasem pełną wirtualizacją, są uruchamiane przez hypervisor i zapewniają funkcjonalność rzeczywistego systemu komputerowego. Do zarządzania i udostępniania zasobów systemowych wykorzystują natywny system operacyjny hosta.

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

Przetwarzanie maszyn wirtualnych

Procesowe maszyny wirtualne różnią się od 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 uruchomieniowe (MRE). Te maszyny wirtualne działają wewnątrz systemu operacyjnego hosta i obsługują aplikacje lub procesy systemowe.

Dlaczego warto używać PVM? Wykonują one usługi bez zależności od konkretnych systemów operacyjnych lub sprzętu. Mają swój własny mały system operacyjny z tylko tymi zasobami, których potrzebują. MRE znajduje się w oddzielnym środowisku; nie ma znaczenia, czy działa na Windowsie, Mac OS, Linuksie, czy jakiejkolwiek innej maszynie hosta.

Jedną z najbardziej popularnych Process Virtual Machines jest ta, o której prawdopodobnie słyszałeś i którą być może widziałeś uruchomioną na swoim komputerze. Jest ona używana do uruchamiania aplikacji Java i nazywa się Java Virtual Machine lub w skrócie JVM.

Rodzaje hiperwizorów

Większość maszyn wirtualnych, którymi się zajmujemy, korzysta z hypervisora, ponieważ emulują one cały system komputerowy. Istnieją dwa różne typy hypervisorów: Bare Metal Hypervisors i Hosted Hypervisors. Przyjrzyjmy się szybko obu z nich.

Hypervisor Bare Metal

BMH mogą być również nazywane natywnymi hypervisorami i działają bezpośrednio na sprzęcie hosta, zamiast działać w ramach systemu operacyjnego hosta. W rzeczywistości zajmują miejsce systemu operacyjnego hosta, planując i zarządzając wykorzystaniem sprzętu przez każdą maszynę wirtualną, wycinając w ten sposób "pośrednika" (system operacyjny hosta) w procesie.

Natywne hiperwizory są zwykle używane w dużych korporacyjnych maszynach wirtualnych, które firmy wykorzystują do udostępniania pracownikom zasobów serwerowych. Microsoft Azure lub Amazon Web Services to maszyny wirtualne hostowane na tym typie architektury. Inne przykłady to KVM, Microsoft Hyper-V i VMware vSphere.

Hosted Hypervisor

Hiperwizory hostowane działają na standardowych systemach operacyjnych - tak jak każda inna aplikacja, którą uruchamiamy na naszych maszynach. Wykorzystują one system operacyjny hosta do zarządzania i dystrybucji zasobów. Ten typ hiperwizora jest lepiej dostosowany do indywidualnych użytkowników, którzy potrzebują uruchomić wiele systemów operacyjnych na swoich maszynach.

Należą do nich takie aplikacje jak Oracle VirtualBox, VMware Workstations, VMware Fusion, Parallels Desktop i wiele innych. Więcej szczegółowych informacji na temat hostowanych hiperwizorów znajdziesz w naszym artykule, Best Virtual Machine Software.

Dlaczego warto używać maszyn wirtualnych?

Teraz, gdy masz już podstawowe zrozumienie tego, czym jest maszyna wirtualna, możesz prawdopodobnie pomyśleć o kilku doskonałych zastosowaniach. Oto kilka najważniejszych powodów, dla których ludzie używają maszyn wirtualnych.

1. opłacalne

Maszyny wirtualne są opłacalne w wielu sytuacjach. Jedną z najbardziej widocznych jest ta w świecie korporacyjnym. Używanie fizycznych serwerów do zapewnienia zasobów dla pracowników może być bardzo kosztowne. Sprzęt nie jest tani, a jego utrzymanie jest jeszcze bardziej kosztowne.

Wykorzystanie maszyn wirtualnych jako serwerów przedsiębiorstwa stało się normą. W przypadku maszyn wirtualnych od dostawcy takiego jak MS Azure nie ma konieczności zakupu sprzętu ani ponoszenia opłat za utrzymanie. Maszyny wirtualne mogą być uruchamiane, konfigurowane i używane za grosze na godzinę. Mogą być również wyłączane, gdy nie są używane i nie ponoszą żadnych kosztów.

Używanie maszyny wirtualnej na swoim komputerze może być również ogromną oszczędnością pieniędzy. Jeśli musisz wykonać pracę w wielu systemach operacyjnych lub różnych konfiguracjach sprzętowych, możesz

używać wielu maszyn wirtualnych na jednym hoście - nie trzeba kupować osobnego komputera do każdego zadania.

2. skalowalne i elastyczne

Niezależnie od tego, czy są to serwery korporacyjne, czy maszyny wirtualne działające na 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 wejdź do hiperwizora i skonfiguruj maszynę wirtualną tak, aby miała więcej. Nie ma potrzeby kupowania nowego sprzętu, a proces ten może być szybko zakończony.

3. szybka konfiguracja

Nowa maszyna wirtualna może być skonfigurowana szybko. Miałem przypadki, w których potrzebowałem nowej 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 danych po awarii

Jeśli starasz się zapobiegać utracie danych i przygotować się do odzyskiwania danych po awarii, maszyny wirtualne mogą być doskonałym narzędziem. Łatwo jest tworzyć ich kopie zapasowe i w razie potrzeby można je rozmieścić w różnych lokalizacjach. Jeśli hostem maszyn wirtualnych jest firma trzecia, taka jak Microsoft lub Amazon, będą one znajdować się poza siedzibą firmy - co oznacza, że Twoje dane są bezpieczne, jeśli Twoje biuro spłonie.

5. łatwe do odtworzenia

Większość hypervisorów pozwala na tworzenie kopii lub obrazów maszyny wirtualnej. Imaging pozwala na łatwe tworzenie dokładnych reprodukcji tej samej bazowej maszyny wirtualnej w każdej sytuacji.

W środowisku, w którym pracuję, dajemy każdemu deweloperowi maszynę wirtualną do wykorzystania w celach rozwojowych i testowych. Ten proces pozwala nam mieć obraz skonfigurowany ze wszystkimi potrzebnymi narzędziami i oprogramowaniem. Kiedy mamy nowego dewelopera na pokładzie, wszystko, co musimy zrobić, to zrobić kopię tego obrazu, a oni mają to, czego potrzebują, aby rozpocząć pracę.

6. idealne dla deweloperów/testerów

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

Pracowałem przy projektach, w których ustawialiśmy automatyczne skrypty testowe, które tworzyły nową maszynę wirtualną, instalowały najnowszą wersję oprogramowania, przeprowadzały wszystkie wymagane testy, a następnie usuwały maszynę wirtualną po zakończeniu testów.

Maszyny wirtualne doskonale sprawdzają się w testach i recenzjach produktów, takich jak te, które przeprowadzamy na SoftwareHow.com. Mogę instalować aplikacje w maszynie wirtualnej uruchomionej na moim komputerze i testować je bez zagracania mojego głównego środowiska.

Po zakończeniu testów zawsze mogę usunąć maszynę wirtualną, a następnie stworzyć nową, gdy będę jej potrzebował. Ten proces pozwala mi również testować na wielu platformach, mimo że mam tylko maszynę z systemem Windows.

Słowa końcowe

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 dają nam elastyczność, dzięki której możemy łatwo i szybko tworzyć systemy operacyjne, sprzęt i środowiska, których potrzebujemy - w dowolnym momencie.

Nazywam się Cathy Daniels i jestem ekspertką w programie Adobe Illustrator. Używam oprogramowania od wersji 2.0, a od 2003 roku tworzę dla niego samouczki. Mój blog jest jednym z najpopularniejszych miejsc w sieci dla osób, które chcą nauczyć się obsługi programu Illustrator. Oprócz mojej pracy jako bloger, jestem również autorem i grafikiem.