Tworzenie i obsługa wirtualnego laboratorium komputerowego

Wielkość: px
Rozpocząć pokaz od strony:

Download "Tworzenie i obsługa wirtualnego laboratorium komputerowego"

Transkrypt

1 Uniwersytet Mikołaja Kopernika Wydział Fizyki, Astronomii i Informatyki Stosowanej Michał Ochociński nr albumu: Praca magisterska na kierunku informatyka stosowana Tworzenie i obsługa wirtualnego laboratorium komputerowego Opiekun pracy dyplomowej dr hab. Jacek Kobus Instytut Fizyki Toruń 2014 Pracę przyjmuję i akceptuję... data i podpis opiekuna pracy Potwierdzam złożenie pracy dyplomowej... data i podpis pracownika dziekanatu

2

3 Uniwersytet Mikołaja Kopernika zastrzega sobie prawo własności niniejszej pracy magisterskiej w celu udostępniania dla potrzeb działalności naukowo-badawczej lub dydaktycznej

4

5 Spis treści 1 Wstęp 3 2 Architektura FolaVirt Maszyny wirtualne Dyski Implementacja Struktura katalogów Baza danych Rozgłaszanie usług Rozkład maszyn wirtualnych Usługa iscsi i tgt Pule dyskowe Akcje na maszynach wirtualnych Migracja definicji maszyn wirtualnych Strona Konsola graficzna Komunikacja Instalacja i konfiguracja Python Baza danych Przestrzeń dyskowa Sieć i bezpieczeństwo Zapora ogniowa Bezpieczeństwo narzędzi administracyjnych Wykrywanie usług Szablony Dostęp przez Konfiguracja wirtualnego hosta PHP Uwierzytelnianie użytkowników Zależności Dostęp do konsoli VNC Usługi folavirtd i foladiskd Plik konfiguracyjny Rozwiązywanie typowych problemów

6 SPIS TREŚCI 2 5 foladisk opis poleceń Zarządzanie usługą iscsi Zarządzanie bazowymi woluminami logicznymi Zarządzanie kopiami woluminów logicznych Zarządzanie grupami woluminów logicznych folavirt - opis poleceń Podstawowe czynności Agenty Konfiguracja konsoli graficznej maszyny wirtualnej Obsługa zarządców dysków Laboratorium Uprawnienia do maszyn wirtualnych Podsumowanie 45 Dodatek A 46 Spis listingów 49 Spis rysunków 50 Spis tabel 52

7 Rozdział 1 Wstęp Studenci kierunku Informatyka stosowana w czasie swoich studiów muszą zapoznać się z funkcjonowaniem, konfiguracją i zarządzaniem systemów operacyjnych z rodziny Windows i GNU/Linux. Oznacza to, że powinni mieć dostęp do systemu operacyjnego w trybie administratora. Z oczywistych względów nie można do tego wykorzystać sprzętu, w które są wyposażone pracownie komputerowe, gdyż wymagałoby to odświeżania stanu komputerów po każdych takich zajęciach. Jednym ze sposobów rozwiązania tego problemu jest zastosowanie wirtualizacji, tj. techniki pozwalającej na uruchomianie w ramach jednego systemu komputerowego, tzw. systemu gospodarza, wielu oddzielnych i niezależnych wirtualnych maszyn pracujących pod wybranymi systemami operacyjnymi. Takie maszyny wirtualne można łatwo tworzyć, powielać i usuwać. Dzięki temu możliwe jest tworzenie w stosunkowo prosty sposób całych wirtualnych laboratoriów. Niniejsza praca magisterska stanowi rozwinięcie pracy inżynierskiej pt. FolaVirt system zarządzania maszynami wirtualnymi 1. W ramach udoskonalonego systemu FolaVirt można prosto tworzyć, usuwać i zarządzać maszynami wirtualnymi wchodzącymi w skład określonego laboratorium komputerowego. Maszyny wchodzące w skład takiego laboratorium są kopiami maszyny bazowej, która musi być wcześniej przygotowana przez administratora. Potrzebna przestrzeń dyskowa jest dostarczana przez wydzielony serwer i udostępniana serwerom-gospodarzom poprzez protokół iscsi, który tworzy odpowiednie urządzenia blokowe dla maszyn wirtualnych (bazowych i ich kopii). Tak tworzone maszyny wirtualne można przydzielać pojedynczym użytkownikom, a komunikację z nimi zapewnia interfejs WWW, dzięki któremu możliwe jest określenie statusu maszyny, wykonywanie na niej podstawowych operacji takich jak uruchamianie, wstrzymywanie i zatrzymywanie. Dzięki temu interfejsowi możliwy jest także dostęp do administrowanej maszyny poprzez konsolę graficzną. W ramach pracy magisterskiej przygotowano narzędzia, które pozwalają w prosty sposób przygotować dużą liczbę (identycznych) maszyn wirtualnych oraz przyporządkować je odpowiednim użytkownikom wg podanej listy. Utworzenie lub usunięcie takiej grupy maszyn sprowadza się do wykonania przez administratora jednego polecenia z linii komend. Jednak dzięki mechanizmowi pozwalającemu na uruchamianie zadań w oznaczo- 1 Michał Ochociński, FolaVirt system zarządzania maszynami wirtualnymi, Uniwersytet Mikołaja Kopernika, Toruń

8 ROZDZIAŁ 1. WSTĘP 4 nym czasie, takie operacje mogą być wykonywane cyklicznie bez jakiejkolwiek interwencji administratora. W skład nowej wersji FolaVirt wchodzą dwa specjalne agenty folavirtd oraz foladiskd, narzędzia dla administratora oraz interfejs WWW do obsługi maszyn wirtualnych. Agent folavirtd odpowiada za wykonywanie akcji na maszynach wirtualnych, a foladiskd za tworzenie dysków dla tych maszyn. Administrator komunikuje się z tymi agentami poprzez programy folavirt i foladisk. Pierwszy z nich pozwala zarządzać indywidualnymi maszynami wirtualnymi oraz całymi laboratoriami. Drugi zaś służy do przygotowywania bazowych dysków dla maszyn wirtualnych oraz do zarządzania udostępnianiem tych dysków dla zarządców maszyn wirtualnych. Wszystkie działania wykonywane są zdalnie poprzez wykorzystanie podsystemu gniazd TCP. Agenty oraz narzędzia dla administratora zostały napisane w języku Python. Dodatkowo został utworzony interfejs WWW dla użytkowników maszyn wirtualnych. Wykorzystano do tego język PHP oraz platformę programistyczną Zend Framework. Użytkowników uprawnionych do zarządzania maszynami wirtualnymi można uwierzytelniać poprzez ich identyfikatory i hasła, jeśli zostali wcześniej zdefiniowani jako użytkownicy na serwerze WWW lub poprzez ich konta na wskazanym serwerze pocztowym. Do wykonywania podstawowych akcji na maszynach wirtualnych została wykorzystana biblioteka Libvirt, gdyż zapewnia ona wygodny interfejs programowania (API) do zarządzania maszynami wirtualnymi. Pozwala ona nie tylko na wykonywanie takich operacji jak uruchamianie, czy zatrzymywanie maszyn wirtualnych, ale także na na ich łatwe definiowanie, gdyż informacje o każdej z maszyn są przechowywane w specjalnych plikach XML-owych. Dodatkowo, Libvirt posiada mechanizm puli dyskowych, który między innymi umożliwia zarządzanie zdalnymi zasobami dyskowymi udostępnionymi przez iscsi. Takie pule dyskowe, podobnie jak maszyny wirtualne, można także definiować przy pomocy plików tekstowych w formacie XML. Wykorzystanie takiego formatu znacząco ułatwia oprogramowanie tych mechanizmów, co znalazło swoje zastosowanie w FolaVirt. Opracowany w ramach niniejszej pracy system FolaVirt będzie służył przede wszystkim jako pomoc dydaktyczna na zajęciach dotyczących systemów Unix/Linux oraz Windows prowadzonych dla studentów różnych kierunków na Wydziale Fizyki, Astronomii i Informatyki Stosowanej UMK. Plan pracy jest następujący. Po wstępie, w rozdziale 2., została szczegółowo opisana architektura systemu FolaVirt. Rozdział 3. omawia szczegóły jego implementacji, a 4. instalacji i konfiguracji. W rozdziale 5. znajduje się szczegółowy opis poleceń udostępnianych przez narzędzia wchodzące w skład FolaVirt. Pracę kończy podsumowanie oraz dodatek opisujący polecenia protokołu użytego do komunikacji pomiędzy elementami systemu. Do pracy załączona jest płyta CD zawierająca tekst niniejszej pracy, programy wchodzące w skład systemu FolaVirt oraz skrypty PHP do generowania stron interfejsu WWW. System FolaVirt jest udostępniany na licencji GNU GPL