Co to znaczy, że serwer jest wirtualny
Fizyczny serwer to jedno urządzenie: obudowa, procesory, pamięć, dyski. Wirtualizacja polega na tym, że na tym jednym urządzeniu pracuje kilka albo kilkanaście osobnych komputerów, z których każdy ma własny system operacyjny i o pozostałych nic nie wie.
Najbliższą analogią jest budynek. Zanim ktoś go podzielił, była to jedna wielka hala i mieszkał w niej jeden lokator, choć zajmował ułamek powierzchni. Po podziale na mieszkania w tym samym budynku mieszka kilkanaście rodzin. Każda ma własne drzwi z zamkiem, własny licznik i własne wyposażenie, żadna nie wchodzi do sąsiada, a mimo to wszystkie korzystają z jednego dachu, jednego przyłącza prądu i jednej klatki schodowej. Maszyna wirtualna jest takim mieszkaniem: własny system, własny adres w sieci, własny dysk zapisany jako plik, a pod spodem współdzielony sprzęt.
Kto pilnuje podziału
Programem, który dzieli budynek na mieszkania i pilnuje, żeby nikt nie przebił się przez ścianę, jest hipernadzorca. Instaluje się go bezpośrednio na serwerze, zamiast zwykłego systemu, i to on rozdziela czas procesora, przydziela pamięć i pokazuje każdej maszynie zestaw urządzeń, których fizycznie nie ma: dysk, kartę sieciową, kartę graficzną. System w maszynie wirtualnej widzi je jak prawdziwe i pracuje bez świadomości, że stoi obok innych.
Dysk maszyny wirtualnej jest po prostu plikiem w magazynie danych. Ta jedna właściwość daje najwięcej z tego, po co się wirtualizuje. Plik da się skopiować, przenieść na inny serwer i odtworzyć gdzie indziej, a system w środku wystartuje tak samo, bo widzi ten sam zestaw urządzeń, niezależnie od tego, jaki sprzęt jest pod spodem.
Co z tego wynika na co dzień
Pierwsza rzecz to migawka. Przed aktualizacją programu księgowego można zapisać stan maszyny, a jeśli aktualizacja pójdzie źle, wrócić do niego w kilka minut. Migawka nie jest jednak kopią zapasową, bo leży tam, gdzie sama maszyna, i przepada razem z nią.
Druga to przenoszenie. Maszynę da się przesunąć na inny serwer, w części rozwiązań bez wyłączania, co pozwala wyłączyć sprzęt na wymianę pamięci w środku dnia. Trzecia to konsolidacja: dziesięć starych serwerów, z których każdy używał ułamka swojej mocy, mieści się na dwóch nowych, a rachunek za prąd, miejsce w szafie i serwis maleje.
Czym maszyna wirtualna różni się od kontenera
Kontener bywa mylony z maszyną wirtualną, bo też izoluje aplikację i też uruchamia się z obrazu. Różnica leży w tym, co jest w środku. Kontener dzieli jądro systemu z gospodarzem i pakuje samą aplikację razem z bibliotekami, przez co startuje w sekundy i waży mało. Maszyna wirtualna niesie pełny system operacyjny z własnym jądrem, startuje wolniej i zajmuje więcej, ale za to jest odcięta mocniej i przyjmuje dowolny system, także taki, który jest starszy niż sprzęt pod spodem.
Wracając do budynku: kontener jest biurkiem wydzielonym parawanem we wspólnej sali, a maszyna wirtualna mieszkaniem z własnymi drzwiami. Parawan wystarcza, dopóki wszyscy pracują podobnie i dopóki nikomu nie zależy na ciszy.
Jak wygląda to w małej firmie
W firmie na kilkanaście osób typowy układ to jeden mocny serwer, a na nim maszyna z kontrolerem domeny, maszyna z bazą programu handlowego, maszyna z serwerem plików i czasem maszyna z systemem kopii zapasowych. Do tego dochodzą środowiska testowe, które powstają na dzień i znikają, bo skoro maszyna jest plikiem, jej utworzenie nie wymaga zakupu sprzętu.
Na co uważać
Zaletą i największym ryzykiem jest ta sama właściwość. Skoro kilkanaście serwerów stoi na jednym urządzeniu, awaria płyty głównej albo zasilacza zatrzymuje je wszystkie naraz. Firma, która wcześniej traciła jeden serwer, traci teraz całe środowisko, więc drugi host albo przynajmniej możliwość szybkiego odtworzenia maszyn gdzie indziej przestaje być luksusem.
Druga pułapka dotyczy kopii. Maszyna z systemem kopii zapasowych, stojąca obok tych, które kopiuje, znika razem z nimi, a repozytorium trzymane w tej samej domenie bywa szyfrowane razem z resztą przy ataku. Trzecia to przydzielanie zasobów ponad stan: pamięć rozdana na wyrost działa, dopóki wszystkie maszyny nie zaczną z niej korzystać jednocześnie, a wtedy zwalnia wszystko naraz i przyczyna jest trudna do wskazania z wnętrza pojedynczej maszyny.
Osobno stoją licencje. Część producentów oprogramowania liczy je od rdzeni fizycznego serwera, a nie od tego, ile maszyna wirtualna dostała, więc przeniesienie systemu na mocniejszy host bywa zdarzeniem licencyjnym, choć technicznie nic się nie zmieniło.
Kiedy nie warto
Jeden serwer z jedną rolą, który pracuje pod pełnym obciążeniem, niewiele zyskuje na wirtualizacji, a dokłada warstwę do utrzymania. Podobnie systemy wymagające bezpośredniego dostępu do specyficznego sprzętu, na przykład klucza licencyjnego w porcie albo karty sterującej maszyną produkcyjną, potrafią pracować w maszynie wirtualnej gorzej albo wcale. Warto też pamiętać, że wirtualizacja nie zmniejsza liczby systemów do aktualizowania: dziesięć maszyn wirtualnych to nadal dziesięć systemów, tylko stojących w jednym miejscu.