diff --git a/Bibliography.bib b/Bibliography.bib index cae7189..eb70d99 100644 --- a/Bibliography.bib +++ b/Bibliography.bib @@ -169,6 +169,24 @@ howpublished="\url{https://www.ibm.com/topics/virtualization}" } +@misc{suseParavirtualizationDefinition, + title={Paravirtualization}, + author={SUSE}, + howpublished="\url{https://www.suse.com/suse-defines/definition/paravirtualization/}" +} + +@misc{geeksforgeeksParavirtualizationDefinition, + title={Difference between Full Virtualization and Paravirtualization}, + author={GeeksforGeeks}, + howpublished="\url{https://www.geeksforgeeks.org/difference-between-full-virtualization-and-paravirtualization/}" +} + +@misc{ParavirtualizationSecurity, + title={Why Your Virtual Servers May be More Secure Than Their Physical Counterparts}, + author={Andrew Mallett}, + howpublished="\url{https://ine.com/blog/why-your-virtual-servers-may-be-more-secure-than-their-physical-counterparts}" +} + @misc{ibmHypervisorDefinition, title={What are hypervisors?}, author={IBM}, diff --git a/Chapters/2.Background.tex b/Chapters/2.Background.tex index 6582331..7adefa3 100644 --- a/Chapters/2.Background.tex +++ b/Chapters/2.Background.tex @@ -578,6 +578,131 @@ \end{itemize} +\section{Τεχνολογίες εικονικοποίησης} \label{virtualizationTechnologies} + +Όταν αναφερόμαστε στην εικονικοποίηση συνήθως μιλάμε για την πιο συνηθισμένη +μορφή της η οποία είναι η πλήρης εικονικοποίηση. Με την πάροδο του χρόνου και +την αύξηση της δημοτικότητας της εικονικοποίησης αναπτύχθηκαν πολλοί +\textlatin{hypervisors} μπορεί να διαφέρουν όχι μόνο στα χαρακτηριστικά τους +αλλά και στις διάφορες τεχνικές που χρησιμοποιούν για να κάνουν την +εικονικοποίηση πραγματικότητα. Μια από αυτές ονομάζεται +\textlatin{para-virtualization}. + +\subsection{\textlatin{Para-virtualization}} \label{paraVirtualization} + +Η \textlatin{para-virtualization} \cite{suseParavirtualizationDefinition} είναι +μια τεχνική εικονικοποίησης που αναπτύχθηκε προκειμένου να ξεπεραστούν ορισμένα +προβλήματα επιδόσεων που εισάγει η πλήρης εικονικοποίηση λόγω της συνεχούς +μετάφρασης φυσικών και εικονικών πόρων. Εξαιτίας αυτού, περιορίζεται σημαντικά +ο αριθμός εικονικών μηχανών που μπορεί να υποστηρίξει ένας διακομιστής και τα +είδη εφαρμογών που μπορούν να εκτελεστούν σε μια εικονική μηχανή. Πρόκειται για +μια κατηγορία εικονικοποίησης της κεντρικής μονάδας επεξεργασίας +\cite{geeksforgeeksParavirtualizationDefinition} κατά την οποία, δύναται το +λειτουργικό σύστημα να επικοινωνεί άμεσα με τον \textlatin{hypervisor} με σκοπό +τη διεξαγωγή δραστηριοτήτων που θα ήταν χρονοβόρες για τον διαχειριστή +εικονικών μηχανών, κάνοντας χρήση ειδικών εντολών ονόματι +\textlatin{hypercalls} για τη διαχείριση αιτημάτων κατά τον χρόνο εκτέλεσης. +Προκειμένου να επιτευχθεί αυτό, τα λειτουργικά συστήματα χρειάζονται μια μικρή +τροποποίηση η οποία επιτρέπει την υλοποίηση ενός ειδικού \textlatin{API} μέσω +του οποίου θα πραγματοποιείται η ανταλλαγή \textlatin{hypercall} ανάμεσα σε +αυτά και τον \textlatin{hypervisor}. Οι \textlatin{hypervisors} που το +υποστηρίζουν αυτό απαιτούν την υποστήριξη του λειτουργικού συστήματος και τη +χρήση ειδικών προγραμμάτων οδήγησης τα οποία είναι πλέον ενσωματωμένα στον +πυρήνα του \textlatin{Linux}. Κάνοντας χρήση της τεχνικής αυτής, το λειτουργικό +σύστημα της εικονικής μηχανής δεν είναι πλήρως απομονωμένο αλλά απομονώνεται +μερικώς από το υλικό και το επίπεδο εικονικοποίησης. + +\pagebreak + +Στην εικόνα \ref{fig:FullVirtualization} παρουσιάζεται η αρχιτεκτονική της +πλήρους εικονικοποίησης όπου το λειτουργικό σύστημα της εικονικής μηχανής +επιβάλλεται να περάσει τα αιτήματα του μέσω του διαχειριστή εικονικών μηχανών. + +\begin{center} + \includegraphics[width = .5\textwidth]{Figures/GeeksForGeeksParavirtualization/Full-Virualization.png} + \captionof{figure}{\textlatin{Full Virtualization}} + \label{fig:FullVirtualization} +\end{center} + +Αντιθέτως, στην εικόνα \ref{fig:ParaVirtualization} όπου και απεικονίζεται η +αρχιτεκτονική της τεχνικής \textlatin{para-virtualization}, βλέπουμε πως μέσω +των \textlatin{hypercall} όλα τα αιτήματα προορίζονται στη στρώση +εικονικοποίησης και από εκεί στο κύριο σύστημα. + +\begin{center} + \includegraphics[width = .5\textwidth]{Figures/GeeksForGeeksParavirtualization/Paravirtualization.png} + \captionof{figure}{\textlatin{Para Virtualization}} + \label{fig:ParaVirtualization} +\end{center} + +\pagebreak + +Οι διαφορές της πλήρους εικονικοποίησης με την \textlatin{para-virtualization} είναι οι εξής: + +\begin{table}[h!] +\centering +\begin{tabular}{|| c | p{6cm} | p{6cm} ||} +\hline +Νούμερο & Πλήρης εικονικοποίηση & \textlatin{Paravirtualization} \\ [0.5ex] +\hline\hline + +1 & + +Πλήρης απομόνωση της εικονικής μηχανής. & + +Μερική απομόνωση και χρήση \textlatin{API} για αμεσότερη επικοινωνία. \\ + +\hline + +2 & + +Λιγότερο ασφαλής. & + +Υπάρχει επίγνωση του εικονικού περιβάλλοντος και δε γίνεται εκκίνηση του +\textlatin{BIOS} \cite{ParavirtualizationSecurity}, πράγμα που την καθιστά +ασφαλέστερη. \\ + +\hline + +3 & + +Χρήση δυαδικής μετάφρασης. & + +Χρήση \textlatin{hypercall} κατά την εκτέλεση. \\ + +\hline + +4 & + +Πιο αργές ταχύτητες. & + +Γρηγορότερη εκτέλεση. \\ + +\hline + +5 & + +Μεγαλύτερη συμβατότητα και φορητότητα. & + +Λόγω της αρχιτεκτονικής της είναι δυσκολότερη η μεταφορά εικονικών μηχανών. \\ + +\hline + +6 & + +Υποστήριξη όλων των συστημάτων χωρίς την απαίτηση τροποποιήσεων. & + +Απαιτείται τροποποίηση του λειτουργικού συστήματος της εικονικής μηχανής για να +κάνει χρήση \textlatin{hypercalls}. \\ + +\hline +\end{tabular} +\caption{Διαφορές πλήρους εικονικοποίησης και παρα-εικονικοποίησης} +\label{table:virtualizationTechniquesDifference} +\end{table} + +\pagebreak + \section{Ασφάλεια στο \textlatin{Cloud Computing} Στις Μέρες Μας} \label{cloudComputingSecurityNowadays} Πλέον όλοι γνωρίζουμε τη σημασία της ασφάλειας. diff --git a/Figures/GeeksForGeeksParavirtualization/Full-Virualization.png b/Figures/GeeksForGeeksParavirtualization/Full-Virualization.png new file mode 100644 index 0000000..50c43b6 Binary files /dev/null and b/Figures/GeeksForGeeksParavirtualization/Full-Virualization.png differ diff --git a/Figures/GeeksForGeeksParavirtualization/Paravirtualization.png b/Figures/GeeksForGeeksParavirtualization/Paravirtualization.png new file mode 100644 index 0000000..b48a50c Binary files /dev/null and b/Figures/GeeksForGeeksParavirtualization/Paravirtualization.png differ