Rozproszone systemy operacyjne

Termin zajęć:
  • wykład - środa, 15:30, A2-24
  • ćwiczenia - poniedziałek, 17:15, A2-22-23
Rodzaj zajęć:
  • wykład - 30h,
  • ćwiczenia - 30h.
Warunek zaliczenia ćwiczeń:
  • Obecności - maksymalnie 3 niebecności w semestrze.
  • Co najmniej 50% punktów.
Warunek zaliczenia wykładu:
  • Co najmniej 50% punktów.
Ocena ćwiczenia:
  • Projekty - 75%
  • Obecności - 25%
Ocena wykład:
  • Obecności - 20%
  • Referat - 20%
  • Egzamin - 60%
  • (w przypadku zaliczenia na Referatu i Obecności na poziomie co najmniej 75% - możliwość przepisania wyniku z Zaliczenia)
Dziedziny projektu:
  • rozpraszanie serwisów - Linux
  • Aplikacja Cloud
Referat:
  • Referat wygłosi 3 osobowa grupa
  • Referat powinien składać się z 3 części:
    • prezentacja zagadnienia - 30 minut
    • dokumentacja zagadnienia
    • przykładowa implementacja i zadania ćwiczeniowe dla zagadanienia
  • Termin przygotowania wszystkich części - tydzień przed wygłoszeniem.
  • Termin przygotowania wszystkich części - tydzień przed wygłoszeniem.
Projekt 1:
  • Skonfigurować klaster serwisów WWW działających w trybie Active-Passive
  • Ustawić demon keepalived tak by wykrywał automatycznie nieobecność jednego węzła w sieci
  • Stworzyć stronę utrzymującą sesję zapewnioną przez php
  • Zaimplemenetować własny mechanizm utrzymania sesji w bazie danych
  • Stworzyć replikację bazy danych
  • Zaprezentować działanie z symulowaniem awarii różnych elementów klastra
Projekt 2:
  • napisać aplikację według specuyfikacji opisanej na zajęciach
  • projekt można przygotowywać w grupach 2 osobowych (obie osoby muszą podzielić się w miarę równo zadaniami)

Plan wykładu

  • Wykład 1 (*)
    Wprowadzenie (wykład skrócony ze względu na zmianę laboratoriów).
  • Wykład 2 (*)
    Podstawowe metody rozpraszania - wprowadzenie do Rozprosoznych Systemów Operacyjnych.
  • Wykład 3 (*)
    Podstawowe metody rozpraszania - II (Linux Virtaul Server).
  • Wykład 4 (*)
    Protokół VRRP. Przypomnienie zagadanień przed sprawdzianem.
  • Wykład 5 (*)
    Zaliczenia projektów.
  • Wykład 6 (*)
    Systemy cloud.
  • Wykład 7 (*) (18.04.2012)
    Windows Azure.
  • Wykład 8 (*) (25.04.2012)
    Wykład nie odbędzie się - przeznaczony na instalajcę środowisk wirtualnych i aplikacji deweloperskich.
  • Wykład 9 (*) (09.05.2012)
    Dzień sportu - piknik.
  • Wykład 10 (*) (16.05.2012)
    Rozproszone system plików.
  • Wykład 11 (*) (23.05.2012)
    Active Directory.
  • Wykład 12 (30.05.2012)
    Klastry obliczeniowe.
  • Wykład 13 (06.06.2012)
    Referaty studentów.
  • Wykład 14 (13.06.2012)
    Referaty studentów.
  • Wykład 15 (13.06.2012)
    Wykład dodatkowy.

Plan ćwiczeń

  • Zajęcia 2
    Instalacja maszyn wirtualnych.
  • Zainstaluj 3 maszyny wirtualne według slajdów. Nazwij maszyny: rso-srv1, rso-srv2, rso-srv3.
  • Zajęcia 3
    Konfiguracja LVS.
    Zadanie:
    • Zainstaluj klaster aplikacji WWW
    • Skonfiguruj serwer keepalived
  • Zajęcia 4
    Sesje w PHP.
    Instalacja MySQL.
    Mysql w PHP.
    Instalacja rozproszonego systemu WWW.
    Zadanie:
    • Napisz serwisy www w jezyku php, które będą utrzymywały 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.
    • Zainstaluj zaimplementowane serwisy www 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).
  • Zajęcia 5
    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
  • Zajęcia 6
    Konfiguracja VRRP.
  • Zajęcia 7
    Oddawanie projeku 1.

    Wymagania aplikacji:
    • Aplikacja ma obslugiwac logowanie (lista loginow i hasel moze byc stala)
    • (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(20pkt - sesja w BD)
    Wymagania klastra:
    • 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 do odczytu przez klaster (15pkt) skonfigurane przez 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
    Pytania dodatkowe prowadzącego - 20pkt.
  • Zajęcia 8 (16.04.2012)
    Instalacja maszyn wirtualnych i środowisk deweloperskich.
  • Zajęcia 9 (23.04.2012)
    Aplikacje działające w cloud.
  • Zajęcia 10 (07.05.2012)
    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 (14.05.2012)
    Aplikacje działające w cloud - Worker Role.
    • Sprawdzenie zadań z zajęć poprzednich
    Przydatne howto: Dla chętnych: Zadanie:
    • 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 (21.05.2012)
    Omówienie specyfikacji projektów Napisz aplikację Web w Windows Azure, której celem jest tworzenie archiwum stron www:
    • Aplikacja ma obslugiwac zakładanie kont użytkowników oraz logowanie (10 pkt)
    • Aplikacja ma obslugiwac edytowanie informacji o profilu osoby która się zalogowała (Imie, Nazwisko, Adres, Miasto,NIP,PESEL) (10pkt)
    • Aplikacja ma działać niezależnie od ilości powołanych instancji (25pkt - sesja przechowana w Windows Azure)
    • Aplikacja ma przyjmować od zalogowanego użytkownika pliki z harmonogramem zadań do przetworzenia (25pkt - Worker).
      Kazdy plik zawiera linie postaci "A B C D E adres_http\n", gdzie A,B,C,D,E mają postać tak jak pierwsze pieć pozycji w pliku crontab (http://linux.about.com/od/commands/l/blcmdl5_crontab.htm), np. "5 0 * * * http://onet.pl" - oznaczające harmonogram tworzenia zrzutu strony http://onet.pl codziennie 5 minut po północy.
    • Aplikacja umożliwi przeglądanie archiwum zrzuconych stron w postaci plików html(25pkt)
    • W przypadku braku zmiany strony WWW nie przechowujemy jej w archiwum, a zapisujemy odnośnik(5pkt)
    • Zapisywanie obrazków, css i filmów (5 pkt)
    • Prezentacja wyników w postaci czytelnej dla przeglądarki (10pkt)
  • Zajęcia 13 (28.05.2012)
    Analizy projektów.
  • Zajęcia 14 (04.06.2012 - przeniesione na 12.06.2012!!!, godzina 8:30-12:30)
    Zaliczenie projektu nr 2.
  • Zajęcia 15 (12.06.2012)
    Wypisywanie ocen.

Tematy referatów:

OS:

  • budowa i działanie systemu Amoeba (2 osobowe)
  • budowa i działanie OpenSSI (3 osobowy) (nie SSL :]) (zajęty)
  • Rocks Cluster Distribution (2 osobowy) (zajęty)
  • Red Hat Enterprise Linux AS (2 osobowy) (zajęty)

Rozproszone systemy plików:

  • Coda File System (3 osobowy)
  • Big Table (3 osobowy) (zajęty)
  • Google File System (3 osobowy) (zajęty)
  • Andrew File System (3 osobowy)
  • Microsoft DFS (3 osobowy)

Grid:

  • Globus Toolkit (3 osobowy) (zajęty)

Cloud:

  • Amazon Elastic Compute Cloud (3 osobowy) (zajęty)
  • Amazon Simple Storage Service (3 osobowy) (zajęty)

Usługi katalogowe:

  • Network Information Service (3 osobowy)
  • Windows Active Directory (3 osobowy) (uwaga - można podzielić na kilka tematów mniejszych)