GNU/Linux >> Linux Esercitazione >  >> Linux

Come creare criteri di affinità e anti-affinità in OpenStack

Nelle organizzazioni in cui OpenStack viene utilizzato in modo aggressivo, quindi in tali organizzazioni i team di applicazioni e database possono richiedere che la loro applicazione e le istanze del database vengano avviate sugli stessi nodi di calcolo (hypervisor) o diversi nodi di calcolo.

Quindi, questo requisito in OpenStack viene soddisfatto tramite gruppi di server con affinità e anti-affinità politiche. Il gruppo di server viene utilizzato per controllare l'affinità e le regole di anti-affinità per la pianificazione delle istanze openstack.

Quando si tenta di eseguire il provisioning di macchine virtuali con un gruppo di server di affinità, tutte le macchine virtuali verranno avviate sullo stesso nodo di calcolo. Quando viene eseguito il provisioning delle macchine virtuali con un gruppo di server ant-affinity, tutte le macchine virtuali verranno avviate in diversi nodi di calcolo. In questo articolo dimostreremo come creare gruppi di server OpenStack con regole di Affinity e Anti-Affinity.

Per prima cosa verifichiamo se la tua configurazione di OpenStack supporta o meno le politiche di affinità e anti-affinità, esegui il seguente comando grep dai tuoi nodi controller,

# grep -i "scheduler_default_filters" /etc/nova/nova.conf

L'output dovrebbe essere qualcosa come di seguito,

Come possiamo vedere i filtri Affinity e Ant-Affinity sono abilitati ma nel caso in cui questi non siano abilitati aggiungi questi filtri in /etc/nova/nova.conf file di nodi controller in "scheduler_default_filters " parametri.

# vi /etc/nova/nova.conf
………………
scheduler_default_filters=xx,xxx,xxx,xxxxx,xxxx,xxx,xxx,ServerGroupAntiAffinityFilter,ServerGroupAffinityFilter,xx,xxx,xxxx,xx
………………

Salva ed esci dal file

Per apportare le modifiche precedenti all'effetto, riavvia i seguenti servizi

# systemctl restart openstack-nova-scheduler
# systemctl restart openstack-nova-conductor

Ora creiamo gruppi di server OpenStack con criteri di affinità e anti-affinità

Gruppo di server con criteri di affinità

Per creare un gruppo di server con il nome "app" per la politica di affinità, eseguire il seguente comando openstack dal nodo controller,

Sintassi:

# gruppo di server openstack create –policy affinity

Oppure

# nova server-group-create affinità

Nota: Prima di iniziare a eseguire il comando openstack, assicurati di avere il file delle credenziali del progetto, nel mio caso il file delle credenziali del progetto è "openrc

Esempio:

# source openrc
# openstack server group create --policy affinity app

Gruppo di server con criterio anti-affinità

Per creare un gruppo di server con criteri di anti-affinità, esegui il seguente comando openstack dal nodo controller, presumo che il nome del gruppo di server sia "database"

Sintassi:

# gruppo di server openstack crea –policy anti-affinità

Oppure

# nova server-group-create anti-affinità

Esempio:

# source openrc
# openstack server group create --policy anti-affinity database

Elenca ID e criteri del gruppo di server

Esegui il comando nova o il comando Openstack per ottenere l'id del gruppo di server e le relative politiche

# nova server-group-list | grep -Ei "Policies|database"
Or
# openstack server group list --long | grep -Ei "Policies|app|database"

L'output sarebbe qualcosa come di seguito,

Avvia macchine virtuali (VM) con criteri di affinità

Supponiamo di voler avviare 4 macchine virtuali con criteri di affinità, eseguire il seguente "Crea server openstack comando ”

Sintassi:

# server openstack create –image –flavor –security-group –nic net-id= –hint group= –max  

Esempio:

# openstack server create --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 affinity-test

Output del comando precedente,

Verifichiamo se le VM vengono avviate o meno sullo stesso nodo di calcolo, esegui il comando seguente

# openstack server list --long -c Name -c Status -c Host -c "Power State" | grep -i affinity-test

Ciò conferma che la nostra policy di affinità funziona correttamente poiché tutte le VM vengono avviate sullo stesso nodo di calcolo.

Ora testiamo la politica anti-affinità

Avvia macchine virtuali (VM) con criteri anti-affinità

Per la politica anti-affinità lanceremo 4 VM, nel comando "openstack server create" sopra, dobbiamo sostituire l'ID del gruppo di server anti-affinità. Nel nostro caso utilizzeremo l'ID gruppo del server di database.

Esegui il seguente comando openstack per avviare 4 VM su calcoli diversi con criteri di anti-affinità,

# openstack server create --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 anti-affinity-test

Uscita

Usa il comando openstack di seguito per verificare se le macchine virtuali vengono avviate su nodi di calcolo diversi o meno

# openstack server list --long -c Name -c Status -c Host -c "Power State" | grep -i anti-affinity-test

L'output di cui sopra conferma che anche la nostra politica anti-affinità sta funzionando correttamente.

Nota: La quota predefinita per il gruppo di server è 10 per ogni tenant, significa che puoi creare fino a 10 gruppi di server all'interno del progetto, che possono governare più di 10 macchine virtuali.

Utilizzare il comando seguente per visualizzare la quota del gruppo di server per un tenant specifico, sostituire l'ID tenant adatto alla propria configurazione

# openstack quota show f6852d73eaee497a8a640757fe02b785 | grep -i server_group
| server_group_members | 10      |
| server_groups        | 10      |
#

Per aggiornare la quota del gruppo di server, eseguire i seguenti comandi

# nova quota-update --server-group-members 15 f6852d73eaee497a8a640757fe02b785
# nova quota-update --server-groups 15  f6852d73eaee497a8a640757fe02b785

Ora riesegui il comando openstack quota per verificare la quota del gruppo di server

# openstack quota show f6852d73eaee497a8a640757fe02b785 | grep -i server_group
| server_group_members | 15     |
| server_groups        | 15     |
#

Questo è tutto, abbiamo aggiornato correttamente la quota del gruppo di server per il tenant. Anche questo conclude l'articolo, non esitare a condividerlo tra i tuoi amici tecnici.


Linux
  1. Come creare un backup

  2. Che cos'è un server Web e come funziona un server Web?

  3. Come creare un host virtuale Nginx (blocco server)

  4. Come creare ed eliminare un gruppo di utenti in Linux

  5. Come installare CVS e creare un repository CVS su server Linux

Come creare e utilizzare file di scambio su Linux

Come creare e configurare VirtualHost sul server OpenLiteSpeed

Come creare un server Minecraft su Ubuntu 20.04

Come creare e gestire macchine virtuali in KVM

Come creare un utente Sudo su Ubuntu e Debian

Come creare un nuovo server cloud Atlantic.Net