Administrowanie Systemami Komputerowymi Wstęp do wirtualizacji Laboratorium nr 1 Instrukcja Tomasz Boiński
1. Wstęp Wirtualizacja jest to technologia umożliwiająca na uruchomienie dowolnego, niezmodyfikowanego systemu operacyjnego (systemu gościa) w specjalnym środowisku wewnątrz innego systemu operacyjnego (systemu gospodarza). Te środowisko, zwane maszyną wirtualną, tworzone jest przez specjalne oprogramowanie przechwytujące bezpośrednie odwołania do sprzętu generowane przez system gościa. Wirtualizacja zasadniczo różni się od emulacji. Emulator w większym stopniu separuje system gościa od rzeczywistego sprzętu tłumacząc wszystkie wywołania na instrukcje rozumiane przez system gospodarza, który z kolei wykonuje rzeczywiste operacje. Zaletą takiego podejścia jest możliwość symulowania dowolnej architektury sprzętowej niezależnie od rzeczywistego sprzętu. Wadą jest zazwyczaj mniejsza prędkość działania wynikająca z programowej realizacji instrukcji. Wirtualizacja przekazuje jak największą ilość wywołań bezpośrednio do sprzętu gwarantując prawie że natywną prędkość działania, jednak pozwala na uruchamianie systemów gości zgodnych z rzeczywistą architekturą sprzętową. Zastosowania wirtualizacji są bardzo szerokie, najczęstsze z nich to: 1. możliwość uruchamiania aplikacji przeznaczonych na inny system operacyjny bez konieczności restartu komputera, 2. lepsze wykorzystanie zasobów sprzętowych poprzez uruchamianie większej liczby serwerów na jednej maszynie na raz przez co w większym stopniu wykorzystywana jest jej moc, 3. testowanie różnych rozwiązań bez konieczności poświęcania rzeczywistego sprzętu, 4. łatwość odtwarzania stanu maszyny w przypadku awarii wystarczy przywrócić kopię maszyny wirtualnej itp. W trakcie zajęć laboratoryjnych wykorzystywane będzie narzędzie VirtualBox firmy Oracle. Niniejsza instrukcja została przygotowana z myślą o wersji 4.2.6 lecz powinna być zgodna z dowolną inną. Samo narzędzie można pobrać ze strony http://www.virtualbox.org lub ze strony http://www.sun.com. 2. Tworzenie nowej maszyny wirtualnej w środowisku VirtualBox Aby utworzyć nową maszynę wirtualną najpierw należy wykonać dość oczywisty krok jakim jest uruchomienie konsoli aplikacji. Odpowiednia ikonka znajduje się na pulpicie i w menu start lub jego odpowiedniku. Gdy już uporamy się z tym zadaniem tworzymy nową maszynę wirtualną klikając przycisk Nowa. Dalsze kroki polegają na postępowaniu wg wskazówek przewodnika. W niniejszej instrukcji opisane zostaną jedynie najważniejsze elementy całego procesu. 1. W pierwszej kolejności należy podać nazwę maszyny wirtualnej. Sugeruję by nazwę poprzedzić swoim numerem indeksu a pozostałe człony niech będą znaczące, by umożliwić późniejszą prostą identyfikację maszyny. Pierwsza maszyna niech w takim razie nazywa się numerindeksu_router. 2. Rodzina i rodzaj systemu operacyjnego mają o tyle znaczenie, że maszyna wirtualna zostanie zoptymalizowana pod dany system. 3. Ilość pamięci RAM powinna być mniejsza niż ilość fizycznej pamięci w komputerze. Dla konsolowej instalacji systemu Linux w zupełności wystarczy 256MB. Dla instalacji graficznej i systemu Windows zalecam minimum 512MB. 4. Dyski twarde w maszynach wirtualnych zazwyczaj emulowane są w postaci zwykłych plików a nie fizycznych partycji dyskowych (chociaż taka opcja też często występuje, np. w VMware). VirtualBox oferuje 2 tryby alokacji przestrzeni dla dysków twardych:
1. Dynamicznie rozszerzany obraz plik zajmuje dokładnie tyle ile dane w systemie gościu 2. Obraz o stałym rozmiarze cała przestrzeń dyskowa jest od razu alokowana To drugie rozwiązanie jest wydajniejsze, lecz ze względu na ilość studentów proszę tworzyć tylko dyski pierwszego rodzaju. Przy tworzeniu maszyny wirtualnej możliwe jest przypisanie do niej już istniejącego dysku twardego, jak i utworzenie nowego. Domyślnie pliki dysków twardych tworzone są w katalogu /home/nazwa_użytkownika/.virtualbox/harddisks i w celach porządkowych należy tam je tworzyć. Utworzenie dysku w innej lokalizacji może spowodować, że zostanie bez ostrzeżenia usunięty. 3. Instalacja systemu gościa Instalacja systemu gościa przebiega w identyczny sposób jak instalacja systemu na zwykłym komputerze. VirtualBox przy pierwszym uruchomieniu maszyny wirtualnej oferuje wizarda, który pomaga użytkownikowi zainstalować system, jednak nie będziemy z niego korzystać. Przed uruchomieniem maszyny wirtualnej należy też przyjrzeć się dostępnym dla niej ustawieniom i ew. je zmodyfikować. Dostępne są one po kliknięciu przycisku Ustawienia. Najważniejsze z nich to: 1. System umożliwia zdefiniowanie liczby procesorów, pamięci RAM itp. Nie zaleca się ustawiać wartości większych niż rzeczywiście istniejących w systemie, lecz jest to możliwe. 2. Display sterowanie kartą graficzną. Można zdefiniować pamięć dostępną dla karty graficznej oraz czy ma ona obsługiwać akcelerację graficzną. Nie działa ona tak wydajnie jak rzeczywista karta, ale pozwala na zastosowanie efektów pulpitu itp. w systemie gościu. 3. Dyski Twarde jak sama nazwa wskazuje umożliwia podłączenie dodatkowych plików symulujących dyski twarde. 4. CD/DVD ROM podpięcie nośnika CD/DVD do maszyny wirtualnej. Dośtępne są 2 możliwości: 1. przejęcie rzeczywistego napędu 2. podpięcie obrazu ISO W VirtualBox wszelkie dyski CD/DVD/dyskietki, dyski twarde itp. przed użyciem muszą być dodane do managera napędów. W starszej wersji należało skorzystać z managera nośników wirtualnych, obecnie należy wejść w ustawienia maszyny wirtualnej, przejść do zakładki Nośniki i tam wskazać napęd CD/DVD ROM lub obraz ISO. 5. Sieć bardzo istotna z punktu widzenia laboratorium. Umożliwia zdefiniowanie do 4 kart sieciowych i przypisanie im trybu działania. Domyślnie każda maszyna wirtualna ma przypisaną jedną kartę sieciową, której adres przyporządkowany jest przez DHCP, i która umożliwia dostęp do sieci poprzez NAT. Pozostałe dostępne opcje to: 1. Niepodłączone karta jest zgłaszana do systemu gościa jako aktywna ale z odłączonym nośnikiem. 2. Bridge karta sieciowa widoczna jest z punktu widzenia sieci tak samo jak karta sieciowa komputera hosta. 3. Sieć wewnętrzna przydatna do symulowania połączeń pomiędzy maszynami wirtualnymi. VirtualBox działa dla takich kart jak router spinający karty o identycznym identyfikatorze. 4. Host-only (Karta sieci izolowanej) połączenie trybu 2 i 3. Sieć służy do
komunikacji pomiędzy maszynami wirtualnymi a hostem, ale wykorzystuje fizyczną kartę sieciową hosta. Na potrzeby zajęć należy utworzyć system z 2 kartami sieciowymi jedną umożliwiającą dostęp do internetu przez NAT, drugą w trybie Sieć wewnętrzna. Kiedy wszystkie opcje dotyczące maszyny wirtualnej zostały ustawione wystarczy uruchomić ją, a następnie postępować zgodnie ze wskazówkami instalatora. W przypadku wątpliwości proponuje użyć poniższych ustawień: 1. nazwa hosta dowolna 2. domena pusta 3. partycjonowanie automatyczne partycjonowanie 4. zestaw pakietów jedynie podstawowy system by oszczędzić na czasie 5. manager startowy Grub w głównym sektorze MBR Po zakończeniu instalacji należy usunąć płytę CD z wirtualnego napędu. Najprościej jest to zrobić korzystając z opcji menu Urządzenia Odmontuj CD\DVD ROM. Za pomocą tego menu można też w dowolnym momencie podłączyć napęd/obraz iso symulując włożenie płyty do napędu systemu gościa. 4. Duplikowanie maszyn bez konieczności instalowania systemów gości VirtualBox nie umożliwia wprost sklonowanie maszyny wirtualnej. Również bezpośrednia kopia pliku dysku twardego i ustawień maszyny nic nie da wewnątrz plików znajdują się zaszyte numery identyfikacyjne uniemożliwiające potem zaimportowanie do managera nośników wirtualnych. Na szczęście istnieje możliwość wykonania duplikatu dysku twardego z automatycznym wygenerowaniem nowego identyfikatora. Aby tego dokonać należy wyłączyć maszynę wirtualną, której dysk chcemy sklonować i z wiersza poleceń wykonać następujące polecenie: VBoxManage clonevdi ścieżka_do_dysku_źródłowego ścieżka_do_dysku_docelowego Tak zduplikowany dysk należy zaimportować do managera nośników wirtualnych a następnie utworzyć nową maszynę wirtualną podpinając pod nią ten dysk. W wyniku tej operacji uzyskamy nowy system gość identyczny z źródłowym systemem. W celu uniknięcia problemów w identyfikacji sieciowej należy w tak utworzonym systemie zmienić nazwę hosta i ustawienia sieci. Aby zmienić nazwę komputera należy wyedytować pliki /etc/hostname oraz /etc/hosts i podmienić wszystkie wystąpienia starej nazwy nową. Aby zmiany zostały wprowadzone należy zrestartować komputer lub wykonać polecenie hostname nowa_nazwa. Konfiguracja sieci odbywa się poprzez edycję pliku /etc/network/interfaces (jest to zmiana trwała) lub za pomocą polecenia ifconfig ethx <adres_ip> netmask <maska_podsieci> (to ustawienie będzie działać tylko do restartu maszyny). EthX oznacza identyfikator interfejsu a X to numer kolejnej karty sieciowej począwszy od 0. UWAGA! W oryginalnej maszynie utworzonej zgodnie z instrukcją karty sieciowe mają identyfikatory eth0 (NAT) i eth1 (sieć wewnętrzna). Po sklonowaniu dysku i utworzeniu jednej karty sieciowej system powinien ją widzieć jako eth1, jednak może się zdarzyć, że będzie ona widoczna jako eth2. Aby sprawdzić jak nazywają się interfejsy w maszynie należy wykonać polecenie ifconfig -a.
Przed zdefiniowaniem adresu IP i maski konieczne może być aktywowanie interfejsu poleceniem ifconfig ethx up. Wyłączenie interfejsu odbywa się poleceniem ifconfig ethx down. W przypadku, gdy dana sieć posiada DHCP (NAT, host only) interfejs konfigurujemy poleceniem dhclient ethx. Pojawia się pytanie jak rozpoznać, który z interfejsów należy do której karty sieciowej. Najprościej jest wykonać polecenie dhclient dla każdej z kart. Jeżeli karta jest typu NAT to polecenie zakończy się po 1-2 sekundach. W przeciwnym razie wciskamy Ctrl-C i konfigurujemy sieć ręcznie. 5. Eksport i import maszyn wirtualnych VirtualBox pozwala na eksport skonfigurowanej maszyny wirtualnej do pliku. Aby zapisać maszynę do pliku należy wybrać opcję Plik->Eksportuj urządzenie programowe. Następnie wybieramy maszynę, jaką należy zapisać na dysk i postępujemy zgodnie ze wskazówkami kreatora. Aby zaimportować maszynę wirtualną należy z kolei wybrać opcję Plik->Importuj urządzenie programowe. W kreatorze wskazujemy plik ova lub ovf z maszyną wirtualna i klikamy OK. Maszyna taka zostanie skopiowana do katalogu ~/VirtualBox Vms, jej wewnętrzne identyfikatory zmodyfikowane, oraz dodana do VirtualBoxa. Jej wszystkie ustawienia będą identyczne z oryginalnie skonfigurowanymi w trakcie instalacji. Z jednego obrazu można odtworzyć dowolna liczbę identycznych maszyn wirtualnych. W trakcie importu maszyn wirtualnych zaleca się wybrać opcje reinitialize network interfaces mac address. Na potrzeby laboratorium przygotowano maszyny wirtualne z systemami Linux Debian 7 oraz Windows 2012 Server Standard. Dostępne są w systemie Linux w katalogu /studenci/harddisks oraz w Windows w C:\Studenci\HardDisks. Oba systemy posiadają domyślną konfiguracje z jednym interfejsem sieciowym pobierających adres z DHCP. Sieć ustawiona jest jako NAT. Ew. kolejne karty są nieskonfigurowane. Konfiguracja sieci odbywa się tak jak w przypadku klonowania maszyn opisanym w punkcie 4, z tą różnicą, że pierwsza karta sieciowa to eth0. Jeżeli zachodzi konieczność wyłączenia autokonfiguracji interfejsu eth0 należy zmodyfikować konfigurację pliku /etc/network/interfaces lub po prostu ubić klienta DHCP poleceniem killall dhclient. 6. Zadanie do wykonania 1. Utworzyć 2 maszyny wirtualne z Debianem, jedna o nazwie router, druga o nazwie klient. Maszyna o nazwie router ma mieć 2 karty sieciowe jak w instrukcji wyżej. Maszyna klient ma mieć jedną kartę sieciową działającą w trybie Sieć wewnętrzna. Oba komputery mają się widzieć poprzez ping konieczne jest ustawienie poprawnych adresów IP ręcznie dla kart sieci wewnętrznej. 2. Utworzyć i uruchomić klon maszyny z systemem Windows 2012. Maszyna ta powinna móc pingować się z pozostałymi maszynami poprzez sieć wewnetrzną.