• Aucun résultat trouvé

Comportements d’Agent d'infrastructure

Partie I. Etat de l’art et travaux connexes

V. Contribution 2: Architecture du système

V.6. Comportements des agents

V.6.2. Comportements d’Agent d'infrastructure

Les agents d'infrastructures de chaque nœud sont dotés d’un ensemble de comportements: Le comportement GestionMV est pour la gestion des capacités des machines virtuelles en fonction de la taille des tâches à accomplir par chaque agent de gestion, par exemple la MV qui exécutent les tests de connectivité, a besoin de plus de ressources que la machine virtuelle qui exécute l’opération de classification. L'AIf détermine les capacités de la mémoire vive et le nombre de processeurs virtuels pour chaque MV. Si la RAM et CPU d'une machine virtuelle donnée sont entièrement occupées l'AIf crée une nouvelle MV pour transférer des données et des tâches de la première à la deuxième machine,et cela afin de réduire la charge du travail et optimiser le temps de réponse. Outre, l'AIf supervise le statut des ressources physiques et collecte les espaces de stockage libérés, afin de les présenter comme un espace logiquement unifié. Le comportement DistributeurMV assure la continuité des services de virtualisation, en remplaçant les machines virtuelles en échec, et en étendant les capacités des MVs lorsque les agents de gestion le demandent. Outre, l'AIf supervise la migration des données et les tâches d'une MV vers une autre et cela quand le temps de latence d'une machine virtuelle dépasse un certain seuil (pour réduire sa charge de travail). Le comportement PrédicteurBesoin est pour étudié les capacités des ressources physiques à soutenir la création de nouvelles machines virtuelles par rapport au taux d’utilisation des MVs, et à la croissance du nombre de tâches à exécuter. Si l'AIf estime que le nœud cible aura besoin de MV supplémentaires, il consulte la TAAR afin de trouver les ressources physiques disponibles sur ce nœud, si l’AIf ne trouve plus de ressources physiques, il envoie un message à l’AA afin de cherche de nouvelles ressources externes. Outre, l'AIf estime les besoins futurs

111

en espace de stockage du nœud cible, en fonction du taux d'utilisation de l'espace de stockage et l’espace disponible sur chaque disques de stockage.

Comportement 4 Gestion MV

Input: (i) demande d’obtention de nouvelle MV (ii) demande d’obtention de plus d’espace de

stockage

Output: (i) Nouvelle MV (ii) vue unifiée logique d’espace de stockage

1: recevoir une demande de création de nouvelles MV des agents AA, AS, AP, AM, AQ, ACa, ou AC;

2: if (les ressources physiques sont disponibles) then

3: if (temps de latence de la MV< seuil prédéterminé) then

4: ajouter de nouvelles ressources virtuelles (CPU Virtuel par exemple); 5: throw exception;

6: if (la RAM ou le CPU virtuel sont entièrement occupé) then 7: créer un nouvelle MV;

8: if (Grande opération) then // une grande opération comme les tests de connectivité. 9: maximiser la taille de la RAM et le nombre de CPU;

10: if (Opération moyenne) then //une opération moyenne comme l’indexation des fichiers WSDL.

11: maximiser seulement le nombre de CPU;

// Puisque ce genre d’opérations a besoin d’exécuté un grand nombre d’instructions en parallèle.

12: if (Petite opération) then //une petite opération comme le prétraitement de la requête. 13: minimiser la taille de la RAM et le nombre de CPU;

14 : Transférer les données et codes à la MV nouvellement créer; 15: throw exception;

16: else

17: envois de message à l’AA pour obtenir plus de ressources; 18: throw exception;

19: à la fin de chaque période l’AIf vérifie les disques durs de chaque serveur pour collecter les espaces de stockages dispersés afin de les grouper sur une même partition logique; 20: recevoir une demande d’obtention de plus d’espace de stockage;

21: if (la partition unifiée logique est disponible et suffisante) then 22: fournir cette partition à l’AA;

23: else

24: redémarrer une nouvelle opération de collections d’espaces de stockage; 25: if (il y a assez d’espace de stockage disponible) then

26: exécuter les instructions de 19 à 22; 27: else

28: envoyer un message à l’AA, pour trouver des nœuds IaaS de stockage; 29: throw exception;

Algorithme V.4 : Mécanisme de gestion de ressources virtuelles

Comportement 5 Distributeur MV

Input: (i) MV en état d’échec (ii) MVentièrement occupé

112

1: à la fin de chaque période l’AIf vérifie les statuts des MVS et reçoit des demandes des agents : AA, AS, AP, AM, AQ, ACa, ou AC pour obtenir plus de ressources;

2: if (les ressources physiques sont disponibles) then 3: if (MV en état d’échec) then

4: créer une nouvelle MV;

5: déployer les composants Cloud dans la MV nouvellement créée;

6: transférer les donnée de la MV en état d’échec vers la MV nouvellement créée; 7: if (MV est entièrement occupé) then

8: if (temps de latence > seuil prédéterminé) then 9: exécuter les instructions: 4, 5, et 6;

10: if (temps de latence acceptable) then

11: augmenter la taille de la RAM selon la taille de l’opération à exécuter; 12: augmenter le nombre de CPU selon la taille de l’opération à exécuter;

// Grande, moyenne, ou petite opération. 13: else

14: envoyer un message à l’AA, afin d’obtenir plus de ressources externes; 15: throw exception;

Algorithme V.5 : Mécanisme d’affectation de taches sur les machines virtuelles

Comportement 6 Prédicteur Besoin

Input: (i) ressources disponibles des principaux nœuds

Output: (i) besoins en MVs (ii) besoins en CPU (iii) besoins en espace de stockage.

1: à la fin de chaque période, lAIf vérifie le temps de latence de chaque MV;

2: calculer le taux d’utilisation, avec la somme des temps de latence, divisée par le nombre de MVs (Gl_Lt);

3: calculer le nombre des CPU physiques utilisés (Nb_CPU); 4: calculer la taille d’espaces de stockage utilisé (ES);

5: For une période de tempsPré- déterminé do

6: if ((Gl_Lt- précédant(Gl_Lt)) est toujours > seuil prédéterminé) then

7: envoyer un message à l’AA pour chercher des ressources de virtualisation externe, avec un dégré d’urgence égal à « besoin à court terme »;

8: if ((Nb_CPU- précèdent (Nb_CPU)) est toujours > seuil prédéterminé) then

9: le nombre de CPU dont le système a besoin dans le futur, est la somme de (Nb_CPU- précèdent (Nb_CPU)) pour chaque vérification, soustrait du nombre de CPUs libres;

// Nous pouvons calculer le nombre de CPU en utilisant le pourcentage de croissance du nombre de CPUs utilisés, mais l'objectif est de maximiser les capacités de

ressources physiques afin d’assurer une évolutivité massive pour les ressources du moteur SDCE-ACS.

10: if ((Gl_Lt- précèdent(Gl_Lt)) augmente et diminue de façon continuelle, en comparaison par rapport au même seuil prédéterminé) then

11: envoyer un message à l’AA pour chercher des ressources de virtualisation externes, avec un degré d’urgence égale à « besoin en durée moyenne »;

12: exécuter les instructions: 8 et 9;

13: if ((Gl_Lt- précédant(Gl_Lt)) est toujours = seuil prédéterminé) then

14: envoyer un message à l’AA pour chercher des ressources de virtualisation externes, avec un degré d’urgence égale à « besoin à long terme »;

113

16: if ((ES - précèdent(ES)) est toujours > seuil prédéterminé) then

17: envoyer un message à l’AA pour chercher des ressources de stockage externe, avec un degré d’urgence égale à « besoin à court terme »;

18: l’espace de stockage dont le système a besoin au futur, est la somme des (SS - précèdent(SS)) pour chaque vérification, soustrait de la taille d’espace de stockage disponible;

// Nous pouvons, également, calculer l'espace de stockage nécessaire en utilisant le pourcentage de croissance d’espaces de stockage utilisés, mais l'objectif est de maximiser les capacités de ressources physiques afin d’assurer une évolutivité massive pour les ressources du moteur de découverte et composition.

19: if ((ES - précèdent(ES)) augmente et diminue de façon continuelle, en comparaison par rapport au même seuil prédéterminé) then

20: envoyer un message à l’AA pour chercher des ressources de stockage externes, avec un degré d’urgence égale à « besoin en durée moyenne »;

21: exécuter l’instruction 18;

22: if ((SS – précèdent (SS)) est toujours = seuil prédéterminé) then

23: envoyer un message à l’AA pour chercher des ressources de stockage externes, avec un degré d’urgence égale à « besoin à long terme»;

24: exécuter l’instruction 18;

Algorithme V.6 : Mécanisme de prédiction de besoins en ressources Cloud