Rozproszone systemy operacyjne - ćwiczenia/laboratoria |
|
---|---|
Termin zajęć: |
|
Rodzaj zajęć: |
|
Warunek zaliczenia ćwiczeń: |
|
Link do wykładu: | |
Ocena ćwiczenia: |
|
Dziedziny projektu: |
|
Projekt 1: |
|
Projekt 2 (uwaga temat może się zmienić): |
|
Plan ćwiczeń
-
Zajęcia 1 - (25.02.2014)
Przygotowanie przestrzeni pod maszyny wirtualne. -
Zajęcia 2 - (05.03.2014)
Instalacja maszyn wirtualnych.
Zainstaluj 3 maszyny wirtualne według slajdów. Nazwij maszyny: rso-srv1, rso-srv2, rso-srv3. - Zajęcia 3 - (12.03.2014)
Sesje w PHP.
Instalacja MySQL.
Mysql w PHP.
Sesje opisane na php.net
Instalacja rozproszonego systemu WWW:- apt-get install apache2-mpm-prefork
- apt-get install apache2-prefork-dev
- apt-get install php5 php5-gd php5-mysql php5-pgsql
- Napisz serwis www w języku php (lub innym zatwierdzonym przez prowadzącego) działający na jednym z serwerów wirtualnych, który będzie utrzymywał sesję użytkownika:
- w sposób zwykły - przez funkcję session_start() dostępną w języku PHP
- w bazie danych - zaimplementuj funkcję startuj_sesje(), która utworzy sesję jeśli nie istnieje i zapisze w bazie odebrane od użytkownika dane w $_POST[\'login\'] i $_POST[\'pass\'], a jeśli sesja istnieje to ustawia zmienną $SESJA[\'user\'] i $SESJA[\'haslo\'] z ostatnio zapamiętanej sesji oraz dokona uwierzytelnienia.
- Zajęcia 4 - (19.03.2014)
Konfiguracja LVS. Konfiguracja keepalived.
Zadanie:- Zainstaluj na wszystkich maszynach wirtualnych serwer http oraz php
- Umieść w /var/www na wszystkich serwerach statyczny plik html
- Zainstaluj klaster aplikacji WWW - LVS, sprawdź czy konfiguacja działa ze statycznymi plikami
- Zainstaluj zaimplementowane na poprzednich zajęciach serwisy www (w php lub innym zatwierdzonym przez prowadzącego języku) na maszynach SW1 i SW2
- Przetestuj dzialanie serwisu - w jednym i drugim przypadku zakladajac ze jeden wezel sieci padl - symulacja (/etc/init.d/apache stop).
- Skonfiguruj serwer keepalived według wytycznych
- Zmień konfigurację keepalived tak by uważał jeden z srv1/srv2 za działający w zależności od tego czy srv1/srv2 możę się pomyślnie połączyć do mysql (podpowiedź - należy dopisać skrypt php).
- Zajęcia 5 - (26.03.2014)
Konfiguracja Failover HA dla mysql.
Ustawienie replikacji HA w mysql
Zadanie:- ustaw replikacje master-slave dla dwoch serwerow
- podziel w swojej aplikacji odczyty i zapisy tak by zapisy odwoływały się do serwera master, a odczyty były równoważone przez LVS
- ustaw w demonie Keepalived automatyczne rozdzielanie zapytań odczytu na oba serwery
Opis protokołu VRRP (RFC 2338)
Zadanie:- zrealizuj konfiguracje według pliku konfiguracyjnego
- przetestuj działanie na trzeciej maszynie (według opisu na końcu pliku z konfiguracją VRRP
- Zajęcia 6 - (02.04.2014)
Serwer Redis
Zadaine:- zainstaluj serwer redis
- lista komend dostepnych w redis
- zainstuj paczke z redis w php
- ustaw przechowanie sesji zrealizowane na poprzednich zajeciach tym razem w REDIS
- Ultra Monkey - rozwiazanie oparte o LVS i Heartbeat
- Linux Director Daemon (ldirectord) - oprogramowanie utrzymujace uslugi oparte o LVS
- Piranha - oprogramowanie stworzone przez Red Hat Inc. bazujace wyjsciowo na otwartym kodzie LVS, jednake (wg informacji Red Hat) z pewnymi ulepszeniami.
- Pacemaker - oprogramowanie do monitorowania zasobów klastra
- Heartbeat - Dokumentacja
- Corosync - system do zapewnienia wysokiej dostępności
- Zajęcia - (09.04.2014)
Festiwal Nauki i Sztuki. - Zajęcia 7 (16.04.2014)
Sprawdzenie poprawności konfiguracji klastrów oraz własnych implementacji sesji. Wytyczne dla projeku 1.
Wymagania aplikacji:- Aplikacja ma obslugiwac logowanie (pierwsze utworzone konto będzie kontem adminstratora). (5pkt)
- Aplikacja ma obslugiwac edytowanie informacji o profilu osoby która się zalogowała (Imie, Nazwisko, Adres, Miasto,NIP,PESEL) (5pkt)
- Aplikacja działać niezależnie od serwera WWW obslugujacego obecnie ruch (15pkt - sesja w REDIS, 10pkt - sesja w MySQL, 0pkt gdy sesja nie jest sesją)
- Aplikacja powinna implementować tablicę (analogiczną do facebook), na której każdy użytkownik może coś napisać (w odróżnieniu od facebook jest tylko jedna tablica.(5pkt)
- Wykonany przez użytkownika wpis zanim pojawi się na tablicy powinien trafić do kolejki (w rabbitmq) do zaakceptowania przez administratora oraz do drugiej kolejki, w której wpis zostanie przetworzony pod kątem zawierania słów "RSO2014". Wpis po zaakceptowaniu przez administratora trafia do bazy i jest wyświetlany na tablicy. W przypadku odrzucenia jest zapisywany jako odrzucony wpis (do późniejszego przejrzenia). Jeśli wpis zawierał słowa RSO2014 aplikacja poinformuje o tym fakcie wysyłając email na adres studenta. (15pkt)
- Aplikacja powinna korzystać z memcache do wyświetlania zawartości tablicy (15pkt).
- Aplikacja ma działać na dwóch serwerach www, do których połączenie będzie odbywało się przez serwer LVS (15pkt), który będzie posiadał skonfigurowaną usługę Keepalived(10pkt)
- Każdy serwer www ma korzystać z połączenia z bazą danych Master w zapytaniach zapisu, a w przypadku jego niedzaiłania informować o przerwie serwisowej (10pkt)
Przyniesienie działającego kodu nie gwarantuje otrzymania punktów. Do każdego zadania prowadzący będzie zadawał pytania związane z zagadanieniem i dopiero w przyapdku poprawnej odpowiedzi na pytanie prowadzący przyzna punkty. - Zajęcia 8 (30.04.2014)
Instalacja maszyn wirtualnych i środowisk deweloperskich. - Zajęcia 9 (07.05.2014)
Aplikacje działające w cloud. - Zajęcia 10 (14.05.2014)
Aplikacje działające w cloud - Web Role. Testowanie aplikacji korzystających z Compute Emulatora i Storage Emulatora.
Przydatne howto: Dla chętnych: Zadanie:- napisz usługę dla Windows Azure, która listuje dostępne pliki w kontenerze Azure Storage o nazwie podanej przez użytkownika
- napisz usługę dla Windows Azure, która przechowuje i umożliwia modyfikację informacji o użytkownikach (imie, nazwisko, login, haslo, adres, data urodzenia, pesel)
- napisz usługę dla Windows Azure, która uwierzytelnia użytkownika sprawdzając czy istnieje jego login i hasło w tabeli Azure Storage
- Zajęcia 11 (21.05.2014)
Aplikacje działające w cloud - Worker Role.- Sprawdzenie zadań z zajęć poprzednich
- napisz usługę dla Windows Azure, która odbiera od użytkwnika plik z danymi wsadowymi (Web Role), a następnie przekaże te zadania do obliczenia przez aplikację działającą w tle(Worker Role). Każda będzie postaci 3 cyfry, znak "+", 3 cyfry, znak enter, np. "100 + 013\n" (Uwaga: celem jest przetwarzanie w tle, a nie analiza pliku wsadowego i wykonywanie obliczenia. Można zaproponować własne zadanie.),
- Zajęcia 12 (28.05.2014)
GlusterFS
Omówienie specyfikacji projektów
Napisz aplikację Web w Windows Azure, której celem jest stworzenie organizatora ToDo. Parametry punktacji:- Aplikacja obsługuje zakładanie kont użytkowników oraz logowanie (10 pkt)
- Aplikacja obsługuje edytowanie informacji o profilu osoby która się zalogowała (Imie, Nazwisko, login, hasło, adres email) (10pkt)
- Aplikacja działa niezależnie od ilości powołanych instancji WebRole (25pkt - sesja przechowana w Windows Azure)
- Aplikacja umożliwia dodawanie wpisów ToDo zawierających:
- Tytuł
- Opis
- Data i godzina przypomnienia
- Data wykonania
- Aplikacja raz dziennie (godzina 00:00) wysyła email użytkownikom informacje z przypomnieniem listy wszystkich zadań z ToDo z ustawionym terminem wykonania na dany dzień. Aplikacja ma sprawdzać co minutę bazę wpisów ToDo. Jeśli użytkownik miał na swoim koncie wpis ToDo z ustawionym przypomnieniem na daną godzinę, wówczas aplikacja ma mu o tym przypomnieć wysyłając email. (25pkt - Worker).
- Aplikacja umożliwić przeglądanie ToDo w formie kalendarza z możliwością przejrzenia konkretnego dnia (15pkt) i listy bieżącego ToDo, tj. niewykonanych zadańz poprzednich dni i zadań z ustawionym terminem na dzisiaj (10pkt)
- Dodawanie do wpisu ToDo obrazka (5pkt), który zostanie przekonwertowany do 2 rozmiarów (5pkt)
- Aplikacja umożliwia ustawienie zadania jako wykonane i nie przypomina już o nim i zadanie nie pojawia się w liście bieżącego ToDo. (10pkt)
- Zajęcia 13 (04.06.2014)
Przegląd prezentacji i projektów. - Zajęcia 14 (11.06.2013)
Prezentacje studentów. - Zajęcia 15 (18.06.2013)
Zaliczenie projektu nr 2.