Zeyomir's Blog Bo piękniej jest wiedzieć coś o wszystkim…

20Sie/10Off
» «

Wirtualizacja

Wszyscy chyba wiemy, że wirtualizacja to przyszłość... Ale czy my, jako programiści, możemy korzystać z jej dobrodziejstw? Okazuje się, że tak, i to w całkiem sensowny sposób!

Zainspirowany wpisem Procenta na temat wirtualizacji, postanowiłem również zacząć korzystać z dobrodziejstw tej technologii. Co prawda nie w tak rozbudowanym scenariuszu (osobna maszyna wirtualna dla każdego projektu, wszystkie jako dyski różnicowe do systemu bazowego), ponieważ nie mam aż takich potrzeb (przynajmniej na razie- może to kwestia ilości projektów). Do rzeczy:

Początki zabawy

Zacząłem podobnie- darmowy VirtualPC 2007, nowa maszyna wirtualna, instalacja win XP, instalacja całego stuffu do programowania. Wszystko bajecznie proste. Szybko odczułem pierwszą zaletę posiadania wydzielonego środowiska do pracy- aplikacja we flashu na zaliczenie z 'aplikacji multimedialnych'. Do pracy potrzebne były: Adobe Flex i Catalyst. Ponieważ na co dzień w tym nie pracuję i nic nie zapowiada, żebym miał zacząć- była to jednorazowa przygoda. Aplikacje te instalują ze sobą dużo 'wszystkim potrzebnych' dodatków, a ja nie chciałem sobie śmiecić w systemie. I tu właśnie z pomocą przychodzi system wirtualny- instalujemy, wykonujemy projekt, usuwamy i zapominamy :). Dodajmy do tego obsługę drag'n'drop między hostem a guestem i możemy się rozpłynąć z zachwytu... teoretycznie.

Niby wszystko fajnie pięknie, ale niestety zestaw chodził dość mułowato... Czemu? Ze względu na pewne ograniczenia VPC (wykorzystywanie tylko jednego rdzenia procesora oraz brak wsparcia dla 64bitowych systemów gości, który w tym przypadku był akurat mało istotny). Z tego też powodu postanowiłem spróbować VirtualBoxa.

Podejście nr 2

Zbiegło się to w czasie z padnięciem mojego komputera stacjonarnego, więc cała praca została przeniesiona na laptopa. Co prawda lapek do najmocniejszych nie należy (Pentium M 2GHz, 2GB RAM), więc miałem pewne obawy co do wydajności systemów wirtualnych w porównaniu ze stacjonarką (C2D 3GHz, 4GB RAM), ale jak to się mówi 'spróbować nie zaszkodzi'. Zainstalowałem więc VirtualBoxa (co prawda tutaj wady VPC nie byłyby w ogóle odczuwalne, ale i tak miałem przetestować VB), nowa maszyna wirtualna, chwila zastanowienia i... instalacja Ubuntu 10.04. Czemu? Akurat zaczynałem swoją przygodę z Rubym, a wg mojego osobistego ruby-guru, ze wszystkich linuksów to właśnie łubudubu ma najlepsze wsparcie dla Rubyego. Niestety nie skończyłem nawet instalować narzędzi programistycznych, bo system na 1GB przydzielonego RAMu chodził tragicznie wolno - Ubuntu jednak zdecydowanie nie jest 'lekkim systemem'. Co więc zrobić? Rozwiązanie nasunęło się samo...

The Arch Way

Instalujemy system zgodnie z Arch Beginners' Guide, po czym instalujemy Guest Additions wg VirtualBox Guide. Jeżeli chodzi o środowisko graficzne to dla najlepszej wydajności należałoby zainstalować OpenBoxa (czy coś pochodnego- jak np FluxBox), jednak ja jakoś nie miałem już cierpliwości na kolejne godziny konfiguracji i dlatego wybrałem xfce. Jeszcze tylko instalacja narzędzi i... wow, to działa :) i to szybko :). Screen:
Zrzut ekranu

Tips & Tricks

Jeżeli nie zajmujemy się tworzeniem aplikacji muzycznych to należy zastanowić się nad sensem instalacji OSS czy ALSA- dźwięk w systemie gościa i tak przeważnie wyłączamy.

By cieszyć się polskimi znakami należy zmienić wpis w xorg.conf dotyczący klawiatury, by wyglądał tak jak poniższy- chodzi o ustawienie XkbLayout (nie wiem czy problem ten występuje u każdego- u mnie jednak było to konieczne, w razie braku wpisu- należy go po prostu dodać):

Section "Input Device"
	Identifier	"Keyboard0"
	Driver	"kbd"
	Option	"XkbLayout" "pl"
EndSection

W VirtualBoxie nie ma (a przynajmniej ja nie znalazłem/nie udało mi się włączyć/zmusić do działania) wsparcia drag'n'drop. Jest za to rozwiązanie które nie jest co prawda tak wygodne i intuicyjne, ale również spełnia swoje zadanie- shared folders. Opis jak je skonfigurować co prawda znajduje się w VirtualBox Guide Archa, ale jest dość sprytnie ukryty 😛 więc opiszę pokrótce co i jak:

  • uruchamiamy maszynę wirtualną, z menu u góry wybieramy urządzenia -> współdzielone katalogi
  • klikamy dodaj nowy katalog, wprowadzamy ścieżkę do katalogu (na dysku hosta), który chcemy współdzielić, nazywamy go jakoś i zaznaczamy opcję 'ustaw na stałe'
  • teraz najważniejsze- montujemy ten folder na naszym linuksowym systemie gościa:
    sudo mkdir /media/host
    sudo mount -t vboxsf nazwa_katalogu /media/host

lub dodajemy odpowiedni wpis do /etc/fstab. Oczywiście /media/host to miejsce w którym chcemy zamontować katalog, a nazwa_katalogu to nazwa jaką nadaliśmy naszemu współdzielonemu katalogowi podczas tworzenia.

Żeby uniknąć ciągłego wpisywania hasła przy używaniu sudo, jednocześnie nie siedząc na koncie roota, możemy dodać/zmienić następujący wpis w konfiguracji sudo (polecenie visudo otwiera nam odpowiedni plik konfiguracyjny w edytorze vi i jest to jedyny sposób w jaki powinniśmy zmieniać tę konfigurację): %wheel ALL=(ALL) NOPASSWD: ALL. Oczywiście zakładam, że konto użytkownika z którego korzystacie jest już dodane do grupy wheel. Jeżeli zdarza się Wam często wywołać jakieś rootowe polecenie jako zwykły użytkownik i potem klnąc pod nosem dodawać na początku 'sudo' to przypominam o małym sprytnym ficzerze: sudo !! wywołuje ostatnio wprowadzoną komendę na prawach roota :)

Podsumowanie

Co daje nam wirtualizacja? Nie zaśmiecamy systemu hosta 'niepotrzebnymi' rzeczami. Nie zaśmiecamy stanowiska pracy 'niepotrzebnymi' rzeczami. Możemy zapisać stan maszyny w środku pracy i wrócić do niej kiedy będziemy chcieli w ciągu paru sekund (niezależnie od tego co zrobimy z systemem hosta- wliczając w to format ;)). Możemy stosunkowo łatwo przenieść całe środowisko pracy na inny komputer. Robiąc migawki (snapshoty), ubezpieczamy się od błędów aktualizacji- jak coś przestanie działać to przywracamy migawkę i pracujemy dalej.

Czy to ma jakieś minusy? Cóż... tylko jeżeli masz słabszy sprzęt. Chociaż jeżeli nie potrzebujesz do pracy Windowsa, kilku instancji Visual Studio i dodatków typu R# (czyli innymi słowy- możesz pracować na Linuksie)- to, jak pokazuje mój przykład, jest nadzieja ;). Arch+xfce na wirtualce z 512mb RAM śmiga niczym kasztan :). Więc jeżeli nie jesteś uzależniony od Windowsa lub jesteś, ale masz też odpowiednio mocny sprzęt to... nie ma powodu, żebyś nie korzystał z wirtualizacji!

» «
Komentarze (1) Trackbacks (1)
  1. Zgadzam się w pełni, wirtualizacja to świetna sprawa. Mnie również VB najbardziej przypadł do gustu – przechwytywanie kursowa, integracja z pulpitem hosta, dostęp do wszystkich rdzeni, pamięci, snapshoty.. Na co dzień używam go do uruchamiania win7_64 i informacja o drag and drop bardzo mnie zainteresowała, muszę o tym poszperać 😀


Trackbacks are disabled.