HEAL DSpace

Σχεδιασμός και υλοποίηση ενός φορητού μηχανισμού συγχρονισμού αρχείων σε περιβάλλον αποθηκευτικού νέφους

Αποθετήριο DSpace/Manakin

Εμφάνιση απλής εγγραφής

dc.contributor.author Γερακάρης, Βασίλειος el
dc.contributor.author Gerakaris, Vasileios en
dc.date.accessioned 2016-02-17T11:50:31Z
dc.date.available 2016-02-17T11:50:31Z
dc.date.issued 2016-02-17
dc.identifier.uri https://dspace.lib.ntua.gr/xmlui/handle/123456789/42021
dc.identifier.uri http://dx.doi.org/10.26240/heal.ntua.11909
dc.rights Default License
dc.subject Αποθηκευτικό νέφος el
dc.subject Συγχρονισμός αρχείων el
dc.subject Υπηρεσίες νέφους el
dc.subject Cloud storage en
dc.subject File synchronisation en
dc.subject Cloud services en
dc.title Σχεδιασμός και υλοποίηση ενός φορητού μηχανισμού συγχρονισμού αρχείων σε περιβάλλον αποθηκευτικού νέφους el
heal.type bachelorThesis
heal.classification Computer science en
heal.access free
heal.recordProvider ntua el
heal.publicationDate 2015-09-02
heal.abstract Η αυξημένη χρήση των Εικονικών Μηχανών στις διάφορες υπηρεσίες νέφους οδήγησε στη δη- μιουργία ενός μεγάλου αριθμού αρχείων εικόνων και στιγμιοτύπων εικονικών μηχανών. Γεννήθηκε έτσι η ανάγκη για ένα αξιόπιστο και αποδοτικό τρόπο συγχρονισμού των αρχείων αυτών μεταξύ διαφορετικών υπολογιστών. Υπάρχουν ήδη λογισμικά που υλοποιούν συγχρονισμό αρχείων, αλλά κανένα δεν είναι φτιαγμένο ειδικά γι’ αυτό το σκοπό. Μελετώντας και κατανοώντας τα ιδιαίτερα χαρακτηριστικά αυτής της μορφής αρχείων, δηλαδή το γεγονός πως είναι μεγάλα σε μέγεθος και έχουν πολλά κοινά δεδομένα μεταξύ τους, μας επιτρέπει να βελτιστοποιήσουμε τη διαδικασία συγ- χρονισμού τους. Ο στόχος αυτής της διπλωματικής εργασίας είναι να παρουσιάσει τη σχεδίαση μίας βιβλιο- θήκης στη γλώσσα Python, για το συγχρονισμό μεγάλων ομοιόμορφων αρχείων με χρήση υπη- ρεσιών αποθηκευτικού νέφους. Μελετάμε τις υπάρχουσες υλοποιήσεις για συγχρονισμό αρχείων, κατανοούμε τις σχεδιαστικές επιλογές πίσω από αυτά και τα επεκτείνουμε περαιτέρω, με νέες βελ- τιστοποιήσεις. Προτείνουμε ένα αλγόριθμο συγχρονισμού που ανιχνεύει και χειρίζεται ενημερώ- σεις σε αρχεία αποδοτικά και αξιόπιστα. Προτείνουμε επίσης τη χρήση αφαιρετικών κλάσεων για την αναπαράσταση των αρχείων, των τοπικών καταλόγων αρχείων και των προγραμματιστικών διεπαφών εφαρμογών (API) των υπηρεσιών αποθηκευτικού νέφους. Τα API που εκθέτουν οι πα- ραπάνω αφαιρετικές κλάσεις επιτρέπουν μεγαλύτερη ευελιξία στη βιβλιοθήκη, δίνοντάς του τη δυνατότητα να λειτουργήσει πάνω σε διαφορετικά λειτουργικά συστήμάτα και υπηρεσίες αποθη- κευτικού νέφους. Μετά την παρουσίαση της αρχικής σχεδίασης, προτείνουμε και υλοποιούμε διάφορες βελτι- στοποιήσεις που βελτιώνουν περαιτέρω την απόδοση της διαδικασίας συγχρονισμού και πραγμα- τοποιούμε συγκριτικές αξιολογήσεις ώστε να μετρήσουμε την επίδρασή τους στο χρόνο εκτέλεσης. Η χρήση νημάτων για την ταυτόχρονη αποστολή αιτημάτων στον απομακρυσμένο εξυπηρετητή μειώνει την επίδραση της καθυστέρησης του δικτύου, ενώ η χρήση μηχανισμών παρακολούθησης του καταλόγου αρχείων (όπως το inotify) έχει ως αποτέλεσμα την ταχεία και αποδοτική ανίχνευση των τροποποιημένων αρχείων. Εστιάζοντας περισσότερο στο σενάριο χρήσης των μεγάλων ομοιό- μορφων αρχείων, προτείνουμε την τοπική αποθήκευση των block των αρχείων, ώστε να μεταφορ- τώνονται μόνο τα κομμάτια που διαφέρουν από τον εξυπηρετητή, κατί που προσφέρει αξιοσημεί- ωτη βελτίωση στο χρόνο μεταφόρτωσης των αρχείων. Τέλος, προκειμένου να αντιμετωπίσουμε τις ανάγκες επιπλέον αποθηκευτικού χώρου που εισήγαγε η τελευταία βελτιστοποίηση, προτείνουμε τη χρήση ενός μηχανισμού συστήματος αρχείων σε περιβάλλον χρήστη (FUSE) που θα επιτρέπει την εικονική δημιουργία και πρόσβαση στα αρχεία, ενώ κάθε μοναδικό block αρχείου θα απόθη- κεύεται μία φορά, και ας είναι κοινόχρηστο από περισσότερα αρχεία. Στα τελευταία μέρη της διπλωματικής εργασίας, συγκρίνουμε τα προτεινόμενα στοιχεία και την απόδοσή της βιβλιοθήκης με αυτά διαφόρων δημοφιλών λογισμικών και πακέτων συγχρονι- σμού αρχείων και έπειτα κρίνουμε την καταλληλότητα του καθενός για το σενάριο χρήσης που περιγράφηκε. Προτείνουμε μερικές επιπλέον βελτιστοποιήσεις στη διαδικασία συχρονισμού, οι οποίες έχουν προγραμματιστεί για το μέλλον, αλλά δεν έχουν ακόμη υλοποιηθεί. el
heal.abstract The increased use of Virtual Machines in cloud service infrastructures has resulted in a large volume of disk image and snapshot files. As a result, a reliable and efficient way of synchronising those files between different computers is needed. Software applications that achieve file synchronisation already exist, but none is tailored specifically for this task. Understanding the special characteristics of the files in question, the fact that they are large in size and have most of their data in commmon, allows us optimise the synchronisation process for that use case. The aim of this dissertation is to present the design of a synchronisation framework for large similar files, using cloud storage services, written in Python. We study existing implementations of file syncing, understand the underlying design choices and make further improvements on them. We propose a synchronisation algorithm that reliably and efficiently detects and handles updates. We also propose the use of abstract classes to represent files, local directories and cloud storage service APIs. The APIs exposed by those classes allow more flexibility to the framework, so it can operate over different OSs and cloud storage services. After the presentation of the initial design, we propose and implement several optimisations that further improve the performance of the synchronisation process and benchmark their effects on the execution time. The use of threads to concurrently request resources from a remote server reduces the effect of network latency and the use of directory monitoring mechanisms (such as inotify) results in fast and efficient discovery of modified files. Further focusing on the use case of large, similar files, we propose local storage of the files’ blocks so only the parts that differ can be downloaded from the server, which boasts a significant improvement in download times. Finally, in order to alleviate the storage space needs that the last improvement introduces, we propose the use of a Filesystem in Userspace (FUSE) mechanism to virtually create and access files, while storing each shared block only once. In the final parts of this dissertation, we compare the proposed features and performance with that of several synchronisation software and packages and discuss their suitability for the use case described. We also propose further improvements in the synchronisation process that have been planned but not yet thoroughly designed and implemented. en
heal.advisorName Κοζύρης, Νεκτάριος el
heal.committeeMemberName Κοζύρης, Νεκτάριος el
heal.committeeMemberName Παπασπύρου, Νικόλαος el
heal.committeeMemberName Γκούμας, Γεώργιος el
heal.academicPublisher Εθνικό Μετσόβιο Πολυτεχνείο. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών. Τομέας Τεχνολογίας Πληροφορικής και Υπολογιστών. Εργαστήριο Υπολογιστικών Συστημάτων el
heal.academicPublisherID ntua
heal.numberOfPages 54 σ.
heal.fullTextAvailability true


Αρχεία σε αυτό το τεκμήριο

Αυτό το τεκμήριο εμφανίζεται στην ακόλουθη συλλογή(ές)

Εμφάνιση απλής εγγραφής