Τα τελευταία χρόνια, οι συστοιχίες εικονικών μηχανών αποτελούν την εναλλακτική λύση των συστοιχιών πραγματικών υπολογιστών, καθώς επιτρέπουν την εκτέλεση πολυνηματικών απαιτητικών εφαρμογών, αλλά συγχρόνως παρέχουν τη δυνατότητα αποδοτικότερου και οικονομικότερου διαμοιρασμού του hardware ανάμεσα στις εφαρμογές που μπορεί να εκτελούνται ταυτόχρονα σε ένα κέντρο δεδομένων. Παράλληλα, οι εικονικές μηχανές προσφέρουν εύκολη διαχείριση και ασφάλεια. Το μειονέκτημα που παραμένει στις συστοιχίες εικονικών μηχανών είναι η επιβάρυνση στον χρόνο εκτέλεσης των εφαρμογών που απαιτούν πρόσβαση στο hardware, καθώς προστίθενται επίπεδα virtualization μεταξύ της εφαρμογής και αυτού. Το αντικείμενο της διπλωματικής ανήκει στο ευρύτερο επιστημονικό πεδίο της εκτέλεσης HPC (High Performance Computing) εφαρμογών σε συστοιχίες εικονικών μηχανών και εστιάζει στην αποδοτικότερη μεταφορά δεδομένων μεταξύ των εικονικών μηχανών. Πιο συγκεκριμένα, η παρούσα εργασία μελετά την επίδοση της μεταφοράς δεδομένων μεταξύ δύο εικονικών μηχανών καθώς επίσης και τη βελτιστοποίηση της. Το εικονικό περιβάλλον δημιουργείται από τον ελεγκτή εικονικής μηχανής Xen και οι εικονικές μηχανές βρίσκονται στο ίδιο φυσικό μηχάνημα.
Για την αποτίμηση της επίδοσης, χρησιμοποιήθηκε ένα κατάλληλα προσαρμοσμένο μετροπρόγραμμα, το οποίο, με χρήση της βιβλιοθήκης libvchan, υπολογίζει το χρόνο της εγγραφής και της ανάγνωσης των δεδομένων μεταβάλλοντας κάθε φορά το μέγεθος των δεδομένων, το ρυθμό με τον οποίο αυτά γράφονται (granularity) και το μέγεθος των buffers επικοινωνίας (ring size). Ο χρόνος αυτός, μετατρέπεται σε bandwidth και παρουσιάζεται σε διαγράμματα στηλών. Η μεταφορά των δεδομένων επηρεάζεται κυρίως από το ring size και λιγότερο από το granularity. Τέλος, παρατηρείται σημαντική αύξηση στην απόδοση της επικοινωνίας μετά την τροποποίηση τμήματος της βιβλιοθήκης libvchan.
Today, with the advent of Virtualization techniques, Virtual Machine (VM) environments are becoming a great trend, providing flexibility, dedicated execution and isolation to a vast number of services. These infrastructures, built on clusters of multicores, offer huge processing power, ideal for mass deployment of compute-intensive applications. However, the use of virtual machines, in clusters, imposes a delay on execution time of applications that require access to hardware, because of added levels of virtualization between the application and itself. The subject of the thesis belongs to the broader scientific field of executing HPC (High Performance Computing) applications on clusters of virtual machines and focuses on efficient data transfer between virtual machines. More specifically, this study investigates the performance of data transfer between two virtual machines as well as its optimization. The virtual environment is created by the Xen VM controller and virtual machines are located on the same physical machine.
To evaluate the performance, a properly adjusted benchmark is used, which, using the libvchan library, measures the time of data writing and reading, changing ,every time, the data size, the rate at which they are written (granularity) and the size of the communication buffers (ring size). The time extracted, is converted into bandwidth and this is shown in bar charts. The data transfer is mainly affected by the ring size. Finally, there is a significant increase, in the communication performance, after the modification of a libvchan’s proper section.