Une voie optimisée pour le système de gestion des ressources dans un environnement OpenStack et Kubernetes.
Le système avancé de gestion des ressources intégré à FishOS permet une gestion intelligente et efficace des ressources au sein d’OpenStack et de Kubernetes. Ceci est réalisé avec une combinaison de 2 moteurs de décision – FishOS Placement Engine et Rebalancing Engine qui travaillent en conjonction pour assurer des opérations de centre de données hautement efficaces.
FishOS Placement Engine et Rebalancing Engine sont deux moteurs de décision qui travaillent conjointement pour assurer des opérations de centre de données hautement efficaces.
Situation
Pour parvenir à une utilisation efficace des ressources, deux situations doivent être traitées :
- Compte tenu d’un ensemble particulier de nouvelles machines virtuelles à mettre en place, où doivent-elles être placées, en tenant compte de l’utilisation des ressources en direct dans l’ensemble de l’établissement ?
- Compte tenu d’un ensemble de machines virtuelles fonctionnant au sein de l’installation, comment les machines virtuelles peuvent-elles être regroupées sur le nombre optimal de serveurs tout en répondant aux besoins en ressources des machines virtuelles, sans impact sur les performances ?
La première est appelée placement, la seconde rééquilibrage.
Bien que le placement et le rééquilibrage soient liés, ils doivent être traités comme des tâches informatiques différentes, et donc comme des décisions différentes.
Comme nous le verrons plus loin, le système de gestion intelligente des ressources de FishOS repose sur la disponibilité de la migration en direct. Pour Kubernetes, ce système repose sur l’exécution de Kubernetes dans des machines virtuelles.
Vue d’ensemble
À un niveau élevé, le système analyse :
- tous les hyperviseurs du système en déterminant leur capacité et leur capacité de stockage.
- toutes les machines virtuelles en cours d’exécution en déterminant la charge qu’elles créent
Les informations relatives à la capacité et à la charge sont obtenues à partir des mesures collectées auprès des hyperviseurs et des machines virtuelles. Ces mesures reflètent des ressources telles que la mémoire, le disque, le réseau et le processeur.
L’impact
Cette approche nous permettrait de minimiser le nombre d’hyperviseurs utilisés pour héberger des machines virtuelles sans imposer de contrainte supplémentaire sur le fonctionnement de ces machines.
Il permet d’utiliser un plus petit nombre de serveurs pour héberger le même nombre de machines virtuelles, de réduire les dépenses d’exploitation et les dépenses d’investissement, et de diminuer les coûts de licence et d’électricité.
Moteur de placement FishOS
L’objectif du moteur de placement est de déterminer où les machines virtuelles doivent être démarrées (placées) à la demande d’un consommateur de services.
Où vont les nouvelles machines virtuelles ?
La réponse à la question de savoir où les nouvelles machines virtuelles doivent être placées est la suivante :
Si tous les hyperviseurs du système sont libres, les machines virtuelles vont d’abord sur l’hyperviseur ayant la plus petite capacité d’accueil. De cette manière, il n’est pas nécessaire d’utiliser des serveurs plus grands pour héberger un ensemble de petites machines virtuelles.
Si des hyperviseurs du système sont utilisés (c’est-à-dire s’ils contiennent des machines virtuelles), les nouvelles machines virtuelles seront placées de préférence sur ces hyperviseurs (à condition qu’ils aient la capacité d’héberger des machines virtuelles). Ceci afin de minimiser le nombre d’hyperviseurs qui devraient être activés pour héberger les machines virtuelles.
Le moteur de placement effectue des estimations basées sur la saveur sélectionnée pour la VM, ce qui permet de vérifier si une VM donnée peut être installée sur un hyperviseur particulier.
Moteur de rééquilibrage FishOS
L’objectif du moteur de rééquilibrage est de déterminer comment une infrastructure déjà en place peut être rééquilibrée pour être plus efficace.
L’infrastructure doit-elle être optimisée ? Avant de procéder à des tâches de rééquilibrage, la première question qui se pose est de savoir si l’infrastructure doit être optimisée.
Pour chaque VM, vous devez répondre à une série de questions, notamment
- Doit-il être déplacé vers un autre hyperviseur ?
- Peut-il être déplacé ? Existe-t-il des opérations telles que des processus d’écriture excessifs sur le disque ou une activité réseau qui pourraient empêcher la migration en direct de s’achever ?
Comment optimiser l’infrastructure ?
Une fois qu’il a été déterminé que l’infrastructure en cours est sous-optimale, la question suivante est de savoir comment l’infrastructure peut être optimisée. Associé à cela, le moteur de rééquilibrage traite également des questions telles que :
- Quelle est la combinaison optimale de mouvements de machines virtuelles ?
- Si une VM peut et doit être déplacée, où devons-nous la déplacer ? (Voir la section Moteur de placement).
- Quel est l’impact de l’opération de rééquilibrage ?
Une fois le plan de rééquilibrage calculé, le moteur de rééquilibrage émet les demandes pour effectuer ces migrations.
Placement et rééquilibrage
Le moteur de placement et le moteur de rééquilibrage de FishOS utilisent des mesures d’utilisation en direct de l’ensemble de l’installation pour résoudre le problème d’optimisation des ressources en direct. L’approche n’utilisera pas seulement les valeurs de réservation spécifiées par la saveur pour déterminer si une VM particulière peut être placée sur un hyperviseur particulier, mais elle utilisera également d’importantes données d’utilisation réelles, obtenues en collectant des métriques à partir des VM et des hyperviseurs.
Le moteur de placement veille à ce que les bons serveurs capables d’héberger la ou les VM soient utilisés tout en minimisant le nombre de serveurs nécessaires pour héberger la totalité des charges de travail des VM. Le moteur de placement traite les saveurs, telles que définies dans OpenStack, comme des limites supérieures des ressources pouvant être affectées aux VM, indiquant la quantité maximale à consommer par chaque VM, en contrôlant les bonnes ressources.
FishOS garantit que si un hôte déjà utilisé est, sur la base de l’utilisation réelle des ressources, toujours capable d’héberger des VM supplémentaires, la préférence sera donnée à l’exécution de nouvelles VM supplémentaires sur cet hôte. FishOS permet à un opérateur de contrôler facilement le nombre d’hyperviseurs qui seront utilisés à tout moment, améliorant ainsi les taux d’utilisation des ressources OpenStack.
Le moteur de rééquilibrage garantit qu’une infrastructure déjà en service est exploitée de manière efficace, ce qui permet aux opérateurs d’optimiser l’utilisation des ressources de l’installation en tenant compte de l’utilisation des ressources en direct des charges de travail.
Le moteur de rééquilibrage de FishOS fonctionne par défaut automatiquement dans le système tout en permettant à un opérateur de configurer la fréquence de rééquilibrage. Une fois qu’un plan de rééquilibrage a été calculé, le moteur de rééquilibrage émet les requêtes pour effectuer ces migrations, sans nécessiter l’intervention d’un opérateur, et est capable de fournir des fonctionnalités telles que :
- migration automatique des machines virtuelles à partir des hyperviseurs désactivés
- rééquilibrer la charge en faisant migrer en direct les machines virtuelles non ancrées
- l’exploitation des résultats pour comprendre l’état de l’infrastructure
- Interface CLI avec option de marche à sec pour aider l’opérateur à comprendre l’impact.
- les hyperviseurs désactivés sont forcés à migrer en direct
Composants de soutien
Pour permettre aux moteurs de placement et de rééquilibrage de prendre des décisions, chacun d’eux a besoin de données. Les données requises sont collectées par un ensemble de collecteurs de données d’état implémentés en tant que plugins de collected.
Sardina a choisi d’implémenter les collecteurs de données nationales en tant que plugins de collected parce que collected présente un certain nombre d’avantages, notamment le fait qu’il soit couramment utilisé dans les environnements Linux, qu’il soit open-source, qu’il soit facilement extensible et que son coût d’intégration soit faible, ce qui permet aux administrateurs système de Linux de l’étendre et de l’enrichir facilement.
Les données d’état collectées sont distribuées par un plugin de collecte et aboutissent finalement dans une base de données de séries temporelles évolutive horizontalement, conçue pour gérer un grand nombre de petites écritures et un petit nombre de grandes lectures.
Les données de la base de données chronologiques sont ensuite utilisées par les moteurs de placement et de rééquilibrage.
Activé par défaut
Le moteur de placement et le moteur de rééquilibrage sont tous deux activés par défaut dans les systèmes FishOS, le moteur de rééquilibrage étant configuré pour s’exécuter périodiquement.
Source ouverte
Comme Sardina veut soutenir OpenStack et son modèle Open Source, nous offrons maintenant un accès gratuit à FishOS Deployer pour une période limitée.
Visitez notre site www.sardinasystems.com pour plus d’informations ou contactez-nous à l’adresse info@sardinasystems.com.
Merci de votre attention !


