Both sides previous revision
Poprzednia wersja
Nowa wersja
|
Poprzednia wersja
|
pl:dydaktyka:sitw:2016:xen:lab2 [2016/11/22 21:13] msl [Preliminaria] |
pl:dydaktyka:sitw:2016:xen:lab2 [2019/06/27 15:50] (aktualna) |
====== XEN: Zarządzenia wydajnością i zasobami ====== | ====== XEN: O różnych rodzajach gości ====== |
| |
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ą: | <WRAP center round box 60%> |
| //Gość w DomU, host w Dom0.// |
| |
| --- Stare przysłowie polskie. |
| </WRAP> |
| |
| Celem laboratorium jest zapoznanie się z różnicami między maszynami parawirtualizowanymi i wirtualizowanymi sprzętowo, ich konfiguracją i oraz migracją z istniejących maszyn. |
| |
- różne tryby wirtualizacji | |
- różne konfiguracje twardego dysku | |
- różne konfiguracje schedulera CPU | |
- różne konfiguracje stronicowania pamięci RAM | |
| |
===== Preliminaria ===== | ===== Preliminaria ===== |
| |
<code bash> | <code bash> |
cd /home/student/sitw && ./prepare_xen_lab2.sh && update-grub | cd /home/student/sitw && ./prepare_xen_lab2.sh && update-grub && reboot |
reboot | |
</code> | </code> |
| |
Podczas laboratorium przydatna może okazać się [[https://xenbits.xen.org/docs/4.4-testing/|dokumentacja Xen'a]]. :!: Naprawdę :!: | Podczas laboratorium przydatna może okazać się [[https://xenbits.xen.org/docs/4.4-testing/|dokumentacja Xen'a]]. :!: Naprawdę :!: |
| |
===== Lekcja 1: Gość w dom ===== | <WRAP center round important 60%> |
| Naprawdę! |
| </WRAP> |
| |
Zacznijmy od zbadania wpływu jaki ma tryb wirtualizacji na wydajność maszyny. | ===== Lekcja 1: Parawirtualizacja ===== |
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, zaimportujemy maszynę z istniejącego już obrazu dysku. |
| |
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: | **Zadanie 1:** Korzystając z polecenie ''xen-create-image'', proszę stworzyć domenę spełniającą podane warunki: |
* dystrybucja debian jessie | * dystrybucja debian jessie |
* zapis obrazu używając zwykłego katalogu o ścieżce '/home/student/sitw' | * zapis obrazu używając zwykłego katalogu o ścieżce '/home/student/sitw' |
* system **nie** powinien być instalowany wraz z uruchomieniem komendy | * komenda ma **nie** instalować systemu |
| |
**Pytanie:** Podczas tworzenia maszyny pojawiło się kilka błędów. Skąd one wynikają? | **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. | 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 2:** Zastąpić nowo powstały dysk plikiem ''pvm/disk.img'' z katalogu ''/home/student/sitw/images''. Proszę użyć komendy ''dd'' zamiast ''cp'': |
| <code bash> |
| dd if=<ścieka źródłowa> of=<ścieżka docelowa> bs=8M status=progress |
| </code> |
| |
| **Zadanie 3:** Nie znamy hasła roota do instalacji na ''pvm/disk.img''. Proszę je ustawić ręcznie na ''xena'' (tip: komendy ''mount -o loop'', ''chroot'' i ''passwd''). |
| |
**Zadanie 3:** Proszę stworzyć i uruchomić domenę. Hasło root'a: ''xena''. | **Zadanie 4:** Proszę stworzyć i uruchomić domenę. Hasło root'a: ''xena''. |
| |
==== Gość Drugi: HVM ze sterownikami PVM ==== | ===== Lekcja 2: Wirtualizacja sprzętowa ===== |
| |
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''. | 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''. |
* powinien mieć 512MB ramu | * powinien mieć 512MB ramu |
* sieć skonfigurowaną statycznie: | * sieć skonfigurowaną statycznie: |
* adres ip: ''10.0.0.3'' | * adres ip: ''10.0.0.3'' (na wzór konfiguracji ''lab2-pvm'') |
* brama: ''10.0.0.1'' | * resztę sieci konfiguruje się **dopiero** podczas instalacji systemu (czyli nie teraz :!:): |
* maska: ''255.255.255.0'' | * brama: ''10.0.0.1'' |
* broadcast: ''10.0.0.255'' | * 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) | * powinien mieć dwa dyski twarde na wzór konfiguracji ''lab2-pvm'' (proszę pamiętać o zmianie ścieżek) |
* dysk swap powinien mieć nazwę ''xvda'' | * dysk swap powinien mieć nazwę ''xvdb'' |
* dysk root powinien mieć nazwę ''xvdb'' | * dysk root powinien mieć nazwę ''xvda'' |
* same dyski utworzymy w kolejnych krokach | * same dyski utworzymy w kolejnych krokach |
* powinien mieć napęd cdrom z zamontowanym plikiem ''/home/student/sitw/images/debian-install.iso'': | * 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ę: | * jeżeli plik nie istnieje (**lub ma podejrzanie mały rozmiar**) proszę wykonać komendę: |
<code bash> | <code bash> |
cd /home/student/sitw/images | 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 |
wget -O /home/student/sitw/images/debian-install.iso http://cdimage.debian.org/debian-cd/8.6.0/amd64/iso-cd/debian-8.6.0-amd64-netinst.iso | |
</code> | </code> |
* **Podpowiedź:** napęd cdrom nazywa się ''hdc:cdrom'' | * **Podpowiedź:** napęd cdrom nazywa się ''hdc:cdrom''. Więcej w dokumentacji. |
* powinien korzystać z vnc do dzielenia ekranu | * powinien korzystać z vnc do dzielenia ekranu |
* powinien najpierw bootować stację cdrom | * powinien najpierw bootować stację cdrom |
**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 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 6:** Proszę stworzyć maszynę ''lab2_pvhvm'' 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ć). | **Zadanie 7:** Proszę połączyć się z maszyną używając narzędzia ''vncviewer'' (w razie potrzeby zainstalować). |
| |
Jeżeli to się uda, mają Państwo teraz dwie możliwości: | 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). | * 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) |
| * haczyk: po instalacji trzeba zadbać o to, żeby plik ''/etc/resolv.conf'' zawierał prawidłowe serwery DNS: |
| <code bash> |
| nameserver 8.8.8.8 |
| nameserver 8.8.4.4 |
| </code> |
* Jak poprzednio, użyć gotowych obrazów ''swap.img'' i ''hvm/disk.img'' z katalogu ''/home/student/sitw/images'', hasło roota: ''xena''. | * 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. | 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 ==== | ===== Epilog: Sprzątanie ===== |
| |
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'' | |
* 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. | |
| |
**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 dowolny inny, np. credit2 | |
**Podpowiedź**:" grub i ''docs/misc/xen-command-line.html'' | |
| |
===== Lekcja 5: Stronicowanie pamięci ===== | |
| |
===== Lekcja 6: Sprzątanie ===== | |
| |
Proszę wyłączyć i usunąć wszystkich gości **wraz z ich dyskami i plikami konifuracyjnymi**. Następnie: | Proszę wyłączyć i usunąć wszystkich gości **wraz z ich dyskami i plikami konifuracyjnymi**. Następnie z konta roota: |
| |
<code bash> | <code bash> |
cd /home/student/sitw && ./clean_xen_lab2.sh | cd /home/student && cd /home/student/sitw && ./clean_xen_lab2.sh |
</code> | </code> |
I na koniec proszę **uruchomić komputer ponownie**, tym razem bez Xena i zaktualizować konfigurację gruba: | I na koniec proszę **uruchomić komputer ponownie**, tym razem bez Xena i zaktualizować konfigurację gruba: |