Strona używa cookies (ciasteczek). Dowiedz się więcej o celu ich używania i zmianach ustawień. Korzystając ze strony wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.    X

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

Trudny początek.

Na początku krótkie wyjaśnienia, bo zapewne zastanawialiście się dlaczego wpisy „zniknęły”.
Postanowiłem je 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.

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

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

(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.

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.

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.

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.

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 LABOLATORIUM 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... 

windows linux oprogramowanie

Komentarze

0 nowych
adi0922   12 #1 21.10.2015 23:45

Jak ja to wytłumaczyłem na lekcji. Wirtualizacja to przydzielenie części zasobów komputera maszynie wirtualnej w celu uruchomienia np. Systemu w systemie

ichito   11 #2 22.10.2015 07:58

Gdzie w tej systematyce mieszczą się programy do izolacji (np. Sandboxie) i tzw. lekkiej wirtualizacja (np. Shadow Defender)?

tarantul   4 #3 22.10.2015 09:51

@ichito: To "izolatory programowe" - Wirtualizacja aplikacji.

dre4merOn   7 #4 22.10.2015 09:52

Ciekawy wpis naprawdę. :) I już nie mogę się doczekać wpisu o VirtualBox. :)

Autor edytował komentarz.
bachus   20 #5 22.10.2015 10:18

Chętnie też poczytam, mój OBIECANY wpis po urlopie ;-)
http://www.dobreprogramy.pl/bachus/Matrioszka-czyli-HyperV-pracujacy-pod-kontrol...

ichito   11 #6 22.10.2015 11:07

@tarantul:
OK...programowe...a rzeczy opisane w artykule realizowane są za pomocą czego?...
Nie żebym się czepiał, ale skoro wirtualizacja i jakaś klasyfikacja, to albo mówimy o niej w jakimś wąskim kontekście i trzeba by zrobić zastrzeżenie...albo choćby wspominamy o innych rozwiązaniach związanych z wirtualizacją.
Może autor coś w dalszych częściach nadmieni? :)

RolandPierzga   3 #7 22.10.2015 12:08

@ichito: W tym wpisie skupiłem się jedynie na głównych zagadnieniach i rodzajach wirtualizacji. Ale jeśli będzie zapotrzebowanie to chętnie temat rozszerzę. Pisząc ten artykuł miałem obawy, że temat teorii może być po prostu nudny i okaże się niezbyt ciekawy, a tutaj bardzo miłe zaskoczenie :).
Jeśli chodzi o tzw lekką aktualizację, to sprawa jest bardziej skomplikowana niż na pierwszy rzut oka mogłoby się wydawać ;). I chyba faktycznie można by o tym popełnić osobny wpis. W skrócie, sandboxy, to nie wirtualizacja, ale nie do końca... lepszym określeniem od wirtualizacji wydaje się być w tym przypadku symulacja lub emulacja. No to mamy chyba temat na kolejne wpisy.

Autor edytował komentarz.
  #8 22.10.2015 12:15

Więcej !!

funbooster   8 #9 22.10.2015 12:34

Chociaż mogłeś podać źródło, przecież większość tekstu to chamski plagiatowy ctrl+c ctrl+v z technetu microsoftu...
https://technet.microsoft.com/pl-pl/library/co-to-jest-wirtualizacja.aspx

Autor edytował komentarz.
RolandPierzga   3 #10 22.10.2015 13:04

@funbooster: Masz rację, że opisy poszczególnych form zostały zaczerpnięte z technetu oraz w miarę potrzeby zmodyfikowane na bardziej przyjazne i zrozumiałe. Masz rację również, że powinienem podać, źródło dodane.
Przepraszam za to.

Autor edytował komentarz.
behereit   7 #11 22.10.2015 13:08

@funbooster: Skąd wiesz, że @RolandPierzga to nie jest właśnie on? :)

funbooster   8 #12 22.10.2015 13:22

@behereit: w cuda wierzysz? Bo ja nie.

Dariusz.Porowski   1 #13 23.10.2015 09:29

4 lata temu na łamach TechNet napisałem artykuł o wirtualizacji https://technet.microsoft.com/pl-pl/library/co-to-jest-wirtualizacja.aspx
Natomiast tutaj widzę definicje żywcem skopiowane z mojego artykułu! Bardzo nie ładnie! Jeżeli ktoś chciał oprzeć się o mój artykuł, powinien jedynie go zacytować i dodać referencję!

bachus   20 #14 23.10.2015 10:41

@Dariusz.Porowski: cześć Darku, właśnie nie mogłem sobie przypomnieć skąd znam fragmenty tego artykułu.

ichito   11 #15 29.10.2015 08:47

@RolandPierzga
Była część druga...czemu ją usunąłeś?

RolandPierzga   3 #16 29.10.2015 09:40

@ichito: Postanowiłem napisać go od nowa, wróci niebawem.

Autor edytował komentarz.