Wirtualizacja to technika, która pozwala uruchomić wiele odseparowanych, „udawanych” wersji zasobów IT — całych serwerów, dysków, kart sieciowych czy systemów operacyjnych — na jednym fizycznym kawałku sprzętu. Zamiast jednego serwera robiącego jedną rzecz dostajesz pulę zasobów, którą tniesz na kawałki i przydzielasz tak, jak akurat potrzebujesz. To fundament, na którym stoi cała chmura i każde nowoczesne centrum danych.
Sercem zabawy jest hypervisor (zwany też VMM, Virtual Machine Monitor) — warstwa oprogramowania, która rozdziela fizyczny procesor, RAM i dyski pomiędzy maszyny wirtualne (VM). Każda VM myśli, że ma sprzęt na wyłączność, a w rzeczywistości grzecznie dzieli się nim z sąsiadami. Rozróżnia się hypervisory typu 1 (bare-metal, działają bezpośrednio na sprzęcie — np. VMware ESXi, KVM, Microsoft Hyper-V) i typu 2 (działają na zwykłym systemie operacyjnym — np. VirtualBox czy VMware Workstation na Twoim laptopie).
Po co to wszystko? Bo jeden mocny serwer fizyczny stojący na 10% obciążenia to marnotrawstwo. Wirtualizacja podnosi wykorzystanie sprzętu, pozwala w sekundy postawić lub skasować środowisko testowe, robić snapshoty przed ryzykowną aktualizacją i migrować działające maszyny między hostami bez przestoju. Bez tego nie byłoby AWS EC2, Azure ani „postaw mi serwer jednym kliknięciem”.
Przykład z praktyki
Załóżmy, że masz fizyczny host z zainstalowanym KVM na Linuksie. Nową maszynę wirtualną z Ubuntu odpalisz np. tak:
virt-install --name test-vm --ram 4096 --vcpus 2 --disk size=20 --cdrom ubuntu.iso
Listę działających VM podejrzysz przez virsh list --all. W kilka minut masz odizolowane środowisko, które możesz zepsuć do woli, a potem skasować jednym virsh destroy — bez dotykania reszty serwera.
Na co uważać
Najczęstszy mit: „wirtualizacja to to samo co konteneryzacja”. Nie. VM wirtualizuje cały sprzęt i ma własny system operacyjny (cięższa, wolniej startuje), a kontener (Docker) współdzieli jądro hosta i izoluje tylko procesy (lżejszy, sekundowy start). Drugi błąd: overprovisioning — przydzielisz VM-om więcej RAM-u niż masz fizycznie i przy szczycie obciążenia wszystko zaczyna mielić. Pamiętaj też, że gęste upakowanie maszyn na jednym hoście oznacza pojedynczy punkt awarii — pada host, padają wszystkie VM naraz.
Pojęcia powiązane: hypervisor, maszyna wirtualna (VM), konteneryzacja i Docker, chmura obliczeniowa (IaaS), KVM, VMware, Hyper-V, snapshot, bare-metal.