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:lab3 [2016/11/29 08:22]
msl
pl:dydaktyka:sitw:2016:xen:lab3 [2019/06/27 15:50] (aktualna)
Linia 13: Linia 13:
 Po ponownym uruchomieniu komputera powinien włączyć się znajomy już Xen. Powinniśmy mieć dostępne dwie maszyny gości: ''​lab2-pvm''​ oraz ''​lab2-pvhvm''​. Po ponownym uruchomieniu komputera powinien włączyć się znajomy już Xen. Powinniśmy mieć dostępne dwie maszyny gości: ''​lab2-pvm''​ oraz ''​lab2-pvhvm''​.
  
-**Zadanie 1:** Proszę zalogować się na obie maszyny i sprawdzić działanie połączenia internetowego (polecenie ''​ping''​).+**Zadanie 1:** Proszę ​stworzyć ([[https://​ai.ia.agh.edu.pl/​wiki/​pl:​dydaktyka:​sitw:​2016:​xen:​lab1#​lekcja_7instalowanie_gosci|lab1]]),​ a potem zalogować się na obie maszyny ​(hasło ''​xena''​) ​i sprawdzić działanie połączenia internetowego (polecenie ''​ping''​). 
 +**Podpowiedź:​** Na maszynę wirtualizowaną sprzętowo trzeba logować się przez protokół ''​vnc'',​ np. 
 +<code bash> 
 +vncviewer 127.0.0.1:<​n-1>​ #dla n-tej maszyny 
 +</​code>​ 
 +lub: 
 +<code bash> 
 +xl vnc <nazwa maszyny>​ 
 +</​code>​ 
 +Może być konieczne zainstalowanie pakietu ''​vncviewer''​ ręcznie.  
 + 
 +W przypadku maszyny parawirtualizowanej,​ wystarczy zajrzeć do [[https://​ai.ia.agh.edu.pl/​wiki/​pl:​dydaktyka:​sitw:​2016:​xen:​lab1#​lekcja_8sterowanie_goscmi| 
 +lab 1]]. Jeżeli gość parawirtualizowany nie chce się uruchomić, narzekając na nieistniejący kernel, to znak, że kernel nie istnieje. Proszę sprawdzić jaką wersję kernela ma host (''​uname''​) i zmienić odpowiednią linię w pliku konfiguracyjnym maszyny (''/​etc/​xen/​lab-pvm.cfg''​).  
 + 
 +**Pytanie:​** dlaczego trzeba było to zrobić? 
 + 
 +**Przypomnienie:​** hasło root'a to ''​xena''​. 
 +==== Sekcja opcjonalna: SSH ==== 
 + 
 +Jeżeli dostęp po VNC jest zbyt niewygodny (niemożność kopiowania, etc.), to proszę skonfigurować na gościu ssh. 
 + 
 +  * na gościu: 
 +<code bash> 
 +# instalujemy ssh 
 +apt-get update 
 +apt-get install ssh 
 +# uruchamiamy ssh 
 +systemctl start ssh 
 +systemctl enable ssh 
 +# podglądamy adres ip maszyny 
 +ip addr show  
 +# sprawdzamy, czy istnieje w systemie użytkownik lab2 
 +grep lab2 /​etc/​passwd 
 +# jeśli nie, to go tworzymy 
 +adduser lab2 
 +# hasło też powinno brzmieć lab2 
 +</​code>​ 
 +  * na gospodarzu:​ 
 +<code bash> 
 +# zapominamy o zaufanych adresach  
 +# na wypadek gdyby inna maszyna miała kiedyś ten sam adres 
 +rm ~/​.ssh/​known_hosts  
 +# zastępujemy X odpowiednim numerkiem z adres 
 +ssh lab2@10.0.0.X 
 +# hasło: lab2 
 +su 
 +# hasło xena 
 +# i już jesteśmy na koncie root 
 +</​code>​
  
 ===== Lekcja 2: Sterowniki parawirtualne ====== ===== Lekcja 2: Sterowniki parawirtualne ======
Linia 23: Linia 71:
 Ale nie musimy ufać zapewnieniom tego typu, możemy sami zobaczyć, jakie sterowniki zostały załadowane. Wystarczy zalogować się na gościa i sprawdzić, co powie polecenie ''​dmesg''​. Powinno mówić coś o urządzeniach PCI zarządzanych przez XEN. Ale nie musimy ufać zapewnieniom tego typu, możemy sami zobaczyć, jakie sterowniki zostały załadowane. Wystarczy zalogować się na gościa i sprawdzić, co powie polecenie ''​dmesg''​. Powinno mówić coś o urządzeniach PCI zarządzanych przez XEN.
  
-**Zadanie 3:** Proszę sprawdzić, czy poprzedni gość ​używa ​sterownika PV. Polecane: ''​man grep''​ i ignorowanie wielkości znaków.+**Zadanie 3:** Proszę sprawdzić, czy ''​lab2-pvhvm'' ​używa ​sterowników parawirtualnych. Polecane: ''​man grep''​ i ignorowanie wielkości znaków.
  
 Zainstalujmy zatem trzeciego gościa, który z takich sterowników nie korzysta. Aby przyśpieszyć pracę, proszę skopiować konfigurację maszyny ''​lab2-pvhvm.cfg''​ do pliku ''​lab3-hvm.cfg''​ i dokonać trzech zmian: Zainstalujmy zatem trzeciego gościa, który z takich sterowników nie korzysta. Aby przyśpieszyć pracę, proszę skopiować konfigurację maszyny ''​lab2-pvhvm.cfg''​ do pliku ''​lab3-hvm.cfg''​ i dokonać trzech zmian:
Linia 33: Linia 81:
       * uruchomić komendę: ''/​etc/​init.d/​networking restart''  ​       * uruchomić komendę: ''/​etc/​init.d/​networking restart''  ​
   * zmienić ścieżki dysków twardych   * zmienić ścieżki dysków twardych
-  * wyłączamy urządzenia PCI zarządzane przez Xen. Znowu zerkamy do [[https://​xenbits.xen.org/​docs/​4.4-testing/​man/​xl.cfg.5.html|dokumentacji]].+  * wyłączamy urządzenia PCI zarządzane przez Xen. Znowu zerkamy do [[https://​xenbits.xen.org/​docs/​4.8-testing/​man/​xl.cfg.5.html|dokumentacji]].
  
 Po skopiowaniu dysków twardych z poprzedniej maszyny do odpowiednich ścieżek, maszyna powinna się elegancko uruchomić. Teraz na uruchomionej maszynie zmieniamy jeszcze kilka szczegółów:​ Po skopiowaniu dysków twardych z poprzedniej maszyny do odpowiednich ścieżek, maszyna powinna się elegancko uruchomić. Teraz na uruchomionej maszynie zmieniamy jeszcze kilka szczegółów:​
   * zmieniamy nazwę hosta:   * zmieniamy nazwę hosta:
     * zastępujemy starą nazwę na nową (''​lab3-hvm''​) w plikach:     * zastępujemy starą nazwę na nową (''​lab3-hvm''​) w plikach:
-      * ''/​etc/network/​hostname''​+      * ''/​etc/​hostname''​
       * ''/​etc/​hosts''​       * ''/​etc/​hosts''​
     * ... i zrestartować usługi internetowe:​     * ... i zrestartować usługi internetowe:​
Linia 53: Linia 101:
 ===== Lekcja 3: Benchmark DIY ===== ===== Lekcja 3: Benchmark DIY =====
  
-Mając trzech gości, sprawdźmy, który z nich najlepiej sobie radzi w prostych benchmarkach. Przeprowadzimy kilka prostych testów (w razie potrzeby instalować brakujące narzędzia używając ''​apt-get'' ​--- ''​apt-get update''​ może okazać się konieczne):+Mając trzech gości, sprawdźmy, który z nich najlepiej sobie radzi w prostych benchmarkach. Przeprowadzimy kilka prostych testów (w razie potrzeby ​proszę ​instalować brakujące narzędzia używając ''​apt-get''​, wcześniejsze ​''​apt-get update''​ może okazać się konieczne):
  
   * [cpu] jak szybko jesteśmy w stanie znaleźć liczby pierwsze:   * [cpu] jak szybko jesteśmy w stanie znaleźć liczby pierwsze:
 <code bash> <code bash>
-sysbench --test=cpu --num-threads=<​liczba procesorów>​ --cpu-max-prime=<​duża liczba, np. 99999> run +sysbench --test=cpu --num-threads=<​liczba procesorów>​ --cpu-max-prime=<​duża liczba, np. 9999> run
-</​code>​ +
-  * [cpu] jak szybko umiemy liczyć: +
-<code bash> +
-time $(i=0; while (( i < <duża liczba, np. 9999999> )); do (( i ++ )); done) +
-</​code>​ +
-  * [hdd] jak szybko potrafimy czytać prosto z partycji dysku: +
-<code bash> +
-cat /​dev/<​partycja roota> | pipebench -q > /dev/null+
 </​code>​ </​code>​
   * [hdd] jak szybko potrafimy pisać do pliku:   * [hdd] jak szybko potrafimy pisać do pliku:
 <code bash> <code bash>
-dd bs=16k count=<​tyle,​ żeby plik zajął około ​700MB> oflag=direct if=/​dev/​zero of=test_data+dd bs=16k count=<​tyle,​ żeby plik zajął około ​1GB> oflag=direct if=/​dev/​zero of=test_data
 </​code>​ </​code>​
   * [hdd] jak szybko potrafimy czytać z pliku:   * [hdd] jak szybko potrafimy czytać z pliku:
Linia 76: Linia 116:
 </​code>​ </​code>​
  
-**Zadanie 5:** Czy istnieją ​różnice wynikach ​między ​różnymi goścmi?+**Zadanie 5:** Czy istnieje ​różnica wydajności procesora ​między ​''​lab2-pvm''​ i ''​lab3-hvm''​Proszę spróbować uruchomić testy pojedynczo oraz naraz na obu maszynach.
  
 +**Zadanie 6:** Czy istnieje różnica w wydajności dysku twardego między ''​lab2-pvhvm''​ i ''​lab3-hvm''?​ Proszę spróbować uruchomić testy pojedynczo oraz naraz na obu maszynach.
  
-  ​ 
  
  
-===== Lekcja 4: Rodzaj dysku twardego ===== 
  
-Proszę zainstalować 4-tego 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 pierwszych laboratoriach).  +===== Lekcja ​4: Scheduler CPU =====
- +
-  * nazwa: ''​lab3-pvmlvm''​ +
-  * RAM: 512MB +
-  * grupa lvm: ''​sitw''​ +
-  * dystrybucja ''​jessie''​ +
-  * ustawienia sieci: +
-    * adres ip: ''​10.0.0.5''​ +
-    * gateway: ''​10.0.0.1''​ +
-    * maska: ''​255.255.255.0''​ +
-    * broadcast: ''​10.0.0.255''​ +
-    * DNS (sprawdzić plik ''/​etc/​resolv.conf''​ po instalacji):​ ''​8.8.4.4 8.8.8.8''​  +
- +
-**Zadanie 7:** 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 ​5: 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]]. 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 ​8:** Używając komendy ''​xl''​ proszę sprawdzić jaki scheduler jest aktualnie używany w systemie.+**Zadanie ​7:** Używając komendy ''​xl''​ proszę sprawdzić jaki scheduler jest aktualnie używany w systemie.
  
 Proszę teraz przeanalizować wyjście komendy: Proszę teraz przeanalizować wyjście komendy:
Linia 117: Linia 139:
 Na potrzeby kolejnych pytań, zakładamy, że nasze maszyny mają za zadanie wykonać dużą liczbę ciężkich obliczeniowo zadań, np. służą do rozwiązywania problemów optymalizacyjnych. Na potrzeby kolejnych pytań, zakładamy, że nasze maszyny mają za zadanie wykonać dużą liczbę ciężkich obliczeniowo zadań, np. służą do rozwiązywania problemów optymalizacyjnych.
  
-**Zadanie ​9**: Czy domyślny //​timeslice//​ jest w porządku?+**Zadanie ​8**: Czy domyślny //​timeslice//​ jest w porządku?
  
-**Zadanie ​10**: Proszę ustawić //rate limiting// tak, żeby odpowiadało środowisku małej liczby maszyn o dużej liczbie obliczeń do wykonania. ​+**Zadanie ​9**: Proszę ustawić //rate limiting// tak, żeby odpowiadało środowisku małej liczby maszyn o dużej liczbie obliczeń do wykonania.  
 + 
 +**Zadanie 10**: Proszę teraz uruchomić testy CPU na wszystkich maszynach równocześnie i zapisać wyniki.
  
 **Zadanie 11**: Proszę ustawić wagi schedulera tak, żeby maszyna ''​lab2-pvhvm''​ była "dwa razy" ważniejsza od innych. **Zadanie 11**: Proszę ustawić wagi schedulera tak, żeby maszyna ''​lab2-pvhvm''​ była "dwa razy" ważniejsza od innych.
Linia 125: Linia 149:
 **Zadanie 12**: Proszę ustawić ograniczenia tak, żeby żadna maszyna poza ''​lab2-phvm''​ nie mogła używać naraz więcej niż 1,5 rdzenia. **Zadanie 12**: Proszę ustawić ograniczenia tak, żeby żadna maszyna poza ''​lab2-phvm''​ nie mogła używać naraz więcej niż 1,5 rdzenia.
  
-**Zadanie 13**: Proszę teraz uruchomić testy CPU na kilku maszynach równocześnie. Czy wyniki testów się zmieniły?+**Zadanie 13**: Proszę teraz ponownie ​uruchomić testy CPU na wszystkich ​maszynach równocześnie. Czy wyniki testów się zmieniły?
  
 **Zadanie 14**: Proszę zmienić scheduler na ''​credit2''​ i ponownie przetestować działanie procesora. **Zadanie 14**: Proszę zmienić scheduler na ''​credit2''​ i ponownie przetestować działanie procesora.
-**Podpowiedź**:​ konfiguracja ''​gruba''​ i [[https://​xenbits.xen.org/​docs/​4.4-testing/​misc/​xen-command-line.html|docs/​misc/​xen-command-line.html]]+**Podpowiedź**:​ konfiguracja ''​gruba''​ i [[https://​xenbits.xen.org/​docs/​4.8-testing/​misc/​xen-command-line.html|docs/​misc/​xen-command-line.html]]
  
-===== Lekcja ​6: Stronicowanie pamięci =====+===== 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:​ 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:​
Linia 137: Linia 161:
     * 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ń.     * 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 15**: Proszę wyłączyć hap na jednej z maszyn (dokumentacja xl.cfg).+**Zadanie 15**: Proszę wyłączyć hap na jednej z maszyn ([[https://​xenbits.xen.org/​docs/​4.8-testing/​man/​xl.cfg.5.html|dokumentacja xl.cfg]]).
  
 Żeby przetestować prędkość ramu, trzeba uciec się do sztuczki, mianowicie można stworzyć partycję, która znajduje się w ramie, np. Żeby przetestować prędkość ramu, trzeba uciec się do sztuczki, mianowicie można stworzyć partycję, która znajduje się w ramie, np.
 +
 <code bash> <code bash>
 mkdir RAM_test mkdir RAM_test
Linia 148: Linia 173:
 Następnie w katalogu ''​RAM_test''​ używamy testów wcześniej używanych do testowania dysku twardego. ​ Następnie w katalogu ''​RAM_test''​ używamy testów wcześniej używanych do testowania dysku twardego. ​
  
-**Zadanie ​16**: Proszę przeprowadzić testy oparte o narzędzie ''​dd''​. Czy jest widoczna różnica między //​shadowing//​ a //hap//?+**Zadanie ​15**: Proszę przeprowadzić testy oparte o narzędzie ''​dd''​. Czy jest widoczna różnica między //​shadowing//​ a //hap//?
  
 ===== Lekcja 7: Benchmark Professional ===== ===== Lekcja 7: Benchmark Professional =====
Linia 165: Linia 190:
   ​   ​
   ​   ​
-**Zadanie ​17**: która maszyna ma najwyższy wynik SBIS?+**Zadanie ​16**: która maszyna ma najwyższy wynik SBIS?
 ===== Epilog: Sprzątanie ===== ===== Epilog: Sprzątanie =====
  
pl/dydaktyka/sitw/2016/xen/lab3.1480404150.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