Nazwa przedmiotu:
Wirtualne środowiska obliczeniowe
Koordynator przedmiotu:
Rajmund Kożuszek
Status przedmiotu:
Fakultatywny dowolnego wyboru
Poziom kształcenia:
Studia II stopnia
Program:
Informatyka
Grupa przedmiotów:
Przedmioty techniczne - zaawansowane
Kod przedmiotu:
WSO
Semestr nominalny:
3 / rok ak. 2021/2022
Liczba punktów ECTS:
4
Liczba godzin pracy studenta związanych z osiągnięciem efektów uczenia się:
1. liczba godzin kontaktowych – 45 godz., w tym obecność na wykładach 30 godz., spotkania projektowe 15 godz. 2. praca własna studenta – 70 godz., w tym przygotowanie do kolokwium 20 godz., realizacja projektu 50 godz. Łączny nakład pracy studenta wynosi 115 godz., co odpowiada 4 pkt. ECTS.
Liczba punktów ECTS na zajęciach wymagających bezpośredniego udziału nauczycieli akademickich:
1,56 pkt. ECTS, co odpowiada 45 godz. kontaktowym
Język prowadzenia zajęć:
polski
Liczba punktów ECTS, którą student uzyskuje w ramach zajęć o charakterze praktycznym:
1,74 pkt. ECTS, co odpowiada 50 godz. poświęconym na przygotowanie projektu
Formy zajęć i ich wymiar w semestrze:
  • Wykład30h
  • Ćwiczenia0h
  • Laboratorium0h
  • Projekt15h
  • Lekcje komputerowe0h
Wymagania wstępne:
Nie określa się wymagań odnośnie zaliczenia przedmiotów poprzedzających, jednakże zalecane jest aby studenci dysponowali pewną wiedzą na temat systemów operacyjnych i sieci komputerowych czemu sprzyja wcześniejsze uczestnictwo w takich przedmiotach jak Systemy Operacyjne, Administrowanie Systemem Unix czy Sieci Komputerowe.
Limit liczby studentów:
30
Cel przedmiotu:
Celem przedmiotu jest wprowadzenie do projektowania wszystkich elementów nowoczesnych środowisk obliczeniowych w tym sieci łączącej maszyny i architektur przechowywania danych a także przybliżenie zagadnień wymiarowania zasobów czy alokacji i szeregowania zadań.
Treści kształcenia:
Wykład: Na treść wykładów składają się następujące bloki tematyczne: • Wprowadzenie do zagadnień związanych z wirtualizacją i konteneryzacją, przykłady typowych architektur klastrowych i chmurowych, systemy operacyjne, przykłady zastosowań. • Wirtualizacja: rodzaje wirtualizacji, zasada działania, tworzenie obrazów systemów, standardy, typowe operacje: migracja, klonowanie, metody przydzielania zasobów: thin provisioning. • Omówienie podstawowych środowisk wirtualizacyjnych: KVM, VMWare, Xen – porównanie architektur i możliwości, przykłady zastosowania. • Zagadnienia związane z przygotowaniem pamięci dyskowej – technologie: RAID, JBOD, LVM, macierze dyskowe, rozproszone systemy plików – zasady wykorzystania i projektowania, technologie transmisji danych, przechowywanie danych blokowych i plikowych, przykłady wykorzystania. • Organizacja sieci dla klastrów i chmur: przegląd technologii sieciowych (Ethernet 1/10/100Gb, InfiniBand, sieci dla pamięci masowych), topologie sieci w ramach klastra – metody zapewnienia wysokiej dostępności, wydajności i skalowalności. Wykorzystanie redundancji łącz i urządzeń sieciowych, przegląd typowych topologie sieci. • Sieci wirtualne w ramach pojedynczego gospodarza wirtualizacji - zarządzanie w warstwie 2 ISO/OSI. Wykorzystanie protokołów: 802.1Q (sieci wirtualne VLAN), 802.1ad (Q-in-Q). Wykorzystanie możliwości warstwy 3 ISO/OSI: ruting statyczny i dynamiczny, polityki rutingowe, kształtowanie i filtrowanie ruchu - elementy bezpieczeństwa. Porównanie technologii dla KVM i VMWare. • Budowa sieci dla klastra, wykorzystanie narzędzi dla uproszczenia zarządzania i automatyzacji provisioningu. Sieci definiowane programowo (SDN) - wykorzystanie w dużych klastrach – przegląd jakiś rozwiązań: OpenFlow, VMWare NSX. • Zagnieżdżona wirtualizacja: przykłady, problemy: ograniczenia w budowie sieci wirtualnych. • Systemy zarządzania klastrami i chmurami: OpenStack, oVirt. • Konteneryzacja: zasada, przykłady rozwiązań: Docker, Kubernetes. • Modelowanie środowisk klastrowych i chmurowych, wybrane metody optymalizacji przydziału zasobów i alokacji zadań. Równoważenie obciążeń i szeregowanie zadań jako metody bezpośredniego sterowania wydajnością. • Symulacja środowisk klastrowych i chmurowych. Symulator Cloudsim. • Zagadnienie związane z oszczędnością energii: sterowanie wydajnością na poziomie procesora, systemu operacyjnego i klastra. Przykłady definicji i metod rozwiązania zadań. Uwzględnienie zużycia energii przez sieć. Przegląd technologii i standardów związanych z energooszczędnością: ACPI, 802.3az, energooszczędne sterowniki procesora w Linuksie, energooszczędne topologie sieci. Projekt: Projekt polega na zaprojektowaniu i implementacji w postaci prototypu o ograniczonych możliwościach lub modułu symulatora wybranych fragmentów typowego systemu wykorzystującego architekturę klastra bądź chmury. W realizacji projektu mogą być wykorzystane elementy rozwiązań rozwijanych przez zespół autorski w ramach prowadzonych projektów badawczych takie jak np. energooszczędne algorytmy przydziału zasobów. Przykładowe tematy projektu: Projekt 1: Zaprojektuj architekturę klastra dla systemu przetwarzającego dane z dużego zestawu czujników. Architektura powinna uwzględniać możliwość wydajnego zapisywania i udostępniania danych do dalszej obróbki, oraz wysoką skalowalność. Sprawdź podstawowe założenia architektury wdrażając kluczowe elementy w ograniczonym środowisku (pojedynczy komputer z wirtualiztorem). Projekt 2: Zaprojektuj architekturę małego klastra umożliwiającego przetwarzanie zadań obliczeniowych w ramach pewnej organizacji. Zadbaj o wysoki poziom bezpieczeństwa i niskie koszty operacyjne. Sprawdź podstawowe założenia architektury wdrażając kluczowe elementy w ograniczonym środowisku (pojedynczy komputer z wirtualiztorem). Projekt 3: Zaimplementuj wskazany algorytm szeregowania zadań w symulatorze CloudSim. Projekt 4: Zaimplementuj wskazany algorytm alokacji zasobów w symulatorze CloudSim.
Metody oceny:
Uzupełnieniem wykładu jest projekt, w ramach którego studenci wykonują zadanie związane z projektowaniem i implementacją wybranych elementów prezentowanych architektur. Jest on realizowany w zespołach trzyosobowych i składa się z następujących etapów: Projekt wstępny (2tyg.), weryfikacja koncepcji (2. tyg), implementacja i testowanie (4 tygodnie). W pierwszym etapie studenci przygotowują wstępny projekt, który jest przedstawiany w formie pisemnej do akceptacji prowadzących. Pozwala to, w następnym etapie, wprowadzić poprawki i przygotować ostateczny projekt implementowany w trzeciej fazie. Wynikiem implementacji jest, oprócz działającego kodu, raport z testów zawierający wnioski dotyczące badanego rozwiązania.
Egzamin:
nie
Literatura:
Książki: • Dac-Nhuong Le, Raghvendra Kumar, Gia Nhu Nguyen, Jyotir Moy Chatterjee, Cloud Computing and Virtualization, John Wiley & Sons, 2018 • Ken Gray, Thomas D. Nadeau, Cloud Computing and Virtualization, Morgan Kaufmann, 2016 • Edouard Bugnion, Jason Nieh, Dan Tsafrir, Hardware and Software Support for Virtualization (Synthesis Lectures on Computer Architecture), Morgan & Claypool Publishers, 2017 Dokumentacja pakietów i przewodniki internetowe: • Xen: https://wiki.xenproject.org/wiki/Main_Page • VMWare: https://www.vmware.com/support/pubs/ • KVM: https://www.linux-kvm.org/page/Documents • Docker: https://docs.docker.com/get-started/
Witryna www przedmiotu:
https://usosweb.usos.pw.edu.pl/kontroler.php?_action=katalog2/przedmioty/pokazPrzedmiot&prz_kod=103A-INISY-MSP-WSO
Uwagi:
(-)

Efekty uczenia się