623 lines
51 KiB
TeX
623 lines
51 KiB
TeX
\chapter{Υπόβαθρο} \label{background}
|
||
|
||
Προκειμένου να κατανοήσουμε πλήρως το πρόβλημα που επιλύει η παρούσα εργασία
|
||
πρέπει να αναλύσουμε μερικές βασικές έννοιες. Σε πρώτη φάση θα δούμε παρακάτω
|
||
τι είναι το υπολογιστικό νέφος, τι μας προσφέρει και ποια μοντέλα παράδοσης
|
||
παρέχονται μέσω αυτού. Έπειτα θα μιλήσουμε για την έννοια της εικονοποίησης και
|
||
τις διάφορες υποκατηγορίες της που χρησιμοποιούνται στις μέρες μας. Έπειτα, θα
|
||
αναλυθούν τα πλεονεκτήματα τους και θα μπορέσουμε να εντοπίσουμε τον λόγο που
|
||
προτιμάται η αρχιτεκτονική δοχείων. Τέλος, θα εμβαθύνουμε στην τεχνολογία
|
||
δοχείων, θα δούμε διάφορες υλοποιήσεις της και θα πραγματοποιήσουμε μια ανάλυση
|
||
της ασφάλειας του \textlatin{Docker}.
|
||
|
||
\section{\textlatin{Cloud Computing Definition}} \label{cloudComputingDefinition}
|
||
|
||
Σύμφωνα με το \cite{mell2011nist} το \textlatin{Cloud Computing} είναι ένα
|
||
μοντέλο που επιτρέπει ανά πάσα στιγμή τη διαδικτυακή πρόσβαση σε μια κοινή
|
||
δεξαμενή ρυθμιζόμενων υπολογιστικών πόρων που μπορούν να παρέχονται και να
|
||
απελευθερώνονται γρήγορα και με ελάχιστη προσπάθεια διαχείρισης ή
|
||
αλληλεπίδρασης με τον πάροχο υπηρεσιών. Στους υπολογιστικούς αυτούς πόρους
|
||
περιλαμβάνονται δίκτυα, διακομιστές, χώρος αποθήκευσης, εφαρμογές και
|
||
υπηρεσίες. Αυτό το μοντέλο νέφους αποτελείται από πέντε βασικά χαρακτηριστικά,
|
||
τρία μοντέλα υπηρεσιών και τέσσερα μοντέλα παράδοσης.
|
||
|
||
\pagebreak
|
||
|
||
\subsection{Χαρακτηριστικά} \label{cloucComputingCharacteristics}
|
||
|
||
Τα πέντε βασικά χαρακτηριστικά του \textlatin{Cloud Computing} είναι τα εξής:
|
||
|
||
\begin{itemize}
|
||
|
||
\item \textbf{Αυτοεξυπηρέτηση κατά παραγγελία}:
|
||
|
||
Ένας καταναλωτής μπορεί να προμηθευτεί υπολογιστικούς πόρους όπως
|
||
αποθηκευτικό χώρο δικτύου και χρόνο χρήσης ισχυρών επεξεργαστών δίχως
|
||
την απαίτηση ανθρώπινης αλληλεπίδρασης με κάθε πάροχο υπηρεσιών.
|
||
|
||
\item \textbf{Ευρεία διαδικτυακή πρόσβαση}:
|
||
|
||
Οι υπηρεσίες που παρέχονται είναι διαθέσιμες μέσω του διαδικτύου και
|
||
είναι προσβάσιμες από οποιαδήποτε συσκευή διαθέτει πρόσβαση σε αυτό
|
||
είτε μέσω γραφικού περιβάλλοντος είτε μέσω ειδικά σχεδιασμένων
|
||
\textlatin{API}.
|
||
|
||
\item \textbf{Οργανωμένη συγκέντρωση πόρων}:
|
||
|
||
Οι υπολογιστικοί πόροι του παρόχου είναι σχεδιασμένοι με τέτοιο τρόπο
|
||
ώστε να μπορούν να εξυπηρετήσουν πολλούς καταναλωτές χρησιμοποιώντας
|
||
ένα \textlatin{multi-tenant} μοντέλο με διαφορετικούς φυσικούς και
|
||
εικονικούς πόρους που εκχωρούνται και ανακατανέμονται ανάλογα με τη
|
||
ζήτηση των καταναλωτών. Το μοντέλο αυτό διακατέχεται από μια αίσθηση
|
||
ανεξαρτησίας θέσης διότι είθισται να μην υπάρχει έλεγχος ή ακριβής
|
||
γνώση της τοποθεσίας τους αλλά δίδεται πολλές φορές η δυνατότητα
|
||
καθορισμού της χώρας ή περιοχής τους εάν το επιθυμεί ο χρήστης.
|
||
Παραδείγματα πόρων που παρέχονται αποτελούν μεταξύ άλλων το εύρος ζώνης
|
||
δικτύου, η διαθέσιμη μνήμη και ο αριθμός επεξεργαστών.
|
||
|
||
\item \textbf{Ταχεία ευελιξία}:
|
||
|
||
Οι δυνατότητες μπορούν να παρέχονται και να απελευθερώνονται ελαστικά
|
||
και σε ορισμένες περιπτώσεις αυτόματα, με σκοπό την οριζόντια ή κάθετη
|
||
κλιμάκωση υπηρεσιών ανάλογα με τη ζήτηση. Από την οπτική γωνία του
|
||
καταναλωτή, οι παρεχόμενες δυνατότητες μοιάζουν απεριόριστες και
|
||
μπορούν να κατανεμηθούν σε οποιαδήποτε ποσότητα και ανά πάσα στιγμή.
|
||
|
||
\item \textbf{Μετρούμενη υπηρεσία}:
|
||
|
||
Τα συστήματα νέφους ελέγχουν και βελτιστοποιούν αυτόματα τη χρήση των
|
||
πόρων αξιοποιώντας δυνατότητες μέτρησης κατάλληλες για τον τύπο της
|
||
υπηρεσίας (π.χ, αποθήκευση, επεξεργασία, εύρος ζώνης και λογαριασμοί
|
||
ενεργών χρηστών). Η χρήση των πόρων μπορεί να παρακολουθείται, να
|
||
ελέγχεται και να αναφέρεται, παρέχοντας διαφάνεια τόσο στον πάροχο όσο
|
||
και στον καταναλωτή της υπηρεσίας που χρησιμοποιείται.
|
||
|
||
\end{itemize}
|
||
|
||
\pagebreak
|
||
|
||
\subsection{Μοντέλα Υπηρεσιών} \label{cloudComputingServiceModels}
|
||
|
||
Τα τρία μοντέλα υπηρεσιών του \textlatin{Cloud Computing} είναι τα παρακάτω:
|
||
|
||
\begin{itemize}
|
||
|
||
\item \textbf{\textlatin{Software as a Service (SaaS)}}:
|
||
|
||
Η δυνατότητα που παρέχεται στον καταναλωτή είναι η χρήση εφαρμογών
|
||
εκτελούμενες σε μια υποδομή νέφους. Οι εφαρμογές αυτές είναι
|
||
προσβάσιμες από διάφορες συσκευές ικανές να συνδεθούν στο διαδίκτυο
|
||
ή μέσω διεπαφής προγράμματος. Δεν προσφέρεται έλεγχος ή δυνατότητα
|
||
διαχείρισης της υποκείμενης υποδομής νέφους ή των δυνατοτήτων της
|
||
υπηρεσίας, με εξαίρεση περιορισμένη χρήση συγκεκριμένων
|
||
ρυθμίσεων διαμόρφωσης της εφαρμογής.
|
||
|
||
\item \textbf{\textlatin{Platform as a Service (PaaS)}}:
|
||
|
||
Η παρεχόμενη δυνατότητα είναι η χρήση ή η ανάπτυξη εφαρμογών σε μια
|
||
υποδομή νέφους. Οι εφαρμογές αυτές μπορεί να δημιουργήθηκαν ή
|
||
αποκτήθηκαν από τον καταναλωτή και έχουν κατασκευαστεί χρησιμοποιώντας
|
||
γλώσσες προγραμματισμού, βιβλιοθήκες, υπηρεσίες και εργαλεία που
|
||
υποστηρίζονται από τον πάροχο. Ο καταναλωτής δεν έχει τον έλεγχο της
|
||
υποκείμενης υποδομής νέφους, αλλά έχει τον έλεγχο των εφαρμογών που
|
||
εκτελούνται σε αυτήν, καθώς και των ρυθμίσεων διαμόρφωσης της εφαρμογής
|
||
και του περιβάλλοντος εκτέλεσης της.
|
||
|
||
\item \textbf{\textlatin{Infrastructure as a Service (IaaS)}}:
|
||
|
||
Η παρεχόμενη δυνατότητα είναι η χρήση επεξεργαστικών, αποθηκευτικών,
|
||
δικτυακών και άλλων υπολογιστικών πόρων όπου ο καταναλωτής μπορεί να
|
||
εκτελέσει και να εγκαταστήσει λογισμικό της επιλογής του,
|
||
συμπεριλαμβανομένων λειτουργικών συστημάτων και εφαρμογών. Ο
|
||
καταναλωτής δεν έχει τον έλεγχο της υποκείμενης υποδομής νέφους, αλλά
|
||
έχει τον έλεγχο των λειτουργικών συστημάτων, του αποθηκευτικού χώρου,
|
||
των εγκατεστημένων εφαρμογών και των ρυθμίσεων διαμόρφωσης των
|
||
εφαρμογών.
|
||
|
||
\end{itemize}
|
||
|
||
\pagebreak
|
||
|
||
\subsection{Μοντέλα Παράδοσης} \label{cloudComputingDeploymentModels}
|
||
|
||
Τα τέσσερα μοντέλα παράδοσης του υπολογιστικού νέφους είναι:
|
||
|
||
\begin{itemize}
|
||
|
||
\item \textbf{Ιδιωτικό νέφος}:
|
||
|
||
Το νέφος υποδομής είναι αποκλειστικά αφιερωμένο σε έναν μόνο οργανισμό
|
||
αποτελούμενο από πολλαπλούς καταναλωτές (π.χ. επιχειρησιακές μονάδες).
|
||
Ενδεχομένως να ανήκει, να διαχειρίζεται και να λειτουργεί είτε από τον
|
||
οργανισμό, είτε από τρίτον, είτε συνδυασμό των δύο και να μπορεί να
|
||
βρίσκεται εντός ή εκτός του οργανισμού.
|
||
|
||
\item \textbf{Κοινό νέφος}:
|
||
|
||
Είναι διαθέσιμο για μια ευρύτερη κοινότητα καταναλωτών ή οργανισμών με
|
||
κοινές ανησυχίες όπως οι απαιτήσεις ασφαλείας και ζητήματα πολιτικής
|
||
και συμμόρφωσης. Μπορεί να ανήκει, να διαχειρίζεται και να λειτουργεί
|
||
από έναν ή περισσότερους οργανισμούς της κοινότητας, έναν τρίτο ή
|
||
συνδυασμό των δύο και να βρίσκεται εντός ή εκτός του οργανισμού.
|
||
|
||
\item \textbf{Δημόσιο νέφος}:
|
||
|
||
Εδώ, το νέφος υποδομής είναι διαθέσιμο για το γενικό κοινό. Μπορεί να
|
||
ανήκει και να διαχειρίζεται από μια επιχείρηση, έναν ακαδημαϊκό ή
|
||
κυβερνητικό οργανισμό ή έναν συνδυασμό των παραπάνω. Λειτουργεί εντός
|
||
των υποδομών του παρόχου νέφους.
|
||
|
||
\item \textbf{Υβριδικό νέφος}:
|
||
|
||
Είναι συνδυασμός δύο ή περισσότερων νεφών (ιδιωτικού, κοινού ή
|
||
δημόσιου) που διατηρούνται ως ξεχωριστές οντότητες αλλά συνδέονται
|
||
μεταξύ τους με τεχνολογίες που επιτρέπουν τη μεταφορά δεδομένων και
|
||
εφαρμογών.
|
||
|
||
\end{itemize}
|
||
|
||
\pagebreak
|
||
|
||
\section{\textlatin{Virtualization Definition}} \label{virtualizationDefinition}
|
||
|
||
Σύμφωνα με τον ορισμό της \textlatin{Red Hat}
|
||
\cite{redhatVirtualizationDefinition}, η εικονικοποίηση είναι μια τεχνολογία
|
||
που μας επιτρέπει να δημιουργήσουμε πολλαπλά εικονικά περιβάλλοντα ή
|
||
αποκλειστικούς πόρους από ένα μόνο, φυσικό σύστημα υλικού. Ένα λογισμικό
|
||
ονόματι \textlatin{hypervidor} συνδέεται απευθείας στο υλικό αυτό και δίνει τη
|
||
δυνατότητα διαμερισμού ενός συστήματος σε ξεχωριστά, διακριτά και ασφαλή
|
||
περιβάλλοντα, γνωστά ως εικονικές μηχανές (\textlatin{VM}). Αυτές οι εικονικές
|
||
μηχανές βασίζονται στην ικανότητα του \textlatin{hypervisor} να διαχωρίζει τους
|
||
πόρους της μηχανής από το υλικό και να τους κατανέμει κατάλληλα.
|
||
|
||
Το φυσικό υλικό, εξοπλισμένο με έναν \textlatin{hypervisor}, ονομάζεται
|
||
\textlatin{host}, ενώ τα πολλά \textlatin{VM} που χρησιμοποιούν τους πόρους του
|
||
είναι οι \textlatin{guests}. Αυτοί, αντιμετωπίζουν τους υπολογιστικούς πόρους
|
||
όπως είναι η \textlatin{CPU}, η μνήμη και ο αποθηκευτικός χώρος, ως μια
|
||
δεξαμενή πόρων που μπορεί εύκολα να ανακατανεμηθεί. Οι χειριστές μπορούν να
|
||
ελέγχουν εικονικά στιγμιότυπα της μνήμης, της κεντρικής μονάδας επεξεργασίας
|
||
και άλλων πόρων, ούτως ώστε οι \textlatin{guest} να λαμβάνουν τους πόρους που
|
||
χρειάζονται όταν είναι απαραίτητο.
|
||
|
||
Η εικονοποίηση καθιστά δυνατή τη δημιουργία χρήσιμων υπηρεσιών ΤΠ
|
||
χρησιμοποιώντας πόρους στους οποίους παραδοσιακά μπορούσαμε να έχουμε πρόσβαση
|
||
μονάχα από την ιδιοκτησία φυσικών μηχανημάτων. Μας επιτρέπει να αξιοποιήσουμε
|
||
όλες τις δυνατότητες ενός φυσικού μηχανήματος διανέμοντας τις σε πολλούς
|
||
χρήστες και περιβάλλοντα.
|
||
|
||
Ας φανταστούμε πως έχουμε τρεις διακομιστές, στον καθένα από τους οποίους έχει
|
||
ανατεθεί ένας συγκεκριμένος σκοπός. Ένας διακομιστής ηλεκτρονικού ταχυδρομείου,
|
||
ένας διακομιστής ιστού και ένας που εκτελεί εσωτερικές εταιρικές εφαρμογές οι
|
||
οποίες σταμάτησαν να διατηρούνται αλλά είναι ακόμα λειτουργικές. Στο
|
||
συγκεκριμένο παράδειγμα κάθε ένας από τους διακομιστές χρησιμοποιεί το μονάχα
|
||
το 30\% των δυνατοτήτων του.
|
||
|
||
\begin{center}
|
||
\includegraphics[width = .5\textwidth]{Figures/RedHat_Virtualization/redhat_virtualization_server_usage1.png}
|
||
\captionof{figure}{Χρήση διακομιστών χωρίς εικονικοποίηση}
|
||
\label{fig:virtualizationServerUsage1}
|
||
\end{center}
|
||
|
||
Παραδοσιακά, αυτή η αρχιτεκτονική όπου εκτελούνται μεμονωμένες εργασίες σε
|
||
μεμονωμένους διακομιστές ήταν ευκολότερη και πιο αξιόπιστη αλλά δεν παύει να
|
||
μην είναι η πιο αποδοτική λύση. Με την άφιξη της τεχνολογίας της εικονοποίησης
|
||
όμως ήταν πλέον εφικτό να χωριστεί ένας διακομιστής σε περισσότερα κομμάτια
|
||
έχοντας πλέον δύο εικονικά μηχανήματα με τη χρήση ενός.
|
||
|
||
\begin{center}
|
||
\includegraphics[width = .5\textwidth]{Figures/RedHat_Virtualization/redhat_virtualization_server_usage2.png}
|
||
\captionof{figure}{Χρήση διακομιστών με εικονικοποίηση}
|
||
\label{fig:virtualizationServerUsage2}
|
||
\end{center}
|
||
|
||
Ο χωρισμός των διακομιστών σε μικρότερους μπορεί να πραγματοποιηθεί
|
||
περισσότερες από μια φορές αυξάνοντας την αξιοποίηση των δυνατοτήτων τους
|
||
παραδείγματος χάριν από 30\% σε 60\% και έπειτα σε 90\% αφήνοντας μας με
|
||
διακομιστές που είτε μπορούν μετά να χρησιμοποιηθούν για νέους σκοπούς είτε να
|
||
αποσυρθούν μειώνοντας έτσι και τα κόστη λειτουργίας και συντήρησης τους.
|
||
|
||
\section{Ιστορική αναδρομή της εικονικοποίησης} \label{virtualizationHistory}
|
||
|
||
Ενώ η τεχνολογία εικονικοποίησης χρονολογείται από τη δεκαετία του 1960, δεν
|
||
υιοθετήθηκε ευρέως μέχρι τις αρχές της δεκαετίας του 2000. Οι τεχνολογίες που
|
||
την έκαναν πραγματικότητα όπως οι \textlatin{hypervisors} αναπτύχθηκαν πριν από
|
||
δεκαετίες για να δώσουν σε πολλούς χρήστες ταυτόχρονη πρόσβαση σε υπολογιστές
|
||
που επεξεργαζόντουσαν πολλά δεδομένα ταυτόχρονα. Κάτι ιδιαίτερα δημοφιλές στον
|
||
τομέα των επιχειρήσεων για καθήκοντα ρουτίνας που έπρεπε να εκτελεστούν
|
||
χιλιάδες φορές πολύ γρήγορα όπως η μισθοδοσία υπαλλήλων.
|
||
|
||
Ωστόσο, μέσα στις επόμενες δεκαετίες, ήρθαν στο προσκήνιο άλλες λύσεις στο
|
||
πρόβλημα διαμοιρασμού ενός μηχανήματος σε πολλούς χρήστες, μειώνοντας έτσι το
|
||
ενδιαφέρον για την τεχνολογία εικονοποίησης. Μία από αυτές ήταν ο διαμοιρασμός
|
||
χρόνου (\textlatin{time-sharing}) όπου ένας χρήστης μπορούσε να χρησιμοποιεί το
|
||
λειτουργικό σύστημα απομονωμένα από του υπόλοιπους. Κάτι που οδήγησε στη
|
||
δημιουργία λειτουργικών συστημάτων όπως το \textlatin{UNIX} το οποίο με τη
|
||
σειρά του άνοιξε δρόμο για την άφιξη του \textlatin{Linux}. Καθ'' όλη τη
|
||
διάρκεια αυτή, η εικονοποίηση παρέμεινε σε μεγάλο βαθμό μη διαδεδομένη.
|
||
|
||
Προχωρώντας στη δεκαετία του 1990, οι περισσότερες επιχειρήσεις διέθεταν
|
||
φυσικούς διακομιστές και στοίβες μηχανημάτων ενός προμηθευτή, οι οποίες δεν
|
||
επέτρεπαν την εκτέλεση παλαιών εφαρμογών σε υλικό διαφορετικού προμηθευτή.
|
||
Καθώς οι εταιρείες αναβάθμιζαν τα περιβάλλοντα πληροφορικής τους με λιγότερο
|
||
δαπανηρούς διακομιστές, λειτουργικά συστήματα και εφαρμογές από διάφορους
|
||
προμηθευτές, ήταν υποχρεωμένες να υπολειτουργούν το φυσικό υλικό αφού κάθε
|
||
διακομιστής μπορούσε να εκτελέσει μόνο 1 εργασία που αφορούσε συγκεκριμένο
|
||
προμηθευτή.
|
||
|
||
Από εκείνο το σημείο και έπειτα άρχισε να φαίνεται η ανάγκη της εικονοποίησης
|
||
και να ανεβαίνει η δημοτικότητα της. Οι εταιρείες μπορούσαν πλέον να
|
||
διαμερίσουν τους διακομιστές τους και να εκτελούν παλαιές εφαρμογές σε πολλούς
|
||
τύπους και εκδόσεις λειτουργικών συστημάτων. Οι διακομιστές άρχισαν να
|
||
χρησιμοποιούνται πιο αποδοτικά ή και καθόλου μειώνοντας τα κόστη αγοράς,
|
||
εγκατάστασης, συντήρησης και ψύξης.
|
||
|
||
Η ευρεία εφαρμογή της εικονικοποίησης συνέβαλε στη μείωση του εγκλωβισμού στον
|
||
προμηθευτή και την κατέστησε το θεμέλιο του υπολογιστικού νέφους. Σήμερα είναι
|
||
τόσο διαδεδομένη σε όλες τις επιχειρήσεις που συχνά απαιτείται εξειδικευμένο
|
||
λογισμικό διαχείρισης των εικονικών πόρων για να μπορέσει κανείς να
|
||
παρακολουθεί τα δρώμενα της επιχείρησής.
|
||
|
||
\section{Τι είναι ένας \textlatin{hypervisor}} \label{hypervisors}
|
||
|
||
Προτού έρθουν στο προσκήνιο, οι περισσότεροι φυσικοί υπολογιστές μπορούσαν να
|
||
εκτελέσουν ένα λειτουργικό σύστημα τη φορά. Αυτό συνέβαλε στη σταθερότητα τους
|
||
μιας και χρειαζόταν να διαχειριστούν αιτήματα από ένα μοναδικό λειτουργικό
|
||
σύστημα αλλά αυτή η προσέγγιση είχε ένα μειονέκτημα. Μεγάλο κομμάτι των πόρων
|
||
του συστήματος έμενε ανεκμετάλλευτο.
|
||
|
||
Αυτό το πρόβλημα λύθηκε με την εισαγωγή των \textlatin{hypervisors}. Πρόκειται
|
||
για μια στρώση λογισμικού που καθιστά δυνατή την εκτέλεση πολλαπλών
|
||
λειτουργικών συστημάτων το ένα δίπλα στο άλλο μοιράζοντας τους ίδιους φυσικούς
|
||
πόρους σε κάθε ένα από αυτά. Η πράξη αυτή ονομάζεται εικονικοποίηση και τα
|
||
στιγμιότυπα των λειτουργικών συστημάτων λέγονται εικονικές μηχανές. Είναι
|
||
προσομοιώσεις φυσικών υπολογιστών.
|
||
|
||
Οι \textlatin{hypervisors} είναι υπεύθυνοι για τη διαχείριση των εικονικών
|
||
μηχανών χωρίζοντας τις αναθέτοντας σε κάθε μια ένα κομμάτι της διαθέσιμης
|
||
υπολογιστικής ισχύς, μνήμης και χώρου αποθήκευσης. Αυτή η διαδικασία τις
|
||
αποτρέπει από την αλληλεπίδραση μεταξύ τους και στην περίπτωση κατάρρευσης μιας
|
||
εικονικής μηχανής, δεν επηρεάζονται οι υπόλοιπες.
|
||
|
||
\pagebreak
|
||
|
||
\section{Είδη \textlatin{hypervisor}} \label{hypervisorTypes}
|
||
|
||
Οι \textlatin{hypervisors} χωρίζονται σε δύο κατηγορίες ανάλογα με το
|
||
περιβάλλον στο οποίο εκτελούνται. Αυτές είναι:
|
||
|
||
\begin{itemize}
|
||
|
||
\item \textbf{\textlatin{Type 1 (Bare Metal)}}:
|
||
|
||
Ένας \textlatin{hypervisor} τύπου 1 εκτελείται απευθείας στο φυσικό
|
||
υλικό του υποκείμενου υπολογιστή, αλληλεπιδρώντας άμεσα με την κεντρική
|
||
μονάδα επεξεργασίας, τη μνήμη και τη φυσικό αποθηκευτικό χώρο. Για το
|
||
λόγο αυτό, οι \textlatin{hypervisors} τύπου 1 αναφέρονται επίσης ως
|
||
\textlatin{bare-metal hypervisors} και αντικαθιστούν το λειτουργικό
|
||
σύστημα του κεντρικού υπολογιστή. Η άμεση πρόσβαση στο φυσικό υλικό
|
||
έρχεται τους καθιστά ιδιαίτερα αποδοτικούς. Συχνά απαιτείται μια
|
||
ξεχωριστή μηχανή διαχείρισης για τον έλεγχο των εικονικών μηχανών και
|
||
του υλικού του κεντρικού υπολογιστή.
|
||
|
||
\item \textbf{\textlatin{Type 2 (Hosted)}}:
|
||
|
||
Ένας \textlatin{hypervisor} τύπου 2 δεν εκτελείται απευθείας στο
|
||
υποκείμενο υλικό. Αντ'' αυτού, εκτελείται ως εφαρμογή σε ένα υπάρχον
|
||
λειτουργικό σύστημα. Η χρήση τους δε συνηθίζεται σε περιβάλλοντα με
|
||
πολλούς διακομιστές. Αντίθετα, είναι καταλληλότεροι για μεμονωμένους
|
||
τελικούς χρήστες υπολογιστών που χρειάζονται να τρέξουν πολλαπλά
|
||
λειτουργικά συστήματα. Μερικοί από αυτούς είναι μηχανικοί,
|
||
επαγγελματίες ασφαλείας που αναλύουν κακόβουλο λογισμικό και
|
||
επιχειρηματικοί χρήστες που χρειάζονται πρόσβαση σε εφαρμογές που είναι
|
||
διαθέσιμες μόνο σε άλλες πλατφόρμες λογισμικού.
|
||
|
||
Διαθέτουν συχνά πρόσθετες εργαλειοθήκες για τους χρήστες που μπορούν να
|
||
εγκατασταθούν στο λειτουργικό σύστημα προκειμένου να παρέχουν
|
||
βελτιωμένες συνδέσεις μεταξύ του υποκείμενου λειτουργικού συστήματος
|
||
και εκείνου της εικονικής μηχανής. Οι πρόσθετες δυνατότητες που
|
||
υποστηρίζονται μετά την παραπάνω διαδικασία μπορεί να είναι η αποκοπή
|
||
και επικόλληση μεταξύ των δύο συστημάτων ή η κοινή πρόσβαση στον
|
||
αποθηκευτικό χώρο.
|
||
|
||
Επιτρέπει τη γρήγορη εναλλαγή σε διαφορετικά λειτουργικά συστήματα
|
||
πέραν του ήδη υπάρχοντος, πράγμα που αυξάνει την παραγωγικότητα του
|
||
τελικού χρήστη, αφού μπορεί να έχει πρόσβαση σε εργαλεία που δεν
|
||
υποστηρίζονται στο δικό του.
|
||
|
||
Εξαιτίας της αρχιτεκτονικής τους, οι \textlatin{hypervisors} τύπου 2
|
||
εισάγουν προβλήματα καθυστέρησης που μπορεί να επηρεάσουν την απόδοση.
|
||
Αυτό συμβαίνει επειδή η πρόσβαση στους πόρους υπολογισμού, μνήμης και
|
||
δικτύου πραγματοποιείται μέσω του κεντρικού λειτουργικού συστήματος.
|
||
|
||
Επιπροσθέτως, εισάγει πιθανούς κινδύνους ασφάλειας εάν ένας εισβολέας
|
||
παραβιάσει το κεντρικό λειτουργικό σύστημα, επειδή θα μπορούσε στη
|
||
συνέχεια να χειραγωγήσει οποιοδήποτε φιλοξενούμενο λειτουργικό σύστημα
|
||
που εκτελείται σε αυτόν.
|
||
|
||
\end{itemize}
|
||
|
||
\section{Χαρακτηριστικά των \textlatin{hypervisor}} \label{hypervisorCharacteristics}
|
||
|
||
Αν και υπάρχουν διαφορετικά είδη \textlatin{hypervisors}, όλοι έχουν κάποια
|
||
χαρακτηριστικά που πρέπει να λάβει κανείς υπόψιν όταν επιλέγει ποιον θα
|
||
χρησιμοποιήσει. Μερικά σημαντικά αυτών είναι:
|
||
|
||
\begin{itemize}
|
||
|
||
\item \textbf{Απόδοση}:
|
||
|
||
Βασικό χαρακτηριστικό ενός \textlatin{hypervisor} είναι η απόδοση του.
|
||
Διαφέρει από \textlatin{hypervisor} σε \textlatin{hypervisor} αναλόγως
|
||
τη κατασκευή και τον τύπο. Οι \textlatin{bare-metal hypervisors} θα
|
||
πρέπει να έχουν απόδοση κοντά στην εγγενή.
|
||
|
||
\item \textbf{Οικοσύστημα}:
|
||
|
||
Για τη διαχείριση \textlatin{hypervisor} σε διάφορες κλίμακες πρέπει να
|
||
υπάρχει καλή τεκμηρίωση και διάφορα εργαλεία είτε επίσημα είτε από την
|
||
κοινότητα που να επιτρέπουν δυνατότητες όπως δημιουργία αντιγράφων
|
||
ασφαλείας, ανάλυση χωρητικότητας και διαχείριση εναλλαγής εικονικών
|
||
μηχανών σε περιπτώσεις σφάλματος του λειτουργικού συστήματος.
|
||
|
||
\item \textbf{Εργαλεία διαχείρισης}:
|
||
|
||
Η εκτέλεση εικονικών μηχανών δεν αποτελεί το μοναδικό καθήκον ενός
|
||
διαχειριστή κατά τη χρήση ενός \textlatin{hypervisor}. Απαραίτητες
|
||
πρόσθετες ενέργειες είναι η συντήρηση και η ανάλυση τους, καθώς και ο
|
||
καθαρισμός όσων δε χρησιμοποιούνται πλέον.
|
||
|
||
\item \textbf{Μεταφορά κατά τη λειτουργία}:
|
||
|
||
Πρέπει να υπάρχει η δυνατότητα μεταφοράς εικονικών μηχανών από έναν
|
||
\textlatin{hypervisor} σε κάποιον άλλο σε διαφορετική φυσική μηχανή
|
||
χωρίς την ανάγκη διακοπής της λειτουργίας της. Ένα χαρακτηριστικό που
|
||
χρησιμεύει τόσο για την ανατροπή αποτυχίας όσο και για την εξισορρόπηση
|
||
του φόρτου εργασίας.
|
||
|
||
\item \textbf{Κόστος}:
|
||
|
||
Το κόστος είναι ένας παράγοντας που πρέπει να ληφθεί υπόψιν κατά την
|
||
επιλογή ενός \textlatin{hypervisor}. Οι περισσότεροι είναι δωρεάν αλλά
|
||
υπάρχουν και εμπορικές εκδόσεις που προσφέρουν περισσότερες
|
||
δυνατότητες. Όπως επίσης και ύπαρξη ή μη, λογισμικού διαχείρισης του
|
||
που να του επιτρέπει να κλιμακώνεται ανάλογα τις απαιτήσεις της
|
||
επιχείρησης.
|
||
|
||
\end{itemize}
|
||
|
||
\section {Τρόπος λειτουργίας της εικονικοποίησης} \label{virtualizationOperation}
|
||
|
||
Για να πραγματοποιηθεί η εικονικοποίηση, χρειαζόμαστε έναν
|
||
\textlatin{hypervisor}. Αυτός είναι ένα λογισμικό που διαχωρίζει τους φυσικούς
|
||
πόρους από τα εικονικά περιβάλλοντα, τα οποία τους χρειάζονται. Ένας
|
||
\textlatin{hypervisor} μπορεί να τοποθετηθεί πάνω σε ένα λειτουργικό σύστημα ή
|
||
να εγκατασταθεί απευθείας στο υλικό. Κάτι που κάνουν οι περισσότερες
|
||
επιχειρήσεις για λόγους αποδοτικότητας αφού θα βρίσκεται μια στρώση πιο κοντά
|
||
στο υλικό το οποίο θα διαχειρίζεται. Η δουλειά ενός \textlatin{hypervisor}
|
||
είναι ουσιαστικά να πάρουν τους φυσικούς μας πόρους και να τους χωρίσουν με
|
||
τέτοιο τρόπο ώστε να μπορούν να χρησιμοποιηθούν από τα εικονικά μας
|
||
περιβάλλοντα.
|
||
|
||
\begin{center}
|
||
\includegraphics[width = .5\textwidth]{Figures/RedHat_Virtualization/redhat_virtualization_architecture.png}
|
||
\captionof{figure}{\textlatin{hypervisor} πάνω σε διακομιστές}
|
||
\label{fig:hypervisorOnServers}
|
||
\end{center}
|
||
|
||
Μετά τη δημιουργία μιας εικονικής μηχανής, οι χρήστες αλληλεπιδρούν με αυτήν
|
||
όπως θα αλληλεπιδρούσαν με μια φυσική. Οι εικονικές μηχανές έχουν τη μορφή ενός
|
||
ενιαίου αρχείου, πράγμα που καθιστά εύκολη τη μεταφορά και ανάγνωση τους από
|
||
οποιονδήποτε υπολογιστή αναμένοντας τον ίδιο τρόπο λειτουργίας. Κατά την
|
||
εκτέλεση του εικονικού περιβάλλοντος, όταν ένας χρήστης ή ένα πρόγραμμα εκδώσει
|
||
μία εντολή που απαιτεί περισσότερους πόρους από τους διαθέσιμους του, ο
|
||
\textlatin{hypervisor} αναμεταδίδει το αίτημα αυτό στο φυσικό σύστημα και
|
||
μπορεί να διαθέσει τους απαραίτητους πόρους για την εκτέλεση. Όλα αυτά
|
||
συμβαίνουν με σχεδόν εγγενή ταχύτητα, ιδίως αν αποστέλλεται μέσω ενός
|
||
\textlatin{hypervisor} ανοιχτού κώδικα βασισμένου στο \textlatin{KVM}, το
|
||
\textlatin{(Kernel-based Virtual Machine)}.
|
||
|
||
\pagebreak
|
||
|
||
\section{Τύποι εικονικοποίησης} \label{virtualizationTypes}
|
||
|
||
Υπάρχουν πολλοί τύποι εικονικοποίησης. Πέντε βασικοί αυτών είναι οι εξής:
|
||
|
||
\begin{itemize}
|
||
|
||
\item \textbf{\textlatin{Data Virtualization}}:
|
||
|
||
\begin{center}
|
||
\includegraphics[width = .5\textwidth]{Figures/RedHat_Virtualization/redhat_data_virtualization.png}
|
||
\captionof{figure}{\textlatin{Data Virtualization}}
|
||
\label{fig:dataVirtualization}
|
||
\end{center}
|
||
|
||
Διασκορπισμένα δεδομένα μπορούν να ενοποιηθούν σε μια ενιαία πηγή. Με
|
||
την εικονικοποίηση δεδομένων, οι εταιρείες μπορούν να οργανώσουν και να
|
||
επεξεργαστούν διασκορπισμένες πληροφορίες με γνώμονα τις ανάγκες των
|
||
χρηστών με μεγαλύτερη ευκολία και αποδοτικότητα. Τομείς οι οποίοι
|
||
επωφελούνται από την εικονικοποίηση δεδομένων είναι η λήψη αποφάσεων, η
|
||
επιχειρηματική αναλυτική και η αξιολόγηση των κινδύνων.
|
||
|
||
\pagebreak
|
||
|
||
\item \textbf{\textlatin{Desktop Virtualization}}:
|
||
|
||
\begin{center}
|
||
\includegraphics[width = .5\textwidth]{Figures/RedHat_Virtualization/redhat_desktop_virtualization.png}
|
||
\captionof{figure}{\textlatin{Desktop Virtualization}}
|
||
\label{fig:desktopVirtualization}
|
||
\end{center}
|
||
|
||
Επιτρέπει σε έναν κεντρικό διαχειριστή να μοιράζει προσομοιωμένα
|
||
περιβάλλοντα εργασίας σε εκατοντάδες φυσικές μηχανές ταυτοχρόνως. Εν
|
||
αντιθέσει με τα παραδοσιακά περιβάλλοντα εργασίας που χρήζουν
|
||
εγκατάστασης, διαμόρφωσης και ενημέρωσης σε κάθε υπολογιστή, η
|
||
εικονικοποίηση επιφάνειας εργασίας καθιστά δυνατή τη μαζική
|
||
διαμόρφωση, ενημέρωση και έλεγχο ασφαλείας σε όλα τα εικονικά
|
||
περιβάλλοντα εργασίας.
|
||
|
||
\item \textbf{\textlatin{Server Virtualization}}:
|
||
|
||
\begin{center}
|
||
\includegraphics[width = .5\textwidth]{Figures/RedHat_Virtualization/redhat_server_virtualization.png}
|
||
\captionof{figure}{\textlatin{Server Virtualization}}
|
||
\label{fig:serverVirtualization}
|
||
\end{center}
|
||
|
||
Οι διακομιστές είναι υπολογιστές σχεδιασμένοι με σκοπό να
|
||
επεξεργάζονται πολύ καλά έναν μεγάλο όγκο συγκεκριμένων εργασιών, ώστε
|
||
άλλοι υπολογιστές να μπορούν να δίνουν προτεραιότητα σε άλλες εργασίες.
|
||
Η εικονικοποίηση ενός διακομιστή του επιτρέπει να εκτελεί περισσότερες
|
||
από τις συγκεκριμένες λειτουργίες που σχεδιάστηκε να κάνει. Για την
|
||
επίτευξη αυτού απαιτείται η κατάτμησή του έτσι ώστε τα στοιχεία του να
|
||
μπορούν να χρησιμοποιηθούν για την εξυπηρέτηση πολλαπλών λειτουργιών.
|
||
|
||
\pagebreak
|
||
|
||
\item \textbf{\textlatin{Operating System Virtualization}}:
|
||
|
||
\begin{center}
|
||
\includegraphics[width = .5\textwidth]{Figures/RedHat_Virtualization/redhat_os_virtualization.png}
|
||
\captionof{figure}{\textlatin{Operating System Virtualization}}
|
||
\label{fig:operatingSystemVirtualization}
|
||
\end{center}
|
||
|
||
Η εικονικοποίηση λειτουργικού συστήματος είναι κάτι που συμβαίνει στον
|
||
πυρήνα. Αποτελεί έναν χρήσιμο τρόπο εκτέλεσης \textlatin{Linux} και
|
||
\textlatin{Windows} συστημάτων στο ίδιο μηχάνημα. Πολλές επιχειρήσεις
|
||
προωθούν τα εικονικά λειουργικά συστήματα σε υπολογιστές, προκειμένου
|
||
να μειωθεί το κόστος μηχανημάτων, να αυξηθεί η ασφάλεια και να μειωθεί
|
||
ο χρόνος συντήρησης τους.
|
||
|
||
\pagebreak
|
||
|
||
\item \textbf{\textlatin{Network Function Virtualization}}:
|
||
|
||
\begin{center}
|
||
\includegraphics[width = .5\textwidth]{Figures/RedHat_Virtualization/redhat_network_function_virtualization.png}
|
||
\captionof{figure}{\textlatin{Network Function Virtualization}}
|
||
\label{fig:networkFunctionVirtualization}
|
||
\end{center}
|
||
|
||
Η εικονικοποίηση λειτουργιών δικτύου (\textlatin{NFV}) διαχωρίζει τις
|
||
βασικές λειτουργίες ενός δικτύου (όπως ο διαμοιρασμός αρχείων, και η
|
||
διαμόρφωση \textlatin{IP}), ώστε να μπορούν να διανεμηθούν σε διάφορα
|
||
περιβάλλοντα. Από τη στιγμή που οι λειτουργίες λογισμικού είναι
|
||
ανεξάρτητες από τα φυσικά μηχανήματα στα οποία εκτελούνταν,
|
||
συγκεκριμένες λειτουργίες μπορούν να πακεταριστούν μαζί σε ένα νέο
|
||
δίκτυο και να ανατεθούν σε ένα περιβάλλον. Η εικονικοποίηση των δικτύων
|
||
μειώνει τον αριθμό των φυσικών εξαρτημάτων όπως οι μεταγωγείς,
|
||
δρομολογητές, διακομιστές, καλώδια και κόμβοι που απαιτούνται για τη
|
||
δημιουργία πολλαπλών, ανεξάρτητων δικτύων και είναι ιδιαίτερα δημοφιλής
|
||
στον κλάδο των τηλεπικοινωνιών.
|
||
|
||
\end{itemize}
|
||
|
||
\pagebreak
|
||
|
||
\section{Πλεονεκτήματα της εικονικοποίησης} \label{virtualizationAdvantages}
|
||
|
||
Η εικονικοποίηση προσφέρει πολλά πλεονεκτήματα στις επιχειρήσεις. Τα πιο
|
||
αξιοσημείωτα αυτών με βάση την
|
||
\textlatin{\citeauthor{ibmVirtualizationDefinition}} είναι τα παρακάτω.
|
||
|
||
\begin{itemize}
|
||
|
||
\item \textbf{Αποδοτικότητα πόρων}:
|
||
|
||
Προτού η εικονικοποίηση γίνει δημοφιλής, κάθε διακομιστής εφαρμογής
|
||
απαιτούσε τη δική αποκλειστική μονάδα κεντρικής επεξεργασίας. Το
|
||
προσωπικό της επιχείρησης έπρεπε να αγοράσει και να ρυθμίσει έναν
|
||
ξεχωριστό διακομιστή για κάθε εφαρμογή που έπρεπε να εκτελέσει. Η
|
||
προτιμώμενη αρχιτεκτονική για λόγους αξιοπιστίας ήταν να υπάρχει μια
|
||
εφαρμογή και ένα μόνο λειτουργικό σύστημα για κάθε υπολογιστή. Αυτό
|
||
είχε ως αποτέλεσμα την υποχρησιμοποίηση κάθε διακομιστή. Η λύση ήρθε με
|
||
τη μορφή της εικονοποίησης διακομιστών η οποία επέτρεπε την εκτέλεση
|
||
πολλαπλών εφαρμογών σε έναν φυσικό υπολογιστή δίχως την υπονόμευση της
|
||
αξιοπιστίας.
|
||
|
||
\item \textbf{Ευκολότερη διαχείριση}:
|
||
|
||
Αντικαθιστώντας φυσικούς υπολογιστές με προγραμματιστικά καθορισμένες
|
||
εικονικές μηχανές γίνεται δυνατή η χρήση αυτοματοποιημένων ροών
|
||
διαχείρισης εργασιών. Οι διαχειριστές συστημάτων μπορούν να
|
||
χρησιμοποιούν εργαλεία για τον καθορισμό εικονικών μηχανών
|
||
χρησιμοποιώντας πρότυπα κατάλληλα για την υποδομή κάθε επιχείρησης. Με
|
||
αυτόν τον τρόπο η εγκατάσταση και η ρύθμιση τους μπορεί να γίνεται
|
||
επανειλημμένα δίχως το ρίσκο ανθρώπινου λάθους και γλιτώνοντας τον
|
||
χρόνο εγκατάστασης και ρύθμισης τους χειροκίνητα. Ένας συνδυασμός
|
||
εργαλείων που το κάνει πραγματικότητα είναι το \textlatin{Ansible}
|
||
\cite{ansible} και \textlatin{Terraform} \cite{terraform}.
|
||
|
||
\item \textbf{Ελάχιστος χρόνος διακοπής λειτουργίας}:
|
||
|
||
Οι καταρρεύσεις λειτουργικών συστημάτων και εφαρμογών μπορεί να
|
||
προκαλέσουν διακοπή λειτουργίας και να διαταράξουν την παραγωγικότητα
|
||
των χρηστών. Οι διαχειριστές μπορεί να έχουν πλεονάζουσες εικονικές
|
||
μηχανές και να πραγματοποιούν εναλλαγή σε αυτές εάν εμφανιστούν
|
||
προβλήματα, κάτι που θα ήταν μη αποδοτικό για την επιχείρηση με
|
||
φυσικούς διακομιστές.
|
||
|
||
\item \textbf{Ταχύτερη παροχή}:
|
||
|
||
Η αγορά, εγκατάσταση και διαμόρφωση του υλικού για
|
||
κάθε εφαρμογή είναι χρονοβόρα. Εφόσον το υλικό είναι ήδη στη θέση του,
|
||
η παροχή εικονικών μηχανών για την εκτέλεση όλων των εφαρμογών σας
|
||
είναι σημαντικά ταχύτερη.
|
||
|
||
\end{itemize}
|
||
|
||
\section{Ασφάλεια στο \textlatin{Cloud Computing} Στις Μέρες Μας} \label{cloudComputingSecurityNowadays}
|
||
|
||
Πλέον όλοι γνωρίζουμε τη σημασία της ασφάλειας.
|
||
|
||
\subsection{\textlatin{Attack Vector Mitigation}} \label{attackVectorMitigation}
|
||
|
||
Με βάση το μοντέλο που περιγράφει το \cite{reshetova2014security} όπως
|
||
αναφέρεται στο \cite{bui2015analysis} όπου έχουμε ένα μηχάνημα στο οποίο
|
||
εκτελούνται διάφορα δοχεία, από τα οποία ένα υποσύνολο έχει τεθεί υπό τον
|
||
έλεγχο ενός κακόβουλου χρήστη. Για να προστατευτούμε από επιθέσεις, όπως άρνηση
|
||
υπηρεσίας και κλιμάκωση δικαιωμάτων πρέπει να πραγματοποιηθεί απομόνωση των
|
||
διεργασιών, αρχείων, της συσκευής, του \textlatin{IPC}, δικτύου και τέλος, των
|
||
πόρων.
|
||
|
||
\pagebreak
|
||
|
||
Αυτά επιτυγχάνονται κατά σειρά με την χρήση \textlatin{namespaces} όπου
|
||
οριοθετείται η ορατότητα των διεργασιών ανάμεσα στα δοχεία και το σύστημα όπως
|
||
επίσης, τα δικαιώματά τους. Χρήση \textlatin{mount namespaces}, με τα οποία οι
|
||
διεργασίες κάθε δοχείου βλέπουν διαφορετικά το αρχείο του συστήματος. Όλες οι
|
||
δράσεις \textlatin{mount}, που γίνονται στο εκάστοτε δοχείο, περιορίζονται σε
|
||
αυτό όπως επίσης, οριοθετούνται τα δικαιώματα των αρχείων του πυρήνα σε μονάχα
|
||
ανάγνωσης και αποτρέπονται περαιτέρω \textlatin{remountings}. Ο περιορισμός
|
||
συσκευών επιτυγχάνεται με το χαρακτηριστικό \textlatin{Device Whitelist
|
||
Controller} των \textlatin{cgroups} που αναφέρεται στο
|
||
\cite{deviceWhitelistController} με την βοήθεια του οποίου περιορίζεται το
|
||
σύνολο τον συσκευών στις οποίες έχει πρόσβαση ένα δοχείο και αποτρέπει αυτό από
|
||
το να δημιουργήσει καινούριες αναπαραστάσεις συσκευών. Επιπροσθέτως επειδή τα
|
||
\textlatin{mount} γίνονται με την χρήση του \textlatin{nodev}, στην περίπτωση
|
||
που μια αναπαράσταση συσκευής είχε δημιουργηθεί σε προηγούμενο χρόνο στο
|
||
στιγμιότυπου που χρησιμοποιήθηκε για να κατασκευαστεί το δοχείο, οι διεργασίες
|
||
του δεν δύνανται να την χρησιμοποιήσουν για να επικοινωνήσουν με τον πυρήνα.
|
||
Επιπλέον επειδή η προεπιλεγμένη συνθήκη είναι να μην δίνονται εκτεταμένα
|
||
προνόμια σε ένα δοχείο, δεν υπάρχει πρόσβαση σε καμία συσκευή παρά μόνο εάν
|
||
γίνει εκτέλεση δοχείου ως χρήστης με ανώτατα δικαιώματα όπου υπάρχει πρόσβαση
|
||
σε όλες. Ο περιορισμός \textlatin{IPC}, δηλαδή της επικοινωνίας των διεργασιών
|
||
μεταξύ τους, επιτυγχάνεται με την χρήση \textlatin{IPC namespaces} που
|
||
καθιστούν δυνατή την δημιουργία ξεχωριστών συνόλων αυτών, οι διεργασίες των
|
||
οποίων επικοινωνούν μόνο μεταξύ τους. Μία από τις σημαντικότερες απομονώσεις
|
||
είναι αυτή του δικτύου. Χωρίς δικτυακή απομόνωση υπάρχει κίνδυνος επιθέσεων
|
||
όπως \textlatin{Man in the middle}, \textlatin{ARP, DNS spoofing} και άλλες.
|
||
Για να απομονωθεί η κίνηση δικτύου που λαμβάνει μέρος σε ένα δοχείο από αυτήν
|
||
των υπολοίπων και του συστήματος πρέπει να γίνει χρήση των \textlatin{network
|
||
namespaces}. Κάθε δοχείο θα έχει δικές του διευθύνσεις \textlatin{IP}, συσκευές
|
||
και ό,τι χρειάζεται, προκειμένου να γίνεται αλληλεπίδραση μεταξύ των δοχείων
|
||
μέσω την διεπαφή δικτύου του καθενός σαν να είναι εξωτερικές οντότητες. Τέλος,
|
||
επιβάλλεται η οριοθέτηση των υπολογιστικών πόρων προκειμένου να αποφευχθεί μια
|
||
επίθεση τύπου άρνησης υπηρεσίας όπου μια διεργασία ή ένα σύνολο αυτών προσπαθεί
|
||
να καταναλώσει όλους τους πόρους του συστήματος. Με την βοήθεια των
|
||
\textlatin{cgroup}, επιτυγχάνεται ο έλεγχος του ποσοστού πόρων όπως
|
||
\textlatin{CPU}, μνήμη, και χωρητικότητα που μπορεί να έχει κάθε δοχείο στην
|
||
διάθεση του.
|