Blog (6)
Komentarze (71)
Recenzje (0)
@RolandPierzgaWirtualizacja dla każdego — od podstaw, część 1

Wirtualizacja dla każdego — od podstaw, część 1

22.10.2015 01:06, aktualizacja: 08.01.2018 21:46

Trudny początek.

Na początku krótkie wyjaśnienia, bo zapewne zastanawialiście się dlaczego wpisy „zniknęły”. Postanowiłem wpisy zdjąć z publikacji i poprawić błędy niedoświadczonego blogera. Napisać tak, jak napisane być powinny od samego początku, z uwzględnieniem źródeł pochodzenia treści, których nie jestem autorem, a którymi posługuję się w tym i pozostałych wpisach na moim blogu. Nigdy nie było moim celem przypisywanie sobie pracy innych, bo nie jest mi to do niczego potrzebne. Jedyny cel jaki mam to chęć zainteresowania tematem innych oraz w możliwie przystępny i zrozumiały sposób przedstawienie omawianego zagadnienia. Jeśli swoim zachowaniem uraziłem kogokolwiek, to szczerze za to przepraszam. Mam również nadzieję, że wpisy po korekcie spełnią Wasze wymagania. Gdyby jednak pojawiły się jakieś wątpliwości, proszę o informację.

No to zaczynamy...

Tak jak obiecałem w moim pierwszym wpisie zaczynamy temat wirtualizacji. Wpis ten powstał w dużej mierze w oparciu o jeden z najlepszych artykułów na temat klasyfikacji wirtualizacji pt.  „Co to jest wirtualizacja?” autorstwa Dariusza Porowskiego, który w bardzo przystępny sposób opisał poszczególne rodzaje wirtualizacji, dzieląc je na obszary. Na jego podstawie chciałbym Wam przybliżyć niektóre obszary wirtualizacji.

Dodatkowo postaram się nieco zobrazować Wam, co oznaczają poszczególne sklasyfikowane przez Dariusza Porowskiego obszary w praktyce. Na początku zastanówmy się co to jest ta wirtualizacja i do czego nam zwykłym „klikaczom” komputerowym mogłaby się przydać?Cytując Wikipedię - „Wirtualizacja – szerokie pojęcie odnoszące się do abstrakcji zasobów w różnych aspektach informatyki.”. I wszystko stało się jasne, prawda? :)A teraz przetłumaczmy to z języka IT'ańskiego na Polski. Dla większości wirtualizacja kojarzy się zazwyczaj z „wirtualnymi serwerami” czyli wirtualizacją serwerów. Czymś co umożliwia nam na jednym serwerze fizycznym uruchomienie kilku, kilkunastu czy kilkuset serwerów. Ok, mamy jeden serwer fizyczny, jeden procesor, jeden dysk, jedną pamięć RAM (dla uproszczenia ;) ). Jak więc możliwym jest posiadanie na jednym serwerze, wielu serwerów? Jest to możliwe dzięki specjalnemu oprogramowaniu wirtualizatorowi (hypervisor). Dzięki zastosowaniu wirtualizatora możliwe jest współdzielenie zasobów sprzętowych serwera pomiędzy wiele maszyn wirtualnych, a każda maszyna wirtualna jest „komputerem”, który posiada własne zasoby. Oznacza to, że maszyna wirtualna posiada swój sprzęt, oczywiście wirtualny :). Dlatego zainstalowany w niej system operacyjny działa tak jak na prawdziwym komputerze fizycznym i tak też jest widoczny, prawie.To właśnie wirtualizator zarządza dostępem maszyny wirtualnej do sprzętowych zasobów serwera i wygląda to tak jak na poniższym schemacie, oczywiście w dużym uproszczeniu.

Schemat działania wirtualizacji
Schemat działania wirtualizacji

Rozwlekając temat dalej… w maszynie wirtualnej mamy widoczny sprzęt jak w normalnym komputerze, co doskonale widać na poniższym screenie.

Screen nr 1 – zasoby sprzętowe widoczne w maszynie wirtualnej

Menedżer urządzeń - maszyna wirtualna
Menedżer urządzeń - maszyna wirtualna

Dzięki wirtualizatorowi możliwe jest udostępnienie maszynom wirtualnym realnego sprzętu, maszyny fizycznej i współdzielenie go między wiele takich maszyn wirtualnych. Bez konieczności współdzielenia tych zasobów z systemem operacyjnym i aplikacjami, dzięki temu zapotrzebowanie na zasoby jakie ma wirtualizator jest minimalne i mamy niemal 100% zasobów maszyny fizycznej do dyspozycji dla naszych maszyn wirtualnych.

Rys nr 1 - schemat działania wirtualizacji

570359

(główne) Rodzaje wirtualizacji

Wirtualizacja serwerów (komputerów) jest najbardziej rozpowszechnioną formą wirtualizacji, ale nie jedyną. Istnieją jeszcze inne formy wirtualizacji, które określa się często jako obszary:

Dariusz Porowski w swoim artykule „Co to jest wirtualizacja?” opisuje obszary wirtualizacji, ja skupię się tu na kilku wybranych:

  • Wirtualizacja serwerów (ang. Server Virtualization)
  • Wirtualizacja aplikacji (ang. Application Virtualization)
  • Wirtualizacja prezentacji (ang. Presentation Virtualization)
  • Wirtualizacja stacji roboczych (utrzymywana na kliencie) (ang. Client-HostedDesktop Virtualization)
  • Wirtualizacja pamięci masowych (ang. Storage Virtualization)
  • Wirtualizacja sieci (ang. Network Virtualization)
  • Wirtualizacja stacji roboczych (utrzymywana na kliencie) (ang. Client-HostedDesktop Virtualization)

Wirtualizacja serwerów (ang. Server Virtualization) – Wirtualizację serwerów opisałem powyżej ;)

Wirtualizacja aplikacji (ang. Application Virtualization) – Wirtualizacja aplikacji, to nic innego jak umieszczenie aplikacji w zwirtualizowanym środowisku i dostarczenie „dostępu” do niej użytkownikowi bez potrzeby instalacji aplikacji na komputerze użytkownika. Dzięki wirtualizacji aplikacji możliwym stało się utrzymanie wielu wersji aplikacji oraz dostarczenie ich użytkownikom, nawet na systemach, na których aplikacja nie daje się w tradycyjny sposób zainstalować, czy też uruchomić. Dzięki temu, że aplikacja nie jest instalowana i uruchamiana na komputerze użytkownika, możliwym staje się praca z aplikacją na platformach, na których uruchomienie aplikacji nie jest w ogóle możliwe, np. na tabletach.

570366

Wirtualizacja prezentacji (ang. Presentation Virtualization) – Co do zasady działania od jest ona zbliżona do wirtualizacji aplikacji, z tą różnicą że oprócz dostarczenia użytkownikowi samej aplikacji, możemy dostarczyć również, cały pulpit. Czyli inaczej mówiąc możemy dostarczyć dostęp do pulpitu wirtualnego (choć nie koniecznie) systemu. Tak samo jak w przypadku wirtualizacji aplikacji, tak i w tym przypadku wszystkie operacje są przetwarzane po stronie serwera.

Wirtualizacja stacji roboczych (utrzymywana na kliencie) (ang. Client-HostedDesktop Virtualization) – Jest to najczęściej stosowany rodzaj wirtualizacji w „warunkach domowych”. Pozwala on nam na komputerze z naszym ulubionym systemem operacyjnym uruchomić maszyny wirtualne z zastosowaniem oprogramowania do wirtualizacji. Tak więc finalnie na komputerze np. z uruchomionym Windowsem za pomocą aplikacji do wirtualizacji uruchamiamy równolegle maszynę wirtualną z dowolnym innym systemem operacyjnym, maszyna ta jest odizolowana od systemu operacyjnego gospodarza. Wygląda to jak na poniższym obrazku.

570369

Wirtualizacja stacji roboczych (utrzymywana na serwerze)(ang. Server-Based Desktop Virtualization) – znana bardziej pod nazwą Wirtualna infrastruktura stacji roboczych (ang. Virtual Desktop Infrastructure – VDI). W tym wariancie stacje robocze zostają przeniesione do infrastruktury serwerowej pod postacią maszyny wirtualnej, czyli zostają zwirtualizowane. Użytkownicy mają dostęp do zasobów przez sieć, np za pomocą połączenia Pulpitu zdalnego.

Wirtualizacja pamięci masowych (ang. Storage Virtualization) – Przy wirtualizacji pamięci masowych dążymy do efektu odwrotnego niż przy wirtualizacji serwerów. Tutaj chodzi nie o podział zasobów a o scalenie ich w efekcie osiągając jeden duży zasób. Dzięki wirtualizacji pamięci masowych możliwym stało się połączenie wielu mniejszych pamięci masowych w jeden zasób, który następnie jest dostarczany klientom wg potrzeb.

570372

Wirtualizacja sieci (ang. Network Virtualization) - tutaj posłużę się cytatem z artykułu Dariusza Porowskiego, który bardzo czytelnie opisał ten przypadek. "Wirtualizacja sieci (ang. Network Virtualization), którą można podzielić na dwa rodzaje – zewnętrzną oraz wewnętrzną. Zewnętrzna wirtualizacja sieci to znana od lat technologia VLAN (802.1Q), czyli logiczny podział segmentów sieci na fizycznym sprzęcie sieciowym przez znakowanie ramek. Wewnętrzna natomiast to rozwiązanie polegające na tworzeniu wirtualnych przełączników i portów na poziomie hiperwizora. Takie zwirtualizowane przełączniki dostarczają komunikację sieciową dla maszyn wirtualnych oraz łączą je z zewnętrzną fizyczną siecią."

Tak w wielkim skrócie przedstawiają się główne aspekty wirtualizacji. Jak już wspomniałem wcześnie, najbardziej popularnym rodzajem wirtualizacji jest wirtualizacja serwerów. To w tym obszarze dzieje się najwięcej. Natomiast w domowym zaciszu największą popularnością ciszy się jednak tzw. Parawirtualizacja. Jest to rodzaj wirtualizacji, w którym wirtualizowany system operacyjny (Gościa) działa i współpracuje z systemem operacyjnym komputera (Hosta) w zakresie obsługi zasobów współdzielonych między innymi systemami wirtualnymi. Taki rodzaj wirtualizacji umożliwia nam normalną pracę z naszym systemem operacyjnym, programami, grami itd a oprócz tego daje nam możliwość uruchomienia drugiego komputera, na którym zainstalujemy inny system operacyjny np. Linux, FreeBSD, Windows Server itd i będziemy z niego korzystać jakbyśmy mieli dwa komputery, nie jeden. Ilustruje to poniższy schemat.

Parawirtualizacja
Parawirtualizacja

I właśnie ten rodzaj wirtualizacji jest najpopularniejszy na naszych desktopach, wystarczy bowiem na swoim Windowsie lub Linuxie zainstalować odpowiednią aplikację i już możemy cieszyć się możliwościami jakie płyną z możliwości tworzenia maszyn wirtualnych ;)Właśnie w oparciu o wirtualizację na poziomie systemu operacyjnego, lub jak kto woli parawirtualizację postaram się opisać w pierwszej kolejności. Jako bazą do tworzenia naszego LABORATORIUM posłużę się aplikacją VirtualBox, ale więcej szczegółów w znajdziecie w następnym wpisie ;) A teraz czekam na Wasze pytania, komentarze i uwagi.

Wpis powstał w oparciu o artykuł Dariusza Porowskiego opublikowany na Microsoftowym Technecie. https://technet.microsoft.com/pl-pl/library/co-to-jest-wirtualizacja.a...

Wybrane dla Ciebie
Komentarze (21)