Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

Both sides previous revision Poprzednia wersja
Nowa wersja
Poprzednia wersja
pl:dydaktyka:sitw:2016:xen:lab2 [2016/11/22 10:44]
msl [Gość Drugi: HVM ze sterownikami PVM]
pl:dydaktyka:sitw:2016:xen:lab2 [2019/06/27 15:50] (aktualna)
Linia 1: Linia 1:
-====== 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 ż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 =====
Linia 13: Linia 15:
   ​   ​
 <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>​
  
 Po ponownym uruchomieniu komputera powinien włączyć się znajomy już Xen. 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]].+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:
Linia 34: Linia 34:
   * pamięć 512MB   * pamięć 512MB
   * dwa wirtualne procesory   * dwa wirtualne procesory
-  * sieć skonfigurowana przez dhcp+  * 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   * 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 komedy+  * komenda ma **nie** ​instalować systemu 
 + 
 +**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''​. ​ 
  
-==== Gość DrugiHVM ze sterownikami PVM ====+**Zadanie 4:** Proszę stworzyć i uruchomić domenę. Hasło root'a''​xena''​. ​
  
-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 (''/​etc/​xen/''​) do nowego pliku ''/​etc/​xen/​lab2-pvhvm''​.+===== 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''​.
  
 **Zadanie 4: ** Należy wprowadzić do pliku pewne zmiany: **Zadanie 4: ** Należy wprowadzić do pliku pewne zmiany:
Linia 53: Linia 65:
   * nazwa gościa powinna brzmieć ''​lab2-pvhvm''​   * nazwa gościa powinna brzmieć ''​lab2-pvhvm''​
   * powinien mieć 512MB ramu   * powinien mieć 512MB ramu
-  * powinien pobierać adres przez dhcp+  * sieć skonfigurowaną statycznie:​ 
 +    * adres ip: ''​10.0.0.3''​ (na wzór konfiguracji ''​lab2-pvm''​)  
 +    * 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)   * powinien mieć dwa dyski twarde na wzór konfiguracji ''​lab2-pvm''​ (proszę pamiętać o zmianie ścieżek)
-  ​* powinien mieć napęd cdrom z zamontowanym plikiem ''/​home/​student/​sitw/​images/​debian-install.iso'':​ +    * dysk swap powinien mieć nazwę ''​xvdb''​  
-    * jeżeli plik nie istnieje proszę wykonać komendę:+    * 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> <code bash>
-wget http://​cdimage.debian.org/​debian-cd/​8.6.0/​amd64/​iso-cd/​debian-8.6.0-amd64-netinst.iso ​/​home/​student/​sitw/​images/​debian-install.iso+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> ​ </​code> ​
 +    * **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 
     * **podpowiedź:​** składnia plików konfiguracyjnych maszyn jest opisana w dokumentacji ''​xl.cfg''​     * **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. 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:+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> <code bash>
 dd if=/​dev/​zero of=./​swap.img bs=1024k seek=128 count=0 dd if=/​dev/​zero of=./​swap.img bs=1024k seek=128 count=0
Linia 77: Linia 99:
 **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) 
-  Jak poprzednio, użyć gotowych obrazów ''​swap.img''​ i ''​pvm/​disk.img''​ z katalogu ''/​home/​student/​sitw/​images'',​ hasło roota''​xena''​. +    haczykpo instalacji trzeba zadbać o to, żeby plik ''/​etc/resolv.conf'' ​zawierał prawidłowe serwery DNS:
- +
-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ś 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''​ do pliku ''​lab2-hvm''​ i dokonać trzech zmian: +
- +
-  * zmienić nazwę maszyny +
-  * 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> <code bash>
-xl help sched-credit+nameserver 8.8.8.8 
 +nameserver 8.8.4.4
 </​code>​ </​code>​
 +  * Jak poprzednio, użyć gotowych obrazów ''​swap.img''​ i ''​hvm/​disk.img''​ z katalogu ''/​home/​student/​sitw/​images'',​ hasło roota: ''​xena''​.
  
-oraz [[https://​wiki.xen.org/​wiki/​Credit_Scheduler|opis schedulera o nazwie credit z wiki Xen]]. +Niezależnie od wybranej ścieżkimożna teraz z pliku konfiguracyjnego usunąć cdrom i zmienić kolejność boot'​owania ​tak, by pierwsza ​była partycja roota.
- +
-**Zadanie 14**: Zakładając, ​że mamy małą liczbę maszyn wirtualnychwykonują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 =====+===== Epilog: 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:
pl/dydaktyka/sitw/2016/xen/lab2.1479807893.txt.gz · ostatnio zmienione: 2019/06/27 15:55 (edycja zewnętrzna)
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0