Wirtualizacja I – Podstawy

v

Rozpoczynam serię dotyczącą wirtualizacji. Zagadnienie zaczniemy przedstawieniem, w jaki sposób korporacje podeszły do wirtualizacji oraz jak rozwinęła się technologia wspomagająca.

W opracowaniu skorzystamy z materiałów firm: VMware, Microsoft oraz Citrix.

W dzisiejszych czasach wirtualizację można spotkać praktycznie na każdym kroku. Powstają nowe technologie pozwalające na wykorzystanie sprzętu komputerowego do granic możliwości oraz rozwiązania, których zastosowanie do tej pory nie było możliwe.

Wirtualizacja – Co to jest? bezWirutalizacji

Wirtualizacja to bardzo szerokie pojęcie. Można go używać w kontekście sieci, aplikacji, serwerów, pamięci masowych czy nawet stacji roboczych. Jest to technologia, która pozwala na wykorzystanie przez administratora sprzętu do uruchamiania wielu systemów operacyjnych i oprogramowania, poprzez przydzielanie lub udostępnienie fizycznych zasobów sprzętowych komputera lub serwera. Patrząc z innej strony, sprzęt komputerowy – serwer może obsłużyć tylko jeden system operacyjny, może zostać użyty jako serwer jednej usługi, jak np. web-serwer, naszego portalu. Jeśli używamy technologii wirtualizacji, to możemy zainstalować oprogramowanie do wirtualizacji serwerów (hypervisor) na ten sam kawałek sprzętu i moglibyśmy uruchomić wiele niezależnych wirtualnych instancji wielu serwerów WWW lub dowolny typ systemu operacyjnego lub aplikacji. Te zupełnie różne instancje, które tworzymy na serwerze fizycznym są określane mianem gościa lub maszyny wirtualnej.

Wirtualizacja – do czego nam to potrzebne?zWirutalizacja

W czasach, gdy podzespoły komputera dają coraz większą moc i pojemność, oprogramowanie, które na nich instalujemy – systemy operacyjne bądź aplikacje oferujące usługi, nie jest w stanie jej w pełni wykorzystać. Patrząc na to nieco szerzej, wyobraźmy sobie sytuację w której, bądź zajrzyjmy do serwerowni :), organizacja posiada kilka serwerów w szafach w serwerowni. Jeden serwer pełni rolę serwera www dla klientów oraz na potrzeby intranetu. Dodatkowo posiadamy serwer plików, serwer wydruku oraz parę innych usług, które są wykorzystywane w organizacji. Każdy z serwerów generuje ciepło, pobiera energię elektryczną, zużywa się – traci gwarancję, potrzebuje wykupienia dodatkowej usługi technicznej. To wszystko generuje spore koszty, a każdy kolejny serwer je po prostu zwiększa.

Spójrzmy z perspektywy wykorzystania urządzeń. Żaden z serwerów – zakładając, że aplanowano rozwój organizacji, nie zostanie wykorzystany w pełni swoich możliwości. Wirtualizacja pozwoli nam na konsolidację tych serwerów w jednym kawałku sprzętu komputerowego. Pozwoli to na znaczące zwiększenie wykorzystania sprzętu.

Bardzo często spotykamy się z problemem skalowalności potrzeb sprzętowych do danej usługi bądź aplikacji. Wirtualizacja pozwala na bardzo łatwe zarządzanie zasobami komputerowymi. Administrator może w każdej chwili zwiększyć liczbę zasobów przydzielonych do maszyny wirtualnej, a w razie drastycznych zmian przenieść maszynę wirtualną na inny fizyczny serwer, często podczas jej nieprzerwanego działania. W niektórych rozwiązaniach np. Microsoft Hyper-V można ten proces zautomatyzować.

Podsumowując:

  • Przede wszystkim jest to konsolidacja serwerów oraz obniżenie kosztów organizacji. Przez co można uruchomić więcej usług na tym samym sprzęcie.
  • Możliwość uruchomienia tych samych usług i aplikacji na mniejszej ilości sprzętu fizycznego. Pozwala to na eliminację kosztów związanych z zapewnieniem dodatkowych usług technicznych starego sprzętu.
  • Wirtualizacja pozwala na szybkie stworzenie środowiska testowego, co pozwoli na symulowanie działania po wprowadzeniu nowych rozwiązań do organizacji, nie ponosząc żadnych dodatkowych kosztów, bądź unikając kosztów związanych
  • z błędami powstałymi w wyniku zmian w systemie.
  • Poprzez dynamiczne zmiany przydzielonych zasobów komputera można bardzo łatwo i szybko zoptymalizować działanie aplikacji i usług.

Takie podejście jest wykorzystywane głównie w zastosowaniach serwerów. Technologia wirtualizacji poszła znacznie dalej i pozwala na wirtualizację stanowisk roboczych. Więcej o tym w dziale wirtualizacji desktopów.

 

wirtualnaInfrastruktura

Wirtualizacja pełna

 

VMware can virtualize any x86 operating system using a combination of binary translation and direct execution techniques. This approach, depicted in Figure 5, translates kernel code to replace nonvirtualizable instructions with new sequences of instructions that have the intended effect on the virtual hardware. Meanwhile, user level code is directly executed on the processor for high performance virtualization. Each virtual machine monitor provides each Virtual Machine with all the services of the physical system, including a virtual BIOS, virtual devices and virtualized memory management. This combination of binary translation and direct execution provides Full Virtualization as the guest OS is fully abstracted (completely decoupled) from the underlying hardware by the virtualization layer. The guest OS is not aware it is being virtualized and requires no modification. Full virtualization is the only option that requires no hardware assist or operating system assist to virtualize sensitive and privileged instructions. The hypervisor translates all operating system instructions on the fly and caches the results for future use, while user level instructions run unmodified at native speed. Full virtualization offers the best isolation and security for virtual machines, and simplifies migration and portability as the same guest OS instance can run virtualized or on native hardware. VMware’s virtualization products and Microsoft Virtual Server are examples of full virtualization.

 

Para wirtualizacja

Jest to typ wirtualizacji polegający na współpracy systemu operacyjnego wirtualnej maszyny z hypervisorem w celu zwiększenia wydajności i efektywności. W tym rozwiązaniu wykorzystywane jest zmienione jądro systemu operacyjnego gościa. Zmiany podlegają głównie na przekazaniu wykonania „krytycznych” instrukcji procesora do środowiska hypervisora, tzw. hypercall. Aby to lepiej zrozumieć, należy rozważyć co tak na prawdę dzieje się w komputerze, gdy mamy jeden i wiele systemów operacyjnych.

W pierwszym przypadku, gdy mamy jeden system, nie ma problemu z dostępem do zasobów sprzętowych. OS może wywoływać dowolne instrukcje procesora bez obaw, gdyż wszystkie zasoby sprzętowe należą do niego.

W drugim przykładzie, gdy mamy wiele systemów operacyjnych sprawa się nieznacznie komplikuje. Wirtualna maszyna posiada sprzęt przydzielony do niej, jednak podzespoły procesor, pamięć ram, czy zasoby dyskowe podlegają dzieleniu w wielu przypadkach. Tutaj pojawia się rola hypervisora, który zarządza zasobami w taki sposób, aby każdy z systemów operacyjnych nie wpływał na pracę innych, zapewnia on również separacje poszczególnych maszyn wirtualnych. ringsBezWirutalizacji

[well type=”alert-info”]

Co to są poziomy przywilejów w architekturze komputera?

W informatyce, hierarchiczne domeny ochrony, często zwane pierścieniami ochronnymi, to mechanizmy służące do ochrony danych i funkcjonalności przed błędami i złośliwym zachowaniem. Komputerowe systemy operacyjne zapewniają różne poziomy dostępu do zasobów. Pierścień ochronny jest jednym z dwóch lub więcej poziomów hierarchicznych warstw lub przywilejów architektury systemu komputerowego. Na ogół jest to wymuszane sprzętowo przez niektóre architekturach procesora, które zapewniają różne tryby procesora na poziomie sprzętu. Pierścienie są ułożone w hierarchii od najbardziej uprzywilejowanych (najbardziej zaufany, zazwyczaj numerowany jako zero) do najmniej uprzywilejowanych (najczęściej z największą liczbą). W większości systemów operacyjnych, Pierścień 0 to poziom z większością przywilejów i oddziałuje bezpośrednio z fizycznym sprzętem, takim jak procesor i pamięć.[/well]

Instrukcje wymagające przywilejów pierścienia poziomu zero są zastępowane przez hypercalle, które wykonuje hypervizor w warstwie zero. Pozwala to na wykonywanie tych instrukcji, przez dowolny system gościa, nie wpływając na prace innych systemów działających na tym samym sprzęcie. Działa to całkiem sprawnie i jest bardzo obiecującą techniką, wciąż rozwijaną.

Wirtualizacja Serwerów

Wirtualizacja serwerów pozwala na zbudowanie wielu wirtualnych komputerów w fizycznym komputerze, na którym zainstalowane jest oprogramowanie wirtualizujące. Oznacza to, że dostępu do fizycznych urządzeń jak ram, procesor czy dysk twardy jest zapewniony poprzez wirtualne odpowiedniki fizycznego sprzętu, które udostępniane są w oprogramowaniu wirtualizacji zwanym hypervisorem.

 

 

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

4 + dwadzieścia =