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:lab1 [2016/11/14 20:15]
msl [Pamięć]
pl:dydaktyka:sitw:2016:xen:lab1 [2019/06/27 15:50] (aktualna)
Linia 1: Linia 1:
-====== XEN: instalacja i zarządzanie ​gośćmi ======+====== XEN: instalacja ​usług ​dodawanie ​gości ======
  
-Celem laboratorium jest zapoznanie się z instalacją i konfiguracją hypervisora Xen. Po zakończeniu laboratorium student powinien rozumieć architekturę,​ na której oparty jest Xen; potrafić go zainstalować i skonfigurować ​różne typy maszyn/gości. Ponadto powinien być wstanie wskazać różnice między typami gości z ich zaletami i wadami.+Celem laboratorium jest zapoznanie się z instalacją i konfiguracją hypervisora Xen. Po zakończeniu laboratorium student powinien rozumieć architekturę,​ na której oparty jest Xen; potrafić go zainstalować i skonfigurować ​podstawowe domeny ​gości. ​
  
 ===== Preliminaria ===== ===== Preliminaria =====
Linia 13: Linia 13:
 ===== Lekcja 1: Nazewnictwo ===== ===== Lekcja 1: Nazewnictwo =====
  
-Aczkolwiek nazwa ma małą wspólnego ze znaną [[https://www.youtube.com/watch?​v=SSsSbZ9OHZk|bohaterką lat 90-tych]], warto zapamiętać,​ że w obu przypadkach powinno wymawiać się '​X'​ jako '​z'​. Zatem '​zen'​.+Aczkolwiek nazwa ma małwspólnego ze znaną [[https://youtu.be/_dF3VTOcbuo|bohaterką lat 90-tych]], warto zapamiętać,​ że w obu przypadkach powinno wymawiać się '​X'​ jako '​z'​. Zatem '​zen'​.
  
 ===== Lekcja 2: Z wielką mocą przychodzi wielka odpowiedzialność ===== ===== Lekcja 2: Z wielką mocą przychodzi wielka odpowiedzialność =====
  
-W związku z tym, że konfiguracja Xena wymaga licznych uprawnień, będą Państwo pracować na koncie root'​a. Mogą Państwo zatem wszystko zepsuć. W razie odczuwania nieodpartej potrzeby psucia (tudzież wątpliwości,​ czy jakaś komenda czegoś nie zepsuje/nie zepsuła) proszę wołać prowadzącego, za egoistyczne psucie "​samemu"​ zostały obmyślone wyrafinowane kary:+W związku z tym, że konfiguracja Xena wymaga licznych uprawnień, będą Państwo pracować na koncie root'​a. Mogą Państwo zatem wszystko zepsuć. W razie odczuwania nieodpartej potrzeby psucia (także w przypadku ​wątpliwości,​ czy jakaś komenda czegoś nie zepsuje/nie zepsuła) proszę wołać prowadzącego. Za egoistyczne psucie "​samemu"​ zostały obmyślone wyrafinowane kary:
  
   - brak obecności;   - brak obecności;
Linia 48: Linia 48:
   * Podpowiedź 2: zanim zaczną Państwo wołać prowadzącego,​ proszę sprawdzić dokumentację polecenia, np. <code bash>​fdisk --help</​code>​ lub <code bash>man fdisk</​code>​   * Podpowiedź 2: zanim zaczną Państwo wołać prowadzącego,​ proszę sprawdzić dokumentację polecenia, np. <code bash>​fdisk --help</​code>​ lub <code bash>man fdisk</​code>​
  
-===== Lekcja ​3: Konfiguracja sieci =====+===== Lekcja ​4: Konfiguracja sieci =====
  
 Żeby być dobrym gospodarzem,​ trzeba mieć skonfigurowaną sieć. Xen **nie** zrobi tego za nas. Potrzebujemy mostka ("​bridge interface"​),​ który pozwoli nam maszyny gości podpiąć pod fizyczny interfejs sieciowy. Istnieje co najmniej pięć narzędzi potrafiących stworzyć bridge interface: Żeby być dobrym gospodarzem,​ trzeba mieć skonfigurowaną sieć. Xen **nie** zrobi tego za nas. Potrzebujemy mostka ("​bridge interface"​),​ który pozwoli nam maszyny gości podpiąć pod fizyczny interfejs sieciowy. Istnieje co najmniej pięć narzędzi potrafiących stworzyć bridge interface:
Linia 65: Linia 65:
 ip addr show ip addr show
 </​code>​ </​code>​
-i znaleźć połączenia oznaczonego jako '​default'​ (ponownie można użyć '​grep'​).+i znaleźć połączenie posiadające przypisany adres ip.
  
 **Pytanie 4:** Ile jest fizycznych interfejsów sieciowych w systemie i jak się nazywają? **Pytanie 4:** Ile jest fizycznych interfejsów sieciowych w systemie i jak się nazywają?
Linia 95: Linia 95:
 **Pytanie 6:** Proszę ponownie użyć komendy: ''​ip addr show''​. Jakie zmiany wystąpiły w połączeniu domyślnym? **Pytanie 6:** Proszę ponownie użyć komendy: ''​ip addr show''​. Jakie zmiany wystąpiły w połączeniu domyślnym?
  
-===== Lekcja ​4: Instalacja =====+===== Lekcja ​5: Instalacja =====
  
-Zaczynamy łatwo, proszę zainstalować paczkę ''​xen-linux-system''​.+Zaczynamy łatwo, proszę zainstalować paczkę ''​xen-hypervisor''​.
  
 Teraz zacznie się dziać magia: otóż, Xen to taki trochę system operacyjny pasożyt korzystający z zasobów, sterowników,​ etc. systemu gospodarza. Żeby mógł się dossać do naszego systemu musimy go uruchomić jak każdy inny system operacyjny --- z poziomu menadżera bootowania GRUB. Możemy to zrobić ręcznie wybierając odpowiednią pozycję przy włączaniu komputera, ale w przypadku serwerów to głupi pomysł. W przypadku awarii chcemy, żeby Xen włączył się domyślnie. Teraz zacznie się dziać magia: otóż, Xen to taki trochę system operacyjny pasożyt korzystający z zasobów, sterowników,​ etc. systemu gospodarza. Żeby mógł się dossać do naszego systemu musimy go uruchomić jak każdy inny system operacyjny --- z poziomu menadżera bootowania GRUB. Możemy to zrobić ręcznie wybierając odpowiednią pozycję przy włączaniu komputera, ale w przypadku serwerów to głupi pomysł. W przypadku awarii chcemy, żeby Xen włączył się domyślnie.
  
-Kolejność opcji bootowania określona jest przez nazwy plików w katalogu ''/​etc/​grub.d''​. Plik o mniejszym numerku na początku ma większy priorytet. ​Aktualni pliki ''​00_header''​ i ''​05_debian_theme''​ mają największy priorytet, bo to one definiuje ​wygląd menu bootowania. Plik ''​10_linux''​ natomiast to nasz poczciwy debian, który ma aktualnie większy priorytet od Xena: ''​20_linux_xen''​. Najprostszym sposobem, żeby to zmienić, to zmienić nazwę na, np. ''​08_linux_xen''​. Problemem byłoby jednak, gdyby ktoś zaktualizować paczkę ''​xen-linux-system'',​ mogłyby powstać konflikty. Żeby zmienić nazwę pliku z paczki tak, żeby nie doszło do konfliktów,​ trzeba użyć narzędzia ''​dpkg-divert'',​ np.+Kolejność opcji bootowania określona jest przez nazwy plików w katalogu ''/​etc/​grub.d''​. Plik o mniejszym numerku na początku ma większy priorytet. ​Pliki ''​00_header''​ i ''​05_debian_theme''​ mają największy priorytet, bo to one definiują ​wygląd menu bootowania. Plik ''​10_linux''​ natomiast to nasz poczciwy debian, który ma aktualnie większy priorytet od Xena: ''​20_linux_xen''​. Najprostszym sposobem, żeby to zmienić, to zmienić nazwę na, np. ''​08_linux_xen''​. Problemem byłoby jednak, gdyby ktoś zaktualizował paczkę ''​xen-linux-system'',​ mogłyby ​wtedy powstać konflikty. Żeby zmienić nazwę pliku z paczki tak, żeby nie doszło do konfliktów,​ trzeba użyć narzędzia ''​dpkg-divert'',​ np.
  
 <code bash> <code bash>
Linia 117: Linia 117:
 Teraz ponownie włączamy komputer ponownie. Xen powinien być pierwszą opcją na liście. Teraz ponownie włączamy komputer ponownie. Xen powinien być pierwszą opcją na liście.
  
-===== Lekcja ​5: konfiguracja domeny gospodarza =====+===== Lekcja ​6: konfiguracja domeny gospodarza =====
  
 Teraz znowu jesteśmy w grze, nie powinniśmy odczuwać żadnej różnicy, ale... nasz poczciwy debian jest teraz jedną z maszyn (domen) Xena! Wyjątkową,​ bo wyjątkową,​ ale zawsze. Żeby upewnić się, że Xen działa, możemy zalogować się na konto roota i wykonać kilka komend konsoli xena, np. Teraz znowu jesteśmy w grze, nie powinniśmy odczuwać żadnej różnicy, ale... nasz poczciwy debian jest teraz jedną z maszyn (domen) Xena! Wyjątkową,​ bo wyjątkową,​ ale zawsze. Żeby upewnić się, że Xen działa, możemy zalogować się na konto roota i wykonać kilka komend konsoli xena, np.
Linia 128: Linia 128:
 </​code>​ </​code>​
  
-**Pytanie ​6:** Jak się nazywa domena naszego poczciwego Debiana?+**Pytanie ​7:** Jak się nazywa domena naszego poczciwego Debiana?
  
-**Pytanie ​7:** Do czego służy komenda ''​xl top''?​+**Pytanie ​8:** Do czego służy komenda ''​xl top''?​
  
 Zanim przejdziemy do instalacji gości, musimy zadbać o naszego gospodarza. Problemem jest to, że aktualnie gospodarz to zwykła domena, która będzie musiała współdzielić zasoby z innymi gośćmi. W szczególnym przypadku może zabraknąć zasobów dla gospodarza. Dlatego też musimy zarezerwować dla niego trochę pamięci i czasu procesora. Zanim przejdziemy do instalacji gości, musimy zadbać o naszego gospodarza. Problemem jest to, że aktualnie gospodarz to zwykła domena, która będzie musiała współdzielić zasoby z innymi gośćmi. W szczególnym przypadku może zabraknąć zasobów dla gospodarza. Dlatego też musimy zarezerwować dla niego trochę pamięci i czasu procesora.
Linia 143: Linia 143:
 Interesują nas dwie opcje: Interesują nas dwie opcje:
    * ''​dom0-min-mem'',​ której wartość to ram (w megabajtach) zarezerwowany dla domeny gospodarza.    * ''​dom0-min-mem'',​ której wartość to ram (w megabajtach) zarezerwowany dla domeny gospodarza.
-( no) 
    * ''​enable-dom0-ballooning'',​ której wartość to boolean (yes/no), oznaczający,​ czy Xen może pożyczać pamięć od domeny gospodarza ​ dla innych gości.    * ''​enable-dom0-ballooning'',​ której wartość to boolean (yes/no), oznaczający,​ czy Xen może pożyczać pamięć od domeny gospodarza ​ dla innych gości.
  
-**Zadanie:​** Proszę, używając pliku konfiguracyjne, zarezerwować dla gospodarza jeden gigabajt ramu i zabronić Xenowi pożyczania pamięci.+**Zadanie ​1:** Proszę, używając pliku konfiguracyjnego, zarezerwować dla gospodarza jeden gigabajt ramu i zabronić Xenowi pożyczania pamięci.
  
 Plik konfiguracji gruba: ''/​etc/​default/​grub''​ zawiera domyślne opcje bootowania. W szczególności można w nim przekazać dodatkowe argumenty w zmiennej ''​GRUB_CMDLINE_XEN'',​ np. Plik konfiguracji gruba: ''/​etc/​default/​grub''​ zawiera domyślne opcje bootowania. W szczególności można w nim przekazać dodatkowe argumenty w zmiennej ''​GRUB_CMDLINE_XEN'',​ np.
  
 <code bash> <code bash>
-GRUB_CMDLINE_XEN="​opcja=wartosc,opcja2=wartosc2,flaga"+GRUB_CMDLINE_XEN="​opcja1=wartosc opcja2=wartosc ​flaga"
 </​code>​ </​code>​
  
-Aby zarezerwować pamięć dla domeny gospodarza, trzeba ustawić opcję bootowania Xena o nazwie "​dom0_mem"​ na wartość odpowiadającą rezerwowanej pamięci, np. "​512M"​.+Aby zarezerwować pamięć dla domeny gospodarza, trzeba ustawić opcję bootowania Xena o nazwie "​dom0_mem"​ na wartość odpowiadającą rezerwowanej pamięci, np. "​512M" ​(zachęcam jednak, by użyć wyższej wartości).
  
  
-**Zadanie:​** Proszę wpisać odpowiednie wartości w pliku konfiguracyjnym gruba. Następnie zrestartować system. ​+**Zadanie ​2:** Proszę wpisać odpowiednie wartości w pliku konfiguracyjnym gruba. Następnie zrestartować system ​i sprawdzić, czy zmiany rzeczywiście zostały wprowadzone
  
-**Pytanie ​8**: Czy pamiętaliście o wywołaniu komendy, która zawsze trzeba wywołać przy zmianie konfiguracji gruba?+**Pytanie ​9**: Czy pamiętaliście o wywołaniu komendy, która zawsze trzeba wywołać przy zmianie konfiguracji gruba?
  
 ==== Procesor ==== ==== Procesor ====
Linia 170: Linia 169:
     * flagę (czyli opcję bez wartości dom0_vcpus_pin)     * flagę (czyli opcję bez wartości dom0_vcpus_pin)
  
-I znowu magiczna komenda, i znowu restart. ​+I znowu magiczna komenda, i znowu restart, i znowu trzeba sprawdzić, czy wszystko działa według naszych gustów. 
 + 
 +===== Lekcja 7: Instalowanie gości ===== 
 + 
 +Dobra, zbliżamy się do meritum. Żeby stworzyć domenę "​gościa",​ wystarczy użyć komendy: 
 + 
 +<code bash> 
 +xl create <​ścieżka do pliku konfiguracji gościa>​ 
 +</​code>​ 
 + 
 +Rzecz się wydaje prosta, ale brakuje nam pliku konfiguracji maszyny. Moglibyśmy stworzyć własny na podstawie dokumentacji i plików przykładowych:​ ''/​etc/​xen/​xlexample.hvm''​ oraz ''/​etc/​xen/​xlexample,​pvlinux'',​ ale spróbujmy zrobić to prościej. 
 + 
 +Zacznijmy od zainstowania pakietu ''​xen-tools''​. Zawiera on kilka narzędzi, nas zainteresuje w szczególności jedno: ''​xen-create-image''​. 
 + 
 +**Zadanie 3:** Korzystające z dokumentacji tego polecenia, proszę stworzyć obraz spełniający dane warunki: 
 +  * nazwa hosta: "​lab1"​ 
 +  * pamięć 512MB 
 +  * dwa wirtualne procesory 
 +  * sieć skonfigurowana przez dhcp 
 +  * dystrybucja debian stretch 
 +  * zapis obrazu używając lvm, grupy o nazwie ''​sitw''​ (ostatnia opcja w manualu komendy).  
 +    * jeśli lvm nie jest skonfigurowane na hoście, proszę zapisać obraz w postaci pliku w katalogu domowym "​studenta"​ 
 + 
 +Narzędzie pobiera i konfiguruje dla Państwa świeżą instalacje debiana, proszę spędzić 5 minut na lekturze internetu, co to jest lvm. Lub innych konstruktywnych zajęciach. 
 + 
 +**Pytanie 11:** Jakie jest hasło root'a utworzonej maszyny? 
 + 
 +Po udanym utworzeniu obrazu gościa, trzeba uruchomić maszynę. Jej plik konfiguracyjny znajduje się w ''/​etc/​xen''​. Proszę użyć komendy ''​xl create''​ do uruchomienia maszyny. 
 + 
 +**Pytanie 12:** Jaki jest teraz wynik komendy ''​xl list''​. 
 + 
 +**Pytanie 13:** Ile istnieje teraz interfejsów sieciowych na gospodarzu?​ 
 + 
 +===== Lekcja 8: Sterowanie gośćmi ===== 
 + 
 +Aby zalogować się na gościa wystarczy użyć komendy: 
 +<code bash> 
 +xl console <nazwa gościa>​ 
 +</​code>​ 
 + 
 +Mam nadzieję, że pamiętają Państwo hasło roota... Jeżeli uda się Państwu zalogować na maszynę, konsolę można opuścić używając skrótu ''​CTRL+]''​.  
 + 
 +Istnieją oczywiście inne metody logowania do maszyny gościa. Spróbujmy zalogować się na niego przez ssh i stworzyć na nim jakąś usługę, żeby nie czuł się bezużyteczny. 
 + 
 +==== Konfiguracja SSH na gościu ==== 
 + 
 +  - Tworzymy na gościu nowego użytkownika nie-roota (''​xl console''​ + ''​adduser''​). 
 +  - Jako root uruchamiamy ssh (''​systemctl start ssh && systemctl enable ssh''​). 
 +  - Jako root sprawdzamy adres ip interfejsu sieciowego (to chyba już umiemy) 
 +  - Opuszczamy maszynę 
 +   
 +Teraz wystarczy zalogować się poprzez ssh używając nowo stworzonego użytkownika na podanym adresie. 
 + 
 +<code bash> 
 +ssh user@adres 
 +</​code>​ 
 + 
 +**Pytanie 13:** Czy kolega/​żanka z innej grupy też może zalogować się przez ssh na Państwa gościa? 
 + 
 +==== Wirtualny serwer WWW ==== 
 + 
 +  - Logujemy się na konto root'a na gościu 
 +  - Instalujemy pakiet ''​apache2''​ 
 +  - Uruchamiamy usługę ''​apache2''​ (znowy ''​systemctl'',​ chyba już Państwo załapali jak to działa?) 
 +  - Modyfikujemy plik ''/​var/​www/​html/​index.html''​ 
 +  - Z poziomu gospodarza uruchamiamy przeglądarkę i oglądamy stronę pod adresem IP gościa. 
 + 
 +**Pytanie 14:** Czy kolega/​żanka z innej grupy też widzi Państwa stronę? 
 + 
 +===== Lekcja 9: Sprzątanie ===== 
 + 
 +**Zadanie 4:** Zatrzymać gościa jednym z poleceń '​xl'​. 
 + 
 +**Zadanie 5:** Usunąć obraz gościa poleceniem ''​xen-delete-image''​ 
 + 
 +Teraz trzeba tylko przygotować komputer na przybycie kolejnej grupy laboratoryjnej. W tym celu, proszę uruchomić, jako root, komendę: 
 + 
 +<code bash> 
 +wget -O lab_1_clean.tar.gz https://​ai.ia.agh.edu.pl/​wiki/​_media/​pl:​dydaktyka:​sitw:​2016:​xen:​lab_1_clean.tar.gz && tar xf lab_1_clean.tar.gz && cd lab_1_clean && ./​clean_xen_lab1.sh && cd .. && rm -rf lab_1_clean.tar.gz && rm -rf lab_1_clean ​ </​code>​ 
 +Następnie proszę uruchomić komputer ponownie, tym razem bez Xena i zaktualizować konfigurację gruba: 
 +<code bash> 
 +update-grub 
 +</​code>​ 
 + 
 + 
 + 
 + 
 + 
pl/dydaktyka/sitw/2016/xen/lab1.1479150921.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