Wirtualizacja – definicja, zalety, wady i zastosowanie Contents1 Zalety wirtualizacji2 Wady wirtualizacji3 Co można wirtualizować?4 Typy wirtualizacji5 Początki techniki wirtualizacji6 Wirtualizacja a emulacja Wirtualizacja to proces polegający na stworzeniu symulowanego (wirtualnego) środowiska komputerowego wykorzystującego ustalone we wdrożeniu konfiguracji zasoby fizyczne Zalety wirtualizacji Dzięki wirtualizacji można znacznie efektywniej wykorzystywać istniejące zasoby sprzętowe poprzez utworzenie wielu zasobów na bazie jednego komputera lub serwera. Ponadto poprawia ona skalowalność i elastyczność sieci, zmniejsza koszty infrastruktury oraz nakład prac konserwacyjnych, zmniejsza liczbę wymaganych serwerów, a co za tym idzie ilość zużywanej energii. Wady wirtualizacji Mimo licznych zalet, wirtualizacja posiada też wady: Możliwość spadku wydajności Większą ilość maszyn do utrzymania, Reset fizycznego serwera powoduje wyłączenie wszystkich maszyn wirtualnych(w przypadku jednej fizycznej maszyny). Co można wirtualizować? Pulpit – pozwala to na obsługę indywidualnych pulpitów przez jeden serwer centralny. Sieć – dzielenie przepustowości sieci na niezależne kanały, które można przypisać do określonych serwerów lub urządzeń. Oprogramowanie – oddzielanie aplikacji od sprzętu i systemu operacyjnego. Pamięci masowe – łączenie wielu zasobów magazynu sieciowego w jedno urządzenie magazynujące dostępne dla wielu użytkowników. Typy wirtualizacji Wyróżniamy kilka technik wirtualizacji: Parawirtualizacja – zwirtualizowany system operacyjny współpracuje ze środowiskiem operacyjnym komputera w zakresie obsługi tych elementów sprzętowych, których obsługa kolidowałaby z działalnością innych środowisk zwirtualizowanych. Pełna wirtualizacja – zwirtualizowany system operacyjny pracuje na zasobach sprzętu fizycznego.W rzeczywistości odwołania zwirtualizowanego systemu operacyjnego do tych elementów fizycznych urządzenia, które kolidowałyby z działalnością innych środowisk zwirtualizowanych lub systemu operacyjnego gospodarza, są przechwytywane przez oprogramowanie wirtualizacyjne, a następnie emulowane. Emulacja taka spowalnia pracę zwirtualizowanego środowiska, dlatego zalecane jest sprzętowe wspomaganie wirtualizacji. Wirtualizacja na poziomie systemu operacyjnego – system operacyjny obsługuje kilka odseparowanych od siebie środowisk wirtualnych. Wirtualizacja hybrydowa – system zwirtualizowany działa na zasadzie pełnej wirtualizacji, ale posiada zainstalowane odpowiednie parawirtualizowane sterowniki do urządzeń. Podejście takie nie wymaga również modyfikacji systemu zwirtualizowanego oraz zapewnia bardzo dobrą wydajność. Technika ta powstała ze względu na wady wirtualizacji pełnej i parawirtualizacji, łącząc ich zalety i niejako omijając wyżej wspomniane wady. Początki techniki wirtualizacji Pierwszym urządzeniem wykorzystującym technikę wirtualizacji był komputer ATLAS, stworzony przez Uniwersytet w Manchesterze i firmę Ferranti oraz Plessey. W zastosowanej architekturze część instrukcji zewnętrznych wykonywana była przez sprzęt, a część była przechwytywana przez program nadzorujący. Komputer ten zajmował się wykonywaniem w odpowiedni sposób przechwyconych wywołań, a ta skromna wirtualizacja była efektem ubocznym dość rewolucyjnych rozwiązań zastosowanych w komputerze. Zastosowanie wirtualizacji, jaką znamy dziś, pojawiło się dopiero w połowie lat 60. w wyniku prac laboratoriów IBM. Centrum badawcze Watsona zakończyło wtedy projekt M44/44X, który składał się z fizycznej maszyny M44 (IBM 7044) oraz maszyn wirtualnych 44X. Każda z nich operowała na pamięci M44, korzystając przy tym z wieloprogramowania i pamięci wirtualnej. Wkrótce stworzono kolejne maszyny wirtualne: CP40 dla IBM 860/40, CP67 dla 360/67 i wiele innych. Zwykle maszyny wirtualne były idealnymi kopiami fizycznego sprzętu, obsługiwanymi przez monitor maszyn wirtualnych, kontaktujący się bezpośrednio z systemem komputerowym. W ten sposób tworzono wiele kopii tego samego OS, co pozwoliło znacząco zwiększyć wykorzystanie procesora na komputerach klasy Mainframe. Wielu użytkowników mogło korzystać z tej samej fizycznej maszyny, dzięki czemu procesor był w większym stopniu wykorzystywany. Wirtualizacja a emulacja Wirtualizacja łączy podstawowe zalety emulacji API oraz emulacji pełnej. Uruchamia ona w maszynie wirtualnej system operacyjny, rezygnując z uniwersalności emulowania wielu architektur komputerów. Ograniczenie się wyłącznie do wykorzystywanej platformy sprzętowej pozwala na wykonywanie pewnej liczby procesów systemu emulowanego bezpośrednio na zasobach sprzętowych komputera. Gdy operacje takie nie dadzą się bezpośrednio wykonać, wtedy dopiero wirtualizator emuluje je.