Dans les organisations où OpenStack est utilisé de manière agressive, de sorte que dans ces organisations, les équipes d'application et de base de données peuvent exiger que leurs instances d'application et de base de données soient lancées sur les mêmes nœuds de calcul (hyperviseur) ou différents nœuds de calcul.
Ainsi, cette exigence dans OpenStack est remplie via les groupes de serveurs avec affinité et anti-affinité Stratégies. Le groupe de serveurs est utilisé pour contrôler les règles d'affinité et d'anti-affinité pour la planification des instances d'openstack.
Lorsque nous essayons de provisionner des machines virtuelles avec un groupe de serveurs d'affinité, toutes les machines virtuelles seront lancées sur le même nœud de calcul. Lorsque les machines virtuelles sont provisionnées avec un groupe de serveurs d'ant-affinité, toutes les machines virtuelles seront lancées dans différents nœuds de calcul. Dans cet article, nous allons montrer comment créer des groupes de serveurs OpenStack avec des règles d'affinité et d'anti-affinité.
Vérifions d'abord si votre configuration OpenStack prend en charge les politiques d'affinité et d'anti-affinité ou non, exécutez la commande grep suivante à partir de vos nœuds de contrôleur,
# grep -i "scheduler_default_filters" /etc/nova/nova.conf
La sortie devrait être quelque chose comme ci-dessous,
Comme nous pouvons le voir, les filtres Affinity et Ant-Affinity sont activés, mais s'ils ne le sont pas, ajoutez ces filtres dans /etc/nova/nova.conf fichier des nœuds de contrôleur sous "scheduler_default_filters ” paramètres.
# vi /etc/nova/nova.conf………………scheduler_default_filters=xx,xxx,xxx,xxxxx,xxxx,xxx,xxx,ServerGroupAntiAffinityFilter,ServerGroupAffinityFilter,xx,xxx,xxxx,xx………… ……Enregistrez et quittez le fichier
Pour appliquer les modifications ci-dessus, redémarrez les services suivants
# systemctl restart openstack-nova-scheduler# systemctl restart openstack-nova-conductorCréons maintenant des groupes de serveurs OpenStack avec des politiques d'affinité et d'anti-affinité
Groupe de serveurs avec politique d'affinité
Pour créer un groupe de serveurs avec le nom "app" pour la politique d'affinité, exécutez la commande openstack suivante à partir du nœud du contrôleur,
Syntaxe :
# groupe de serveurs openstack create –policy affinity
Ou
# nova server-group-create
affinité Remarque : Avant de commencer à exécuter la commande openstack, assurez-vous que le fichier d'informations d'identification du projet est source, dans mon cas, le fichier d'informations d'identification du projet est "openrc ”
Exemple :
# source openrc# groupe de serveurs openstack create --policy affinity appGroupe de serveurs avec politique anti-affinité
Pour créer un groupe de serveurs avec une politique d'anti-affinité, exécutez la commande openstack suivante à partir du nœud du contrôleur, je suppose que le nom du groupe de serveurs est "base de données"
Syntaxe :
# groupe de serveurs openstack create –policy anti-affinity
Ou
# nova server-group-create
anti-affinité Exemple :
# source openrc# openstack server group create --policy anti-affinity databaseRépertorier l'ID et les règles du groupe de serveurs
Exécutez la commande nova ou la commande Openstack pour obtenir l'identifiant du groupe de serveurs et leurs politiques
# nova server-group-list | grep -Ei "Politiques|base de données"Ou# liste de groupes de serveurs openstack --long | grep -Ei "Politiques|application|base de données"La sortie serait quelque chose comme ci-dessous,
Lancer des machines virtuelles (VM) avec une politique d'affinité
Supposons que nous voulions lancer 4 machines virtuelles avec une politique d'affinité, exécutez la commande suivante "openstack server create ” commande
Syntaxe :
# openstack server create –image
–flavor –security-group –nic net-id= –hint group= –max Exemple :
# serveur openstack créer --image Cirros --flavor m1.small --security-group default --nic net-id=37b9ab9a-f198-4db1-a5d6-5789b05bfb4c --hint group="a9847c7f-b7c2-4751 -9c9a-03b117e704ff" --max 4 test d'affinitéSortie de la commande ci-dessus,
Vérifions si les machines virtuelles sont lancées sur le même nœud de calcul ou non, exécutez la commande suivante
# liste de serveurs openstack --long -c Nom -c État -c Hôte -c "État de l'alimentation" | grep -i test d'affinité
Cela confirme que notre politique d'affinité fonctionne correctement car toutes les machines virtuelles sont lancées sur le même nœud de calcul.
Testons maintenant la politique d'anti-affinité
Lancer des machines virtuelles (VM) avec une politique d'anti-affinité
Pour la politique d'anti-affinité, nous allons lancer 4 machines virtuelles, dans la commande "openstack server create" ci-dessus, nous devons remplacer l'ID du groupe de serveurs anti-affinité. Dans notre cas, nous utiliserons l'identifiant du groupe de serveurs de base de données.
Exécutez la commande openstack suivante pour lancer 4 machines virtuelles sur différents ordinateurs avec une politique d'anti-affinité,
# serveur openstack créer --image Cirros --flavor m1.small --security-group default --nic net-id=37b9ab9a-f198-4db1-a5d6-5789b05bfb4c --hint group="498fd41b-8a8a-497a -afd8-bc361da2d74e" --max 4 test d'anti-affinitéSortie
Utilisez la commande openstack ci-dessous pour vérifier si les machines virtuelles sont lancées sur différents nœuds de calcul ou non
# liste de serveurs openstack --long -c Nom -c État -c Hôte -c "État de l'alimentation" | grep -i test anti-affinité
La sortie ci-dessus confirme que notre politique anti-affinité fonctionne également correctement.
Remarque : Le quota par défaut pour le groupe de serveurs est de 10 pour chaque locataire , cela signifie que vous pouvez créer jusqu'à 10 groupes de serveurs au sein du projet, qui peuvent régir plus de 10 machines virtuelles.
Utilisez la commande ci-dessous pour afficher le quota du groupe de serveurs pour un locataire spécifique, remplacez l'ID de locataire qui convient à votre configuration
# quota d'openstack afficher f6852d73eaee497a8a640757fe02b785 | grep -i groupe_serveur| membres_groupe_serveur | 10 || groupes_serveurs | 10 |#Pour mettre à jour le quota du groupe de serveurs, exécutez les commandes suivantes
# nova quota-update --server-group-members 15 f6852d73eaee497a8a640757fe02b785# nova quota-update --server-groups 15 f6852d73eaee497a8a640757fe02b785Maintenant, relancez la commande de quota d'openstack pour vérifier le quota du groupe de serveurs
# quota d'openstack afficher f6852d73eaee497a8a640757fe02b785 | grep -i groupe_serveur| membres_groupe_serveur | 15 || groupes_serveurs | 15 |#C'est tout, nous avons mis à jour avec succès le quota du groupe de serveurs pour le locataire. Ceci conclut également l'article, n'hésitez pas à le partager avec vos amis techniques.