Dieser Abschnitt beschreibt wie der Compute-Dienst auf einem Compute-Node installiert und konfiguriert wird. Der Dienst unterstützt verschiedene Hypervisoren oder term:VMs <virtual machine (VM)>. Zur Vereinfachung verwendet diese Konfiguration den QEMU-Hypervisor mit der KVM-Erweiterung auf Compute-Nodes, die Hardwarebeschleunigung für virtuelle Maschinen unterstützen. Auf Legacy-Hardware verwendet diese Konfiguration den generischen QEMU-Hypervisor. Mit wenigen Änderungen können Sie diese Anleitungen dazu verwenden, Ihre Umgebung mit zusätzlichen Compute-Nodes horizontal zu skalieren.
Bemerkung
Im folgenden Abschnitt wird davon ausgegangen, dass Sie diese Anleitung Schritt für Schritt befolgen, um den ersten Compute-Node zu konfigurieren. Zur Konfiguration weiterer Compute-Nodes bereiten Sie sie wie den ersten Compute-Node wie im Abschnitt Beispielarchitekturen vor. Jeder zusätzliche Compute-Node benötigt eine eineindeutige IP-Adresse.
Bemerkung
Die voreingestellten Konfigurationsdateien können je nach Distribution unterschiedlich aussehen. Es kann notwendig sein, diese Abschnitte und Optionen selbst hinzuzufügen anstatt bestehende anzupassen. Außerdem deuten Auslassungszeichen (...) in den Konfigurationsabschnitten Standardeinstellungen an, die beibehalten werden sollten.
Installieren Sie die Pakete:
# apt install nova-compute
Bearbeiten Sie die Datei /etc/nova/nova.conf
und führen folgende Schritte durch:
In der [DEFAULT]
Sektion, konfigurieren Sie den RabbitMQ
Nachrichtenwarteschlangen-Zugriff:
[DEFAULT]
# ...
transport_url = rabbit://openstack:RABBIT_PASS@controller
Ersetzen Sie RABBIT_PASS
mit dem Passwort, welches Sie für den openstack
Account in RabbitMQ
gewählt haben.
Konfigurieren Sie den Zugriff auf den Identitätsdienst in den [api]
und [keystone_authtoken]
Sektionen:
[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
Ersetzen Sie NOVA_PASS
durch das Passwort, das Sie für den Benutzer nova
im Identitätsdienst vergeben haben.
Bemerkung
Alle anderen Optionen in der Sektion [keystone_authtoken]
müssen auskommentiert oder gelöscht werden.
Konfigurieren Sie in der Sektion``[DEFAULT]`` die Option my_ip
:
[DEFAULT]
# ...
my_ip = MANAGEMENT_INTERFACE_IP_ADDRESS
Ersetzen Sie MANAGEMENT_INTERFACE_IP_ADDRESS
mit der IP-Adresse der Management-Netzwerkschnittstelle Ihres Compute-Nodes, üblicherweise 10.0.0.31 für den ersten Node in der Beispiel-Architektur.
Aktivieren Sie die Unterstützung für den Netzwerkdienst in der [DEFAULT]
Sektion:
[DEFAULT]
# ...
use_neutron = True
firewall_driver = nova.virt.firewall.NoopFirewallDriver
Bemerkung
Standardmäßig verwendet der Compute-Dienst einen internen Firewalldienst. Da der Netzwerkdienst schon einen Firewalldienst beinhaltet, deaktivieren Sie diesen durch Verwendung des Firewall-Treibers nova.virt.firewall.NoopFirewallDriver
.
Aktivieren und konfigurieren Sie den Fernzugriff auf die Konsole in der [vnc]
Sektion:
[vnc]
# ...
enabled = True
vncserver_listen = 0.0.0.0
vncserver_proxyclient_address = $my_ip
novncproxy_base_url = http://controller:6080/vnc_auto.html
Die Serverkomponente hört auf allen IP-Adressen während die Proxykomponente nur auf der Management-IP-Adresse des Compute-Knotens hört. Die Basis-URL zeigt den Ort, wo Sie mit einem Browser Zugriff auf die Remote-Konsolen der Instanzen dieses Compute-Knotens erhalten.
Bemerkung
Sofern der Webbrowser für den Zugriff auf die Remote-Konsole auf einem Host läuft, der den controller
Hostnamen nicht auflösen kann, müssen Sie Controller
mit der IP-Adresse des Managementinterfaces auf dem Controller-Knoten ersetzen.
Konfigurieren Sie den Ort der Abbilddienst API in der Sektion [glance]
:
[glance]
# ...
api_servers = http://controller:9292
Konfigurieren Sie den Sperrpfad in der Sektion [oslo_concurrency]
:
[oslo_concurrency]
# ...
lock_path = /var/lib/nova/tmp
log_dir
Option von der [DEFAULT]
Sektion wegen eines Paketierungsfehlers.Konfigurieren Sie die Placement API in der [placement]
Sektion:
[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
Ersetzen Sie PLACEMENT_PASS
mit dem Passwort, dass Sie für den placement
Benutzer im Identitätsdienst gewählt haben. Kommentieren Sie alle andern Optionen in der [placement]
Sektion.
Überprüfen Sie ob Ihr Compute-Node Hardwarebeschleunigung für virtuelle Maschinen unterstützt:
$ egrep -c '(vmx|svm)' /proc/cpuinfo
Wenn dieser Befehl als Ergebnis eins oder mehr
aufweist, unterstützt Ihr Compute-Node Harwarebeschleunigung, in diesem Fall ist keine weitere Konfiguration notwendig.
Wenn dieser Befehl als Ergebnis null
aufweist, unterstützt Ihr Compute-Node Harwarebeschleunigung nicht, in diesem Fall müssen Sie libvirt
so konfigurieren, dass QEMU statt KVM verwendet wird.
Bearbeiten Sie den Abschnitt [libvirt]
in der Datei /etc/nova/nova-compute.conf
wie folgt:
[libvirt]
# ...
virt_type = qemu
Restart des Compute Servcies:
# service nova-compute restart
Bemerkung
Falls der nova-compute
Dienst nicht startet, prüfen Sie /var/log/nova/nova-compute.log
. Die Fehlermeldung AMQP server on controller:5672 is unreachable
bedeutet wahrscheinlich, dass die Firewall auf dem Controller-Knoten den Zugriff auf Port 5672 verhindert. Konfigurieren Sie die Firewall zum öffnen des Ports 5672 auf dem Controller-Knoten und starten Sie den nova-compute
Dienst auf dem Compute-Knoten neu.
Wichtig
Führen Sie folgende Befehle auf dem Controller-Knoten aus.
Sourcen Sie die Admin-Anmeldeinformatonen um auf den Administrator beschränkte CLI Kommandos zu verwenden, und bestätigen dann, dass Compute-Knoten in der Datenbank vorhanden sind:
$ . admin-openrc
$ openstack hypervisor list
+----+---------------------+-----------------+-----------+-------+
| ID | Hypervisor Hostname | Hypervisor Type | Host IP | State |
+----+---------------------+-----------------+-----------+-------+
| 1 | compute1 | QEMU | 10.0.0.31 | up |
+----+---------------------+-----------------+-----------+-------+
Compute-Knoten erkennen:
# 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
Bemerkung
Wenn Sie neue Compute-Knoten hinzufügen, lassen Sie nova-manage cell_v2 discover_hosts
auf dem Controller-Knoten laufen, um diese zu registrieren. Alternativ können Sie ein geeignetes Intervall in /etc/nova/nova.conf
setzen:
[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.