fbpx
devstyle.pl - Blog dla każdego programisty
devstyle.pl - Blog dla każdego programisty
5 minut

Wirtualizacja okiem programisty – part 2/3 – Virtual Box


02.09.2010

W jednym z ostatnich postów przedstawiłem swoje wrażenia z pracy z VirtualPC. Dzisiaj czas na…

Virtual Box from Sun Microsystems

Plusy

VirtualBox ma dwie główne zalety: jest darmowy jak VPC oraz nie posiada jego największych wad. Tak więc możemy na nim zainstalować wybrany przez siebie system niezależnie od tego czy chcemy mieć 32 czy 64 bity. Dla mnie, z powodu Win2008R2 (64bit-only) było to być albo nie być dla platformy wirtualizacyjnej. Dodatkowo nie ma problemu z przydzieleniem każdej maszynie więcej niż jednego rdzenia, co skutkuje dość zauważalnym (choć niestety nie powalającym) wzrostem wydajności w stosunku do mikro-konkurenta od MS.

Bardzo miło zaskoczył mnie fakt, że migracja z Virtual PC odbyła się całkowicie bezboleśnie. Zanim stworzyłem nowe 64bitowe środowisko programistyczne chciałem przekonać się jak naprawdę wygląda praca z VBox. Okazało się, że nic prostszego – wystarczy zainstalować VirtualBoxa, podpiąć używaną wcześniej w VPC wirtualkę (nie pamiętam już czy potrzebna jest jakaś konwersja, ale nawet jeśli tak to przebiegała bezproblemowo) i do boju!

Fajnym – przynajmniej w teorii – ficzerem jest także możliwość przydzielenia systemowi gościa kilku monitorów. Taka konfiguracja naprawdę potencjalnie potrafi dać kopa programistycznej wydajności. Dlaczego “w teorii” i dlaczego “potencjalnie”? Niestety mi nie udało mi się zmusić tego cudka do działania. Pewnie coś robiłem źle, ale fakt faktem – w połączeniu z (wspominanym kiedyś przeze mnie) genialnym programikiem MaxiVista nie chciało mi to śmigać. Co prawda zrezygnowałem po bodajże 10 minutach próbowania, ale jednak chciałoby się, aby wystarczyło kilka kliknięć bez głębszego wnikania.

Sporym krokiem naprzód w stosunku do VirtualPC (2007) była jak dla mnie integracja z wszelkimi urządzeniami: CD/DVD, USB, karta dźwiękowa itd. Wszystko da się podłączyć/odłączyć w ciągu dosłownie sekundy.

Minusy

Skoro rozwiązanie to ma tyle plusów to po co w ogóle szukać dalej? Ano niestety nic nie jest idealne. A juz na pewno nie VirtualBox.

Na samym początku zabolał mnie brak niesamowicie przydatnej funkcjonalności drag’n’drop pomiędzy systemami hosta i gościa. Co prawda można to jakoś obejść za pomocą “shared folders” (o których pisałem wcześniej), jednak mimo wszystko jak dla mnie to właśnie przeciągnięcie z pulpitu na pulpit jest najwygodniejszym sposobem na kopiowanie plików pomiędzy maszynami.

Przesiadając się na VB spodziewałem się niesamowitego wzrostu wydajności. W końcu po to daję wirtualce kilka rdzeni, aby mogła sobie poszaleć, prawda? Niestety efekt był daleki od Wielkiej Celebracji Prędkości. Wszystko działało co prawda szybciej niż na VPC i wcale nie było źle, jednak… wydając ponad 2tys na lepszy sprzęt (m.in. cztery rdzenie zamiast dwóch, 8GB RAMu zamiast 4) spodziewałem się czegoś więcej.

Zawiodłem się także na samym sposobie tworzenia nowych wirtualek – a właściwie zarządzania dyskami. Niestety znana z VPC metoda x-copy nie znajduje tutaj zastosowania. W celu wykorzystania tego samego dysku kilkukrotnie nie wystarczy skopiować go pod inną nazwą, ponieważ gdzieś tam w swoich flakach ma zaszyty jakiś GUID – a do całego VBoxa nie można podpiąć dwa razy tego samego GUIDa nawet jeśli mamy do czynienia z całkowicie odrębnym plikiem. A jednoczesne uruchomienie VBox i VPC skutkuje błędem. W tym przypadku jesteśmy zmuszeni do skorzystania z klonowania. Nie dość, że opcja ta jest jakoś ukryta (z tego co pamiętam nie mogłem znaleźć jej w UI i trzeba było szukać w necie odpowiedniego polecenia dla konsoli), to jeszcze trwa i trwa – jak ta przyjemność z reklamy tyle, że nie jest przyjemna.

Niejednokrotnie (a właściwie codziennie) przydarzały mi się też problemy z obsługą myszki i klawiatury – a raczej z odpowiednią reakcją na przejście sterowania z hosta do gościa. A to scroll myszki zaczyna działać odwrotnie, a to klawisz ALT pozostaje na stałe zablokowany przez VBox, a to jeszcze to i śmo. Niby pierdoły, ale jednak na tyle mnie wkurzały że pamiętam je do dziś.

I na koniec – z moich doświadczeń wynika, że nie jest to najstabilniejszy soft na świecie. Dość regularnie zdarzały się zwiechy, a w krytycznych przypadkach nawet błyskawiczne, niespodziewane wyłączenia całego środowiska. Iryyytujące.

Podsumowanie

Cóż tu dodać… funkcjonalność, którą otrzymujemy za darmo jest imponująca, jednak masa mniejszych i większych niedoróbek potrafi skutecznie zniechęcić do VBox. Do celów “zabawowych” preferuję mimo wszystko Virtual PC, ale do prawdziwej pracy zdecydowanie bardziej nadaje się VBox. Do pewnych niedogodności da się przyzwyczaić, a inne nie są na tyle regularne, aby uniemożliwiały produktywne korzystanie z tego narzędzia. Spodziewałem się więcej, ale… nie jest źle. Narzekać (ze względu na darmowość rozwiązania) nie można ;), ale jednak ja zdecydowałem się na dalszą eksplorację rynku.

O czym wkrótce.

0 0 votes
Article Rating
9 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
(Wojtek)szogun1987
13 years ago

Czy testów dokonywałeś na procesorze który sprzętowo wspiera wirtualizację? (mój nie wspiera a chciałem wiedzieć czy to coś pomaga).

procent
13 years ago

@(Wojtek)szogun1987:
To nie były jakieś specjalne "testy" tylko normalna codzienna praca:). Oba procesory (2core i 4core) sprzętowo wspierały wirtualizację.

mt3o
13 years ago

Kilka ale:
Wsparcie dla x85_64 masz, jak ci cpu i system wspierają. Warunek ‘konieczny’, nie ‘wystarczający’.
Tak więc wsparcie to dla mnie przynajmniej nie zaleta lecz rzecz oczywista, a jej brak to poważna wada. No ale to szczegół.

Jeśli chodzi o dyski różnicowe – to vbox też je wspiera (nie trzeba klonować), tylko jest to szalenie nieintuicyjne. Utwórz snapshot bazowej maszyny, w innej maszynie zaznacz ‘pokaż różnicowe dyski twarde’ i będziesz mógł wybrać dysk utworzony na podstawie snapshota – czyli chyba to o co Ci chodzi.

Jakie plany wobec vboxa ma obecny właściciel praw do niego, orientuje się ktoś? Utrata takiego fajnego narzędzia bardzo by bolała…

procent
13 years ago

@mt3o:
Co do dysków różnicowych – tak daleko w VBox nie zaszedłem. W sytuacji opisanej w poście chodziło mi po prostu o skopiowanie jednego dysku w inne miejsce tak, aby mieć dwie identyczne maszyny korzystające z różnych plików (potencjalnie umieszczonych na różnych napędach).

casper
casper
13 years ago

Od kilku miesięcy używam prywatnie i w firmie VBox. Zatem podzielę się kilkoma wskazówkami. Kopiowanie dysków wirtualnych jest bardzo proste. Wystarczy przy wyłączonej wirtualce przekopiować dany image w inne miejsce, a następnie z konsoli za pomocą polecenia: ‘VBoxManage internalcommands sethduuid [ścieżka do image]’ nadać jemu nowe UUID. Polecam z zapoznaniem się z tool-em VBoxManage, ma on bardzo dużo możliwości. Znajduje się w katalogu głównym VBox-a. Odnośnie przekazywania sterowania pomiędzy Hostem a Gościem najlepiej doinstalować do wirtualnej maszyny dodatek GuestAdditions. Niestety nie rozwiąże on problem ‘drag and drop’. Korzystając z VBox należy pamiętać, iż został on głównie stworzony przez SUN na Solaris-a, toteż nie jest tak samo wydajny, jak VMware. Odnośnie wydajności, to warto zwiększyć RAM karty graficznej, włączyć wsparcie dla 2D oraz 3D (to ostatnie działa jedynie z kartami wspierającymi DX 10) oraz używać dysków wirtualnych o stałej wielkości (wzrost do 20% w porównaniu z dynamicznymi). Obsługa wielu monitorów to nowość w VBox, i owszem na razie ma wiele bug-ów (polecam poczytać na forum VBOx-a). Przy ustawieniu opcji w ‘System’ należy pamiętać o włączeniu IO ACPI (jeżeli płyta główna gospodarza wspiera tą opcję). Pozwoli to na łatwe wykrywanie podłączanych urządzeń. Co do stabilności, to za bardzo nie zgodzę się. Od kilku miesięcy mam serwer z systemami wirtualnymi na VBox i do tej pory ani jeden nie uległ awarii. Owszem przy maksymalnym obciążeniu zdarzają się spadki wydajności, ale to jest normalne – podobnie jest w przypadku Xen-a czy VMware-a.

procent
13 years ago

@casper:
Dzięki za wskazówki!

rod
rod
13 years ago

Swego czasu robiłem testy kompilacji dużego projektu za pomoca MsBuilda. VBox wypadał najgorzej w porownaniu z VPC i VMWare. To co pod VPC i VMWare kompilowało sie w granicach 1 minuty. Pod VBox zabierało 2 min 15 sek. Nie pomagało rowniez ustawienie SCSI pod VBoxem …. Hostem w testach był notebook.

Łukasz Sowa
13 years ago

Oj już niestety nie od Sun Microsystems ;)

qbk
qbk
13 years ago

Dzięki za serię artykułów i przebadanie różnych dostępnych opcji. Ja używam od jakiegoś czasu Virtualboksa i jest to dla mnie genialny tool dzięki któremu mogę zapoznawać się z Linuksem i robić różne rzeczy które da się tam osiągnąć łatwiej, pracując jednocześnie na WinXP jako głównym systemie. Odkrycie istnienia VMów było dla mnie wielką eureką ;) Kiedyś musiałem poużywać VirtualPC przez krótki okres, ostatnio też zacząłem zabawę z darmowym VMWare Playerem.

Co do mojego doświadczenia, nie mam do VBoxa jakichś dużych zastrzeżeń. Ogólna stabilność jest bardzo dobra, nie miałem żadnej niestabilności, zawiechy systemu, wyłączenia się czy czegoś takiego. Z zainstalowanymi guest additions chodzi bardzo płynnie i bezproblemowo można zmieniać kontekst z VM do hosta i na odwrót (drag’n’drop mógłby się przydać, ale na gościu mam zwykle Linuksa, więc i tak montuję shared foldery i korzystam z konsoli). Bardzo przydatny jest współdzielony schowek, niestety czasem jakoś zupełnie losowo nie działa i nie wiem z czego to wynika :(

Odnośnie prędkości działania, dla mnie wydaje się satysfakcjonująca, ale odpaliłem swój skrypt basha na moim laptopie przez Virtualboksa i na natywnym desktopowym Linuksie to różnica była jednak bardzo widoczna ;) Może gdyby mój procesor miał wspieraną wirtualizację sprzętową sprawa wyglądałaby lepiej.

Jako klawisz hosta mam ustawiony lewy alt, dzięki temu przez alt-alt-tab mogę szybko opuścić VM i przełączyć do innego programu na systemie hosta ;)

Z upierdliwych rzeczy, są problemy np. z przywracaniem z uśpienia systemu, na którym był zamontowany napęd CD/DVD z lokalnego dysku ISO, który został usunięty, i z innymi podobnymi problemami. Nie pamiętam dokładnie, ale chyba trzeba było odrzucić zapisany stan i uruchomić VMkę od nowa… Poza tym VBox rzuca wtedy jakimiś mało przyjemnie wyglądającymi komunikatami błędów, mogliby to poprawić.

Kurs Gita

Zaawansowany frontend

Szkolenie z Testów

Szkolenie z baz danych

Książka

Zobacz również