Λειτουργικά Συστήματα ΙΙ Διδάσκων: Παναγιώτης Τριανταφύλλου, καθηγητής (peter@) Ιωάννης Κωνσταντίνου, Π.Δ. 407/80 (ikons@cslab.ntua.gr) Επικουρικό: Γιάννης Πατλάκας (patlakas@) Γιώργος Σφακιανάκης (sfakianaki@)
Λειτουργικά Συστήματα ΙΙ Λειτουργικά Συστήματα σε Υπολογιστικά νέφη (Clouds) Συστήματα Επεξεργασίας δεδομένων Κατανεμημένα συστήματα αρχείων Database-like συστήματα Αποθήκευση Ευρετηρίαση Ανάκτηση Ερωτήματα
Δομή Μαθήματος 1/2 Γενικά για τα clouds MapReduce Cloud management software MapReduce Google File System (GFS) και HDFS RDBMS vs Key-Value Stores (NoSQL) Ανακοίνωση πρώτης εργασίας, Φροντιστήριο
Δομή Μαθήματος 2/2 Row, Key-value Stores Indexing στο Cloud Big Table, HBase Cassandra Dynamo Sherpa/PNUTS Indexing στο Cloud Άλλα θέματα στο Cloud VMs
Ορισμός Cloud Computing (wikipedia) “Παροχή υπολογιστικής ισχύος ως υπηρεσία και όχι σαν προϊόν. Πόροι, λογισμικό και πληροφορίες παρέχονται σε άλλους υπολογιστές και συσκευές σαν υπηρεσίες κοινής ωφελείας (πχ σαν το ρεύμα της ΔΕΗ) μέσω ενός δικτύου (συνήθως του Internet)” Διαβάστε: “Above the clouds: A Berkeley View of Cloud Computing” http://bit.ly/AiALuh
Τι κάνει? Τα νέφη υπολογιστών είναι ένα μοντέλο που επιτρέπει: Τα νέφη υπολογιστών είναι ένα μοντέλο που επιτρέπει: πρόσβαση μέσω δικτύου σε διαμορφώσιμους πόρους, όπως: υπολογιστική ισχύ, δίκτυα, αποθηκευτικό χώρο, εφαρμογές, υπηρεσίες, κλπ που μπορούν να δεσμεύονται και να απελευθερώνονται ταχέως με ελάχιστη διαχειριστική προσπάθεια ή επέμβαση από τον πάροχο της υπηρεσίας (elasticity).
Πώς το κάνει? Μεγάλα Data Centers Συστοιχίες από χιλιάδες υπολογιστές και αποθηκευτικές μονάδες Μεσαίας ισχύος υλικό (commodity hardware) Αποτυχίες κόμβων συνηθισμένες Διάφορα μοντέλα υπολογισμού / Ανομοιογενείς υπολογιστικοί πόροι Apple, North Carolina USA
Πώς το κάνει? Βασίζεται σε ήδη υπάρχουσες τεχνολογίες και πρακτικές Βασίζεται σε ήδη υπάρχουσες τεχνολογίες και πρακτικές Virtual machines Οn-demand, self-service, pay-as-you-go model Παροχή υπηρεσιών μέσω διαδικτύου Open Source Μοιάζει με προηγούμενα μοντέλα Grid computing Volunteer computing Peer to Peer Computing
Virtualization Virtualized Αρχιτεκτονική Παραδοσιακή Αρχιτεκτονική Εφ Εφ Εφ Εφ Εφ Εφ Παραδοσιακή Αρχιτεκτονική guest Λ.Σ. Guest Λ.Σ. Guest Λ.Σ. Εφαρμογή Εφαρμογή Εφαρμογή Hypervisor (kvm-xen-virtualbox-vmware) Λειτουργικό Σύστημα Host Λειτουργικό Σύστημα Υλικό Υλικό
Τυπικές εφαρμογές... Προβλήματα μεγάλης κλίμακας Crawling, Indexing, Searching, Web 2.0 εφαρμογές επιστημονικοί υπολογισμοί Επεξεργασία πολλών PB τη μέρα Διαδραστικές Web Εφαρμογές Google (mail, maps, docs, ads, …), Facebook, Yahoo, Amazon Startups: foursquare (ec2), dropbox (s3), κλπ.
Χαρακτηρηστικά Κλιμακωσιμότητα Διαθεσιμότητα Αξιοπιστία Ασφάλεια Ευελιξία Λειτουργικότητα Αποδοτικότητα Μετρήσιμο σύστημα Απλά APIs Κατανομή φόρτου
Ανάγκη για ελαστικότητα Over-provisioning, κοστίζει. Ελαστικό, pay-as-you-go Μόνο στο cloud!!! Under-provisioning, δεν λειτουργεί πάντα.
Υπολογιστικά νέφη Λύνουν πολλά προβλήματα, αλλά: Λύνουν πολλά προβλήματα, αλλά: Προσθέτουν πολυπλοκότητα Εξισορρόπηση φόρτου Συνέπεια Συγχρονισμός Ανοχή σε σφάλματα Ασφάλεια - Ιδιωτικότητα
Επίπεδα Υπηρεσιών 1 Χρήση προσφερόμενων υπηρεσιών π.χ. Google maps, mail, docs,… Software as a Service (SaaS) Παίρνεις ένα καλό και εύχρηστο API Και φτιάχνεις τις εφαρμογές σου π.χ. Google App Engine Platform as a Service (PaaS) Νοίκιασε υπολογιστές (υπολογιστική ισχύ, κύκλους) και αν θες παραπάνω τους παίρνεις όταν τους χρειάζεσαι π.χ. Amazon EC2 Infrastructure as a Service (IaaS)
Επίπεδα Υπηρεσιών 2
Τυπική αρχιτεκτονική cloud
Τοποθεσία Cloud Public Cloud π.χ. Amazon πολλοί χρήστες ενοικίαση πόρων σε δημόσιο Cloud (a la carte) πιθανότατα πιο φθηνό σύνδεση μέσω διαδικτύου Private Cloud (π.χ. το Cloud του NetCInS) λίγοι χρήστες πιθανή εσωτερική σύνδεση υψηλή ασφάλεια πιθανό μεγαλύτερο κόστος Hybrid Cloud Community Cloud Συνδεδεμένα clouds παρόμοιων οργανισμών π.χ GovCloud
Public Cloud Platforms Amazon Elastic Compute Cloud (EC2) Η πρώτη εταιρία που έδωσε cloud υπηρεσίες το 2006 RackSpace, RightScale, GoGrid, CloudSigma και άλλες πολλές Ελληνικό Cloud: okeanos http://okeanos.grnet.gr Ήδη σε πιλοτική λειτουργία Στόχος είναι η παροχή IaaS cloud υπηρεσίες στην ακαδημαϊκή κοινότητα Το project του μαθήματος θα γίνει στον okeano
Private Cloud IaaS software Eucalyptus Το πρώτο open-source cloud software Ερευνητικό project του University of California, Santa Barbara, 2009 Υποστήριξη Amazon EC2 API Ενσωμάτωση στο Ubuntu Έχει μείνει αρκετά πίσω. OpenStack Υποστήριξη από 150+ εταιρίες (Nasa, Dell, AMD, Intel, Canonical, κλπ) Από Μάιο 2011 προεπιλεγμένο cloud στο ubuntu O okeanos υποστηρίζει OpenStack εντολές
Συστήματα στο Cloud Κατανεμημένα Συστήματα Αρχείων Google File System (GFS) Hadoop Distributed File System (HDFS) CEPH file system Amazon Simple Storage Service (S3) Batch Processing Συστήματα Hadoop ecosystem (MapReduce, PIG, Hive, etc) Dryad Map Reduce Merge Row Stores (NoSQL) Proprietary: Big Table, Sherpa/PNUTS, AzureDB, SimpleDB Open source: Hbase, Cassandra, Dynamo, MongoDB Και πολλά άλλα http://nosql-database.org/
Σύστημα Αρχείων GFS: ένα κλιμακώσιμο κατανεμημένο σύστημα αρχείων για μεγάλες data-intensive εφαρμογές. Παρέχει ανοχή σε σφάλματα ενώ τρέχει σε φτηνό υλικό και προσφέρει υψηλή επίδοση σε μεγάλο αριθμό χρηστών. Παραδοχές : Υψηλή συχνότητα βλαβών. Συνήθως µεγάλα αρχεία. Η ανάκτηση γίνεται είτε σε µεγάλα κοµµάτια είτε σε πολλά µικρά. Τα περισσότερα αρχεία τροποποιούνται µε προσάρτηση(append). Το υψηλό bandwidth προτιµάται από το χαµηλό latency.
Batch Processing - MapReduce Μοντέλο παράλληλης επεξεργασίας μεγάλου όγκου δεδομένων Ο χρήστης ορίζει map και reduce functions ανάλογα με το πώς θέλει να επεξεργαστεί τα δεδομένα του Map : παίρνει για είσοδο ένα key/value και παράγει ένα ή περισσότερα ενδιάμεσα key/values Reduce : κάνει merge και επεξεργάζεται τα ενδιάμεσα key/values των mappers Αυτόματη παραλληλοποίηση των προγραμμάτων του χρήστη Partitioning στα δεδομένα εισόδου Scheduling Πιθανή αποτυχία κάποιου υπολογιστή Επικοινωνία μεταξύ υπολογιστών
MapReduce Master Map worker Reduce worker Part 1 Part 2 Part 3 Input Output
Row Stores Θα δούμε στο μάθημα αναλυτικά κάποια από αυτά και τις ιδιαιτερότητές τους Βάσεις δεδομένων χωρίς schema NoSQL (NoRel) Ένας μεγάλος πίνακας με ομογενοποιημένα δεδομένα διαχωρίζονται μέσω του κλειδιού (1 key = 1 row) πολλά attributes – values Key-value stores Συνήθως κάθονται πάνω από ένα κατανεμημένο σύστημα αρχείων πχ BigTable->GFS
Από το RDBMS στο NoSQL Id Ταινία Έτος 1 The Dark Knight 2008 2 King’s Speech 2010 3 The Fighter 4 Black Swan 5 The Prestige 2006 Key value The Dark Knight Ηθοποιοί: Christian Bale Έτος: 2008 King’s Speech Ηθοποιοί: Colin Firth Έτος: 2010 The Fighter Ηθοποιοί: Melissa Leo, Christian Bale Black Swan Ηθοποιοί: Natalie Portman The Prestige Έτος: 2006 Christian Bale Ημ.Γέννησης: 30-1-1974 Key value The Dark Knight Ηθοποιοί: Christian Bale Έτος: 2008 King’s Speech Ηθοποιοί: Colin Firth Έτος: 2010 The Fighter Ηθοποιοί: Melissa Leo, Christian Bale Black Swan Ηθοποιοί: Natalie Portman The Prestige Έτος: 2006 Id Ηθοποιός Ημ.γέννησης 1234 Christian Bale 30-1-1974 5678 Natalie Portman 9-6-1981 9012 Melissa Leo 14-9-1960 3456 Colin Firth 10-9-1960 Ηθοπ Ταινία 1234 1 3 5 5678 4 9012 3456 2 Ηθοπ Ταινία 1234 1 3 5 5678 4 9012 3456 2
Απαιτήσεις Μαθήματος 1/2 Εργασία στο Hadoop, απαιτεί: Εξοικείωση με το σύστημα Κατανόηση του MapReduce Γράψιμο δικών σας MapReduce προγραμμάτων Αποθήκευση και ανάγνωση Στο HDFS Στο Hbase Στο Cassandra Σε δύο ή τρία μέρη με ανάλογο αριθμό Φροντιστηρίων Πρώτη άσκηση θα ανακοινωθεί σε περίπου ένα μήνα Προφορική εξέταση To site του μαθήματος θα ανανεωθεί, και θα ανέβουν διαφάνειες και άλλο υλικό
Απαιτήσεις Μαθήματος 1/2 Εργασία στο Hadoop, απαιτεί: Εξοικείωση με το σύστημα Κατανόηση του MapReduce Γράψιμο δικών σας MapReduce προγραμμάτων Αποθήκευση και ανάγνωση Στο HDFS Στο Hbase Στο Cassandra Σε δύο ή τρία μέρη με ανάλογο αριθμό Φροντιστηρίων Πρώτη άσκηση θα ανακοινωθεί σε περίπου ένα μήνα Προφορική εξέταση To site του μαθήματος θα ανανεωθεί, και θα ανέβουν διαφάνειες και άλλο υλικό
Παράδειγμα Cloud (Yahoo)
Λειτουργικά Συστήματα ΙΙ Κατανεμημένα Λειτουργικά Συστήματα Επικοινωνία σε Κατανεμημένα Συστήματα Συντονισμός Γεγονότων και Συνέπεια Κατανεμημένα Συστήματα Αρχείων: ονομασία, κρυφή μνήμη, συνέπεια, διαχείριση αντιγράφων Distributed File System @ Minix
To Cloud