Εξισορρόπηση φορτίου στο Openstack

Στα μεγάλα συστήματα cloud, το ζήτημα της αυτόματης εξισορρόπησης ή της ισοπέδωσης του φορτίου στους υπολογιστικούς πόρους είναι ιδιαίτερα οξύ. Η Tionix (προγραμματιστής και χειριστής υπηρεσιών cloud, μέρος του ομίλου εταιρειών Rostelecom) έχει επίσης φροντίσει για αυτό το ζήτημα.

Και, δεδομένου ότι η κύρια πλατφόρμα ανάπτυξης μας είναι το Openstack και εμείς, όπως όλοι οι άνθρωποι, είμαστε τεμπέληδες, αποφασίστηκε να επιλέξουμε κάποια έτοιμη ενότητα που περιλαμβάνεται ήδη στην πλατφόρμα. Η επιλογή μας έπεσε στο Watcher, το οποίο αποφασίσαμε να χρησιμοποιήσουμε για τις ανάγκες μας.
Εξισορρόπηση φορτίου στο Openstack
Αρχικά, ας δούμε τους όρους και τους ορισμούς.

Οροι και ορισμοί

στόχος είναι ένα αναγνώσιμο από τον άνθρωπο, παρατηρήσιμο και μετρήσιμο τελικό αποτέλεσμα που πρέπει να επιτευχθεί. Υπάρχουν μία ή περισσότερες στρατηγικές για την επίτευξη κάθε στόχου. Μια στρατηγική είναι η εφαρμογή ενός αλγορίθμου που είναι ικανός να βρει μια λύση για έναν δεδομένο στόχο.

Δράση είναι μια βασική εργασία που αλλάζει την τρέχουσα κατάσταση του διαχειριζόμενου πόρου στόχου του συμπλέγματος OpenStack, όπως: μετεγκατάσταση μιας εικονικής μηχανής (migration), αλλαγή της κατάστασης ισχύος ενός κόμβου (change_node_power_state), αλλαγή της κατάστασης της υπηρεσίας nova (change_nova_service_state ), αλλαγή γεύσης (αλλαγή μεγέθους), καταχώρηση μηνυμάτων NOP (nop), έλλειψη ενέργειας για ορισμένο χρονικό διάστημα - παύση (αναστολή λειτουργίας), μεταφορά δίσκου (volume_migrate).

Σχέδιο δράσης - μια συγκεκριμένη ροή ενεργειών που εκτελούνται με μια συγκεκριμένη σειρά για την επίτευξη ενός συγκεκριμένου Στόχου. Το σχέδιο δράσης περιέχει επίσης μετρημένες παγκόσμιες επιδόσεις με ένα σύνολο δεικτών απόδοσης. Ένα σχέδιο δράσης δημιουργείται από τον Watcher μετά από έναν επιτυχημένο έλεγχο, ως αποτέλεσμα του οποίου η στρατηγική που χρησιμοποιείται βρίσκει μια λύση για την επίτευξη του στόχου. Ένα σχέδιο δράσης αποτελείται από μια λίστα διαδοχικών ενεργειών.

Ελεγχος είναι ένα αίτημα για βελτιστοποίηση του συμπλέγματος. Η βελτιστοποίηση εκτελείται για την επίτευξη ενός στόχου σε ένα δεδομένο σύμπλεγμα. Για κάθε επιτυχή έλεγχο, το Watcher δημιουργεί ένα σχέδιο δράσης.

Πεδίο Ελέγχου είναι ένα σύνολο πόρων εντός των οποίων εκτελείται ο έλεγχος (ζώνες διαθεσιμότητας, συγκεντρωτές κόμβων, μεμονωμένοι κόμβοι υπολογιστών ή κόμβοι αποθήκευσης, κ.λπ.). Το εύρος του ελέγχου ορίζεται σε κάθε πρότυπο. Εάν δεν προσδιορίζεται εύρος ελέγχου, ελέγχεται ολόκληρο το σύμπλεγμα.

Πρότυπο ελέγχου — ένα αποθηκευμένο σύνολο ρυθμίσεων για την έναρξη ενός ελέγχου. Απαιτούνται πρότυπα για την εκτέλεση ελέγχων πολλές φορές με τις ίδιες ρυθμίσεις. Το υπόδειγμα πρέπει απαραίτητα να περιέχει τον σκοπό του ελέγχου· εάν δεν προσδιορίζονται στρατηγικές, τότε επιλέγονται οι καταλληλότερες υπάρχουσες στρατηγικές.

Σύμπλεγμα είναι μια συλλογή φυσικών μηχανημάτων που παρέχουν πόρους υπολογισμού, αποθήκευσης και δικτύωσης και διαχειρίζονται από τον ίδιο κόμβο διαχείρισης OpenStack.

Μοντέλο δεδομένων συμπλέγματος (CDM) είναι μια λογική αναπαράσταση της τρέχουσας κατάστασης και τοπολογίας των πόρων που διαχειρίζεται το σύμπλεγμα.

Δείκτης αποτελεσματικότητας - ένας δείκτης που υποδεικνύει πώς εκτελείται η λύση που δημιουργήθηκε με αυτήν τη στρατηγική. Οι δείκτες απόδοσης είναι συγκεκριμένοι για έναν συγκεκριμένο στόχο και χρησιμοποιούνται συνήθως για τον υπολογισμό της συνολικής αποτελεσματικότητας του σχεδίου δράσης που προκύπτει.

Προδιαγραφή αποτελεσματικότητας είναι ένα σύνολο συγκεκριμένων χαρακτηριστικών που σχετίζονται με κάθε στόχο που καθορίζει τους διάφορους δείκτες απόδοσης που πρέπει να επιτύχει μια στρατηγική για την επίτευξη του αντίστοιχου Στόχου στη λύση της. Πράγματι, κάθε λύση που προτείνεται από τη στρατηγική θα ελέγχεται με βάση τις προδιαγραφές πριν υπολογιστεί η συνολική αποτελεσματικότητά της.

Μηχανή βαθμολογίας είναι ένα εκτελέσιμο αρχείο που έχει καλά καθορισμένες εισόδους, καλά καθορισμένες εξόδους και εκτελεί μια καθαρά μαθηματική εργασία. Με αυτόν τον τρόπο, ο υπολογισμός είναι ανεξάρτητος από το περιβάλλον στο οποίο εκτελείται—θα δώσει το ίδιο αποτέλεσμα οπουδήποτε.

Watcher Planner - μέρος της μηχανής λήψης αποφάσεων Watcher. Αυτή η ενότητα λαμβάνει ένα σύνολο ενεργειών που δημιουργούνται από μια στρατηγική και δημιουργεί ένα σχέδιο ροής εργασίας που καθορίζει τον τρόπο προγραμματισμού αυτών των διαφορετικών ενεργειών εγκαίρως και για κάθε ενέργεια, ποιες είναι οι προϋποθέσεις.

Στόχοι και στρατηγικές του παρατηρητή

στόχος
στρατηγική

Ψηφιακός στόχος
Dummy Strategy 

Ψευδής Στρατηγική με χρήση δειγμάτων μηχανών βαθμολόγησης

Ψευδής στρατηγική με αλλαγή μεγέθους

Εξοικονόμηση Ενέργειας
Στρατηγική Εξοικονόμησης Ενέργειας

Ενοποίηση διακομιστή
Βασική ενοποίηση διακομιστή εκτός σύνδεσης

Στρατηγική ενοποίησης φόρτου εργασίας VM

Εξισορρόπηση φόρτου εργασίας
Ισορροπία φόρτου εργασίας Στρατηγική Μετανάστευσης

Στρατηγική ισοζυγίου χωρητικότητας αποθήκευσης

Σταθεροποίηση φόρτου εργασίας

Θορυβώδης Γείτονας
Θορυβώδης Γείτονας

Θερμική Βελτιστοποίηση
Στρατηγική με βάση τη θερμοκρασία εξόδου

Βελτιστοποίηση ροής αέρα
Ομοιόμορφη στρατηγική μετανάστευσης ροής αέρα

Συντήρηση υλικού
Μετανάστευση ζώνης

Αταξινόμητος
Ενεργοποιητής

Ψηφιακός στόχος — δεσμευμένος στόχος που χρησιμοποιείται για δοκιμαστικούς σκοπούς.

Σχετικές στρατηγικές: Dummy Strategy, Dummy Strategy με χρήση δειγμάτων Scoring Engines και Dummy Strategy με αλλαγή μεγέθους. Η Dummy Strategy είναι μια εικονική στρατηγική που χρησιμοποιείται για τη δοκιμή ολοκλήρωσης μέσω της Tempest. Αυτή η στρατηγική δεν παρέχει καμία χρήσιμη βελτιστοποίηση, ο μόνος σκοπός της είναι να χρησιμοποιεί δοκιμές Tempest.

Ψευδής στρατηγική με χρήση δειγμάτων μηχανών βαθμολογίας - η στρατηγική είναι παρόμοια με την προηγούμενη, η μόνη διαφορά είναι η χρήση ενός δείγματος "μηχανής βαθμολογίας" που πραγματοποιεί υπολογισμούς χρησιμοποιώντας μεθόδους μηχανικής μάθησης.

Ψευδής στρατηγική με αλλαγή μεγέθους - η στρατηγική είναι παρόμοια με την προηγούμενη, η μόνη διαφορά είναι η χρήση της αλλαγής της γεύσης (μετανάστευση και αλλαγή μεγέθους).

Δεν χρησιμοποιείται στην παραγωγή.

Εξοικονόμηση Ενέργειας — ελαχιστοποιήστε την κατανάλωση ενέργειας. Η στρατηγική εξοικονόμησης ενέργειας αυτού του στόχου, μαζί με τη στρατηγική ενοποίησης φόρτου εργασίας VM (Ενοποίηση διακομιστή), είναι ικανή για λειτουργίες δυναμικής διαχείρισης ενέργειας (DPM) που εξοικονομούν ενέργεια ενοποιώντας δυναμικά φόρτους εργασίας ακόμη και σε περιόδους χαμηλής χρήσης πόρων: οι εικονικές μηχανές μετακινούνται σε λιγότερους κόμβους , και οι περιττοί κόμβοι είναι απενεργοποιημένοι. Μετά την ενοποίηση, η στρατηγική προσφέρει μια απόφαση για την ενεργοποίηση/απενεργοποίηση κόμβων σύμφωνα με τις καθορισμένες παραμέτρους: "min_free_hosts_num" - ο αριθμός των δωρεάν ενεργοποιημένων κόμβων που περιμένουν φόρτωση και "free_used_percent" - το ποσοστό των δωρεάν ενεργοποιημένων κεντρικών υπολογιστών στο αριθμός κόμβων που καταλαμβάνονται από μηχανές. Για να λειτουργήσει η στρατηγική πρέπει να υπάρχει ενεργοποιήθηκε και ρυθμίστηκε το Ironic για να χειρίζεται την ανακύκλωση ισχύος σε κόμβους.

Παράμετροι στρατηγικής

παράμετρο
τύπου
από προεπιλογή
περιγραφή

free_used_percent
αριθμός
10.0
αναλογία του αριθμού των ελεύθερων κόμβων υπολογιστών προς τον αριθμό των κόμβων υπολογιστών με εικονικές μηχανές

min_free_hosts_num
Int
1
ελάχιστος αριθμός ελεύθερων υπολογιστικών κόμβων

Το σύννεφο πρέπει να έχει τουλάχιστον δύο κόμβους. Η μέθοδος που χρησιμοποιείται είναι η αλλαγή της κατάστασης ισχύος του κόμβου (change_node_power_state). Η στρατηγική δεν απαιτεί συλλογή μετρήσεων.

Ενοποίηση διακομιστή - ελαχιστοποίηση του αριθμού των κόμβων υπολογιστών (ενοποίηση). Έχει δύο στρατηγικές: Basic Offline Server Consolidation και VM Workload Consolidation Strategy.

Η στρατηγική Basic Offline Server Consolidation ελαχιστοποιεί τον συνολικό αριθμό των διακομιστών που χρησιμοποιούνται και επίσης ελαχιστοποιεί τον αριθμό των μετεγκαταστάσεων.

Η βασική στρατηγική απαιτεί τις ακόλουθες μετρήσεις:

μετρήσεις
υπηρεσία
πρόσθετα
σχόλιο

compute.node.cpu.percent
κιλόμετρο
κανένας
 

cpu_util
κιλόμετρο
κανένας
 

Παράμετροι στρατηγικής: migration_ttempts - αριθμός συνδυασμών για αναζήτηση πιθανών υποψηφίων για τερματισμό λειτουργίας (προεπιλογή, 0, χωρίς περιορισμούς), περίοδος - χρονικό διάστημα σε δευτερόλεπτα για τη λήψη στατικής συγκέντρωσης από την πηγή μετρικών δεδομένων (προεπιλογή, 700).

Μέθοδοι που χρησιμοποιούνται: μετεγκατάσταση, αλλαγή της κατάστασης υπηρεσίας nova (change_nova_service_state).

Η στρατηγική ενοποίησης φόρτου εργασίας VM βασίζεται σε μια ευρετική πρώτης προσαρμογής που εστιάζει στο μετρούμενο φόρτο της CPU και προσπαθεί να ελαχιστοποιήσει τους κόμβους που έχουν υπερβολικά μεγάλο ή πολύ μικρό φορτίο δεδομένων των περιορισμών χωρητικότητας πόρων. Αυτή η στρατηγική παρέχει μια λύση που οδηγεί σε πιο αποτελεσματική χρήση των πόρων του cluster χρησιμοποιώντας τα ακόλουθα τέσσερα βήματα:

  1. Φάση εκφόρτωσης - επεξεργασία υπερχρησιμοποιημένων πόρων.
  2. Φάση ενοποίησης - χειρισμός υποχρησιμοποιημένων πόρων.
  3. Βελτιστοποίηση της λύσης - μείωση του αριθμού των μεταναστεύσεων.
  4. Απενεργοποίηση αχρησιμοποίητων κόμβων υπολογιστών.

Η στρατηγική απαιτεί τις ακόλουθες μετρήσεις:

μετρήσεις
υπηρεσία
πρόσθετα
σχόλιο

μνήμη
κιλόμετρο
κανένας
 

disk.root.size
κιλόμετρο
κανένας
 

Οι ακόλουθες μετρήσεις είναι προαιρετικές, αλλά θα βελτιώσουν την ακρίβεια στρατηγικής εάν είναι διαθέσιμες:

μετρήσεις
υπηρεσία
πρόσθετα
σχόλιο

μνήμη.κάτοικος
κιλόμετρο
κανένας
 

cpu_util
κιλόμετρο
κανένας
 

Παράμετροι στρατηγικής: περίοδος — χρονικό διάστημα σε δευτερόλεπτα για τη λήψη στατικής συνάθροισης από την πηγή μετρικών δεδομένων (προεπιλογή, 3600).

Χρησιμοποιεί τις ίδιες μεθόδους με την προηγούμενη στρατηγική. Περισσότερες λεπτομέρειες εδώ.

Εξισορρόπηση φόρτου εργασίας — ισορροπία του φόρτου εργασίας μεταξύ των κόμβων υπολογιστών. Ο στόχος έχει τρεις στρατηγικές: Στρατηγική μετεγκατάστασης ισορροπίας φόρτου εργασίας, σταθεροποίηση φόρτου εργασίας, στρατηγική ισορροπίας χωρητικότητας αποθήκευσης.

Η στρατηγική μετεγκατάστασης ισορροπίας φόρτου εργασίας εκτελεί μετεγκαταστάσεις εικονικής μηχανής με βάση τον φόρτο εργασίας του κεντρικού εικονικού μηχανήματος. Μια απόφαση μετεγκατάστασης λαμβάνεται κάθε φορά που το % χρήσης CPU ή RAM ενός κόμβου υπερβαίνει το καθορισμένο όριο. Σε αυτήν την περίπτωση, η κινούμενη εικονική μηχανή θα πρέπει να φέρει τον κόμβο πιο κοντά στο μέσο φόρτο εργασίας όλων των κόμβων.

Απαιτήσεις

  • Χρήση φυσικών επεξεργαστών.
  • Τουλάχιστον δύο φυσικοί κόμβοι υπολογιστών.
  • Εγκαταστάθηκε και διαμορφώθηκε το στοιχείο Ceilometer - ceilometer-agent-compute, που εκτελείται σε κάθε υπολογιστικό κόμβο και το Ceilometer API, καθώς και συλλογή των ακόλουθων μετρήσεων:

μετρήσεις
υπηρεσία
πρόσθετα
σχόλιο

cpu_util
κιλόμετρο
κανένας
 

μνήμη.κάτοικος
κιλόμετρο
κανένας
 

Παράμετροι στρατηγικής:

παράμετρο
τύπου
από προεπιλογή
περιγραφή

μετρήσεις
Σπάγγος
'cpu_util'
Οι υποκείμενες μετρήσεις είναι: 'cpu_util', 'memory.resident'.

κατώφλι
αριθμός
25.0
Όριο φόρτου εργασίας για τη μετάβαση.

περίοδος
αριθμός
300
Σωρευτική χρονική περίοδος Κιλόμετρο.

Η μέθοδος που χρησιμοποιείται είναι η μετανάστευση.

Η σταθεροποίηση του φόρτου εργασίας είναι μια στρατηγική που στοχεύει στη σταθεροποίηση του φόρτου εργασίας χρησιμοποιώντας τη ζωντανή μετανάστευση. Η στρατηγική βασίζεται σε έναν αλγόριθμο τυπικής απόκλισης και καθορίζει εάν υπάρχει συμφόρηση στο σύμπλεγμα και ανταποκρίνεται σε αυτό ενεργοποιώντας τη μετανάστευση μηχανής για τη σταθεροποίηση του συμπλέγματος.

Απαιτήσεις

  • Χρήση φυσικών επεξεργαστών.
  • Τουλάχιστον δύο φυσικοί κόμβοι υπολογιστών.
  • Εγκαταστάθηκε και διαμορφώθηκε το στοιχείο Ceilometer - ceilometer-agent-compute, που εκτελείται σε κάθε υπολογιστικό κόμβο και το Ceilometer API, καθώς και συλλογή των ακόλουθων μετρήσεων:

μετρήσεις
υπηρεσία
πρόσθετα
σχόλιο

cpu_util
κιλόμετρο
κανένας
 

μνήμη.κάτοικος
κιλόμετρο
κανένας
 

Στρατηγική ισοζυγίου χωρητικότητας αποθήκευσης (στρατηγική που εφαρμόζεται ξεκινώντας από το Queens) - η στρατηγική μεταφέρει δίσκους ανάλογα με το φορτίο στις πισίνες Cinder. Μια απόφαση μεταφοράς λαμβάνεται κάθε φορά που το ποσοστό χρήσης της πισίνας υπερβαίνει ένα καθορισμένο όριο. Ο δίσκος που μετακινείται θα πρέπει να φέρει την πισίνα πιο κοντά στο μέσο φορτίο όλων των πισινών Cinder.

Απαιτήσεις και περιορισμοί

  • Τουλάχιστον δύο πισίνες Cinder.
  • Δυνατότητα μετεγκατάστασης δίσκου.
  • Μοντέλο δεδομένων συμπλέγματος - Συλλέκτης μοντέλων δεδομένων συμπλέγματος Cinder.

Παράμετροι στρατηγικής:

παράμετρο
τύπου
από προεπιλογή
περιγραφή

όγκος_κατώφλι
αριθμός
80.0
Τιμή κατωφλίου δίσκων για εξισορρόπηση όγκων.

Η μέθοδος που χρησιμοποιείται είναι η μετεγκατάσταση δίσκου (volume_migrate).

Noisy Neighbor - Προσδιορίστε και μετεγκαταστήστε έναν "θορυβώδη γείτονα" - μια εικονική μηχανή χαμηλής προτεραιότητας που επηρεάζει αρνητικά την απόδοση μιας εικονικής μηχανής υψηλής προτεραιότητας όσον αφορά το IPC, χρησιμοποιώντας υπερβολική προσωρινή μνήμη τελευταίου επιπέδου. Ίδια στρατηγική: Noisy Neighbor (η παράμετρος στρατηγικής που χρησιμοποιείται είναι cache_threshold (η προεπιλεγμένη τιμή είναι 35), όταν η απόδοση πέσει στην καθορισμένη τιμή, ξεκινά η μετεγκατάσταση. Για να λειτουργήσει η στρατηγική, ενεργοποιημένη LLC (Last Level Cache) μετρήσεις, τελευταίος διακομιστής Intel με υποστήριξη CMT, καθώς και τη συλλογή των ακόλουθων μετρήσεων:

μετρήσεις
υπηρεσία
πρόσθετα
σχόλιο

cpu_l3_cache
κιλόμετρο
κανένας
Απαιτείται η Intel CMT.

Μοντέλο δεδομένων συμπλέγματος (προεπιλογή): Συλλέκτης μοντέλων δεδομένων συμπλέγματος Nova. Η μέθοδος που χρησιμοποιείται είναι η μετανάστευση.

Η εργασία με αυτόν τον στόχο μέσω του πίνακα ελέγχου δεν εφαρμόζεται πλήρως στο Queens.

Θερμική Βελτιστοποίηση — βελτιστοποιήστε το καθεστώς θερμοκρασίας. Η θερμοκρασία εξόδου (αέρας εξαγωγής) είναι ένα από τα σημαντικά συστήματα θερμικής τηλεμετρίας για τη μέτρηση της κατάστασης θερμικής/φόρτου εργασίας ενός διακομιστή. Ο στόχος έχει μία στρατηγική, τη στρατηγική που βασίζεται στη θερμοκρασία εξόδου, η οποία αποφασίζει τη μετεγκατάσταση του φόρτου εργασίας σε θερμικά ευνοϊκούς κεντρικούς υπολογιστές (χαμηλότερη θερμοκρασία εξόδου) όταν η θερμοκρασία εξόδου των κεντρικών υπολογιστών πηγής φτάσει σε ένα ρυθμιζόμενο όριο.

Για να λειτουργήσει η στρατηγική, χρειάζεστε έναν διακομιστή με εγκατεστημένο και διαμορφωμένο διακομιστή Intel Power Node Manager 3.0 ή αργότερα, καθώς και τη συλλογή των ακόλουθων μετρήσεων:

μετρήσεις
υπηρεσία
πρόσθετα
σχόλιο

hardware.ipmi.node.outlet_temperature
κιλόμετρο
IPMI
 

Παράμετροι στρατηγικής:

παράμετρο
τύπου
από προεπιλογή
περιγραφή

κατώφλι
αριθμός
35.0
Κατώφλι θερμοκρασίας για μετανάστευση.

περίοδος
αριθμός
30
Το χρονικό διάστημα, σε δευτερόλεπτα, για τη λήψη της στατιστικής συγκέντρωσης από την πηγή μετρικών δεδομένων.

Η μέθοδος που χρησιμοποιείται είναι η μετανάστευση.

Βελτιστοποίηση ροής αέρα — βελτιστοποιήστε τη λειτουργία αερισμού. Ίδια στρατηγική - Ομοιόμορφη ροή αέρα με χρήση ζωντανής μετανάστευσης. Η στρατηγική ενεργοποιεί τη μετεγκατάσταση εικονικής μηχανής κάθε φορά που η ροή αέρα από τον ανεμιστήρα του διακομιστή υπερβαίνει ένα καθορισμένο όριο.

Για να λειτουργήσει η στρατηγική χρειάζεστε:

  • Υλικό: υπολογιστικοί κόμβοι < υποστηρίζουν NodeManager 3.0.
  • Τουλάχιστον δύο κόμβοι υπολογιστών.
  • Το στοιχείο ceilometer-agent-compute και Ceilometer API είναι εγκατεστημένο και διαμορφωμένο σε κάθε υπολογιστικό κόμβο, το οποίο μπορεί να αναφέρει με επιτυχία μετρήσεις όπως ροή αέρα, ισχύς συστήματος, θερμοκρασία εισόδου:

μετρήσεις
υπηρεσία
πρόσθετα
σχόλιο

hardware.ipmi.node.airflow
κιλόμετρο
IPMI
 

hardware.ipmi.node.temperature
κιλόμετρο
IPMI
 

hardware.ipmi.node.power
κιλόμετρο
IPMI
 

Για να λειτουργήσει η στρατηγική, χρειάζεστε έναν διακομιστή με εγκατεστημένο και διαμορφωμένο διακομιστή με Intel Power Node Manager 3.0 ή μεταγενέστερη έκδοση.

Περιορισμοί: Το concept δεν προορίζεται για παραγωγή.

Προτείνεται η χρήση αυτού του αλγόριθμου με συνεχείς ελέγχους, καθώς μόνο μία εικονική μηχανή σχεδιάζεται να μετεγκατασταθεί ανά επανάληψη.

Είναι δυνατές οι ζωντανές μεταναστεύσεις.

Παράμετροι στρατηγικής:

παράμετρο
τύπου
από προεπιλογή
περιγραφή

κατώφλι_ροή αέρα
αριθμός
400.0
Το κατώφλι ροής αέρα για τη μονάδα μετανάστευσης είναι 0.1CFM

threshold_inlet_t
αριθμός
28.0
Όριο θερμοκρασίας εισόδου για απόφαση μετανάστευσης

threshold_power
αριθμός
350.0
Όριο ισχύος συστήματος για απόφαση μετάβασης

περίοδος
αριθμός
30
Το χρονικό διάστημα, σε δευτερόλεπτα, για τη λήψη της στατιστικής συγκέντρωσης από την πηγή μετρικών δεδομένων.

Η μέθοδος που χρησιμοποιείται είναι η μετανάστευση.

Συντήρηση υλικού — συντήρηση υλικού. Η στρατηγική που σχετίζεται με αυτόν τον στόχο είναι η μετανάστευση ζωνών. Η στρατηγική είναι ένα εργαλείο για αποτελεσματική αυτόματη και ελάχιστη μετεγκατάσταση εικονικών μηχανών και δίσκων σε περίπτωση ανάγκης συντήρησης υλικού. Η στρατηγική χτίζει ένα σχέδιο δράσης σύμφωνα με τα βάρη: ένα σύνολο ενεργειών που έχει μεγαλύτερη βαρύτητα θα προγραμματιστεί πριν από άλλες. Υπάρχουν δύο επιλογές διαμόρφωσης: action_weights και παραλληλοποίηση.

Περιορισμοί: τα βάρη δράσης και η παραλληλοποίηση πρέπει να διαμορφωθούν.

Παράμετροι στρατηγικής:

παράμετρο
τύπου
από προεπιλογή
περιγραφή

compute_nodes
παράταξη
Κανένας
Υπολογισμός κόμβων για μετεγκατάσταση.

αποθήκευση_πισίνες
παράταξη
Κανένας
Κόμβοι αποθήκευσης για μετεγκατάσταση.

παράλληλο_σύνολο
ακέραιος αριθμός
6
Ο συνολικός αριθμός των δραστηριοτήτων που πρέπει να εκτελεστούν παράλληλα.

παράλληλος_ανά_κόμβο
ακέραιος αριθμός
2
Ο αριθμός των ενεργειών που εκτελούνται παράλληλα για κάθε κόμβο υπολογισμού.

parallel_per_pool
ακέραιος αριθμός
2
Ο αριθμός των ενεργειών που εκτελούνται παράλληλα για κάθε δεξαμενή αποθήκευσης.

προτεραιότητα
αντικείμενο
Κανένας
Λίστα προτεραιοτήτων για εικονικές μηχανές και δίσκους.

with_attached_volume
boolean
Ψευδής
False—οι εικονικές μηχανές θα μετεγκατασταθούν μετά τη μετεγκατάσταση όλων των δίσκων. Σωστό—οι εικονικές μηχανές θα μετεγκατασταθούν μετά τη μετεγκατάσταση όλων των συνδεδεμένων δίσκων.

Στοιχεία της συστοιχίας των κόμβων υπολογιστών:

παράμετρο
τύπου
από προεπιλογή
περιγραφή

src_node
κορδόνι
Κανένας
Ο κόμβος υπολογισμού από τον οποίο γίνεται η μετεγκατάσταση των εικονικών μηχανών (απαιτείται).

dst_node
κορδόνι
Κανένας
Υπολογίστε τον κόμβο στον οποίο μετεγκαθίστανται οι εικονικές μηχανές.

Στοιχεία πίνακα κόμβων αποθήκευσης:

παράμετρο
τύπου
από προεπιλογή
περιγραφή

src_pool
κορδόνι
Κανένας
Η πισίνα αποθήκευσης από την οποία γίνεται η μετεγκατάσταση των δίσκων (απαιτείται).

dst_pool
κορδόνι
Κανένας
Η πισίνα αποθήκευσης στην οποία μεταφέρονται οι δίσκοι.

src_type
κορδόνι
Κανένας
Γνήσιος τύπος δίσκου (απαιτείται).

dst_type
κορδόνι
Κανένας
Ο τύπος δίσκου που προκύπτει (απαιτείται).

Στοιχεία προτεραιότητας αντικειμένου:

παράμετρο
τύπου
από προεπιλογή
περιγραφή

σχέδιο
παράταξη
Κανένας
Ονόματα έργων.

compute_node
παράταξη
Κανένας
Υπολογισμός ονομάτων κόμβων.

αποθήκευση_πισίνα
παράταξη
Κανένας
Ονόματα πισινών αποθήκευσης.

υπολογίζω
απαρίθμηση
Κανένας
Παράμετροι εικονικής μηχανής ["vcpu_num", "mem_size", "disk_size", "created_at"].

χώρος στο δίσκο
απαρίθμηση
Κανένας
Παράμετροι δίσκου ["μέγεθος", "created_at"].

Οι μέθοδοι που χρησιμοποιούνται είναι μετανάστευση εικονικής μηχανής, μετεγκατάσταση δίσκου.

Αταξινόμητος - ένας βοηθητικός στόχος που χρησιμοποιείται για τη διευκόλυνση της διαδικασίας ανάπτυξης στρατηγικής. Δεν περιέχει προδιαγραφές και μπορεί να χρησιμοποιηθεί όποτε η στρατηγική δεν σχετίζεται ακόμη με έναν υπάρχοντα στόχο. Αυτός ο στόχος μπορεί επίσης να χρησιμοποιηθεί ως σημείο μετάβασης. Μια σχετική στρατηγική με αυτόν τον στόχο είναι το Actuator.   

Δημιουργία νέου στόχου

Watcher Decision Engine έχει μια διεπαφή προσθήκης «εξωτερικού στόχου» που καθιστά δυνατή την ενσωμάτωση ενός εξωτερικού στόχου που μπορεί να επιτευχθεί χρησιμοποιώντας μια στρατηγική.

Πριν δημιουργήσετε έναν νέο στόχο, θα πρέπει να βεβαιωθείτε ότι κανένας υπάρχων στόχος δεν ανταποκρίνεται στις ανάγκες σας.

Δημιουργία νέου πρόσθετου

Για να δημιουργήσετε έναν νέο στόχο, πρέπει: να επεκτείνετε την κλάση προορισμού, να εφαρμόσετε μια μέθοδο κλάσης get_name() για να επιστρέψετε το μοναδικό αναγνωριστικό του νέου στόχου που θέλετε να δημιουργήσετε. Αυτό το μοναδικό αναγνωριστικό πρέπει να ταιριάζει με το όνομα του σημείου εισόδου που θα δηλώσετε αργότερα.

Στη συνέχεια, πρέπει να εφαρμόσετε τη μέθοδο κλάσης get_display_name() για να επιστρέψετε το μεταφρασμένο εμφανιζόμενο όνομα του στόχου που θέλετε να δημιουργήσετε (μην χρησιμοποιείτε μεταβλητή για να επιστρέψετε τη μεταφρασμένη συμβολοσειρά, ώστε να μπορεί να συλλεχθεί αυτόματα από το εργαλείο μετάφρασης.).

Εφαρμόστε μια μέθοδο κλάσης get_translatable_display_name()για να επιστρέψετε το κλειδί μετάφρασης (στην πραγματικότητα το αγγλικό εμφανιζόμενο όνομα) του νέου σας στόχου. Η τιμή επιστροφής πρέπει να ταιριάζει με τη συμβολοσειρά που μεταφράζεται σε get_display_name().

Εφαρμόστε τη μέθοδό του get_efficacy_specification()για να επιστρέψετε τις προδιαγραφές απόδοσης για τον στόχο σας. Η μέθοδος get_efficacy_specification() επιστρέφει την παρουσία Unclassified() που παρέχεται από το Watcher. Αυτή η προδιαγραφή απόδοσης είναι χρήσιμη στη διαδικασία ανάπτυξης του στόχου σας επειδή αντιστοιχεί στην κενή προδιαγραφή.

Διαβάστε περισσότερα εδώ

Αρχιτεκτονική παρατηρητή (περισσότερες λεπτομέρειες) εδώ).

Εξισορρόπηση φορτίου στο Openstack

Εξαρτήματα

Εξισορρόπηση φορτίου στο Openstack

Watcher API - ένα στοιχείο που υλοποιεί το REST API που παρέχεται από το Watcher. Μηχανισμοί αλληλεπίδρασης: CLI, πρόσθετο Horizon, Python SDK.

Watcher DB — Βάση δεδομένων Watcher.

Watcher Applier — ένα στοιχείο που υλοποιεί την εκτέλεση ενός σχεδίου δράσης που δημιουργήθηκε από το στοιχείο Watcher Decision Engine.

Watcher Decision Engine - Το στοιχείο που είναι υπεύθυνο για τον υπολογισμό ενός συνόλου πιθανών ενεργειών βελτιστοποίησης για την επίτευξη του στόχου ελέγχου. Εάν μια στρατηγική δεν καθορίζεται, το στοιχείο επιλέγει ανεξάρτητα την καταλληλότερη.

Εκδότης Watcher Metrics - Ένα στοιχείο που συλλέγει και υπολογίζει ορισμένες μετρήσεις ή συμβάντα και τις δημοσιεύει στο τελικό σημείο CEP. Η λειτουργικότητα του στοιχείου μπορεί επίσης να παρέχεται από τον εκδότη Ceilometer.

Μηχανή Complex Event Processing (CEP). — μηχανή για σύνθετη επεξεργασία συμβάντων. Για λόγους απόδοσης, μπορεί να υπάρχουν πολλές περιπτώσεις CEP Engine που εκτελούνται ταυτόχρονα, καθεμία από τις οποίες επεξεργάζεται έναν συγκεκριμένο τύπο μέτρησης/συμβάντος. Στο σύστημα Watcher, το CEP ενεργοποιεί δύο τύπους ενεργειών: - καταγράφει τα αντίστοιχα συμβάντα / μετρήσεις στη βάση δεδομένων χρονοσειρών. - στείλτε τα κατάλληλα συμβάντα στο Watcher Decision Engine όταν αυτό το συμβάν μπορεί να επηρεάσει το αποτέλεσμα της τρέχουσας στρατηγικής βελτιστοποίησης, καθώς το σύμπλεγμα Openstack δεν είναι στατικό σύστημα.

Τα στοιχεία αλληλεπιδρούν χρησιμοποιώντας το πρωτόκολλο AMQP.

Διαμόρφωση Παρακολούθησης

Σχέδιο αλληλεπίδρασης με το Watcher

Εξισορρόπηση φορτίου στο Openstack

Αποτελέσματα δοκιμής Watcher

  1. Στη σελίδα Optimization - Action Plans 500 (τόσο σε αμιγώς Queens όσο και σε βάση με ενότητες Tionix), εμφανίζεται μόνο αφού ξεκινήσει ο έλεγχος και δημιουργηθεί ένα σχέδιο δράσης· το κενό ανοίγει κανονικά.
  2. Υπάρχουν σφάλματα στην καρτέλα Λεπτομέρειες ενέργειας, δεν είναι δυνατό να λάβετε τον στόχο και τη στρατηγική ελέγχου (τόσο σε καθαρά Queens όσο και σε βάση με μονάδες Tionix).
  3. Οι έλεγχοι με σκοπό το Dummy (δοκιμή) δημιουργούνται και ξεκινούν κανονικά, δημιουργούνται σχέδια δράσης.
  4. Οι έλεγχοι για τον μη ταξινομημένο στόχο δεν δημιουργούνται επειδή ο στόχος δεν είναι λειτουργικός και προορίζεται για ενδιάμεση διαμόρφωση κατά τη δημιουργία νέων στρατηγικών.
  5. Οι έλεγχοι για τους σκοπούς της εξισορρόπησης φόρτου εργασίας (στρατηγική ισορροπίας χωρητικότητας αποθήκευσης) δημιουργούνται με επιτυχία, αλλά δεν δημιουργείται σχέδιο δράσης. Δεν απαιτείται βελτιστοποίηση της πισίνας αποθήκευσης.
  6. Οι έλεγχοι για τον στόχο εξισορρόπησης φόρτου εργασίας (Στρατηγική μετεγκατάστασης ισορροπίας φόρτου εργασίας) δημιουργούνται με επιτυχία, αλλά δεν δημιουργείται σχέδιο δράσης.
  7. Οι έλεγχοι για την εξισορρόπηση φόρτου εργασίας (Στρατηγική σταθεροποίησης φόρτου εργασίας) αποτυγχάνουν.
  8. Οι έλεγχοι για τον στόχο Noisy Neighbor δημιουργούνται με επιτυχία, αλλά δεν δημιουργείται σχέδιο δράσης.
  9. Οι έλεγχοι για το σκοπό της συντήρησης υλικού δημιουργούνται με επιτυχία, το σχέδιο δράσης δεν δημιουργείται πλήρως (δημιουργούνται δείκτες απόδοσης, αλλά δεν δημιουργείται η ίδια η λίστα ενεργειών).
  10. Οι αλλαγές στις ρυθμίσεις παραμέτρων nova.conf (στην προεπιλεγμένη ενότητα compute_monitors = cpu.virt_driver) στους κόμβους υπολογισμού και ελέγχου δεν διορθώνουν τα σφάλματα.
  11. Οι έλεγχοι που στοχεύουν την Ενοποίηση διακομιστή (Βασική στρατηγική) επίσης αποτυγχάνουν.
  12. Οι έλεγχοι για το σκοπό της ενοποίησης διακομιστή (στρατηγική ενοποίησης φόρτου εργασίας VM) αποτυγχάνουν με ένα σφάλμα. Στα αρχεία καταγραφής υπάρχει σφάλμα κατά τη λήψη δεδομένων πηγής. Συζήτηση του λάθους, ειδικότερα εδώ.
    Προσπαθήσαμε να καθορίσουμε το Watcher στο αρχείο διαμόρφωσης (δεν βοήθησε - ως αποτέλεσμα ενός σφάλματος σε όλες τις σελίδες Βελτιστοποίησης, η επιστροφή στο αρχικό περιεχόμενο του αρχείου διαμόρφωσης δεν διορθώνει την κατάσταση):

    [watcher_strategies.basic] πηγή δεδομένων = ceilometer, gnocchi
  13. Οι έλεγχοι για την εξοικονόμηση ενέργειας αποτυγχάνουν. Κρίνοντας από τα κούτσουρα, το πρόβλημα εξακολουθεί να είναι η απουσία του Ironic· δεν θα λειτουργήσει χωρίς σέρβις baremetal.
  14. Οι έλεγχοι για τη θερμική βελτιστοποίηση αποτυγχάνουν. Η ανίχνευση είναι η ίδια όπως για την Ενοποίηση διακομιστή (στρατηγική ενοποίησης φόρτου εργασίας VM) (σφάλμα δεδομένων πηγής)
  15. Οι έλεγχοι για το σκοπό της Βελτιστοποίησης ροής αέρα αποτυγχάνουν με ένα σφάλμα.

Παρουσιάζονται επίσης τα ακόλουθα σφάλματα ολοκλήρωσης του ελέγχου. Traceback στα αρχεία καταγραφής απόφασης engine.log (η κατάσταση του συμπλέγματος δεν έχει οριστεί).

→ Συζήτηση του λάθους εδώ

Συμπέρασμα

Το αποτέλεσμα της δίμηνης έρευνάς μας ήταν το αδιαμφισβήτητο συμπέρασμα ότι για να αποκτήσουμε ένα πλήρες, λειτουργικό σύστημα εξισορρόπησης φορτίου, θα πρέπει, σε αυτό το μέρος, να εργαστούμε στενά για τη βελτίωση των εργαλείων για την πλατφόρμα Openstack.

Το Watcher έχει αποδειχθεί ότι είναι ένα σοβαρό και ταχέως αναπτυσσόμενο προϊόν με τεράστιες δυνατότητες, η πλήρης χρήση του οποίου θα απαιτήσει πολύ σοβαρή δουλειά.

Περισσότερα όμως για αυτό στα επόμενα άρθρα της σειράς.

Πηγή: www.habr.com

Προσθέστε ένα σχόλιο