/Maszyna Wirtualna – Czym Jest i Dlaczego Jest Tak Przydatna?
Wiele z dzisiejszych najnowocześniejszych technologii, takich jak chmura obliczeniowa, edge computing i mikrosierwisy, zawdzięcza swój początek koncepcji maszyny wirtualnej – oddzielenia systemów operacyjnych i instancji oprogramowania od bazowego komputera fizycznego.
Czym jest maszyna wirtualna?
Maszyna wirtualna (VM) to oprogramowanie, które uruchamia programy lub aplikacje bez powiązania z maszyną fizyczną. W instancji maszyny wirtualnej na komputerze-hoście może działać jedna lub więcej maszyn gościnnych. Każda maszyna wirtualna ma swój własny system operacyjny i działa niezależnie od innych maszyn wirtualnych, nawet jeśli znajdują się one na tym samym hoście fizycznym. Maszyny wirtualne są zazwyczaj uruchamiane na serwerach, ale mogą być również uruchamiane na systemach stacjonarnych, a nawet na platformach wbudowanych. Wiele maszyn wirtualnych może współdzielić zasoby z fizycznego hosta, w tym cykle procesora, przepustowość sieci i pamięć.
Można powiedzieć, że maszyny wirtualne powstały już u początków informatyki w latach 60-tych XX wieku, kiedy to w celu oddzielenia oprogramowania od fizycznego systemu hosta stosowano współdzielenie czasu dla użytkowników komputerów mainframe. Maszyna wirtualna została zdefiniowana na początku lat 70. jako „wydajny, odizolowany duplikat prawdziwej maszyny komputerowej”.
Maszyny wirtualne, jakie znamy dziś, zyskały na popularności w ciągu ostatnich 20 lat, gdy firmy przyjęły wirtualizację serwerów w celu bardziej efektywnego wykorzystania mocy obliczeniowej serwerów fizycznych, zmniejszając ich liczbę i oszczędzając miejsce w centrum danych. Ponieważ aplikacje o różnych wymaganiach systemowych mogły być uruchamiane na jednym fizycznym hoście, dla każdej z nich nie był wymagany inny sprzęt serwerowy.
Jak działają maszyny wirtualne?
Ogólnie rzecz biorąc, istnieją dwa rodzaje maszyn wirtualnych: procesowe maszyny wirtualne, które wydzielają pojedynczy proces, oraz systemowe maszyny wirtualne, które oferują pełne oddzielenie systemu operacyjnego i aplikacji od fizycznego komputera. Przykładami procesowych maszyn wirtualnych są Java Virtual Machine, .NET Framework i maszyna wirtualna Parrot. Systemowe maszyny wirtualne opierają się na hyperwizorach jako pośrednikach, które dają oprogramowaniu dostęp do zasobów sprzętowych. Hyperwizor emuluje procesor, pamięć, dysk twardy, sieć i inne zasoby sprzętowe komputera, tworząc pulę zasobów, które mogą być przydzielane poszczególnym maszynom wirtualnym zgodnie z ich specyficznymi wymaganiami. Hyperwizor może obsługiwać wiele wirtualnych platform sprzętowych, które są od siebie odizolowane, umożliwiając maszynom wirtualnym uruchamianie systemów operacyjnych Linux i Windows Server na tym samym fizycznym hoście.
Znani dostawcy hyperwizorów to VMware (ESX/ESXi), Intel/Linux Foundation (Xen), Oracle (MV Server for SPARC i Oracle VM Server for x86) oraz Microsoft (Hyper-V). Systemy komputerów stacjonarnych również mogą wykorzystywać maszyny wirtualne. Przykładem może być użytkownik komputera Mac, który uruchamia wirtualną instancję systemu Windows na swoim fizycznym sprzęcie Mac.
Jakie są dwa rodzaje hyperwizorów?
Hyperwizor zarządza zasobami i przydziela je maszynom wirtualnym. Ponadto planuje i dostosowuje sposób dystrybucji zasobów w oparciu o konfigurację hyperwizora i maszyn wirtualnych, a także może realokować zasoby w przypadku zmian zapotrzebowania. Większość hyperwizorów należy do jednej z dwóch kategorii:
- Typ 1. Hyperwizor typu bare-metal działa bezpośrednio na fizycznym hoście i ma bezpośredni dostęp do jego sprzętu. Hyperwizory typu 1 działają zwykle na serwerach i są uważane za bardziej wydajne i lepiej funkcjonujące niż hyperwizory typu 2, dzięki czemu dobrze nadają się do wirtualizacji serwerów, desktopów i aplikacji. Przykładami hyperwizorów typu 1 są Microsoft Hyper-V i VMware ESXi.
- Typ 2. Czasami nazywany hyperwizorem hostowanym, hyperwizor typu 2 jest instalowany na wierzchu systemu operacyjnego maszyny głównej, który zarządza połączeniami z zasobami sprzętowymi. Hiperwizory typu 2 są zazwyczaj wdrażane w systemach użytkowników końcowych dla określonych przypadków użycia. Na przykład, programista może użyć hyperwizora typu 2 do stworzenia specyficznego środowiska do budowy aplikacji lub analityk danych może użyć go do testowania aplikacji w odizolowanym środowisku. Przykładami są VMware Workstation i Oracle VirtualBox.
Jakie są zalety maszyn wirtualnych?
Ponieważ oprogramowanie jest oddzielone od fizycznego komputera gospodarza, użytkownicy mogą uruchamiać wiele instancji systemu operacyjnego na jednym kawałku sprzętu, co pozwala firmie zaoszczędzić czas, koszty zarządzania i przestrzeń fizyczną. Inną zaletą jest to, że maszyny wirtualne mogą obsługiwać starsze aplikacje, zmniejszając lub eliminując potrzebę i koszty migracji starszej aplikacji do zaktualizowanego lub innego systemu operacyjnego. Ponadto programiści wykorzystują maszyny wirtualne do testowania aplikacji w bezpiecznym, piaskowym środowisku. Programiści chcący sprawdzić, czy ich aplikacje będą działać na nowym systemie operacyjnym, mogą wykorzystać maszyny wirtualne do testowania oprogramowania zamiast kupować z wyprzedzeniem nowy sprzęt i system operacyjny. Na przykład, Microsoft niedawno zaktualizował swoje darmowe maszyny wirtualne Windows, które pozwalają programistom pobrać ewaluacyjną maszynę wirtualną z systemem Windows 11, aby wypróbować system operacyjny bez konieczności aktualizowania głównego komputera. Może to również pomóc w wyizolowaniu złośliwego oprogramowania, które może zainfekować daną instancję maszyny wirtualnej. Ponieważ oprogramowanie w maszynie wirtualnej nie może manipulować komputerem głównym, złośliwe oprogramowanie nie może rozprzestrzeniać tak dużych szkód.
Jakie są wady maszyn wirtualnych?
Maszyny wirtualne mają kilka wad. Uruchomienie wielu maszyn wirtualnych na jednym fizycznym hoście może skutkować niestabilną wydajnością, zwłaszcza jeśli wymagania infrastrukturalne dla danej aplikacji nie są spełnione. To również sprawia, że w wielu przypadkach są one mniej wydajne w porównaniu z komputerem fizycznym. W dodatku, jeśli fizyczny serwer ulegnie awarii, wszystkie działające na nim aplikacje przestaną działać. Większość sklepów IT wykorzystuje równowagę pomiędzy systemami fizycznymi i wirtualnymi.
Jakie są inne formy wirtualizacji?
Sukces maszyn wirtualnych w wirtualizacji serwerów doprowadził do zastosowania wirtualizacji w innych obszarach, takich jak pamięć masowa, sieć i komputery stacjonarne. Jeśli w centrum danych wykorzystywany jest jakiś rodzaj sprzętu, to istnieje możliwość zwirtualizowania go (np. kontrolery dostarczania aplikacji). W zakresie wirtualizacji sieci firmy badają opcje network-as-a-service oraz wirtualizację funkcji sieciowych (NFV), która wykorzystuje serwery klasy commodity do zastąpienia wyspecjalizowanych urządzeń sieciowych, aby umożliwić bardziej elastyczne i skalowalne usługi. Różni się to nieco od sieci definiowanej programowo, która oddziela płaszczyznę sterowania siecią od płaszczyzny przekazywania danych, aby umożliwić bardziej zautomatyzowane dostarczanie i zarządzanie zasobami sieciowymi oparte na polityce. Trzecia technologia, wirtualne funkcje sieciowe, to oparte na oprogramowaniu usługi, które mogą działać w środowisku NFV, w tym procesy takie jak routing, zapora ogniowa, równoważenie obciążenia, przyspieszenie sieci WAN i szyfrowanie.
Na przykład Verizon wykorzystuje NFV do świadczenia swoich wirtualnych usług sieciowych, które umożliwiają klientom uruchamianie nowych usług i możliwości na żądanie. Usługi obejmują aplikacje wirtualne, routing, sieci WAN definiowane programowo, optymalizację sieci WAN, a nawet kontroler Session Border Controller jako usługę (SBCaaS) do centralnego zarządzania i bezpiecznego wdrażania usług czasu rzeczywistego opartych na protokole IP, takich jak VoIP i ujednolicona komunikacja.
Maszyny wirtualne i kontenery
Rozwój maszyn wirtualnych doprowadził do dalszego rozwoju technologii takich jak kontenery, które stanowią kolejny krok w rozwoju tej koncepcji i zyskują uznanie wśród twórców aplikacji internetowych. W środowisku kontenerowym pojedyncza aplikacja wraz z jej zależnościami może zostać zwirtualizowana. Przy znacznie mniejszym narzucie niż maszyna wirtualna, kontener zawiera jedynie binaria, biblioteki i aplikacje. Chociaż niektórzy uważają, że rozwój kontenerów może zabić maszynę wirtualną, istnieje wystarczająco dużo możliwości i korzyści z maszyn wirtualnych, aby utrzymać tę technologię w ruchu. Na przykład maszyny wirtualne pozostają przydatne podczas uruchamiania wielu aplikacji razem lub podczas uruchamiania starszych aplikacji na starszych systemach operacyjnych. Ponadto, zdaniem niektórych, kontenery są mniej bezpieczne niż hyperwizory VM, ponieważ kontenery mają tylko jeden system operacyjny, który aplikacje współdzielą, podczas gdy maszyny wirtualne mogą izolować aplikację i system operacyjny. Gary Chen, kierownik badań w dziale Software-Defined Compute firmy IDC, powiedział, że rynek oprogramowania maszyn wirtualnych pozostaje technologią fundamentalną, nawet w miarę jak klienci badają architektury chmurowe i kontenery. „Rynek oprogramowania maszyn wirtualnych był niezwykle odporny i będzie nadal pozytywnie rósł w ciągu najbliższych pięciu lat, mimo że jest wysoce dojrzały i zbliża się do nasycenia” – pisze Chen w opracowaniu IDC „Worldwide Virtual Machine Software Forecast, 2019-2022”.
Maszyny wirtualne, 5G i edge computing
Maszyny wirtualne są postrzegane jako część nowych technologii, takich jak 5G i edge computing. Na przykład dostawcy infrastruktury wirtualnych desktopów (VDI), tacy jak Microsoft, VMware i Citrix, szukają sposobów na rozszerzenie swoich systemów VDI na pracowników, którzy teraz pracują w domu w ramach modelu hybrydowego post-COVID. „W przypadku VDI potrzebujesz ekstremalnie niskich opóźnień, ponieważ wysyłasz swoje naciśnięcia klawiszy i ruchy myszy do w zasadzie zdalnego pulpitu” – mówi Mahadev Satyanarayanan, profesor informatyki na Carnegie Mellon University. W 2009 roku Satyanarayanan napisał o tym, jak można wykorzystać chmury oparte na maszynach wirtualnych, aby zapewnić lepsze możliwości przetwarzania urządzeniom mobilnym na obrzeżach Internetu, co doprowadziło do rozwoju edge computing. W przestrzeni bezprzewodowej 5G proces krojenia sieci wykorzystuje sieci definiowane programowo i technologie NFV, aby pomóc w zainstalowaniu funkcjonalności sieci na maszynach wirtualnych na zwirtualizowanym serwerze w celu zapewnienia usług, które kiedyś działały tylko na zastrzeżonym sprzęcie. Podobnie jak wiele innych używanych obecnie technologii, te wyłaniające się innowacje nie powstałyby, gdyby nie oryginalne koncepcje maszyn wirtualnych wprowadzone dziesiątki lat temu.
źródło: https://www.computerworld.pl