[[
✎ pl:dydaktyka:sitw:2016:xen:lab2
]]
aiWiki
Pokaż stronę
Ostatnie zmiany
Indeks
Zaloguj
Ta strona jest tylko do odczytu. Możesz wyświetlić źródła tej strony ale nie możesz ich zmienić.
====== XEN: Zarządzenia wydajnością i zasobami ====== Celem laboratorium jest zapoznanie się z możliwościami kontrolowania zasobów oraz zwiększanie wydajności gości używając nadzorcy Xen. Zbadane zostaną: - różne tryby wirtualizacji - różne konfiguracje twardego dysku - różne konfiguracje schedulera CPU - różne konfiguracje stronicowania pamięci RAM ===== Preliminaria ===== Proszę zalogować się na konto roota i wykonać następującą komendę: <code bash> cd /home/student/sitw && ./prepare_xen_lab2.sh && reboot </code> Po ponownym uruchomieniu komputera powinien włączyć się znajomy już Xen. Podczas laboratorium przydatna może okazać się [[https://xenbits.xen.org/docs/4.4-testing/|dokumentacja Xen'a]]. :!: Naprawdę :!: <WRAP center round important 60%> Naprawdę! </WRAP> ===== Lekcja 1: Gość w dom ===== Zacznijmy od zbadania wpływu jaki ma tryb wirtualizacji na wydajność maszyny. Zbudujemy prawie od zera trzech różnych gości. ==== Gość Pierwszy: PVM na pliko-partycji ==== Naszym celem jest postawienie tej samej maszyny, co na poprzednim laboratorium, z jedną drobną różnicą, zamiast lvm użyjemy obrazu dysku. Żeby przyśpieszyć proces, zastosujemy istniejący już obraz dysku. **Zadanie 1:** Korzystając z polecenie ''xen-create-image'', proszę stworzyć domenę spełniającą podane warunki: * nazwa hosta: "lab2-pvm" * pamięć 512MB * dwa wirtualne procesory * sieć skonfigurowaną statycznie: * adres ip: ''10.0.0.2'' * brama: ''10.0.0.1'' * maska: ''255.255.255.0'' * broadcast: ''10.0.0.255'' * dystrybucja debian jessie * zapis obrazu używając zwykłego katalogu o ścieżce '/home/student/sitw' * system **nie** powinien być instalowany wraz z uruchomieniem komendy **Pytanie:** Podczas tworzenia maszyny pojawiło się kilka błędów. Skąd one wynikają? W pliku konfiguracji domeny można zobaczyć, jakie ścieżki prowadzą do plików będących partycjami tej domeny. **Zadanie 2:** Zastąpić pliki z podanych ścieżek plikami ''swap.img'' i ''pvm/disk.img'' z katalogu ''/home/student/sitw/images''. **Zadanie 3:** Proszę stworzyć i uruchomić domenę. Hasło root'a: ''xena''. ==== Gość Drugi: HVM ze sterownikami PVM ==== Instalacja gościa sprzętowego przebiega trochę inaczej. Przypomina dużo bardziej instalację zwykłego systemu operacyjnego. Najpierw należy przygotować konfigurację maszyny. W tym celu proszę skopiować przykładową konfigurację domeny typu hvm (z katalogu ''/etc/xen/'') do nowego pliku ''/etc/xen/lab2-pvhvm.cfg''. **Zadanie 4: ** Należy wprowadzić do pliku pewne zmiany: * nazwa gościa powinna brzmieć ''lab2-pvhvm'' * powinien mieć 512MB ramu * sieć skonfigurowaną statycznie: * adres ip: ''10.0.0.3'' * należy usunąć wpis dotyczący adresu mac * resztę sieci konfiguruje się **dopiero** podczas instalacji systemu (czyli nie teraz): * brama: ''10.0.0.1'' * maska: ''255.255.255.0'' * broadcast: ''10.0.0.255'' * dns: ''8.8.8.8 8.8.4.4'' * powinien mieć dwa dyski twarde na wzór konfiguracji ''lab2-pvm'' (proszę pamiętać o zmianie ścieżek) * dysk swap powinien mieć nazwę ''xvdb'' * dysk root powinien mieć nazwę ''xvda'' * same dyski utworzymy w kolejnych krokach * powinien mieć napęd cdrom z zamontowanym plikiem ''/home/student/sitw/images/debian_installer.iso'': * jeżeli plik nie istnieje (**lub ma podejrzanie mały rozmiar**) proszę wykonać komendę: <code bash> wget -O /home/student/sitw/images/debian_installer.iso http://cdimage.debian.org/debian-cd/8.6.0/amd64/iso-cd/debian-8.6.0-amd64-netinst.iso </code> * **Podpowiedź:** napęd cdrom nazywa się ''hdc:cdrom''. Więcej w dokumentacji. * powinien korzystać z vnc do dzielenia ekranu * powinien najpierw bootować stację cdrom * **podpowiedź:** składnia plików konfiguracyjnych maszyn jest opisana w dokumentacji ''xl.cfg'' Teraz potrzebujemy tylko dysków twardych, żeby móc zainstalować system. Aby stworzyć plikopartycję, można posłużyć się poleceniem ''dd'', które służy do najprostszego kopiowania bajt po bajcie (blok po bloku). Plikopartycja, to nic innego jak pusty plik, który ma zadaną wielkość. Aby stworzyć plik, który ma służyć za partycję swap o rozmiarze 128MB, można posłużyć się poleceniem: <code bash> dd if=/dev/zero of=./swap.img bs=1024k seek=128 count=0 </code> gdzie: * ''if'' to źródło, w tym przypadku źródło zer * ''of'' to strumień wyjściowy * ''bs'' to rozmiar kopiowanego bloku * ''seek'' ile bloków można pominąć, bo nie są nic warte (przyśpiesza sprawę) * ''count'' ile bloków skopiować **Zadanie 5:** Proszę wygenerować puste pliki partycji, jedną 4GB na roota, drugą 128MB na swap i umieścić je w ścieżkach wskazanych wcześniej w pliku konfiguracyjnym domeny. **Zadanie 6:** Proszę stworzyć maszynę ''lab2_pvhmv'' i znaleźć adres, pod którym jest dostępna przez vnc. **Podpowiedź:** ''vnc'' to proces jak każdy inny. **Zadanie 7:** Proszę połączyć się z maszyną używając narzędzie ''vncviewer'' (w razie potrzeby zainstalować). Jeżeli to się uda, mają Państwo teraz dwie możliwości: * Zainstalować Debiana ręcznie --- zalecane dla osób, które nigdy tego nie robiły. Prosta robota, ale może chwilę zająć (proszę nie instalować żadnych środowisk graficznych). * Jak poprzednio, użyć gotowych obrazów ''swap.img'' i ''hvm/disk.img'' z katalogu ''/home/student/sitw/images'', hasło roota: ''xena''. Niezależnie od wybranej ścieżki, można teraz z pliku konfiguracyjnego usunąć cdrom i zmienić kolejność boot'owania tak, by pierwsza była partycja roota. ==== Gość Trzeci: HVM bez PV ==== Teraz, skąd wiemy, że poprzedni gość używa sterowników PV? Wystarczy się na niego zalogować i sprawdzić, co powie polecenie ''dmesg''. Powinno mówić coś o urządzeniach PCI zarządzanych przez XEN. **Zadanie 8:** Proszę sprawdzić, czy poprzedni gość używa sterownika PV. Aby przyśpieszyć pracę, proszę skopiować konfigurację maszyny ''lab2-pvhvm.cfg'' do pliku ''lab2-hvm.cfg'' i dokonać trzech zmian: * zmienić nazwę maszyny * zmienić adres ip na ''10.0.0.4'': * żeby zmienić adres ip na zainstalowanym systemie należy dodatkowo: * zedytować na gościu plik: ''/etc/network/interfaces'' * uruchomić komendę: ''/etc/init.d/networking restart'' * zmienić ścieżki dysków twardych * wyłączającą urządzenia PCI zarządzane przez Xen. Znowu zerkamy do dokumentacji. Po skopiowaniu dysków twardych z poprzedniej maszyny do odpowiednich ścieżek, maszyna powinna się elegancko uruchomić. **Zadanie 9:** Proszę sprawdzić, czy nowy gość używa sterowników PV. ===== Lekcja 2: Benchmark ===== Mając trzech gości, sprawdźmy, który z nich najlepiej sobie radzi w prostych benchmarkach. Sprawdzimy prędkość działania procesora oraz dysku twardego. Przykładowe [[https://fixmynix.com/benchmarking-linux-systems-with-simple-command-line-tools/|benchmarki]] mogą wymagać instalacji dodatków pakietów. **Podpowiedź:** Możliwe, że przed instalacją paczek koniecznie będzie uruchomienie komendy <code bash> apt-get update </code> **Zadanie 10:** Który gość najlepiej radzi sobie w kategorii procesor? **Zadanie 11:** Który gość wygrywa w kategorii dysk twardy? ===== Lekcja 3: Rodzaj dysku twardego ===== Proszę zainstalować 4 gościa, takiego samego jak ''lab2-pvm'', ale korzystającego z systemu plików lvm. (można po prostu użyć ''xen-create-image'' jak na poprzednich laboratoriach), o nazwie ''lab2-pvmlvm''. **Zadanie 12:** Która obu maszyn parawirtualizowanych lepiej sobie radzi w kategorii dysk twardy? **Podpowiedź:** W czasie instalacji maszyny można spokojnie przejść do Lekcji 4. ===== Lekcja 4: Scheduler CPU ===== Xen jako nadzorca musi dbać o zapotrzebowania swoich gości, w szczególności o przydzielany im czas procesora --- podobnie jak w systemie operacyjnym czas jest przydzielany procesom. Służy do tego narzędzie zwane schedulerem. W Xenie możliwe jest tworzenie pul procesorów (ang. //cpu pool//) i do każdej puli można przyporządkować inny scheduler. Krótkie opisy dostępnych schedulerów można znaleźć na [[https://wiki.xenproject.org/wiki/Xen_Project_Schedulers | wiki Xena]]. **Zadanie 13:** Używając komendy ''xl'' proszę sprawdzić jaki scheduler jest aktualnie używany w systemie. Proszę teraz przeanalizować wyjście komendy: <code bash> xl help sched-credit </code> oraz [[https://wiki.xen.org/wiki/Credit_Scheduler|opis schedulera o nazwie credit z wiki Xen]]. **Zadanie 14**: Zakładając, że mamy małą liczbę maszyn wirtualnych, wykonując ciężkie obliczenia. Czy domyślny timeslice jest w porządku? **Zadanie 15**: Proszę ustawić rate limiting tak, żeby odpowiadało środowisku małej liczby maszyn o dużej liczbie obliczeń do wykonania. **Zadanie 16**: Proszę ustawić wagi schedulera tak, żeby maszyna ''lab2-pvhvm'' była "dwa razy" ważniejsza od innych. **Zadanie 17**: Proszę ustawić ograniczenia tak, żeby żadna maszyna poza ''lab2-phvm'' nie mogła używać naraz więcej niż 1,5 rdzenia. **Zadanie 18**: Proszę teraz uruchomić testy CPU na kilku maszynach równocześnie. Czy wyniki testów się zmieniły? **Zadanie 19**: Proszę zmienić scheduler na ''credit2'' **Podpowiedź**: konfiguracja ''gruba'' i ''docs/misc/xen-command-line.html'' ===== Lekcja 5: Stronicowanie pamięci ===== Gość, jak każdy system operacyjny, stronicuje pamięć ram. Niestety, nie możemy dać mu bezpośredniego dostępu do ramu, ponieważ mógłby wtedy ingerować w życie innych maszyn. Trzeba zatem w jakiś sposób tłumaczyć tablice pamięci gościa na prawdziwe tablice --- dla tego problemu istnieją dwa rozwiązana: * shadowing --- tablica LUT zarządzana programowo przez Xen, tłumacząca bezpośrednio wirtualne strony pamięci na rzeczywiste. Dzięki prostocie bardzo szybko obsługuje chybienia, natomiast dużo energii trzeba w…ożyć w utrzymaniu mapy pamięci na rozsądnym poziomie * hap --- hardware assisted paging, które korzysta z bardziej złożonych struktur, ale jest implementowane sprzętowo, dzięki czemu w bardzo szybki sposób obsługiwane są aktualizacje mapy pamięci. Problemem jest stosunkowo wolna obsługa chybień. **Zadanie 30**: Proszę wyłączyć hap na jednej z maszyn (dokumentacja xl.cfg) i po raz pierwszy uruchomić testy RAMu z poprzedniego linka. Proszę uważać, żeby nie przedobrzyć i nie przekazać całego ramu na testy. Któa technologia lepiej sobie radzi w podanym teście. ===== Lekcja 6: Sprzątanie ===== Proszę wyłączyć i usunąć wszystkich gości **wraz z ich dyskami i plikami konifuracyjnymi**. Następnie z konta roota: <code bash> cd /home/student && rm -rf /home/student/sitw && tar xf ./sitw.tar.gz && cd /home/student/sitw && ./clean_xen_lab2.sh </code> I na koniec proszę **uruchomić komputer ponownie**, tym razem bez Xena i zaktualizować konfigurację gruba: <code bash> update-grub </code>
pl/dydaktyka/sitw/2016/xen/lab2.1479898338.txt.gz
· ostatnio zmienione: 2019/06/27 15:55 (edycja zewnętrzna)
Pokaż stronę
Poprzednie wersje
Menadżer multimediów
Do góry