Κατανεμημένα/δικτυακά συστήματα αρχείων (Network File Systems) Κατανεμημένα Συστήματα 1

Σχετικά έγγραφα
Κατανεµηµένασυστήµατα αρχείων

Βασικές έννοιες. Κατανεμημένα Συστήματα 1

Βασικές έννοιες. Κατανεμημένα Συστήματα 1

Κατανεμημένα Συστήματα Αρχείων

Κατανεμημένα Συστήματα με Java. Ενότητα # 14: Κατανεμημένα συστήματα αποθήκευσης Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Δίκτυα Υπολογιστών Firewalls. Χάρης Μανιφάβας

Εισαγωγή. E-03: Λειτουργικά Συστήµατα ΙΙ 6. Εαρινό Εξάµηνο Κατανεµηµένα συστήµατα αρχείων. Μέρη κατανεµηµένου συστήµατος αρχείων

Επικοινωνία αίτησης-απάντησης. Κατανεμημένα Συστήματα 1

Επικοινωνία αίτησης-απάντησης. Κατανεμημένα Συστήματα 1

Εντοπισμός αδιεξόδου. Κατανεμημένα Συστήματα 1

Επικοινωνία Client/Server Απομακρυσμένη Κλήση Διαδικασιών

Βασικές λειτουργίες συστήματος πάνω σε αρχεία δεδομένων. Προγραμματισμός II 1

ΜΕΤΑΦΟΡΑ ΑΡΧΕΙΩΝ FTP

Αρχιτεκτονική του πληροφοριακού συστήµατος Cardisoft Γραµµατεία 2003 ιαχείριση Προσωπικού

Διαδιεργασιακή επικοινωνία (inter-process communication IPC) Προγραμματισμός II 1

Το λειτουργικό σύστημα. Προγραμματισμός II 1

ΤΕΧΝΟΛΟΓΙΑ ΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ

Μετακινούμενος Κώδικας (Mobile Code) Κατανεμημένα Συστήματα 1

Linux Terminal Server Project

Λειτουργικά Συστήματα (ΙΙ) (διαχείριση αρχείων)

Επικοινωνία με μηνύματα. Κατανεμημένα Συστήματα 1

Οδηγίες EQL Desktop (rev ) ΣΥΝ ΕΣΗ S-710 ΜΕ ΚΑΛΩ ΙΟ USB ΠΡΟΚΑΤΑΡΚΤΙΚΕΣ ΕΡΓΑΣΙΕΣ

Εισαγωγή. Κατανεµηµένα Συστήµατα 01-1

Αγωγοί/Σωλήνες (Pipes) Προγραμματισμός II 1

Προγραμματισμός Ι (HY120)

Συστήματα Αρχείων (Σ.Α.)

Λειτουργικό Σύστημα: διαχείριση πόρων. Διαχείριση αρχείων. Τι είναι ένα αρχείο ; Λειτουργικά Συστήματα (ΙΙ) (διαχείριση αρχείων)

Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1

Εικονική Μνήμη (Virtual Memory) Προγραμματισμός II 1

Web and HTTP. Βασικά Συστατικά: Web Server Web Browser HTTP Protocol

Εργαστήριο Λειτουργικών Συστημάτων. Minix Overview

Λειτουργικό Σύστημα: διαχείριση πόρων. Τι είναι ένα αρχείο ; Διαχείριση αρχείων. Λειτουργικά Συστήματα (ΙΙ) (διαχείριση αρχείων)

Ειδικά Θέματα Προγραμματισμού

Το λειτουργικό σύστημα. Προγραμματισμός II 1

ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ Αρχιτεκτονικές Διαχείρισης Δικτύων (ΙI) SNMP MIB - Αντικείμενα & Ορισμοί Πινάκων NETCONF (Network Configuration Protocol)

Λειτουργικά Συστήματα (Λ/Σ)

Εικονική Μνήμη (Virtual Μemory)

FTP - (File Transfer Protocol ) Πρωτόκολλο Μεταφοράς Αρχείων

Κεφάλαιο 7 Διαδικτύωση-Internet. 7.2 Τεχνολογία TCP/IP

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ - UNIX. Συστήματα Αρχείων. Διδάσκoντες: Καθ. Κ. Λαμπρινουδάκης Δρ. Α. Γαλάνη

Αποµακρυσµένη κλήση διαδικασιών

Λειτουργικά Συστήματα (Λ/Σ)

Αντιγραφή με χρήση της γυάλινης επιφάνειας σάρωσης

Εισαγωγή στην επιστήμη των υπολογιστών. Υλικό Υπολογιστών Κεφάλαιο 6ο ίκτυα υπολογιστών

PROXY SERVER. Άριστη πύλη διαχωρισμού μεταξύ του εσωτερικού δικτύου και του Internet.

Επικοινωνία Client/Server

Λειτουργικά Συστήματα

Connecto. Τμήμα Επιστήμης Υπολογιστών, Πανεπιστήμιο Κρήτης Άγγελος Σφακιανάκης. Επιφάνεια Άμεσης Σύνδεσης

Οδηγός εγκατάστασης λογισμικού NPD EL

MicromediaFiscalServer v.1.1.

Εργαστήριο Λειτουργικών Συστημάτων 8o εξάμηνο, Ροή Υ, ΗΜΜΥ

ΤΕΧΝΟΛΟΓΙΑ ΔΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ

Πρωτόκολλο FTP. Από τα παλαιότερα πρωτόκολλα του ArpaNet Το FTP είναι μια τυποποίηση του TCP/IP Πρόκειται για πρωτόκολο γενικού σκοπού

1 Συστήματα Αυτοματισμού Βιβλιοθηκών

Επικοινωνία με μηνύματα. Κατανεμημένα Συστήματα 1

Προγραμματισμός με BSD Sockets σε περιβάλλον Linux

Πρότυπο Αναφοράς Open Systems Interconnection (OSI) Επικοινωνίες Δεδομένων Μάθημα 5 ο

Περιεχόμενα. Κεφάλαιο 1 Εισαγωγή στο Outlook Κεφάλαιο 2 Βασικές εργασίες με μηνύματα 33

Περιγραφείς Αρχείων & Ανακατεύθυνση EE. Προγραμματισμός II 1

Οδηγός Εγκατάστασης και Χρήσης του Arebas Easy

Κατανεμημένες υπηρεσίες καταλόγου (distributed directory services) Κατανεμημένα Συστήματα 1

ΕΝΤΑΞΗ ΣΤΑΘΜΟΥ ΕΡΓΑΣΙΑΣ ΣΕ DOMAIN

ΟΔΗΓΙΕΣ ΧΕΙΡΙΣΜΟΥ GSM TCS-3

Δίκτυα Επικοινωνιών ΙΙ: Network Programming UDP Sockets, Signals

ΕΡΓΑΣΙΑ. (στο μάθημα: Τεχνολογίες Εφαρμογών Διαδικτύου του Η εξαμήνου σπουδών του Τμήματος Πληροφορικής & Τηλ/νιών)

Επιπλέον διδακτικό υλικό κρυφών μνημών: set-associative caches, πολιτικές αντικατάστασης, χειρισμός εγγραφών

Αικατερίνη Καμπάση, PhD. Τμήμα Προστασίας και Συντήρησης Πολιτισμικής Κληρονομιάς Α.Τ.Ε.Ι. Ιονίων Νήσων

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ - UNIX. Συστήματα Αρχείων. Διδάσκoντες: Καθ. Κ. Λαμπρινουδάκης Δρ. Α. Γαλάνη

Εισαγωγή στην εφαρμογή Βασική Σελίδα (Activity) Αναζήτηση Πελάτη... 6 Προβολή Πελάτη... 7 Επεξεργασία Πελάτη... 10

Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1

Προβλήματα ταυτόχρονης εκτέλεσης (για νήματα με κοινή μνήμη)

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών Κρυφές Μνήμες. (οργάνωση, λειτουργία και απόδοση)

Βιβλιοθήκη stdio. Προγραμματισμός II 1

Βασικές Υπηρεσίες Διαδικτύου. Επικοινωνίες Δεδομένων Μάθημα 2 ο

Κλείδωμα αρχείων (file locking) Προγραμματισμός II 1

Σύντομη παρουσίαση των εργαλείων/εντολών telnet, ping, traceroute nslookup και nmap, zenmap

PayByBank RESTful API GUIDE

Οργάνωση Υπολογιστών (IΙI)

Ιεραρχία Μνήμης. Ιεραρχία μνήμης και τοπικότητα. Σκοπός της Ιεραρχίας Μνήμης. Κρυφές Μνήμες

Επικοινωνία Client/Server Απομακρυσμένη Κλήση Διαδικασιών

Προχωρημένα Θέματα Βάσεων Δεδομένων

ΑΝΑΚΟΙΝΩΣΗ ΔΙΑΔΙΚΑΣΙΑΣ ΑΠΕΥΘΕΙΑΣ ΑΝΑΘΕΣΗΣ. Αριθμ. Πρωτ.: /2017 Ο ΕΙΔΙΚΟΣ ΛΟΓΑΡΙΑΣΜΟΣ ΚΟΝΔΥΛΙΩΝ ΕΡΕΥΝΑΣ

ΕΡΓΑΣΙΑ. (στο µάθηµα: Τεχνολογίες Εφαρµογών ιαδικτύου του Η εξαµήνου σπουδών του Τµήµατος Πληροφορικής & Τηλ/νιών)

Επιτεύγµατα των Λ.Σ.

(Αντιγραφή) ή χρησιμοποιήστε το πληκτρολόγιο για να καταχωρίσετε τους αριθμούς των αντιγράφων. Αντιγραφή με χρήση της γυάλινης επιφάνειας σάρωσης

Λειτουργικά Συστήματα Ι. Καθηγήτρια Παπαδάκη Αναστασία

Μεταφορά Αρχείων µε χρήση της Υπηρεσίας FTP σελ. 1

Προγραμματισμός συστημάτων UNIX/POSIX

SMPcache. Ένα εργαλείο για προσομοίωση-οπτικοποίηση κρυφής μνήμης (Cache)

Εισαγωγή στην Πληροφορική

Περιεχόμενα. Κεφάλαιο 1 Εισαγωγή στο Outlook Κεφάλαιο 2 Βασικές εργασίες με μηνύματα 31

Λιβανός Γιώργος Εξάμηνο 2017Β

Εργαλεία ανάπτυξης εφαρμογών internet Ι

Ελεγκτές/Παρακολουθητές (Monitors) Ταυτόχρονος Προγραμματισμός 1

Οδηγός Χρήσης για Mac

Κέντρο Εξυπηρέτησης Κλήσεων ecall PSAP

Μεταγλώττιση και σύνδεση πολλαπλών αρχείων κώδικα. Προγραμματισμός II 1

Κατανεμημένες υπηρεσίες καταλόγου (distributed directory services) Κατανεμημένα Συστήματα 1

2η Προγραµµατιστική Εργασία

Transcript:

Κατανεμημένα/δικτυακά συστήματα αρχείων (Network File Systems) Κατανεμημένα Συστήματα 1 lalis@inf.uth.gr

Κατανεμημένα συστήματα αρχείων Υποστήριξη διαχείρισης και πρόσβασης σε απομακρυσμένα αρχεία, που βρίσκονται σε διαφορετικό μηχάνημα από την εφαρμογή Προκύπτουν διάφορα προβλήματα/προκλήσεις Διαφάνεια προσπέλασης σε συντακτικό επίπεδο Διαφάνεια συνέπειας σε σχέση με την λειτουργία ενός συμβατικού/τοπικού συστήματος αρχείων Απόδοση παρ' όλη την απομακρυσμένη πρόσβαση Ανεξαρτησία από υλικό και λειτουργικό Ασφάλεια σε μη εξουσιοδοτημένη πρόσβαση Κατανεμημένα Συστήματα 2 lalis@inf.uth.gr

Sun Network File System (NFS v3) Αρχικός σκοπός: υποστήριξη υπολογιστών χωρίς δίσκο Τα αρχεία του συστήματος και των εφαρμογών βρίσκονται σε έναν κεντρικό εξυπηρετητή Προσπέλαση πάνω από (γρήγορο) τοπικό δίκτυο Σχεδιασμός στο πνεύμα client- Πρωτόκολλο RPC πάνω από UDP ή TCP Σχεδιασμένο έτσι ώστε να υπάρχει εύκολη ανάκαμψη από βλάβες του εξυπηρετητή και διακοπές δικτύου stateless, at least once Υλοποίηση μέσα στο λειτουργικό σύστημα Κατανεμημένα Συστήματα 3 lalis@inf.uth.gr

Προσάρτηση (mounting) Συσχετισμός ενός τοπικού καταλόγου με τον χώρο ονομάτων που παρέχει ο εξυπηρετητής Το σημείο της προσάρτησης το επιλέγει ο πελάτης Διαφορετικοί πελάτες μπορεί να επιλέξουν διαφορετικές θέσεις προσάρτησης για το απομακρυσμένο σύστημα αρχείων του εξυπηρετητή Μπορεί να υποστηριχθεί αυτόματη προσάρτηση (automount), όταν εκκινείται το λειτουργικό ή/και όταν μια εφαρμογή επιχειρήσει να προσπελάσει έναν κατάλογο που δεν υφίσταται στο τοπικό σύστημα αρχείων Κατανεμημένα Συστήματα 4 lalis@inf.uth.gr

Βασικές υπηρεσίες σε επίπεδο NFS Directory/naming service Υποστήριξη ιεραρχικής δομής χώρου ονομάτων Δημιουργία ονομάτων για αρχεία/καταλόγους Αναγωγή ονομάτων σε αναγνωριστικά Flat file access service Στα αρχεία δίνεται ένα αναγνωριστικό, με βάση το οποίο εκτελούνται οι λειτουργίες πρόσβασης Υπάρχουν λειτουργίες για ανάγνωση και γράψιμο Οι λειτουργίες πρόσβασης είναι σε απόλυτες θέσεις ανάγνωσης εγγραφής σχεδιασμός at least once Δεν υπάρχουν λειτουργίες για open/close/lseek Κατανεμημένα Συστήματα 5 lalis@inf.uth.gr

Λειτουργίες directory service create(dirid,name,attr)->fid,attr remove(dirid,name) lookup(dirid,name)->fid,attr rename(dirid,name, todirid,toname)->status mkdir(dirid,name,attr)->dirid,attr rmdir(dirid,name) readdir(dirid,pos,count)->entries δημιουργία αρχείου απομάκρυνση αρχείου αναζήτηση αρχείου μετονομασία/μετακίνηση αρχείου δημιουργία (άδειου) καταλόγου σβήσιμο (άδειου) καταλόγου επιστρέφει στοιχεία για κάθε αρχείο του καταλόγου (με το pos υποστηρίζεται τμηματικό διάβασμα του καταλόγου) Κατανεμημένα Συστήματα 6 lalis@inf.uth.gr

NFS client NFS open /lalis/ds/intro.pdf lookup(0,"lalis") id1 lookup(id1,"ds") id2 lookup(id2,"intro.pdf") fd id3 fd->id3 Κατανεμημένα Συστήματα 7 lalis@inf.uth.gr

Λειτουργίες flat file service read(fid,pos,count)->data,attr write(fid,pos,count,data)->attr getattr(fid)->attr setattr(fid,attr)->attr ανάγνωση δεδομένων εγγραφή δεδομένων ανάγνωση μεταδεδομένων εγγραφή μεταδεδομένων Κατανεμημένα Συστήματα 8 lalis@inf.uth.gr

NFS client NFS read(fd,&buf,100) fd->id3 read(id3,0,100) data[100] write(fd,&buf,200) write(id3,100,data[200]) ok Κατανεμημένα Συστήματα 9 lalis@inf.uth.gr

Ενσωμάτωση NFS μέσω VFS Το NFS ενσωματώνεται στο σύστημα αρχείων μέσω του μηχανισμού του Virtual File System (VFS) Το Virtual File System (VFS) επιτρέπει την ευέλικτη προσθήκη ξεχωριστών συστημάτων αρχείων Κάθε σύστημα αρχείων πρέπει να υλοποιεί βασικές λειτουργίες (open/read/write/close/ ) που καλεί το λειτουργικό χωρίς να ενδιαφέρει η υλοποίηση τους Επιτυγχάνεται ομοιόμορφη/διαφανής πρόσβαση σε πολλά / εντελώς διαφορετικά συστήματα αρχείων Κατανεμημένα Συστήματα 10 lalis@inf.uth.gr

Application File System API Virtual File System Unix FS Other FS NFS Client NFS protocol NFS Server Unix FS kernel kernel client Κατανεμημένα Συστήματα 11 lalis@inf.uth.gr

Κρυφή μνήμη Ο εξυπηρετητής NFS μπορεί να διατηρεί κρυφή μνήμη για να μειώσει την αλληλεπίδραση με το τοπικό σύστημα αρχείων ή τον δίσκο Ο πελάτης NFS διατηρεί κρυφή μνήμη για να μειώσει την απομακρυσμένη επικοινωνία με τον εξυπηρετητή αλλά και για να αποφορτιστεί ο εξυπηρετητής ιδιαίτερα κρίσιμο όταν υπάρχουν πολλοί πελάτες Η κρυφή μνήμη του πελάτη είναι κοινή για όλες τις εφαρμογές που τρέχουν στο ίδιο μηχάνημα Η κρυφή μνήμη δημιουργεί θέματα συνέπειας τόσο για το γράψιμο όσο και για το διάβασμα δεδομένων Κατανεμημένα Συστήματα 12 lalis@inf.uth.gr

NFS client NFS Unix FS NFS client NFS-level caches Κατανεμημένα Συστήματα 13 lalis@inf.uth.gr

Έλεγχος εγκυρότητας δεδομένων πελάτη Για κάθε μπλοκ, εκτός από την θέση του στο αρχείο και το μέγεθος του, διατηρείται επιπλέον πληροφορία t check : χρονοσφραγίδα πρόσφατου τοπικού ελέγχου t mod : χρονοσφραγίδα αλλαγής στον εξυπηρετητή Αν time() t check < fresht, το μπλοκ θεωρείται «φρέσκο» και χρησιμοποιείται χωρίς έλεγχο εγκυρότητας Διαφορετικά, η εγκυρότητα του μπλοκ ελέγχεται στον εξυπηρετητή με βάση το t mod Αν το t mod του πελάτη έχει την ίδια τιμή με το t mod του εξυπηρετητή, το μπλοκ εξακολουθεί να είναι έγκυρο, διαφορετικά στέλνονται στον πελάτη τα περιεχόμενα Ο πελάτης ανανεώνει τις τιμές των t check και t mod Κατανεμημένα Συστήματα 14 lalis@inf.uth.gr

Κατανεμημένα Συστήματα 15 lalis@inf.uth.gr

open Κατανεμημένα Συστήματα 16 lalis@inf.uth.gr

open χάριν συντομίας παραλείπεται η διαδικασία lookup Κατανεμημένα Συστήματα 17 lalis@inf.uth.gr

read read,-1 Κατανεμημένα Συστήματα 18 lalis@inf.uth.gr

t mod read Κατανεμημένα Συστήματα 19 lalis@inf.uth.gr

read t2 t mod t check Κατανεμημένα Συστήματα 20 lalis@inf.uth.gr

t2 Κατανεμημένα Συστήματα 21 lalis@inf.uth.gr

read t2 time()-t2<fresht? Κατανεμημένα Συστήματα 22 lalis@inf.uth.gr

read t2 Κατανεμημένα Συστήματα 23 lalis@inf.uth.gr

open t2 Κατανεμημένα Συστήματα 24 lalis@inf.uth.gr

open t2 Κατανεμημένα Συστήματα 25 lalis@inf.uth.gr

read read,-1 t2 Κατανεμημένα Συστήματα 26 lalis@inf.uth.gr

read t2 Κατανεμημένα Συστήματα 27 lalis@inf.uth.gr

read t3 t2 Κατανεμημένα Συστήματα 28 lalis@inf.uth.gr

t3 t2 Κατανεμημένα Συστήματα 29 lalis@inf.uth.gr

read t3 time()-t3<fresht? t2 Κατανεμημένα Συστήματα 30 lalis@inf.uth.gr

read t3 t2 Κατανεμημένα Συστήματα 31 lalis@inf.uth.gr

open t3 t2 Κατανεμημένα Συστήματα 32 lalis@inf.uth.gr

open t3 t2 Κατανεμημένα Συστήματα 33 lalis@inf.uth.gr

read read,-1 t3 t2 Κατανεμημένα Συστήματα 34 lalis@inf.uth.gr

read t3 t2 Κατανεμημένα Συστήματα 35 lalis@inf.uth.gr

read t4 t3 t2 Κατανεμημένα Συστήματα 36 lalis@inf.uth.gr

t4 t3 t2 Κατανεμημένα Συστήματα 37 lalis@inf.uth.gr

t4 t3 read t2 time()-t3<fresht? Κατανεμημένα Συστήματα 38 lalis@inf.uth.gr

t4 t3 read, =? read Κατανεμημένα Συστήματα 39 lalis@inf.uth.gr

t4 t3 read ok Κατανεμημένα Συστήματα 40 lalis@inf.uth.gr

t4 t3 read t5 Κατανεμημένα Συστήματα 41 lalis@inf.uth.gr

t2 write t3 t5 Κατανεμημένα Συστήματα 42 lalis@inf.uth.gr

t4 write write t5 Κατανεμημένα Συστήματα 43 lalis@inf.uth.gr

t4 write t2 ok,t2 t2 t5 Κατανεμημένα Συστήματα 44 lalis@inf.uth.gr

t4 write t6 t2 t2 t5 Κατανεμημένα Συστήματα 45 lalis@inf.uth.gr

t4 t6 t2 t2 t5 Κατανεμημένα Συστήματα 46 lalis@inf.uth.gr

read t4 time()-t4<fresht? t6 t2 t2 t5 Κατανεμημένα Συστήματα 47 lalis@inf.uth.gr

read read, t6 t2 t2 =t2? t5 Κατανεμημένα Συστήματα 48 lalis@inf.uth.gr

read t2 t6 t2 t2 t5 Κατανεμημένα Συστήματα 49 lalis@inf.uth.gr

read t7 t2 t6 t2 t2 t5 Κατανεμημένα Συστήματα 50 lalis@inf.uth.gr

t7 t2 t6 t2 t2 t5 Κατανεμημένα Συστήματα 51 lalis@inf.uth.gr

t7 t2 t6 t2 t2 write t5 Κατανεμημένα Συστήματα 52 lalis@inf.uth.gr

t7 t2 t6 t2 t2 write write Κατανεμημένα Συστήματα 53 lalis@inf.uth.gr

t7 t2 t6 t2 t3 ok,t3 write t3 Κατανεμημένα Συστήματα 54 lalis@inf.uth.gr

t7 t2 t6 t2 t3 write t8 t3 Κατανεμημένα Συστήματα 55 lalis@inf.uth.gr

t7 t2 t6 t2 t3 t8 t3 Κατανεμημένα Συστήματα 56 lalis@inf.uth.gr

read t7 t2 time()-t7<fresht? t6 t2 t3 t8 t3 Κατανεμημένα Συστήματα 57 lalis@inf.uth.gr

read t7 t2 t6 t2 t3 t8 t3 Κατανεμημένα Συστήματα 58 lalis@inf.uth.gr

t7 t2 t6 t2 t3 t8 t3 Κατανεμημένα Συστήματα 59 lalis@inf.uth.gr

read t7 t2 time()-t7<fresht? t6 t2 t3 t8 t3 Κατανεμημένα Συστήματα 60 lalis@inf.uth.gr

read t2 read,t2 t6 t2 t3 t2=t3? t8 t3 Κατανεμημένα Συστήματα 61 lalis@inf.uth.gr

read t3 t2 t6 t2 t3 t8 t3 Κατανεμημένα Συστήματα 62 lalis@inf.uth.gr

read t9 t3 t6 t2 t3 t8 t3 Κατανεμημένα Συστήματα 63 lalis@inf.uth.gr

t9 t3 t6 t2 t3 t8 t3 Κατανεμημένα Συστήματα 64 lalis@inf.uth.gr

t9 t3 close t6 t2 t3 t8 t3 Κατανεμημένα Συστήματα 65 lalis@inf.uth.gr

close t9 t3 t6 t2 προαιρετική απελευθέρωση κρυφής μνήμης t3 t8 t3 Κατανεμημένα Συστήματα 66 lalis@inf.uth.gr

close t9 t3 t3 t8 t3 Κατανεμημένα Συστήματα 67 lalis@inf.uth.gr

close t9 t3 t3 t8 t3 Κατανεμημένα Συστήματα 68 lalis@inf.uth.gr

t9 t3 t3 t8 t3 Κατανεμημένα Συστήματα 69 lalis@inf.uth.gr

NFS vs τοπικό FS Η ανάγνωση σε επίπεδο εφαρμογής δεν επιστρέφει απαραίτητα την πιο πρόσφατη έκδοση των δεδομένων Όσο μικρότερη είναι η τιμή fresht τόσο μικρότερη η πιθανότητα ασυνέπειας στην ανάγνωση, αλλά τόσο πιο συχνή η επικοινωνία πάνω από το δίκτυο Με fresht=0 γίνεται έλεγχος σε κάθε ανάγνωση Παρέχεται λογικά ισοδύναμη συνέπεια με αυτή του τοπικού συστήματος αρχείων Παρότι μπορεί να γίνει καθυστερημένη ενημέρωση του εξυπηρετητή για μια αλλαγή ενός πελάτη μέσω write, αυτό δεν επηρεάζει την ορθότητα της εφαρμογής Κατανεμημένα Συστήματα 70 lalis@inf.uth.gr

Μονιμοποίηση αλλαγών Write-through: κάθε write που πραγματοποιεί η εφαρμογή, στέλνεται άμεσα από τον πελάτη στον εξυπηρετητή, που με την σειρά του γράφει στον δίσκο Συχνή επικοινωνία, αργή εκτέλεση λειτουργίας, μπλοκάρισμα εφαρμογής Write-commit: τα writes της εφαρμογής μένουν στην κρυφή μνήμη του πελάτη/εξυπηρετητή, και μονιμοποιούνται όταν η εφαρμογή κλείσει το αρχείο ή καλέσει flush/sync Μείωση επικοινωνίας, επιτάχυνση λειτουργίας, αποφυγή μπλοκαρίσματος εφαρμογής, αλλά μεγαλύτερη πιθανότητα ασυνέπειας ανάγνωσης Κατανεμημένα Συστήματα 71 lalis@inf.uth.gr

Andrew File System (AFS) Εξέλιξη του NFS για πιο αποδοτική υποστήριξη πολύ μεγάλου αριθμού πελατών και αργό δίκτυο Οι πελάτες μπορεί να βρίσκονται οπουδήποτε στο διαδίκτυο σε διαφορετικές πόλεις/χώρες Δεν επιχειρείται παροχή της ίδιας συνέπειας με ένα συμβατικό/τοπικό σύστημα αρχείων Σημασιολογία συνόδου (session semantics) Η επικοινωνία ανάμεσα σε πελάτη και εξυπηρετητή γίνεται μόνο στο άνοιγμα / κλείσιμο ενός αρχείου Κατανεμημένα Συστήματα 72 lalis@inf.uth.gr

Διαχείριση χώρου ονομάτων Το AFS ορίζει έναν ενιαίο καθολικό χώρο ονομάτων Όλοι οι εξυπηρετητές του AFS (που υπάγονται στον ίδιο οργανισμό) υιοθετούν τον ίδιο χώρο ονομάτων Διαφορετικοί υποχώροι μπορεί να ανατεθούν σε ξεχωριστούς εξυπηρετητές Οι πελάτες προσαρτούν τους υποχώρους (τόμους) του AFS σε προκαθορισμένο σημείο του τοπικού συστήματος αρχείων κατά σύμβαση κάτω από τον κατάλογο /afs Από τη στιγμή που ακολουθείται αυτή η σύμβαση, όλοι οι πελάτες «βλέπουν» τους ίδιους υποχώρους στα ίδια σημεία του τοπικού συστήματος αρχείων Κατανεμημένα Συστήματα 73 lalis@inf.uth.gr

Αρχιτεκτονική προσέγγιση Venus/Vice: λογισμικό πελάτη/εξυπηρετητή AFS Υλοποιούνται πάνω από το λειτουργικό σύστημα στο επίπεδο του χρήστη Στο λειτουργικό του πελάτη γίνεται παρέμβαση έτσι ώστε οι κλήσεις open/close των εφαρμογών να προωθούνται στο Venus Οι λειτουργίες read/write γίνονται σε τοπικά αρχεία Στον εξυπηρετητή, τα αρχεία/κατάλογοι που διαθέτει το Vice στους πελάτες είναι συμβατικό μέρος του τοπικού συστήματος αρχείων Κατανεμημένα Συστήματα 74 lalis@inf.uth.gr

Application AFS client AFS protocol AFS read write open close File System API File System API Unix FS Unix FS kernel kernel client Κατανεμημένα Συστήματα 75 lalis@inf.uth.gr

Βασικό μοντέλο λειτουργίας Όταν καλείται η open, το αρχείο αντιγράφεται ολόκληρο από τον εξυπηρετητή στον πελάτη για μεγάλα αρχεία γίνεται σταδιακή μεταφορά Αφού ανοιχτεί ένα αρχείο, η εφαρμογή προσπελάζει το τοπικό αντίγραφο, χωρίς παρέμβαση του λογισμικού πελάτη του AFS Οι λειτουργίες read/write εκτελούνται στο τοπικό αντίγραφο, χωρίς ενημέρωση του εξυπηρετητή Τυχόν αλλαγές που πραγματοποιούν οι εφαρμογές μεταδίδονται στον εξυπηρετητή όταν κληθεί η close Τα τοπικά αντίγραφα είναι κανονικά αρχεία που διατηρούνται σε περίπτωση επανεκκίνησης Κατανεμημένα Συστήματα 76 lalis@inf.uth.gr

Ειδοποίηση ακύρωσης αντιγράφου Ο εξυπηρετητής διατηρεί μια λίστα πελατών που κρατάνε αντίγραφα ενός αρχείου (ή ενός τόμου) Όταν ένας πελάτης στείλει μια αλλαγμένη έκδοση του αρχείου, ο εξυπηρετητής ειδοποιεί τους υπόλοιπους πελάτες μέσω ενός callback ακύρωσης Όταν ένας πελάτης λάβει την ειδοποίηση, σημειώνει το τοπικό αντίγραφο ως άκυρο, ώστε να το ανανεώσει την επόμενη φορά που θα το ανοίξει μια εφαρμογή Έλεγχος της εγκυρότητας του τοπικού αντιγράφου ενός πελάτη γίνεται μόνο όταν ανοίγεται το αρχείο Σε περίπτωση αποσύνδεσης, ο πελάτης είναι υπεύθυνος να ελέγξει την συνέπεια των αντιγράφων του και να ανανεώσει την εγγραφή του στον εξυπηρετητή Κατανεμημένα Συστήματα 77 lalis@inf.uth.gr

Κατανεμημένα Συστήματα 78 lalis@inf.uth.gr

open Κατανεμημένα Συστήματα 79 lalis@inf.uth.gr

open fetch Κατανεμημένα Συστήματα 80 lalis@inf.uth.gr

open C Κατανεμημένα Συστήματα 81 lalis@inf.uth.gr

open C Κατανεμημένα Συστήματα 82 lalis@inf.uth.gr

read C Κατανεμημένα Συστήματα 83 lalis@inf.uth.gr

read C Κατανεμημένα Συστήματα 84 lalis@inf.uth.gr

open fetch C Κατανεμημένα Συστήματα 85 lalis@inf.uth.gr

open C Β Κατανεμημένα Συστήματα 86 lalis@inf.uth.gr

open C Β Κατανεμημένα Συστήματα 87 lalis@inf.uth.gr

read C Β Κατανεμημένα Συστήματα 88 lalis@inf.uth.gr

read C Β Κατανεμημένα Συστήματα 89 lalis@inf.uth.gr

C Β Κατανεμημένα Συστήματα 90 lalis@inf.uth.gr

open C Β Κατανεμημένα Συστήματα 91 lalis@inf.uth.gr

open fetch C Β Κατανεμημένα Συστήματα 92 lalis@inf.uth.gr

open C Β Α Κατανεμημένα Συστήματα 93 lalis@inf.uth.gr

open C Β Α Κατανεμημένα Συστήματα 94 lalis@inf.uth.gr

C Β Α Κατανεμημένα Συστήματα 95 lalis@inf.uth.gr

read C Β Α Κατανεμημένα Συστήματα 96 lalis@inf.uth.gr

read C Β Α Κατανεμημένα Συστήματα 97 lalis@inf.uth.gr

write C Β Α Κατανεμημένα Συστήματα 98 lalis@inf.uth.gr

write C Β Α Κατανεμημένα Συστήματα 99 lalis@inf.uth.gr

C Β Α Κατανεμημένα Συστήματα 100 lalis@inf.uth.gr

read C Β Α Κατανεμημένα Συστήματα 101 lalis@inf.uth.gr

read C Β Α Κατανεμημένα Συστήματα 102 lalis@inf.uth.gr

C Β Α Κατανεμημένα Συστήματα 103 lalis@inf.uth.gr

close C Β Α Κατανεμημένα Συστήματα 104 lalis@inf.uth.gr

close update C Β Α Κατανεμημένα Συστήματα 105 lalis@inf.uth.gr

cancel close ok cancel C Β Α Κατανεμημένα Συστήματα 106 lalis@inf.uth.gr

close Κατανεμημένα Συστήματα 107 lalis@inf.uth.gr

read Κατανεμημένα Συστήματα 108 lalis@inf.uth.gr

read Κατανεμημένα Συστήματα 109 lalis@inf.uth.gr

close Κατανεμημένα Συστήματα 110 lalis@inf.uth.gr

close Κατανεμημένα Συστήματα 111 lalis@inf.uth.gr

Κατανεμημένα Συστήματα 112 lalis@inf.uth.gr

read Κατανεμημένα Συστήματα 113 lalis@inf.uth.gr

read Κατανεμημένα Συστήματα 114 lalis@inf.uth.gr

Κατανεμημένα Συστήματα 115 lalis@inf.uth.gr

write Κατανεμημένα Συστήματα 116 lalis@inf.uth.gr

write Κατανεμημένα Συστήματα 117 lalis@inf.uth.gr

Κατανεμημένα Συστήματα 118 lalis@inf.uth.gr

close Κατανεμημένα Συστήματα 119 lalis@inf.uth.gr

close update Κατανεμημένα Συστήματα 120 lalis@inf.uth.gr

ok close Κατανεμημένα Συστήματα 121 lalis@inf.uth.gr

close Κατανεμημένα Συστήματα 122 lalis@inf.uth.gr

Κατανεμημένα Συστήματα 123 lalis@inf.uth.gr

open Κατανεμημένα Συστήματα 124 lalis@inf.uth.gr

open check Κατανεμημένα Συστήματα 125 lalis@inf.uth.gr

open ok C Κατανεμημένα Συστήματα 126 lalis@inf.uth.gr

C Κατανεμημένα Συστήματα 127 lalis@inf.uth.gr

open C Κατανεμημένα Συστήματα 128 lalis@inf.uth.gr

open check C Κατανεμημένα Συστήματα 129 lalis@inf.uth.gr

open nok C Κατανεμημένα Συστήματα 130 lalis@inf.uth.gr

open fetch C Κατανεμημένα Συστήματα 131 lalis@inf.uth.gr

open C B Κατανεμημένα Συστήματα 132 lalis@inf.uth.gr

open C B Κατανεμημένα Συστήματα 133 lalis@inf.uth.gr

C B Κατανεμημένα Συστήματα 134 lalis@inf.uth.gr

write C B Κατανεμημένα Συστήματα 135 lalis@inf.uth.gr

write C B Κατανεμημένα Συστήματα 136 lalis@inf.uth.gr

write C B Κατανεμημένα Συστήματα 137 lalis@inf.uth.gr

write C B Κατανεμημένα Συστήματα 138 lalis@inf.uth.gr

C B Κατανεμημένα Συστήματα 139 lalis@inf.uth.gr

close C B Κατανεμημένα Συστήματα 140 lalis@inf.uth.gr

close update C B Κατανεμημένα Συστήματα 141 lalis@inf.uth.gr

no cancel (last close wins) cancel close ok C B Κατανεμημένα Συστήματα 142 lalis@inf.uth.gr

close Κατανεμημένα Συστήματα 143 lalis@inf.uth.gr

close update Κατανεμημένα Συστήματα 144 lalis@inf.uth.gr

close ok Κατανεμημένα Συστήματα 145 lalis@inf.uth.gr

close Κατανεμημένα Συστήματα 146 lalis@inf.uth.gr

Κατανεμημένα Συστήματα 147 lalis@inf.uth.gr

Συνέπεια Όταν ένας πελάτης ανοίξει ένα αρχείο, θα λάβει την πιο πρόσφατη έκδοση που έχει ο εξυπηρετητής Αυτή μπορεί να είναι ήδη «παλιά» Κάποιος άλλος πελάτης μπορεί να έχει κάνει αλλαγές στο αρχείο, αλλά να μην έχει στείλει την αλλαγμένη έκδοση του αρχείου στον εξυπηρετητή Από τη στιγμή που ένας πελάτης ανοίξει ένα αρχείο, δεν «βλέπει» τις όποιες αλλαγές γίνονται από άλλους Πρέπει να κλείσει και να ξανανοίξει το αρχείο (για να ενεργοποιηθεί η διαδικασία ελέγχου σε επίπεδο AFS) Κατανεμημένα Συστήματα 148 lalis@inf.uth.gr

Κλείδωμα αρχείων από τον πελάτη Το AFS κρατά κατάσταση για κάθε πελάτη που διατηρεί ένα έγκυρο αντίγραφο ενός αρχείου, έτσι ώστε να μπορεί να στείλει ειδοποιήσεις ακύρωσης Μπορεί εύκολα να υποστηριχθεί κλείδωμα αρχείων (όπως και στο τοπικό σύστημα αρχείων), έτσι ώστε να αποφεύγεται «ανταγωνιστική» πρόσβαση Όμως, σε περίπτωση βλάβης, ένας πελάτης μπορεί να μην προλάβει να ξεκλειδώσει ένα αρχείο Πρέπει να υλοποιηθεί κατάλληλος μηχανισμός εντοπισμού και αντιμετώπισης βλαβών, ώστε να αποφεύγεται η επ αορίστου αναμονή άλλων πελατών Κατανεμημένα Συστήματα 149 lalis@inf.uth.gr

πελάτης Α fd=open(,o_write) write(fd, ) close(fd) WR OK εξυπηρετητής Α Α Β Α Β Β WR πελάτης Β fd=open(,o_write) write(fd, ) Κατανεμημένα Συστήματα 150 lalis@inf.uth.gr

πελάτης Α fd=open(,o_write) write(fd, ) WR fault εξυπηρετητής Α Α Β Α Β Β WR πελάτης Β fd=open(,o_write) write(fd, ) Κατανεμημένα Συστήματα 151 lalis@inf.uth.gr

Αντιμετώπιση διαμερισμού δικτύου Ο εξυπηρετητής μπορεί να ακυρώσει το κλείδωμα ενός πελάτη, παρότι αυτός εξακολουθεί να υφίσταται Ένας άλλος πελάτης μπορεί να αλλάξει το αρχείο Θα προκύψουν 2 διαφορετικές εκδόσεις Εντοπισμός «σύγκρουσης» γίνεται με την βοήθεια επιπλέον πληροφορίας έκδοσης του αρχείου Αριθμός έκδοσης στον εξυπηρετητή: Vs Αριθμός αντιγράφου στον πελάτη: Vc := Vs Αλλαγή αρχείου στον πελάτη: Vc := Vc + 1 Ο εξυπηρετητής δέχεται μια αλλαγμένη έκδοση από έναν πελάτη μόνο αν: Vc = Vs + 1 Κατανεμημένα Συστήματα 152 lalis@inf.uth.gr

πελάτης Α fd=open(,o_write) write(fd, ) close(fd) WR 6 OK 5 εξυπηρετητής 5 Α 6 Α πελάτης Β Κατανεμημένα Συστήματα 153 lalis@inf.uth.gr

please contact the system administrator πελάτης Α fd=open(,o_write) write(fd, ) close(fd) WR 6 εξυπηρετητής 5 Α 5 Α Β fault 6 Α Β Β Β NOK WR 5 6 OK πελάτης Β fd=open(,o_write) write(fd, ) close(fd) Κατανεμημένα Συστήματα 154 lalis@inf.uth.gr

Αντίγραφα για αυξημένη διαθεσιμότητα Υποστηρίζονται ειδικοί τόμοι με αρχεία τα περιεχόμενα των οποίων δεν αλλάζουν «ποτέ» (από τους πελάτες) Μπορεί να αντιγραφούν σε πολλούς εξυπηρετητές για αυξημένη διαθεσιμότητα (βλάβες) και ταχύτερη πρόσβαση (πιο κοντά στον εκάστοτε πελάτη) Αναγνωριστικό αρχείου: <ReplicatedVolumeID, FileID> το πρώτο τμήμα χρησιμοποιείται για αναζήτηση των εξυπηρετητών που διαθέτουν τον τόμο, το δεύτερο τμήμα είναι ο «τοπικός» αριθμός του αρχείου Η αναγωγή ενός ReplicatedVolumeID σε {VolumeID} καθώς και ενός VolumeID σε ServerAddress γίνεται μέσω υπηρεσιών καταλόγου του συστήματος Κατανεμημένα Συστήματα 155 lalis@inf.uth.gr

RVID FileID κατάλογος αναπαραγωγής τόμων addr1 FileID 1 VID1 VID2 κατάλογος τοποθεσίας τόμων addr2 FileID 2 Κατανεμημένα Συστήματα 156 lalis@inf.uth.gr

Coda και πολλά άλλα συστήματα Το Coda είναι μια μετεξέλιξη του AFS Υποστήριξη για αποκομμένη λειτουργία (disconnected operation) χωρίς επικοινωνία με κάποιον εξυπηρετητή Υποστήριξη αναπαραγωγής εξυπηρετητών/τόμων και για αρχεία στα οποία γίνονται αλλαγές Μηχανισμός εντοπισμού συγκρούσεων λόγω αλλαγών που πραγματοποιούνται ταυτόχρονα από πελάτες μέσω διαφορετικών εξυπηρετητών διανυσματικός αριθμός έκδοσης, κάθε στοιχείο του οποίου αντιστοιχεί στις αλλαγές για τις οποίες είναι ενήμερος ο αντίστοιχος εξυπηρετητής Άλλα: NFS v4, Rover, OceanStore, Plan9, xfs, Κατανεμημένα Συστήματα 157 lalis@inf.uth.gr