Wirtualna maszyna pod Win10 stawiana na LinuxMint

0

Mam kilka kwestii związanych z postawieniem maszyny wirtualnej z Win10(64) na Linuxie, obecnie Mint.

  1. Obecnie korzystam z VirtualBox ale niestety mam problem z uzyskaniem oczekiwanej wydajności. Główna przeszkoda to przydzielenie pamięci karty graficznej (VideoRamMemory). Limit wynosi 256MB i nie mogę tego przejść co powoduje zamulanie maszyny przy uruchamianiu bardziej wymagających aplikacji a czasem również samej przeglądarki dla większych witryn.

  2. VM nie wykrywa poprawnie karty graficznej (NVIDIA Geforce GTXM960), tylko znajduje kartę zintegrowaną, co powoduje brak możliwości zainstalowania sterowników dedykowanych. Da radę to obejść?

  3. Czy jest możliwość aby maszyna wirtualna nie przydzielała zasobów na zasadzie emulacji, a raczej bezpośrednio łączyła się z zasobami fizycznie? Przykładowo aby przydzielanie zasobu karty graficznej polegało na bezpośrednim *przydzieleniu * tej karty do maszyny wirtualnej? Dokopałem się w googlu do PCI passthrough ale nie mam kompletnie pojęcia jak to działa i czy może mi pomóc. Jakieś wskazówki, źródła?

  4. Czy są bardziej wydajne maszyny do stawiania Windowsa na Linuxie niż VirtualBox. Rozumiem, że to mocno spekulacyjny punkt ale proszę o wklejenie nawet samych nazw oprogramowania z jakim mieliście pozytywne doświadczenia a ja już sobie odkryję co się za typ kryje.

1

Zasadniczo są dwa rodzaje hypervisorów - typu 1 oraz 2. Pierwszy (tzw. bare metal) działa bezpośrednio nad sprzętem i zapewnia lepszą kontrolę oraz wydajność. Przykładem jest chociażby VMware ESXi. Minusem jest to, że maszyna będąca serwerem wirtualek nie może pełnić żadnej innej funkcji.

Drugim typem jest nadzorca hostowany - czyli przykładowo Virtualbox. Tutaj instaluje się hypervisora w istniejącym środowisku. W ten sposób możesz mieć (np. podczas testowania) jednocześnie na swoim kompie, na którym zazwyczaj programujesz, odpalonych kilku różnych gości, ale jednocześnie nadal możesz używać komputera jako stacji roboczej. Minusem jest gorsza wydajność takiego rozwiązania oraz mniejsze możliwości.

Odnośnie bezpośredniego dostępu do zasobów/urządzeń - jest taka możliwość, ale raczej nie odnośnie karty graficznej (jeśli się mylę - proszę o sprostowanie). W wypadku passthrough dane urządzenie jest jakby tunelowane bezpośrednio do danego systemu-gościa, w związku z czym staje się niedostępne dla innych systemów. Ma to sens w wypadku urządzeń USB, kart sieciowych czy innych nie-krytycznych tematów, ale raczej odcięcie karty graficznej i przeznaczenie jej dla jednego z gości nie jest dobrym pomysłem.

Czy masz zainstalowane guest additions w systemie gościa?

Odnośnie samego zwiększania ilości pamięci karty graficznej oraz zamulania - raczej nie tędy droga. Tak, jak piszesz - system gość "otrzyma" jakąś standardową kartę graficzną, która tak naprawdę jest emulowana i nie ma za wiele wspólnego z kartą, która fizycznie siedzi w Twoim kompie. Zamulanie raczej nie jest wynikiem braku pamięci, ale tego, że bardziej skomplikowane obrazy muszą i tak przejść przez emulację, czyli obciążają CPU (w odróżnieniu od "prawdziwego" kompa, który przerzuca wiele rzeczy na GPU). Do poczytania - https://forums.virtualbox.org/viewtopic.php?f=9&t=81370 oraz https://superuser.com/questions/779070/use-nvidia-gpu-from-virtualbox

A co do ostatniego pytania - raczej dużo nie zmienisz, bo problemem nie jest niska wydajność Virtualbox'a, ale ogólnie zasada, na jakiej działają hypervisory typu drugiego, poza tym zbyt wielu sensownych hostów nie ma na rynku, a na pewno Virtualbox jest najpopularniejszy, najbardziej dopracowany oraz aktualizowany. Możesz zastanowić się nad KVM, aczkolwiek nie miałem z tym styczności. To jest taka hybryda - bo wprawdzie instaluje się na istniejącym systemie, ale poprzez sposób działania de facto jest to hypervisor typu 1. Do poczytania - https://community.linuxmint.com/tutorial/view/1727 oraz obejrzenia -

1

czy kontenery wirtualne to tzw. bare metal, czy może jeszcze coś innego?

Z tego co się orientuję, to są to zupełnie inne rozwiązania. Jeśli mamy porównywać, to kontenerom jest bliżej do hypervisora poziomu drugiego, bo są one jakby "nakładane" na inny system operacyjny. https://en.wikipedia.org/wiki/Operating-system-level_virtualization - jest tam jasno napisane, że Operating-system-level virtualization, also known as containerization, refers to an operating system feature in which the kernel allows the existence of multiple isolated user-space instances - czyli widać, że wszystko dzieje się w ramach odpalonego systemu operacyjnego, czyli "podobnie" do Virtualbox'a, który jest nadzorcą typu 2. Aczkolwiek to nie jest moja działka, więc fajnie jakby się wypowiedział ktoś bardziej kompetentny :(

Fajny artykuł w bardzo dużym uproszczeniu wyjaśniający, o co w tym chodzi - https://www.computerworld.pl/news/Czy-kontenery-zastapia-wirtualne-maszyny,402020.html

1 użytkowników online, w tym zalogowanych: 0, gości: 1