Wprowadzenie do wirtualizacji
Wstęp
Maszyna wirtualna (ang. virtual machine, VM) ogólna nazwa dla
programów tworzących środowisko uruchomieniowe dla innych programów. Maszyna
wirtualna kontroluje wszystkie odwołania uruchamianego programu bezpośrednio do
sprzętu lub systemu operacyjnego i zapewnia ich obsługę. Sam proces
wirtualizacji maszyn polega na stworzeniu autonomicznej maszyny wewnątrz
naszego komputera, który może być traktowany jako nasz drugi komputer. Na
takiej maszynie instalujemy system operacyjny,
co pozwala uruchomić „system w systemie”. Co więcej, systemy te są uruchamiane
jednocześnie.
Maszyna wirtualna, na której pracujemy to tzw. „Host”
(gospodarz),
zaś systemy wirtualne to systemy „Guest” (goście). Co sprawia, że maszyny
wirtualne są często wykorzystywane? Otóż, wszystko to co się dzieje na
wirtualnym systemie pracuje w wyizolowanym środowisku
i pozwala na bezpieczne testowanie różnego oprogramowania, jak i samych
systemów bez szkody dla naszego głównego systemu.
W niektórych zastosowaniach (np. sieci komputerowe) wydajność systemów wirtualnych jest porównywalna z wydajnością natywnie zainstalowanego systemu operacyjnego. Bardzo ważnym elementem struktury jest hypervisor, który jako programowe narzędzie pozwala na jednoczesne działanie wielu systemów operacyjnych na jednym fizycznym komputerze. Można wyróżnić dwa rodzaje hypervisorów:
- Typu
1 – tzw. natywny, który jest uruchomiony bezpośrednio na sprzęcie
komputerowym.
Mając nad nim pełną kontrolę i monitorując uruchomione systemy operacyjne, a w warstwie wyższej są uruchamiane „systemy goście” (rozwiązania oparte o VMware ESXi, Citrix XenServer czy Microsoft Hyper-V)
- Typu 2 – tzw. hostowany (ang. hosted), który jest uruchomiony w systemie operacyjnym gospodarza (działa jako program i jest tzw. emulatorem), a „systemy goście” są uruchamiane na trzecim poziomie powyżej sprzętu komputerowego
Historia
Koncepcja wirtualizacji ma swoje
korzenie w późnych latach 60-tych i wczesnych 70-tych, kiedy to firma IBM
zainwestowała wiele czasu i wysiłku w opracowanie solidnych rozwiązań do
współdzielenia czasu. Wyrażenie Time-sharing odnosi
się do wspólnego korzystania z zasobów komputerowych przez dużą grupę
użytkowników, co ma na celu zwiększenie wydajności zarówno użytkowników, jak i
drogich zasobów komputerowych, które współdzielą. Model ten stanowił istotny
przełom w technologii komputerowej:
Dzisiejsze centra danych wykorzystują techniki wirtualizacji do:
- omijania fizycznego sprzętu
- tworzenia dużych zagregowanych pul zasobów logicznych składających się z procesorów, pamięci, dysków,
- przechowywania plików, aplikacji, sieci
- oferowania tych zasobów użytkownikom lub klientom w postaci skalowalnych i zintegrowanych maszyn wirtualnych.
Technologia i przypadki użycia wirtualizacji znajdują się w ciągłej ewolucji, jednak podstawowe jej znaczenie ciągle pozostaje takie samo: umożliwienie środowisku obliczeniowemu uruchomienia wielu niezależnych systemów w tym samym czasie.
Rodzaje wirtualizacji
Wirtualizacja serwera – pozwala na uruchomienie wielu systemów operacyjnych na jednym fizycznym serwerze, w postaci bardzo wydajnych maszyn wirtualnych. Główne zalety zastosowania wirtualizacji serwera to: zwiększona wydajność stosowanych rozwiązań IT,
- zmniejszenie kosztów utrzymania urządzeń
- sprawniejszy i proporcjonalny podział obciążenia pracą
- zwiększona wydajność działania aplikacji
- większa dostępność serwera
Wirtualizacja pamięci masowych – zastosowanie wirtualizacji pamięci masowych pozwala na maksymalne wykorzystanie posiadanych przez klienta przestrzeni dyskowych, a także zmniejszenie kosztów eksploatacji. Zapewnia to:
- łatwiejszą skalowalność danych,
- zwiększoną elastyczność zasobów,
- optymalne wykorzystanie dostępnego miejsca
- lepsze wykorzystanie już istniejącej infrastruktury pamięci masowej
Wirtualizacja sieciowa – stworzenie wirtualnej sieci cechującej się całkowitym odwzorowaniem sieci fizycznej pozwala na pracę z aplikacjami bez zmniejszenia komfortu czy szybkości pracy. Aplikacje działają dokładnie tak samo jak w sieci fizycznej, jednak użytkownik zyskuje dodatkowe zalety związane z łatwością obsługi oraz niezależnością od ograniczeń sprzętowych. W przypadku wirtualizacji sieciowej uzyskujemy logiczny podział na niezbędne porty, switche, routery, zabezpieczenia (firewalle itp.), czy VPNy – użytkownik może w dowolny sposób dzielić obciążenie pracą aby uzyskać jak najlepszy efekt końcowy.
Wirtualizacja pulpitu – wdrożenie
pulpitów jako zarządzalnej usługi umożliwia przedsiębiorstwu szybsze
odpowiadanie na zmieniające się potrzeby
i wymagania środowiska pracy. Zastosowanie wirtualizacji pulpitów umożliwia firmom
szybkie i sprawne dostarczanie aplikacji do oddziałów firmy bądź pracujących
zdalnie pracowników, a także pozwala na pracę z urządzeń mobilnych (głównie z systemem
iOS lub Android).