dc.contributor.author |
Κατσακιώρης, Χρήστος
|
el |
dc.contributor.author |
Katsakioris, Christos
|
en |
dc.date.accessioned |
2018-11-22T10:01:06Z |
|
dc.date.available |
2018-11-22T10:01:06Z |
|
dc.date.issued |
2018-11-22 |
|
dc.identifier.uri |
https://dspace.lib.ntua.gr/xmlui/handle/123456789/48073 |
|
dc.identifier.uri |
http://dx.doi.org/10.26240/heal.ntua.16157 |
|
dc.rights |
Default License |
|
dc.subject |
Kubernetes |
en |
dc.subject |
Containers |
en |
dc.subject |
Consistent hashing |
en |
dc.subject |
Operator |
en |
dc.subject |
Sharding |
en |
dc.subject |
Κατανεμημένη αποθήκευση |
el |
dc.subject |
Αποθήκευση αντικειμένων |
el |
dc.subject |
Ελαστικότητα |
el |
dc.subject |
Υψηλή διαθεσιμότητα |
el |
dc.subject |
Αμεταβλητότητα |
el |
dc.title |
Αυτοϊούμενη, ελαστική αποθήκευση αμετάβλητων αντικειμένων με υψηλή διαθεσιμότητα ως πρωτογενές χαρακτηριστικό στο Kubernetes |
el |
dc.title |
Highly-available, self-healing, elastic, immutable object storage as a Kubernetes primitive |
en |
heal.type |
bachelorThesis |
|
heal.classification |
Distributed Storage Systems |
en |
heal.language |
en |
|
heal.access |
free |
|
heal.recordProvider |
ntua |
el |
heal.publicationDate |
2018-11-05 |
|
heal.abstract |
Η έλευση της εποχής των υπηρεσιών Cloud και η ευρεία υιοθέτηση του υποδείγματος κατανεμημένης υπολογιστικής έχει προσφάτως παράσχει τη δυνατότητα σε εφαρμογές να θέσουν τον πήχη υψηλότερα αναφορικά με την κλιμακωσιμότητά τους, αλλά και τις επιδόσεις τους γενικότερα.
Τα ``containers'' και η εικονικοποίηση σε επίπεδο λειτουργικού συστήματος διαρκώς κερδίζουν έδαφος μεταξύ των διάφορων μεθόδων ``deployment'' εφαρμογών στα κέντρα δεδομένων, ως μία αποδοτική εναλλακτική λύση έναντι της εικονικοποίησης βάσει υπερεπόπτη.
Χάριν τόσο του ανωτέρω, όσο και της συνεπαγόμενης καθιέρωσης της Αρχιτεκτονικής Μικροϋπηρεσιών στο χώρο του σχεδιασμού εφαρμογών και συστημάτων, ένα πλούσιο οικοσύστημα αναπτύχθηκε ταχέως, το οποίο αποσκοπεί στην υποστήριξη της τάσης για ``containerization'', και το οποίο μεσουρανεί, έχοντας το Kubernetes ως έναν από τους χαρακτηριστικότερους και πιο επιτυχημένους εκπροσώπους του.
Εντωμεταξύ, η χρηστικότητα των δεδομένων, των εμμέσως ή αμέσως παραγόμενων από χρήστες και περισυλλεγόμενων από εταιρείες, ανθεί ολοένα και περισσότερο.
Ανερχόμενες τεχνολογίες, σχετικές με Δεδομένα Μεγάλου Όγκου (Big Data), καθώς και την επεξεργασία και ανάλυσή τους, είναι άρρηκτα συνδεδεμένες με υπολογιστικά περιβάλλοντα Cloud, ιδίως όσον αφορά την αποθήκευσή τους.
Λόγω της ευρείας εμπορευματοποίησης των υποδομών υλικού των σύγχρονων κέντρων δεδομένων, οι περιπτώσεις χρήσης κατανεμημένων συστημάτων αποθήκευσης με σκοπό την σταδιακή αντικατάσταση των παραδοσιακών εξοπλισμών και συστημάτων αποθήκευσης, όπως είναι τα SAN, πληθαίνουν.
Όμως, παρά την τάση αυτή, η λειτουργία των περισσότερων ευρέως διαδεδομένων και αξιόπιστων κατανεμημένων συστημάτων αποθήκευσης, όπως τα Ceph και Cassandra, μέχρι στιγμής δεν έχει ενσωματωθεί πλήρως στις αυτοματοποιημένες διαδικασίες που παρέχει η χρήση εργαλείων ``containerization'', όπως τα Docker και Kubernetes, εξαιτίας της ανάγκης τους να διατηρούν μόνιμη κατάσταση (statefulness).
Το παρόν πόνημα αποτελεί μια προσπάθεια ικανοποίησης της ανάγκης για διατήρηση μόνιμης κατάστασης, που αναπόδραστα επηρεάζει κάθε ``containerized deployment'' κατανεμημένου συστήματος αποθήκευσης.
Παρουσιάζεται ο σχεδιασμός δύο νέων κατανεμημένων συστημάτων αποθήκευσης αντικειμένων (distributed object stores) με βάση το Kubernetes, καθώς και οι αντίστοιχες υλοποιήσεις τους, τα οποία βασίζονται σε ένα σύνολο ευφυών ``agents'' και ``proxy servers''.
Μολονότι, προς το παρόν, τα συστήματα περιορίζονται σε στοιχειώδεις λειτουργίες, ιδίως λαμβάνοντας υπ'όψιν ότι δεν υποστηρίζονται μεταβολές σε ήδη αποθηκευμένα δεδομένα, εξασφαλίζονται αξιοσημείωτες ιδιότητες, μεταξύ άλλων: κλιμακωσιμότητα και ελαστικότητα, ισοκατανομή φόρτου (load balancing), αυτοΐαση (self-healingness), αλλά και υψηλή διαθεσιμότητα (high availability) και ανοχή σε σφάλματα (fault tolerance) μέσω αυτοματοποιημένης δημιουργίας αντιγράφων των δεδομένων (data replication).
Αυτά επιτυγχάνονται χάρη στο ευρύ φάσμα δυνατοτήτων που παρέχεται από το Kubernetes, καθώς και σε ποικίλες έννοιες, τεχνικές και αλγορίθμους που χρησιμοποιούνται, όπως η αμεταβλητότητα (immutability), η διευθυνσιοδότηση-βάσει-περιεχομένου (content-addressability), ο τεμαχισμός (sharding) και ο αλγόριθμος συνεπούς κατακερματισμού (consistent hashing).
Η δε αρχιτεκτονική ενός εκ των δύο συστημάτων, περιλαμβάνει έναν ``Operator'' ώστε, σε συνεργασία με τους ``agents'', και με τη συνδρομή του προτύπου ελεγκτή που εφαρμόζεται από όλα τα στοιχεία του συστήματος, να διασφαλιστεί η αυτοματοποιημένη διαχείριση κάποιων σύνθετων πτυχών του. |
el |
heal.abstract |
The advent of the era of the Cloud and the widespread adoption of the distributed computing paradigm has lately enabled systems and applications to reach higher standards with respect to their scalability, as well as their performance overall.
Containers and operating-system-level virtualization increasingly gain ground among various deployment methods across datacenters as an efficient alternative to hypervisor-based virtualization.
Due to both this and the consequent prevalence of the Microservices Architecture in the landscape of application and system design, a rich ecosystem has been rapidly developed to support containerization, and still flourishes, with Kubernetes being one of its most successful representatives.
Meanwhile, the significance of data produced, either directly or indirectly, by users and collected by enterprises, is thriving.
Emerging technologies revolving around Big Data and their process and analysis are inextricably linked with Cloud computing, and Cloud storage in particular.
Driven by the recent commoditization of the hardware infrastructure within datacenters, distributed storage systems are employed to gradually supersede traditional storage solutions, such as SANs and proprietary hardware appliances.
Notwithstanding their momentum, most of the distributed storage systems that have been widely adopted across the industry thanks to the reliability and robustness they provide, such as Ceph and Cassandra, have yet to be truly integrated with containerization utilities and platforms, like Docker and Kubernetes, due to their inevitably stateful nature.
In this thesis we attempt to tackle the hindrance of statefulness, which unavoidably ails all containerized deployments of distributed storage systems.
Rather than working with existing systems, we propose the design of two new distributed object stores atop Kubernetes, along with their respective implementations, which are based on a set of intelligent, stateful agents and a fleet of stateless proxy servers.
Even though their functionality is rudimentary so far, since Update operations on data are not supported, they end up undergirding remarkable attributes, including incremental scalability and elasticity, load balancing, self-healingness, and high availability and fault tolerance via data replication.
These are accomplished by leveraging Kubernetes' extensive set of features, as well as various concepts, techniques and algorithms, such as immutability, content-addressability, sharding, and consistent hashing.
The architecture of one of the systems involves an Operator in order to ensure the automation in deployment and management of the system, in coordination with the rest of the agents, using the controller pattern on which all components fundamentally rely. |
en |
heal.advisorName |
Κοζύρης, Νεκτάριος |
el |
heal.advisorName |
Koziris, Nectarios |
en |
heal.committeeMemberName |
Παπασπύρου, Νικόλαος |
el |
heal.committeeMemberName |
Γκούμας, Γεώργιος |
el |
heal.committeeMemberName |
Κοζύρης, Νεκτάριος |
el |
heal.academicPublisher |
Εθνικό Μετσόβιο Πολυτεχνείο. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών. Τομέας Τεχνολογίας Πληροφορικής και Υπολογιστών |
el |
heal.academicPublisherID |
ntua |
|
heal.numberOfPages |
344 σ. |
|
heal.fullTextAvailability |
true |
|