Wirtualizacja
Jest to symulowanie, przez oprogramowanie, zasobów komputera i „udawanie”, że są one prawdziwe. Dzięki temu w programie wirtualizacyjnym można uruchomić, przykładowo system operacyjny Linux czy Windows, Po co to robić? Jednym z zastosowań jest „domowe” testowanie systemów czyli nauka dokładnie to co robimy w niniejszym kursie. System taki można instalować zupełnie niezależnie od systemu jaki mamy na komputerze przy którym pracujemy. System operacyjny zainstalowany w programie wirtualizacyjnym jest w nim „zamknięty” i nie ma absolutnie żadnego wpływu na system zainstalowany na fizycznym komputerze. Dzięki temu posiadając jeden fizyczny komputer możemy (w miarę możliwości sprzętowych) zainstalować na nim wiele różnych systemów. Przykład: mamy mocy komputer z systemem MS Windows 10. Instalujemy na nim oprogramowanie wirtualizacyjne (o tym nieco dalej). Dzięki niemu tworzymy tzw maszyny wirtualne czyli wirtualne komputery. Na nich instalujemy dowolny system np Linux, Windows XP, Windows 95 itp słowem wszystko co mogło by pracować na komputerze fizycznym. Oczywiście wirtualizacja to nie tylko nauka i zabawa ale także i zastosowania przemysłowe i komercyjne. Wszystkie centra danych stosują wirtualizację na skalę biznesową i przemysłową. Stosują jednak wydajne i profesjonalne (płatne) oprogramowanie. Dzięki temu na jednym bardzo mocnym serwerze mogą świadczyć usługi np systemu operacyjnego Linux kilku (lub więcej w zależności od mocy serwera) klientom.
Wspomnieć jeszcze należy o nazewnictwie. Najważniejsze pojęcia to komputer gospodarza (host) i gościa (guest). Gospodarz to fizyczny komputer, na którym pracuje nasze oprogramowanie wirtualizacyjne. Komputery gościa to maszyny wirtualne.
Praktycznie każdy w miarę nowy komputer może być zastosowany do wirtualizacji. Jeśli chodzi o parametry takiego komputera to sensownymi wydają się parametry: RAM min 8GB (w przypadku większej ilość jednocześnie pracujących maszyn wirtualnych 16GB), procesor min 4 rdzenie i odpowiednia pojemność oraz prędkość dysków. Maszyna wirtualna jest „udawanym”, programowym komputerem. System w niej zainstalowany widzi ją prawie jak komputer fizyczny. Tworząc taką maszynę to tak jak by kupować części i składać komputer. Trzeba zadecydować ile pamięci RAM, jaki wielki dysk, jaki procesor, jakie peryferia itd.
Pamięć RAM
Im więcej tym lepiej i tu nie ma przesady. Windows 10 pracuje w miarę dobrze na 8GB (choć na 4 też jeszcze zadziała). Tworząc kilka maszyn wirtualnych trzeba im przydzielić sensownie pamięć RAM, tak aby działały możliwie płynnie. Przy trzech gościach np Windows server potrzebujemy około 3x4GB pamięci a dodatkowo przecież jeszcze komputer hosta także używa RAM. Do zastosowań szkolnych wystarczy 8-16GB RAM. Jeśli instalujemy maszyny typu Linux to, w zależności od przeznaczenie 0.5 do 1 GB pamięci RAM na maszynę powinno starczyć. Jeśli maszyny mają mieć rozbudowane środowiska graficzne, lub będą udostępniały serwery np www, sql i inne może się okazać, że 2GB będzie mało. Generalni ilość jednocześnie uruchomionych maszyn wirtualnych determinuje ilośc fizycznej pamięci RAM na komputerze hosta.
Procesor
Im szybszy tym lepszy. Ale to nie wszystko. Im więcej wątków obsługuje tym lepiej. Przykładowo Intel i7-8550U ma cztery rdzenie fizyczne ale każdy obsługuje dwa wątki co daje nam 8 wirtualnych procesorów. Intel i9-9900K to 8 rdzeni każdy po dwa wątki. Ale to jeszcze nie wszystko. Nowoczesne procesory są wyposażone w pewne funkcje sprzętowe znacznie podnoszące wydajność w środowisku zwirtualizowanym. Są to technologie AMD-V oraz Intel VT-x i VT-d. Prawie wszystkie nowe procesory wspierają funkcjonalność wirtualizacji.
Dyski fizyczne
Tu rolę gra pojemność a potem szybkość. Instalując maszynę wirtualną z Windows 10 sensownie jest jej przydzielić min 40GB a gdy ma być na niej instalowane dodatkowe oprogramowanie 100G może okazać się za mało. Kilka takich maszyn i dysk 1TB może okazać się za mały. Najczęściej w komputerach wykorzystujących wirtualizację stosuje się osobny dysk na system gospodarza, osoby na obrazy ISO systemów (choć nie koniecznie) i osobny na maszyny wirtualne. W produkcyjnych systemach nie stosuje się pojedynczych dysków ale wielkie macierze dyskowe zapewniające setki terabajtów oraz ogromna przepustowość. Przepustowość też ma znaczenie. Uruchamiając kilka maszyn wirtualanych na jednym komputerze fizycznym obciążymy go bardzo mocno: pamięć będzie zapełniona w 100%, procesor wykorzystany pod 100% a dyski będą bez przerwy czytały i zapisywały dane.
Dyski wirtualne
Maszyna wirtualna może być wyposażona w wirtualny dysk twardy. Większość systemów wirtualizacyjnych obsługuje min dwa rodzaje takich dysków. Dysk dynamiczny i statyczny. Dysk dynamiczny (ang tzw. thin provision) oznacza, że dysk zajmuje znacznie mniej miejsca niż jego określony, wirtualny rozmiar a powiększa się w miarę wgrywania do niego plików. Z perspektywy maszyny wirtualnej taki dysk ma zawsze określoną pojemność np 50GB ale fizycznie na dysku gospodarza zajmuje np 5MB. Kiedy na dysk jest coś wgrywane, fizyczny plik zaczyna się powiększać. Niestety w przypadku VirtualBox nie działa to w drugą stronę czyli gdy z dysku kasujemy dane jego fizyczna wielkość nie ulega zmianie. Warto o tym pamiętać i np. dla plików tymczasowych utworzyć drugi dysk wirtualny. Dysk statyczny ma zawsze ten sam rozmiar wirtualny jak i fizyczny. Przy bardzo dużej ilości operacji I/O może być nieco szybszy od dynamicznego. Model Thin Provision przydaje się gdy mamy ograniczoną przestrzeń dyskową (fizyczną) a musimy uruchomić kilka maszyn wirtualnych i przydzielić im wirtualne dyski o łącznej pojemności większej niż nasza fizyczna. Oczywiście to rozwiązanie tymczasowe, ponieważ gdy danych będzie przybywać nasz fizyczny dysk stanie się za mały. W przypadku VirtualBox, aby zmniejszyć dysk wirtualny należy zarchiwizować z niego dane, skasować go, utworzyć nowy i dane nań wgrać.
—
Zasoby
Nieco o wirtualizacji
Wirtualizacja systemów operacyjnych
O wirtualizacji