Cette section décrit comment installer et configurer le service Compute sur un nœud compute. Le service supporte plusieurs hyperviseurs pour déployer les instances ou VMs. Pour simplifier, cette configuration utilise l’hyperviseur QEMU avec l’extension KVM sur des nœuds compute qui supportent l’accélération hardware pour les machines virtuelles. Sur du matériel ancien, cette configuration utilise l’hyperviseur générique QEMU. Vous pouvez aussi suivre ces instructions avec peu de modifications pour scaler horizontalement votre environnement avec des nœuds compute additionnels.
Note
Cette section suppose que vous suiviez pas à pas les instructions dans ce guide pour configurer le premier nœud compute. Si vous souhaitez configurer des nœuds compute supplémentaires, préparez-les de la même façon que le premier nœud compute dans la section exemples d’architecture. Chaque nœud supplémentaire nécessite une adresse IP unique.
Note
Les fichiers de configuration par défaut diffèrent par distribution. Vous pouvez être amenés à ajouter ces sections et options plutôt que de modifier des sections et options existantes. De plus, une ellipse (...
) dans l’extrait de configuration indique d’éventuelles options de configuration par défaut que vous devriez conserver.
Installez les paquets :
# zypper install openstack-nova-compute genisoimage qemu-kvm libvirt
Éditer le fichier /etc/nova/nova.conf
et effectuer les modifications suivantes :
Dans la section [DEFAULT]
, activer uniquement les APIs compute et metadata :
[DEFAULT]
# ...
enabled_apis = osapi_compute,metadata
Dans la section [DEFAULT]
, définir la valeur de compute_driver
:
[DEFAULT]
# ...
compute_driver = libvirt.LibvirtDriver
Dans la section [DEFAULT]
, configurer l’accès à la file de messages RabbitMQ
:
[DEFAULT]
# ...
transport_url = rabbit://openstack:RABBIT_PASS@controller
Remplacer RABBIT_PASS
par le mot de passe choisi pour le compte openstack
dans RabbitMQ
.
Dans les sections [api]
et [keystone_authtoken]
, configurer l’accès au service d’Identité :
[api]
# ...
auth_strategy = keystone
[keystone_authtoken]
# ...
auth_uri = http://controller:5000
auth_url = http://controller:35357
memcached_servers = controller:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = nova
password = NOVA_PASS
Remplacer NOVA_PASS
par le mot de passe choisi pour l’utilisateur nova
dans le service d’Identité.
Note
Commenter ou supprimer toute autre option dans la section [keystone_authtoken]
.
Dans la section [DEFAULT]
, configurer l’option my_ip
:
[DEFAULT]
# ...
my_ip = MANAGEMENT_INTERFACE_IP_ADDRESS
Remplacer MANAGEMENT_INTERFACE_IP_ADDRESS
par l’adresse IP de l’interface réseau de management de votre nœud compute, généralement 10.0.0.31 pour le premier nœud dans l’exemple d’architecture.
Dans la section [DEFAULT]
, activer le support du service de Réseau :
[DEFAULT]
# ...
use_neutron = True
firewall_driver = nova.virt.firewall.NoopFirewallDriver
Note
Par défaut, Compute utilise un service de firewall interne. Comme le service Réseau inclut un service de firewall, vous devez désactiver le service de firewall Compute en indiquant le driver firewall nova.virt.firewall.NoopFirewallDriver
.
Dans la section [vnc]
, activer et configurer l’accès à la console distante :
[vnc]
# ...
enabled = True
vncserver_listen = 0.0.0.0
vncserver_proxyclient_address = $my_ip
novncproxy_base_url = http://controller:6080/vnc_auto.html
Le composant serveur écoute sur toutes les adresses IP et le composant proxy écoute seulement sur l’adresse IP de l’interface de management du nœud compute. L’URL de base indique l’emplacement où vous pouvez utiliser un navigateur web pour accéder aux consoles distantes des instances sur ce nœud compute.
Note
Si le navigateur web pour accéder aux consoles distantes tourne sur un hôte qui ne peut pas résoudre le nom de host du controller
, vous devez remplacer controller
par l’adresse IP de l’interface de management de votre nœud contrôleur.
Dans la section [glance]
, configurer l’emplacement de l’API du service d’Image :
[glance]
# ...
api_servers = http://controller:9292
Dans la section [oslo_concurrency]
, configurer le chemin des verrous :
[oslo_concurrency]
# ...
lock_path = /var/run/nova
In the [placement]
section, configure the Placement API:
[placement]
# ...
os_region_name = RegionOne
project_domain_name = Default
project_name = service
auth_type = password
user_domain_name = Default
auth_url = http://controller:35357/v3
username = placement
password = PLACEMENT_PASS
Replace PLACEMENT_PASS
with the password you choose for the
placement
user in the Identity service. Comment out any other options
in the [placement]
section.
S’assurer que le module noyau nbd
est chargé.
# modprobe nbd
S’assurer que le module se charge à chaque boot en ajoutant nbd
dans le fichier /etc/modules-load.d/nbd.conf
.
Déterminer si vos nœuds compute supportent l’accélération matérielle pour les machines virtuelles :
$ egrep -c '(vmx|svm)' /proc/cpuinfo
Si la commande retourne une valeur de un ou plus
, votre nœud compute supporte l’accélération matérielle ce qui ne nécessite en général aucune configuration complémentaire.
Si la commande retourne la valeur zero
, votre nœud compute ne supporte pas l’accélération matérielle et vous devez configurer libvirt
pour utiliser QEMU à la place de KVM.
Éditer la section [libvirt]` du fichier ``/etc/nova/nova.conf
comme suit :
[libvirt]
# ...
virt_type = qemu
Démarrer le service Compute, en incluant ses dépendances et le configurer pour se lancer au démarrage du système :
# systemctl enable libvirtd.service openstack-nova-compute.service
# systemctl start libvirtd.service openstack-nova-compute.service
Note
If the nova-compute
service fails to start, check
/var/log/nova/nova-compute.log
. The error message
AMQP server on controller:5672 is unreachable
likely indicates that
the firewall on the controller node is preventing access to port 5672.
Configure the firewall to open port 5672 on the controller node and
restart nova-compute
service on the compute node.
Important
Exécuter ces commandes sur le nœud contrôleur .
Source the admin credentials to enable admin-only CLI commands, then confirm there are compute hosts in the database:
$ . admin-openrc
$ openstack hypervisor list
+----+---------------------+-----------------+-----------+-------+
| ID | Hypervisor Hostname | Hypervisor Type | Host IP | State |
+----+---------------------+-----------------+-----------+-------+
| 1 | compute1 | QEMU | 10.0.0.31 | up |
+----+---------------------+-----------------+-----------+-------+
Discover compute hosts:
# su -s /bin/sh -c "nova-manage cell_v2 discover_hosts --verbose" nova
Found 2 cell mappings.
Skipping cell0 since it does not contain hosts.
Getting compute nodes from cell 'cell1': ad5a5985-a719-4567-98d8-8d148aaae4bc
Found 1 computes in cell: ad5a5985-a719-4567-98d8-8d148aaae4bc
Checking host mapping for compute host 'compute': fe58ddc1-1d65-4f87-9456-bc040dc106b3
Creating host mapping for compute host 'compute': fe58ddc1-1d65-4f87-9456-bc040dc106b3
Note
When you add new compute nodes, you must run nova-manage cell_v2
discover_hosts
on the controller node to register those new compute
nodes. Alternatively, you can set an appropriate interval in
/etc/nova/nova.conf
:
[scheduler]
discover_hosts_in_cells_interval = 300
Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.