To jest stara wersja strony!
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ę:
cd /home/student/sitw && ./prepare_xen_lab2.sh && update-grub
reboot
Po ponownym uruchomieniu komputera powinien włączyć się znajomy już Xen.
Podczas laboratorium przydatna może okazać się dokumentacja Xen'a.
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ć skonfigurowana przez dhcp
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 komedy
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 (/etc/xen/
) do nowego pliku /etc/xen/lab2-pvhvm
.
Zadanie 4: Należy wprowadzić do pliku pewne zmiany:
nazwa gościa powinna brzmieć lab2-pvhvm
powinien mieć 512MB ramu
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
:
wget http://cdimage.debian.org/debian-cd/8.6.0/amd64/iso-cd/debian-8.6.0-amd64-netinst.iso -o /home/student/sitw/images/debian-install.iso
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:
dd if=/dev/zero of=./swap.img bs=1024k seek=128 count=0
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 pvm/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
do pliku lab2-hvm
i dokonać trzech zmian:
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 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 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:
xl help sched-credit
oraz 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. Następnie:
<code bash>
cd /home/student/sitw && ./clean_xen_lab2.sh
</code>
I na koniec proszę uruchomić komputer ponownie**, tym razem bez Xena i zaktualizować konfigurację gruba:
update-grub