Wirtualizacja

menu icon

Wirtualizacja

Wirtualizacja to proces, który pozwala na bardziej efektywne wykorzystanie fizycznego sprzętu komputerowego i stanowi fundament przetwarzania w chmurze.

Czym jest wirtualizacja?

Wirtualizacja to sposób tworzenia odseparowanej warstwy sprzętu komputerowego za pomocą oprogramowania. Dzięki niej elementy sprzętowe jednego komputera — takie jak procesory, pamięć operacyjna, masowa i nie tylko — można podzielić na wiele urządzeń wirtualnych, powszechnie nazywanych maszynami wirtualnymi (VM). Każda maszyna wirtualna jest wyposażona we własny system operacyjny (OS) i działa jak niezależne urządzenie, chociaż wykorzystuje jedynie pewną część bazowego sprzętu komputerowego.

Wirtualizacja pozwala organizacji wydajniej wykorzystać fizyczny sprzęt komputerowy i uzyskać większy zwrot z inwestycji w urządzenia.

Dziś wirtualizacja jest standardową praktyką podczas tworzenia architektury IT przedsiębiorstwa. To również technologia, która zwiększa ekonomiczność przetwarzania w chmurze. Wirtualizacja pozwala dostawcom usług chmurowych obsługiwać użytkowników za pomocą istniejącego fizycznego sprzętu komputerowego. Dzięki niej użytkownicy chmury mogą kupować tylko te zasoby obliczeniowe, których rzeczywiście potrzebują w danym momencie, a także ekonomicznie rozbudowywać taką infrastrukturę wraz ze wzrostem obciążeń.

Aby szczegółowo poznać sposób działania wirtualizacji, warto obejrzeć nasz film „Objaśniamy wirtualizację” (5:20):

Korzyści z wirtualizacji

Wirtualizacja zapewnia różne korzyści operatorom centrów przetwarzania danych oraz usługodawcom:

  • Wydajność zasobów: zanim nastała era wirtualizacji, każdy serwer aplikacji wymagał własnego, dedykowanego i fizycznego procesora — informatycy kupowali i konfigurowali oddzielny serwer dla każdej aplikacji, którą chcieli wprowadzić. (W środowisku IT preferowano jedną aplikację i jeden system operacyjny (OS) na komputer, ponieważ zapewniało to niezawodność działania). W efekcie żaden serwer fizyczny nie był w pełni wykorzystywany. Wirtualizacja serwera pozwala uruchamiać kilka aplikacji — każdą na własnej maszynie wirtualnej i z własnym systemem operacyjnym — na jednym komputerze fizycznym (zazwyczaj jest to serwer x86) bez negatywnego wpływu na niezawodność. W ten sposób można maksymalnie wykorzystać potencjał obliczeniowy fizycznego sprzętu.
  • Łatwiejsze zarządzanie: zastąpienie komputerów fizycznych opartymi na oprogramowaniu maszynami wirtualnymi pozwala łatwiej stosować i kontrolować strategie zapisane w oprogramowaniu. Dzięki temu można tworzyć zautomatyzowane przepływy pracy zarządzania usługami IT. Na przykład zautomatyzowane narzędzia do wdrażania i konfiguracji pozwalają administratorom definiować zbiory maszyn wirtualnych i aplikacji jako usługi w szablonach oprogramowania. Dzięki takiemu rozwiązaniu administratorzy mogą wdrażać takie usługi spójnie i wielokrotnie bez konieczności stosowania uciążliwej, czasochłonnej i podatnej na błędy konfiguracji ręcznej. Administratorzy mogą wprowadzać strategie bezpieczeństwa wirtualizacji, wymagając określonej konfiguracji zabezpieczeń zgodnej z funkcją danej maszyny wirtualnej. Takie zasady mogą nawet podnieść wydajność zasobów dzięki możliwości wyłączenia nieużywanych maszyn wirtualnych w celu zaoszczędzenia miejsca i mocy obliczeniowej.
  • Minimalny czas przestoju: awarie systemu operacyjnego i aplikacji mogą powodować przestoje oraz ograniczać produktywność użytkownika. Administratorzy mogą uruchamiać wiele nadmiarowych maszyn wirtualnych jednocześnie i przechodzić z jednej na drugą w przypadku awarii. Obsługa wielu nadmiarowych serwerów fizycznych jest droższa.
  • Szybsze udostępnianie: zakup, instalacja i konfiguracja sprzętu dla kolejnych aplikacji zabiera dużo czasu. Jeżeli sam sprzęt jest już zainstalowany, udostępnienie maszyn wirtualnych w celu obsługi wszystkich aplikacji użytkownika jest zdecydowanie szybsze. Proces można nawet zautomatyzować, używając w tym celu oprogramowania do zarządzania oraz integrując je z istniejącymi przepływami pracy.

Aby lepiej poznać potencjalne korzyści, należy zapoznać się z częścią „5 korzyści wirtualizacji”.

Rozwiązania

Kilka firm oferuje rozwiązania do wirtualizacji pozwalające wykonywać określone zadania w centrach przetwarzania danych oraz przeprowadzać wirtualizację stacji roboczych dla użytkowników końcowych. Przykłady najpopularniejszych firm obejmują VMware, która specjalizuje się w wirtualizacji serwerów, stacji roboczych, sieci oraz pamięci masowej; Citrix, która wypełnia niszę wirtualizacji aplikacji, ale oferuje też wirtualizację serwerów oraz rozwiązania do wirtualizacji stacji roboczych; a także firmę Microsoft, która stworzyła system wirtualizacji Hyper-V, dołączany do systemu Windows i pozwalający tworzyć wirtualne wersje serwerów i komputerów stacjonarnych.

Maszyny wirtualne (VM)

Maszyny wirtualne (VM) oferują środowiska wirtualne pod postacią oprogramowania symulującego przetwarzanie na sprzęcie fizycznym. Zazwyczaj składają się z kilku plików zawierających konfigurację maszyny wirtualnej, pamięć masową przeznaczoną na wirtualny dysk twardy, a także obrazy stanu maszyny wirtualnej, na których rejestrowany jest jej stan w określonym punkcie czasu.

Pełne omówienie maszyn wirtualnych znajduje się w części „Czym jest maszyna wirtualna?”.

Hiperwizory

Hiperwizor to warstwa oprogramowania, za pomocą której koordynowane są maszyny wirtualne. Pełni funkcję interfejsu pomiędzy maszyną wirtualną a bazowym sprzętem fizycznym, dzięki czemu każdy element ma dostęp do zasobów fizycznych, których potrzebuje. Pilnuje również, aby poszczególne maszyny wirtualne nie wchodziły ze sobą w konflikt poprzez wzajemne ingerowanie w pamięć czy cykle obliczeniowe.

Istnieją dwa rodzaje hiperwizorów:

  • Hiperwizory typu 1 lub typu „bare-metal” współdziałają z bazowymi zasobami fizycznymi, całkowicie zastępując tradycyjny system operacyjny. Najczęściej są one stosowane w przypadku serwerów wirtualnych.
  • Hiperwizory typu 2 działają w charakterze aplikacji w istniejącym systemie operacyjnym. Najczęściej są używane w urządzeniach końcowych w celu obsługi alternatywnych systemów operacyjnych, powodują zmniejszenie wydajności, ponieważ muszą korzystać z systemu operacyjnego hosta, aby uzyskiwać dostęp i koordynować bazowe, fizyczne zasoby sprzętowe.

Zasób „Hiperwizory: kompletny przewodnik” zawiera kompleksowy przegląd informacji na temat hiperwizorów.

Typy wirtualizacji

Jak na razie omówiliśmy wirtualizację serwerów, ale wirtualizować można wiele innych elementów infrastruktury IT, aby zapewnić administratorom IT (zwłaszcza im) i całemu przedsiębiorstwu znaczne korzyści. W tej części omówimy następujące typy wirtualizacji:

  • Wirtualizacja stacji roboczej
  • Wirtualizacja sieci
  • Wirtualizacja pamięci masowej
  • Wirtualizacja danych
  • Wirtualizacja aplikacji
  • Wirtualizacja centrów przetwarzania danych
  • Wirtualizacja procesora
  • Wirtualizacja procesora graficznego
  • Wirtualizacja systemu Linux
  • Wirtualizacja chmury

Wirtualizacja stacji roboczej

Wirtualizacja stacji roboczej pozwala korzystać z wielu systemów operacyjnych — każdy w ramach osobnej maszyny wirtualnej — dla komputerów stacjonarnych na tym samym urządzeniu fizycznym.

Istnieją dwa rodzaje wirtualizacji stacji roboczej:

  • Infrastruktura wirtualnej stacji roboczej (VDI) pozwala używać wielu stacji roboczych w maszynach wirtualnych na serwerze centralnym oraz przekazywać je użytkownikom, którzy logują się w zubożonych urządzeniach klienckich. W ten sposób infrastruktura VDI pozwala organizacji zapewnić użytkownikom dostęp do różnych systemów operacyjnych za pomocą dowolnego urządzenia, bez konieczności instalowania tych systemów. Szczegółowe omówienie znajduje się w części „Czym jest infrastruktura wirtualnej stacji roboczej (VDI)?
  • Wirtualizacja lokalnej stacji roboczej powoduje uruchomienie hiperwizora w komputerze lokalnym, co pozwala użytkownikowi korzystać z co najmniej jednego dodatkowego systemu operacyjnego na tym komputerze oraz w miarę potrzeby przechodzić z jednego systemu na drugi bez konieczności modyfikacji bazowego systemu operacyjnego.

Więcej informacji na temat wirtualnych stacji roboczych znajduje się w części „Stacja robocza jako usługa (DaaS)”.

Wirtualizacja sieci

Wirtualizacja sieci opiera się na wykorzystaniu oprogramowania do stworzenia „widoku” tej sieci, który posłuży administratorowi do zarządzania siecią za pomocą jednej konsoli. Odseparowuje elementy sprzętowe i funkcje (np. połączenia, przełączniki, routery itp.), a następnie wprowadza je do oprogramowania działającego w hiperwizorze. Administrator sieci może modyfikować i kontrolować te elementy bez ingerowania w bazowe komponenty fizyczne, co niezwykle upraszcza zarządzanie siecią.

Rodzaje wirtualizacji sieci obejmują sieci komputerowe zdefiniowane programowo (SDN), które pozwalają wirtualizować sprzęt sterujący ruchem sieciowym („płaszczyzna sterowania”), a także wirtualizację funkcji sieciowych (NFV), która wirtualizuje co najmniej jedno urządzenie oferujące określone funkcje sieciowe (np. zaporę firewall, system równoważenia obciążeń czy analizator ruchu), dzięki czemu można je łatwiej konfigurować, udostępniać i nadzorować.

Wirtualizacja pamięci masowej

Wirtualizacja pamięci masowej sprawia, że wszystkie urządzenia pamięci masowej w sieci — niezależnie od tego, czy są zainstalowane na osobnych serwerach, czy stanowią autonomiczne jednostki magazynujące — mogą być otwierane i zarządzane za pomocą jednego urządzenia pamięci masowej. Wirtualizacja pamięci masowej pozwala przede wszystkim gromadzić elementy pamięci masowej w jednej puli współużytkowanej, z której mogą być w miarę potrzeby przypisywane do każdej maszyny wirtualnej w sieci. Wirtualizacja pamięci masowej pomaga łatwiej udostępniać taką pamięć na potrzeby maszyn wirtualnych oraz maksymalnie wykorzystać całość pamięci dostępnej w sieci.

Aby bliżej poznać temat wirtualizacji pamięci masowej, należy przeczytać część „Czym jest pamięć masowa w chmurze?”.

Wirtualizacja danych

W nowoczesnych firmach dane pochodzące z wielu aplikacji są przechowywane w różnych formatach i w wielu miejscach, od chmury, poprzez sprzęt lokalny, aż po systemy oprogramowania. Wirtualizacja danych umożliwia dowolnej aplikacji uzyskanie dostępu do wszystkich tych danych — niezależnie od źródła, formatu czy lokalizacji.

Narzędzia do wirtualizacji danych pozwalają tworzyć warstwę oprogramowania pomiędzy aplikacjami, które uzyskują dostęp do danych, a systemami, w których są one przechowywane. Warstwa przekłada żądanie lub zapytanie aplikacji o dane i generuje wyniki, które mogą obejmować wiele systemów. Wirtualizacja danych pomaga w łączeniu odseparowanych danych, gdy inne rodzaje integracji nie są wykonalne, pożądane ani opłacalne.

Wirtualizacja aplikacji

Wirtualizacja aplikacji pozwala korzystać z oprogramowania aplikacyjnego bez konieczności instalowania go bezpośrednio w systemie operacyjnym użytkownika. Różni się to od pełnej wirtualizacji stacji roboczej (omówionej powyżej), ponieważ w środowisku wirtualnym znajduje się tylko aplikacja — system operacyjny w urządzeniu użytkownika końcowego działa standardowo. Istnieją trzy typy wirtualizacji aplikacji:

  • Wirtualizacja aplikacji lokalnych: cała aplikacja działa na urządzeniu końcowym, ale w środowisku wykonawczym, a nie na sprzęcie rodzimym.
  • Strumieniowanie aplikacji: aplikacja funkcjonuje na serwerze, który w wymaganych sytuacjach przesyła małe komponenty oprogramowania do wykonania ich na urządzeniu użytkownika końcowego.
  • Wirtualizacja aplikacji oparta na serwerze: aplikacja działa w całości na serwerze, który na urządzenie klienta przesyła tylko interfejs użytkownika.

Wirtualizacja centrów przetwarzania danych

Wirtualizacja centrum przetwarzania danych wizualnie zamienia większość sprzętu centrum przetwarzania danych w oprogramowanie, skutecznie pozwalając administratorowi podzielić fizyczne centrum przetwarzania danych na wiele centrów wirtualnych przeznaczonych dla różnych klientów.

Każdy klient może uzyskać dostęp do własnej infrastruktury jako usługi (IaaS), która jest obsługiwana na tym samym bazowym sprzęcie fizycznym. Wirtualne centra przetwarzania danych oferują łatwy dostęp do przetwarzania w chmurze, co pozwala firmie szybko stworzyć środowisko centrum przetwarzania danych bez konieczności kupowania infrastruktury sprzętowej.

Wirtualizacja procesora

Wirtualizacja procesora (CPU) to bazowa technologia, która umożliwia działanie hiperwizorów, maszyn wirtualnych i systemów operacyjnych. Pozwala ona podzielić jeden procesor na wiele procesorów wirtualnych, z których może korzystać wiele maszyn wirtualnych.

Początkowo wirtualizacja procesora była całkowicie zdefiniowana programowo, ale wiele dzisiejszych procesorów zawiera rozszerzone zbiory instrukcji, które wspierają wirtualizację procesorów, poprawiając wydajność maszyn wirtualnych.

Wirtualizacja procesora graficznego

Procesor graficzny (GPU) jest specjalnym, zbudowanym z wielu rdzeni procesorem, który podnosi ogólną wydajność obliczeniową, ponieważ przejmuje przetwarzanie dużych wolumenów danych graficznych i matematycznych. Wirtualizacja procesora graficznego sprawia, że wiele maszyn wirtualnych korzysta z całości lub części mocy obliczeniowej jednego procesora graficznego, aby szybciej przetwarzać aplikacje wideo, oparte na sztucznej inteligencji (AI) oraz inne aplikacje zaawansowane graficznie lub matematycznie.

  • Funkcja tranzytu procesora graficznego udostępnia cały procesor graficzny na potrzeby jednego systemu operacyjnego gościa.
  • Współużytkowane wirtualne procesory graficzne pozwalają dzielić fizyczne rdzenie GPU na kilka wirtualnych procesorów graficznych (vGPU) do użytku przez maszyny wirtualne oparte na serwerach.

Wirtualizacja systemu Linux

Linux zawiera własny hiperwizor, nazywany maszyną wirtualną bazującą na jądrze (kernel-based virtual machine, KVM), który obsługuje rozszerzenia procesorów wirtualizacji firmy Intel i AMD, dzięki czemu można tworzyć maszyny wirtualne oparte na architekturze x86 z poziomu hosta systemu operacyjnego Linux.

Linux jest systemem operacyjnym typu Open Source, więc można go w wysokim stopniu konfigurować. Na potrzeby bardziej wrażliwych aplikacji można tworzyć wersje maszyn wirtualnych z systemem Linux dostosowane do określonych obciążeń lub wersje z bardziej zaawansowanymi zabezpieczeniami.

Wirtualizacja chmury

Jak zauważono powyżej, model przetwarzania w chmurze jest oparty na wirtualizacji. Dzięki wirtualizacji serwerów, pamięci masowej oraz innych fizycznych zasobów centrum przetwarzania danych dostawcy usług przetwarzania w chmurze mogą zaoferować klientom szereg usług, takich jak:

  • Infrastruktura jako usługa (IaaS): wirtualne serwery, pamięci masowe i zasoby sieciowe, które można konfigurować zgodnie z własnymi wymogami.
  • Platforma jako usługa (PaaS): wirtualne narzędzia programistyczne, bazy danych i inne usługi oparte na chmurze, których można używać do budowania własnych aplikacji i rozwiązań opartych na chmurze.
  • Oprogramowanie jako usługa (SaaS): aplikacje programowe używane w chmurze. SaaS to usługa chmurowa, która jest najbardziej abstrakcyjna w relacji do sprzętu.

Aby dowiedzieć się więcej na temat tych modeli usług w chmurze, przeczytaj nasz przewodnik: „IaaS, PaaS oraz SaaS”.

Wirtualizacja a konteneryzacja

Wirtualizacja serwera pozwala odtworzyć na sprzęcie cały komputer, w którym jest następnie instalowany cały system operacyjny. System operacyjny obsługuje jedną aplikację. Takie rozwiązanie jest bardziej skuteczne niż zupełny brak wirtualizacji, ale w dalszym ciągu wiąże się z powielaniem niepotrzebnego kodu i usług, dla każdej aplikacji, która ma zostać uruchomiona.

W przypadku kontenerów stosowane jest odmienne podejście. Współużytkują one jądro bazowego systemu operacyjnego, uruchamiając tylko aplikację i zasoby, na których bazuje, takie jak biblioteki oprogramowania czy zmienne środowiska. Dzięki temu kontenery są mniejsze i można je szybciej wdrożyć.

Szczegółowe informacje na temat kontenerów i konteneryzacji znajdują się w częściach „Kontenery: kompletny przewodnik” oraz „Konteneryzacja: kompletny przewodnik”.

We wpisie na blogu „Kontenery a maszyny wirtualne: jaka jest różnica?” dokładniej porównano te dwa narzędzia.

Na poniższym nagraniu Sai Vennam rozkłada konteneryzację na czynniki pierwsze i porównuje ją do wirtualizacji na przykładzie maszyn wirtualnych (8:09):

VMware

Firma VMware tworzy oprogramowanie do wirtualizacji. Początkowo firma VMware oferowała tylko wirtualizację serwerów — stworzony przez nią hiperwizor ESX (obecnie ESXi) był jednym z pierwszych produktów do wirtualizacji, który odniósł sukces handlowy. Dzisiaj VMware oferuje też rozwiązania z dziedziny wirtualizacji sieci, pamięci masowej i stacji roboczych.

Aby dowiedzieć się więcej o firmie VMware, przeczytaj opracowanie „VMware: kompletny przewodnik”.

Bezpieczeństwo

Wirtualizacja oferuje pewne korzyści związane z zabezpieczeniami. Na przykład maszyny wirtualne zainfekowane złośliwym oprogramowaniem można przywrócić do punktu w czasie (nazywanego obrazem stanu), gdy maszyna wirtualna działała bez zakłóceń oraz w sposób stabilny. Można je również łatwiej usunąć i odtworzyć. Nie zawsze można wyczyścić niewirtualny system operacyjny, ponieważ złośliwe oprogramowanie często wnika głęboko w podstawowe komponenty systemu operacyjnego i potrafi przetrwać przywracanie poprzedniego stanu systemu.

Wirtualizacja stwarza również pewne wyzwania związane z bezpieczeństwem. Gdy intruz atakuje hiperwizor, może potencjalnie przejąć kontrolę nad wszystkimi maszynami wirtualnymi oraz systemami operacyjnymi gościa. Ponieważ hiperwizory umożliwiają maszynom wirtualnym komunikację bez ingerencji w sieć fizyczną, może być trudno zauważyć ich ruch, a tym samym wykryć podejrzane działania.

Hiperwizor typu 2 w systemie operacyjnym hosta też jest podatny na naruszenie zabezpieczeń systemu operacyjnego hosta.

Rynek oferuje szereg zabezpieczeń wirtualizacji, które pozwalają skanować maszyny wirtualne pod kątem złośliwego oprogramowania i wprowadzać odpowiednie poprawki, szyfrować całe dyski maszyn wirtualnych, a także kontrolować dostęp do maszyn wirtualnych i przeprowadzać jego inspekcję.

Wirtualizacja i IBM

IBM Cloud oferuje pełen pakiet opartych na chmurze rozwiązań do wirtualizacji, od usług chmury publicznej, po systemy chmur prywatnych i hybrydowych. Można jej używać do tworzenia i uruchamiania infrastruktury wirtualnej, a także do korzystania z usług, począwszy od platformy AI opartej na chmurze, aż po migrację obciążeń związanych z VMware za pomocą rozwiązań IBM Cloud for VMware.

Już dzisiaj załóż konto IBM Cloud.