Rozproszone systemy operacyjne - ćwiczenia/laboratoria |
|
---|---|
Termin zajęć: |
|
Rodzaj zajęć: |
|
Warunek zaliczenia ćwiczeń: |
|
Link do wykładu: | |
Ocena ćwiczenia: |
|
Dziedziny projektu: |
|
Projekt 1: |
|
Projekt 2: |
|
Plan ćwiczeń
-
Zajęcia 1 - (25.02.2013)
Przygotowanie przestrzeni pod maszyny wirtualne. -
Zajęcia 2 - (04.03.2013)
Instalacja maszyn wirtualnych.
Zainstaluj 3 maszyny wirtualne według slajdów. Nazwij maszyny: rso-srv1, rso-srv2, rso-srv3. - Zajęcia 3 - (11.03.2013)
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 - (18.03.2013)
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 - (25.03.2013)
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 - (8.04.2013)
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 7 (15.04.2013)
Oddawanie 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)
- 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)
- Wykoany przez użytkownika wpis zanim pojawi się na tablicy powinien trafić do kolejki (w rabbitmq) do zaakceptowania przez administratora. Po zaakceptowaniu wpis trafia do bazy i jest wyświetlany. W przypadku odrzucenia jest zapisywany jako odrzucony wpis (do późniejszego przejrzenia). (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 (10pkt), 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)
- Zajęcia 8 (22.04.2013)
Instalacja maszyn wirtualnych i środowisk deweloperskich. - Zajęcia 9 (29.04.2012)
Aplikacje działające w cloud. - Zajęcia 10 (06.05.2013)
Aplikacje działające w cloud - Web Role. Testowanie aplikacji korzystających z Compute Emulatora i Storage Emulatora.
Przydatne howto:- Aplikacja webserwis w Winwows Azure
- Aplikacja przechowująca pliki w Windows Azure Storage
- Aplikacja Księgi Gości korzystająca z Windows Azure Storage - tabelki (tutorial zawiera więcej funkcji - również przetwarzanie w tle, które zostanie przerobione na następnych zajęciach)
- 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 (13.05.2013)
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 (20.05.2013)
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 (27.05.2013)
Przegląd prezentacji i projektów. - Zajęcia 14 (03.06.2013)
Prezentacje studentów. - Zajęcia 15 (10.06.2013)
Zaliczenie projektu nr 2. - Zajęcia 16 (17.06.2013)
Poprawki do projektów + wpisanie ocen. Spotkanie w czasie sesji. Poniedziałek, 17:15.
17.06
15:30 - Marcin Skibicki15:45 - Arkadiusz Talarczyk16:00 - Szymon Sadło16:15 - Damian Józefowski16:30 - Grzegorz Bednarski16:45 - Łukasz Brajer17:00 - Michał Gaik17:15 - Damian Grabowski17:30 - Daria Grams17:45 - Szymon Grzegorek18:00 - Paweł Małecki18:15 - Kamil Kuczkowiak18:30 - Mateusz Kaźmierczak18:45 - Kamil Kubiak19:00 - Maciej Lewandowski19:15 - Maciej Król19:30 - Konrad Siamro19:45 - Piotr Szczepaniak20:00 -20:15 -20:30 -20:45 -
18.06
08:30 - Tomasz Twardowski08:45 - Adrian Warkocz09:00 - Aleksandra Wichert09:15 - Marcin Żurowski09:30 - Krzysztof Narczyński09:45 - Michał Szczudło10:00 -10:15 -
02.07 (Termin poprawkowy - zaliczony jeszcze jako pierwsze podejście, A1-22,23):
13:00 - Daria Grams13:15 - Adrian Warkocz13:30 - Szymon Grzegorek13:45 - Kamil Kuczkowiak
04.07 (Termin poprawkowy - zaliczony jeszcze jako pierwsze podejście, A1-22,23):
10:45 - Mateusz Kaźmierczak11:00 - Paweł Małecki11:15 - Marcin Skibicki11:30 - Piotr Szczepaniak11:45 - Michał Szczudło12:00 - Tomasz Twardowski12:15 - Konrad Siamro