Powszechne zastosowanie wirtualizacji było rewolucją w świecie IT. I choć rozwiązania wykorzystujące wirtualizację są z nami już od lat, nadal cieszą się ogromną popularnością, a obszary ich zastosowania ciągle się poszerzają. Dowiedz się, czym tak naprawdę jest wirtualizacja i jaką ma przed sobą przyszłość?
Z tego wpisu dowiesz się:
- Co to jest wirtualizacja?
- Wirtualizacja – zastosowania
- Wirtualizacje sieci komputerowych
- Wirtualizacja aplikacji i desktopów
- Wirtualizacja zasobów dyskowych
- Co to jest hypervision?
- Czym jest maszyna wirtualna?
- Korzyści z wirtualizacji
Co to jest wirtualizacja?
Wirtualizacja jest programowym odwzorowaniem pewnych zasobów fizycznych. Efektem tego jest realizacja co najmniej tych samych funkcjonalności. Wirtualizowane mogą być pewne aplikacje, a nawet całe systemy operacyjne oraz komponenty infrastruktury takie, jak:
- procesor,
- pamięć operacyjna,
- zasoby dyskowe,
- całe stacje robocze,
- serwery,
- elementy sieci komputerowych.
Wirtualizacja – zastosowania
Skupimy się na wirtualizacji systemów operacyjnych, a więc rozwiązaniach wykorzystujących hypervisor oraz maszyny wirtualne.
Wirtualizację wykorzystuje się już od dawna w ośrodkach akademickich i innych zaawansowanych technologicznie organizacjach. Popularna stała się jednak dopiero wtedy, gdy możliwości pojedynczych komputerów czy serwerów zaczęły znacznie przewyższać wymagania pojedynczych systemów operacyjnych i aplikacji.
Możliwość uruchomienia kilku czy nawet kilkunastu systemów operacyjnych na jednej maszynie, jak łatwo sobie wyobrazić, niosła za sobą ogromne korzyści funkcjonalne oraz ekonomiczne (min. mniej potrzebnej energii, miejsca, czy po prostu sprzętu i ludzi potrzebnych do zarządzania nim).
Popularność wirtualizacji znacznie wzrosła, gdy zaczęto ją wykorzystywać w komputerach osobistych. Dzięki temu można było zainstalować dodatkowy system operacyjny i uruchamiać aplikacje, które nie działały na systemie bazowym lub np. stworzyć środowiska testowe.
Wirtualizacja sieci komputerowych
Choć ten obszar technologii może wydawać się dość świeży, w rzeczywistości wirtualizacja w sieciach stosowana jest od bardzo dawna. Najbardziej znanym przykładem będą zapewne VLANY, a więc wirtualne sieci LAN, które umożliwiają podział sieci na kilka mniejszych, odseparowanych od siebie. Są też VPN’y, a więc wirtualne sieci prywatne, dzięki którym w bezpieczny sposób możemy łączyć się do zasobów firmowych lub łączyć ze sobą oddziały firmy poprzez sieć Internet.
Jednak za prawdziwą wirtualizację sieci uważa się rozwiązania, w których zastosowano podział na warstwę underlay, a więc tą odpowiedzialną bezpośrednio za transfer danych, oraz warstwę overlay. W tej drugiej odbywają się wszystkie funkcje sterujące i zarządzające. Więcej szczegółów znajdziesz we wpisie o Sieciach Definiowanych Programowo. To właśnie rozwiązania SDN uważane są za te w pełni wykorzystujące wirtualizację.
Wirtualizacja aplikacji i desktopów
Dzięki wirtualizacji aplikacji możliwe jest uruchomienie danej aplikacji w środowisku wirtualnym bez konieczności instalacji na lokalnej stacji. Obecnie to właśnie w ten sposób korzystamy z większości naszych aplikacji.
Natomiast Virtual Desktop Infrastructure, czyli popularny VDI to rozwiązania, w których wirtualizacja pozwala na uruchomienie całej stacji roboczej w zewnętrznym środowisku. A także dostęp do niej za pomocą zdalnego pulpitu lub dedykowanego terminala.
Wirtualizacja zasobów dyskowych
Wirtualizacja storage może być niskopoziomowa (łączenie dysków w pule dyskowe udostępniane w postaci LUN’ów) lub działać w wyższej warstwie. Czyli odpowiadać za to, czy dane z macierzy prezentowane są w formie plikowej czy surowego bloku. Szerzej omawiam to w odcinku poświęconym sieciom SAN.
Jedną z nowszych technologii wykorzystujących wirtualizację w zakresie przechowywania danych, jest hiperkonwergencja, o której wkrótce napiszę więcej.
Co to jest hypervisor?
Hypervisor jest specjalnie przygotowanym systemem operacyjnym, który umożliwia konfigurację i powoływanie maszyn wirtualnych oraz oczywiście zarządzanie nimi. Hypervisor pośredniczy w komunikacji oraz wykorzystaniu zasobów fizycznych hosta takich, jak jego procesory, pamięć ram czy zasoby dyskowe. Umożliwia jednocześnie podział hosta na mniejsze, tym razem wirtualne już jednostki.
Warto wspomnieć, że istnieją dwa rodzaje hypervisorów:
- hypervisor typu 1 instalowany jest bezpośrednio na hoście, czyli zazwyczaj serwerze. Mówi się, że są to hypervisory bare metal. Najpopularniejszymi rozwiązaniami tego typu jest ESXi od VMware’a czy Open Source’owy KVM. Hypervisiory bare metal charakteryzują się minimalnymi opóźnieniami oraz wysoką wydajnością.
- hypervisor typu 2 – między hostem a hipervisorem zainstalowany jest klasyczny system operacyjny np. Windows czy Linux. Takie rozwiązania zwane są też parawirtualizacją i spotkamy je najczęściej w zastosowaniach na komputerach domowych czy laptopach. Ich celem jest uruchomienie zazwyczaj jednego, dodatkowego systemu operacyjnego lub różnego rodzaju środowisk testowych. Najpopularniejszymi rozwiązaniami jest Virtualbox ood Oracle’a czy VMware Player lub Workstation na Windows albo Fusion na Mac’a.
Jeśli chodzi o produkcyjne zastosowania, a więc te, w których systemy zainstalowane są jako maszyny wirtualne, zdecydowanie częściej wykorzystywane są rozwiązania oparte o hypervisor typu 1.
Czym jest maszyna wirtualna?
Maszyna wirtualna, jak nazwa wskazuje jest software’owym odwzorowaniem fizycznej jednostki. Dzieje się to dzięki wspomnianemu hipervisorowi. Jednak to my tworząc, taką maszynę, decydujemy o jej najważniejszych parametrach, takich jak CPU, RAM, zasoby dyskowe czy ilość i rodzaj kart sieciowych.
Maszyny wirtualne z definicji są niezależne od siebie. Dzięki temu mogą mieć różną konfigurację i obsługiwać różne OS. Nic nie stoi na przeszkodzie, a przynajmniej nie powinno, aby na jednym serwerze fizycznym, np. pod kontrolą VMware vSphere, zainstalowanych było np. kilka VM’ek z Linuxem i parę innych np. z Windowsem. Wszystko zależy w zasadzie od parametrów serwera.
Korzyści z wirtualizacji
Z definicji minimum wirtualizacji jest zapewnienie co najmniej tej samej funkcjonalności, jaką posiada maszyna fizyczna. Nietrudno się jednak domyślić, że takie wirtualne środowisko, dostarcza tych funkcjonalności znacznie więcej.
Jako najważniejsze należy wymienić chociażby możliwość:
– dowolnego przenoszenia maszyn wirtualnych pomiędzy hostami,
– zapewnienie ich wysokiej dostępności,
– ich łatwą replikację oraz backup,
– możliwość przydzielenia maszynom wirtualnym sumarycznie większej ilości zasobów, niż host fizyczny rzeczywiście posiada. Z tym zabiegiem radzę jednak uważać i robić to w pełni świadomie.
Oczywiście ciekawych funkcjonalności jest znaczenie więcej i one również zależą nie tylko od zastosowanego do wirtualizacji rozwiązania, ale też rodzaju storage czy od tego, jak i czym hypervisory są zarządzane.
Do biznesowych korzyści wirtualizacji zaliczamy:
- optymalizację wykorzystania zasobów sprzętowych, która zapewnia duże oszczędności w zakresie sprzętu, potrzebnej energii elektrycznej, miejsca czy zasobów administracyjnych,
- bardziej optymalne wykorzystanie licencji na systemy operacyjne, choć ich producenci robią, co mogą, aby nie było tu zbyt łatwo,
- bezpieczeństwo i wysoka dostępność wirtualizowanych środowisk,
- szybkie powoływanie nowych środowisk np. na potrzeby testów nowych aplikacji czy ich elementów. To znacznie redukuje czas i zasoby, potrzebne do realizacji tych zadań w środowiskach tradycyjnych.
Oczywiście wirtualizacja nie jest tematem nowym i częściowo jest zastępowana przez technologie takie, jak kontenery czy chmurę publiczną. Niedługo o nich opowiem. Dlatego już dziś zapisz się do newslettera, aby otrzymywać unikalne treści, linki do ciekawych narzędzi i materiałów oraz informacje o nowych materiałach.