VERSION 1.0 ΝΟΕΜΒΡΙΟΣ, 2016 ΤΕΧΝΟΛΟΓΙΕΣ ΥΠΟΛΟΓΙΣΤΙΚΟΥ ΝΕΦΟΥΣ ΤΟ ΠΕΡΙΒΑΛΛΟΝ ΠΡΟΣΟΜΟΙΩΣΗΣ CLOUDSIM ΕΠΙΜΕΛΕΙΑ: ΒΑΣΙΛΕΙΟΣ ΤΣΑΚΑΝΙΚΑΣ
ΤΕΧΝΟΛΟΓΙΕΣ ΥΠΟΛΟΓΙΣΤΙΚΟΥ ΝΕΦΟΥΣ ΤΟ ΠΕΡΙΒΑΛΛΟΝ ΠΡΟΣΟΜΟΙΩΣΗΣ CLOUDSIM ΤΟ ΠΕΡΙΒΑΛΛΟΝ ΠΡΟΣΟΜΟΙΩΣΗΣ CLOUDSIM A. Εισαγωγή Πρόσφατα, το cloud computing αναδείχθηκε ως η κορυφαία τεχνολογία για την παροχή αξιόπιστων, ασφαλών, υπολογιστικών υπηρεσιών. Οι υπηρεσίες αυτές μπορούν να προσφέρονται σε ιδιωτικά κέντρα δεδομένων (private clouds), μπορούν να προσφέρονται στο εμπόριο πελάτες (δημόσια σύννεφα), ή ακόμη είναι πιθανό οι δημόσιες και ιδιωτικές υποδομές να συνδυάζονται σε υβριδικά σύννεφα. Αυτές οι ήδη διαδεδομένες αρχιτεκτονικές, σε συνδυασμό με την αυξανόμενη ζήτηση για τεχνολογίες πληροφορικής υψηλής ενεργειακής απόδοσης, απαιτούν την έγκαιρη, επαναλαμβανόμενη, και ελεγχόμενη αξιολόγηση των αλγορίθμων, εφαρμογών, και τις πολιτικές πριν από την πραγματική ανάπτυξη των προϊόντων cloud. Επειδή η πραγματική δοκιμή τέτοιων μεγάλων και κλιμακούμενων συστημάτων είναι ένα εξαιρετικά δύσκολο εγχείρημα, εναλλακτικές προσεγγίσεις για τη δοκιμή και τον πειραματισμό νέων τεχνολογιών Cloud. Μια κατάλληλη εναλλακτική λύση είναι η χρησιμοποίηση εργαλείων προσομοίωσης, τα οποία ανοίγουν τη δυνατότητα αξιολόγησης αρχιτεκτονικών πριν από την ανάπτυξη του λογισμικού σε ένα περιβάλλον όπου μπορεί κανείς να αναπαράγει δοκιμές. Ειδικά στην περίπτωση του cloud computing, όπου η πρόσβαση στην υποδομή πραγματοποιείται με οικονομικό αντίκρισμα, προσεγγίσεις προσομοίωσης προσφέρουν σημαντικά οφέλη, καθώς επιτρέπουν στους πελάτες Cloud να δοκιμάσουν τις υπηρεσίες τους σε ελεγχόμενο περιβάλλον χωρίς κόστος και να βελτιώσουν τις επιδόσεις συμφόρησης πριν από την ανάπτυξη σε πραγματικό σύννεφο. Από την πλευρά του παρόχου, περιβάλλοντα προσομοίωσης επιτρέπουν την αξιολόγηση των διαφόρων ειδών σεναρίων μίσθωσης πόρων υπό διάφορες διανομές του φορτίου και την τιμολόγηση. Οι μελέτες αυτές θα μπορούσαν να βοηθήσουν τους παρόχους στη βελτιστοποίηση του κόστους πρόσβασης των πόρων με έμφαση στη βελτίωση των κερδών. Σε περίπτωση απουσίας τέτοιων πλατφορμών προσομοίωσης, οι Cloud πελάτες και οι πάροχοι πρέπει να βασίζονται είτε σε θεωρητικές και ανακριβείς εκτιμήσεις, ή σε προσεγγίσεις δοκιμή-και-λάθους (try and error) που οδηγούν σε αναποτελεσματική απόδοση των υπηρεσιών και την παραγωγή εσόδων. Ο πρωταρχικός στόχος του CloudSim είναι να παρέχει μια γενικευμένο και επεκτάσιμο πλαίσιο προσομοίωσης που επιτρέπει την απρόσκοπτη μοντελοποίηση, προσομοίωση και πειραματισμό των αναδυόμενων υποδομών υπολογιστικού νέφους και των υπηρεσιών εφαρμογής. Με τη χρήση CloudSim, ερευνητές και προγραμματιστές μπορούν να επικεντρωθούν σε συγκεκριμένα ζητήματα του σχεδιασμού του συστήματος που θέλουν να ερευνήσουν, χωρίς να ανησυχούν για τις λεπτομέρειες χαμηλού επιπέδου που σχετίζονται με τις υποδομές και τις υπηρεσίες που βασίζονται σε σύννεφο. B. Κύρια χαρακτηριστικά Παρακάτω παρουσιάζονται συνοπτικά οι κυριότερες λειτουργίες του CloudSim: υποστήριξη για μοντελοποίηση και προσομοίωση μεγάλης κλίμακας κέντρων δεδομένων (data centers) Cloud computing υποστήριξη για μοντελοποίηση και προσομοίωση των virtualized server φιλοξενίας, με προσαρμόσιμες πολιτικές για την τροφοδότηση των πόρων που φιλοξενούν εικονικές μηχανές υποστήριξη για μοντελοποίηση και προσομοίωση εφαρμογής οικονομικών πολιτικών ΝΟΕΜΒΡΙΟΣ, 2016 Τεχνολογίες Υπολογιστικού Νέφους 1
υποστήριξη για μοντελοποίηση και προσομοίωση της κατανάλωσης ενέργειας υπολογιστικών πόρων υποστήριξη για τη μοντελοποίηση και προσομοίωση τοπολογιών δικτύου και κέντρων δεδομένων με διάθεση εφαρμογών ανταλλαγής μηνυμάτων υποστήριξη για μοντελοποίηση και προσομοίωση των ομόσπονδων clouds υποστήριξη για δυναμική εισαγωγή των στοιχείων προσομοίωσης στήριξη πολιτικών που καθορίζονται από το χρήστη για την κατανομή των πόρων σε εικονικές μηχανές και πολιτικών για την κατανομή των πόρων σε εικονικές μηχανές C. Αρχιτεκτονική βασικών κλάσεων μοντελοποίησης του CloudSim Στο παρακάτω διάγραμμα εμφανίζονται οι βασικές κλάσεις μοντελοποίησης του Cloudsim. D. Εγκατάσταση του CloudSim στο NetBeans. Παρακάτω ακολουθούν τα βασικά βήματα για την εγκατάσταση της βιβλιοθήκης CloudSim στο περιβάλλον προγραμματισμού NetBeans. Βήμα 1: Κατεβάστε την βιβλιοθήκη CloudSim (cloudsim-4.0.zip) από το OpenClass του εργαστηρίου και αποσυμπιέστε την στα έγγραφά σας. ΝΟΕΜΒΡΙΟΣ, 2016 Τεχνολογίες Υπολογιστικού Νέφους 2
Βήμα 2: Δημιουργήστε ένα νέο project κλάσης Java Application Δώστε για όνομα project το όνομα mycloudapp. ΝΟΕΜΒΡΙΟΣ, 2016 Τεχνολογίες Υπολογιστικού Νέφους 3
Βήμα 3: Κάνοντας δεξί κλικ στο project πηγαίνετε στις ιδιότητες. Βήμα 4: Από το νέο παράθυρο επιλέξτε Libraries και στην συνέχεια Add Jar/Folder. Επιλέξτε το αρχείο PATH\cloudsim-4.0\jars\cloudsim-4.0.jar ΝΟΕΜΒΡΙΟΣ, 2016 Τεχνολογίες Υπολογιστικού Νέφους 4
ΝΟΕΜΒΡΙΟΣ, 2016 Τεχνολογίες Υπολογιστικού Νέφους 5
Η βιβλιοθήκη έχει πλέον συμπεριληφθεί στο project σας. ΝΟΕΜΒΡΙΟΣ, 2016 Τεχνολογίες Υπολογιστικού Νέφους 6
E. Κατανόηση Βασικών Εννοιών Για την 1 η σας προσομοίωση στο CloudSim, εκτελέστε τα παρακάτω βήματα: Κατεβάστε το αρχείο CloudSimExample1.txt. Αντιγράψτε το περιεχόμενο του αρχείου στο MyCloudApp.java, κάνοντας τις απαραίτητες τροποποιήσεις. Καταγράψτε τις μεθόδους της κλάσης σας. Προσπαθήστε να εντοπίσετε σε ποιο σημείο του κώδικά σας συμβαίνουν τα παρακάτω: o Set Number of users for current simulation. This user count is directly proportional to number of brokers in current simulation. o Initialize the simulation, provided with current time, number of users and trace flag. o Create a Data center. o Create a Data center broker. o Create a Virtual Machine(s). o Submit Virtual Machine to Data center broker. o Create Cloudlet(s) by specifying there characteristics. o Submit Cloudlets to Data center broker. o Send call to Start Simulation. o Once no more event to execute, send call to Stop Simulation. o Finally print the final status of the Simulation. ΝΟΕΜΒΡΙΟΣ, 2016 Τεχνολογίες Υπολογιστικού Νέφους 7