Dieses Handbuch hilft Ihnen bei der Konfiguration des Nova (Compute)-Dienstes in einer OpenStak-Umgebung, in OpenStack hostet der Compute-Dienst (Knoten) Cloud-Computing-Systeme. OpenStack-Computing ist ein wichtiger Bestandteil von IaaS, es interagiert mit KeyStone für die Authentifizierung, den Image-Service für Festplatten und Images und das Dashboard für die Benutzer- und Verwaltungsschnittstelle.
OpenStack Compute kann auf Standardhardware horizontal skaliert werden und Bilder herunterladen, um eine Recheninstanz zu starten.
Installieren und konfigurieren Sie den Controller-Knoten:
Wir konfigurieren den Compute-Dienst auf dem Controller-Knoten und melden uns als Root-Benutzer beim MySQL-Server an.
# mysql -u root -p
Erstellen Sie die Nova-Datenbank.
CREATE DATABASE nova;
Erteilen Sie der nova-Datenbank eine ordnungsgemäße Berechtigung.
GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'localhost' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' IDENTIFIED BY 'password';
Ersetzen Sie „Passwort “ mit einem passenden Passwort. Beenden Sie MySQL.
Laden Sie Ihre Admin-Anmeldeinformationen aus dem Umgebungsskript.
# source admin-openrc.sh
Erstellen Sie den nova-Benutzer zum Erstellen von Dienstanmeldeinformationen.
# openstack user create --domain default --password-prompt nova User Password: Repeat User Password: +-----------+----------------------------------+ | Field | Value | +-----------+----------------------------------+ | domain_id | default | | enabled | True | | id | a25d5cdc7efa4375b0907dd615eebde0 | | name | nova | +-----------+----------------------------------+
Fügen Sie dem nova-Benutzer die Administratorrolle hinzu.
# openstack role add --project service --user nova admin
Erstellen Sie die nova-Serviceentität.
# openstack service create --name nova --description "Nova" compute +-------------+----------------------------------+ | Field | Value | +-------------+----------------------------------+ | description | Nova | | enabled | True | | id | ad302b8a4e884decb8ed0f4fdf319ba1 | | name | nova | | type | compute | +-------------+----------------------------------+
Erstellen Sie den nova-Service-API-Endpunkt.
# openstack endpoint create --region RegionOne compute public http://controller:8774/v2/%\(tenant_id\)s +--------------+-----------------------------------------+ | Field | Value | +--------------+-----------------------------------------+ | enabled | True | | id | 3d7bba2b7c3446e7975f8b74c0cab712 | | interface | public | | region | RegionOne | | region_id | RegionOne | | service_id | ad302b8a4e884decb8ed0f4fdf319ba1 | | service_name | nova | | service_type | compute | | url | http://controller:8774/v2/%(tenant_id)s | +--------------+-----------------------------------------+ # openstack endpoint create --region RegionOne compute internal http://controller:8774/v2/%\(tenant_id\)s +--------------+-----------------------------------------+ | Field | Value | +--------------+-----------------------------------------+ | enabled | True | | id | 240d4430f1c442439c3835c12abf7533 | | interface | internal | | region | RegionOne | | region_id | RegionOne | | service_id | ad302b8a4e884decb8ed0f4fdf319ba1 | | service_name | nova | | service_type | compute | | url | http://controller:8774/v2/%(tenant_id)s | +--------------+-----------------------------------------+ # openstack endpoint create --region RegionOne compute admin http://controller:8774/v2/%\(tenant_id\)s +--------------+-----------------------------------------+ | Field | Value | +--------------+-----------------------------------------+ | enabled | True | | id | 758d41f12fff4617bc7e4c12bd4502fc | | interface | admin | | region | RegionOne | | region_id | RegionOne | | service_id | ad302b8a4e884decb8ed0f4fdf319ba1 | | service_name | nova | | service_type | compute | | url | http://controller:8774/v2/%(tenant_id)s | +--------------+-----------------------------------------+
Compute-Controller-Komponenten installieren und konfigurieren:
Installieren Sie die folgenden Pakete auf dem Controller-Knoten.
# apt-get install nova-api nova-cert nova-conductor nova-consoleauth nova-novncproxy nova-scheduler python-novaclient
Bearbeiten Sie die /etc/nova/nova.conf.
# nano /etc/nova/nova.conf
Ändern Sie die folgenden Einstellungen und stellen Sie sicher, dass Sie Einträge in den richtigen Abschnitten platzieren. Wenn Sie keinen vorhandenen Abschnitt für die folgenden Einträge finden, müssen Sie möglicherweise diese bestimmten Abschnitte zur Datei hinzufügen.
[DEFAULT] ... verbose = True rpc_backend = rabbit auth_strategy = keystone ## Management IP of Controller Node my_ip = 192.168.12.21 network_api_class = nova.network.neutronv2.api.API security_group_api = neutron linuxnet_interface_driver = nova.network.linux_net.NeutronLinuxBridgeInterfaceDriver firewall_driver = nova.virt.firewall.NoopFirewallDriver enabled_apis=osapi_compute,metadata [vnc] ## Management IP of Controller Node vncserver_listen = $my_ip vncserver_proxyclient_address = $my_ip [database] connection = mysql+pymysql://nova:password@controller/nova ## Replace "password" with the password you chose for nova database [oslo_messaging_rabbit] rabbit_host = controller rabbit_userid = openstack rabbit_password = password ## Replace "password" with the password you chose for the openstack account in RabbitMQ. [keystone_authtoken] auth_uri = http://controller:5000 auth_url = http://controller:35357 auth_plugin = password project_domain_id = default user_domain_id = default project_name = service username = nova password = password ## Replace "password" with the password you chose for nova user in the identity service [glance] host = controller [oslo_concurrency] lock_path = /var/lib/nova/tmp
Füllen Sie die Compute-Datenbank.
# su -s /bin/sh -c "nova-manage db sync" nova
Starten Sie die Rechendienste neu.
# service nova-api restart # service nova-cert restart # service nova-consoleauth restart # service nova-scheduler restart # service nova-conductor restart # service nova-novncproxy restart
Entfernen Sie die SQLite-Datenbankdatei.
# rm -f /var/lib/nova/nova.sqlite
Installieren und konfigurieren Sie Nova (auf dem Rechenknoten):
Jetzt installieren und konfigurieren wir den Compute-Dienst auf einem Rechenknoten. Dieser Dienst unterstützt mehrere Hypervisoren zum Bereitstellen von Instanzen (VMs). Unser Rechenknoten verwendet den QEMU-Hypervisor mit KVM-Erweiterung zur Unterstützung der hardwarebeschleunigten Virtualisierung.
Überprüfen Sie, ob Ihr Computer Hardwarevirtualisierung unterstützt.
# egrep -c '(vmx|svm)' /proc/cpuinfo 1
Wenn der Befehl den Wert 1 oder mehr zurückgibt, unterstützt Ihr Rechenknoten die Virtualisierung.
Stellen Sie sicher, dass Sie das OpenStack Kilo-Repository auf dem Rechenknoten aktiviert haben, oder befolgen Sie die nachstehenden Schritte, um es zu aktivieren.
Installieren Sie den Schlüsselbund und das Repository des Ubuntu Cloud-Archivs.
# apt-get install software-properties-common # add-apt-repository cloud-archive:liberty
Aktualisieren Sie Ihr System.
# apt-get update && apt-get dist-upgrade
Installieren Sie die folgenden Pakete auf jedem Ihrer Compute-Knoten.
# apt-get install nova-compute sysfsutils
Bearbeiten Sie /etc/nova/nova-compute.conf, um QEMU zu aktivieren.
# vi /etc/nova/nova-compute.conf
Ändern Sie virt_type=kvm in qemu im Abschnitt libvirt.
[libvirt] ... virt_type = qemu
Bearbeiten Sie die /etc/nova/nova.conf.
# vi /etc/nova/nova.conf
Ändern Sie die folgenden Einstellungen und stellen Sie sicher, dass Sie Einträge in den richtigen Abschnitten platzieren.
[DEFAULT] ... verbose = True rpc_backend = rabbit auth_strategy = keystone ## Management IP of Compute Node my_ip = 192.168.12.22 network_api_class = nova.network.neutronv2.api.API security_group_api = neutron linuxnet_interface_driver = nova.network.linux_net.NeutronLinuxBridgeInterfaceDriver firewall_driver = nova.virt.firewall.NoopFirewallDriver [vnc] enabled = True vncserver_listen = 0.0.0.0 vncserver_proxyclient_address = $my_ip novncproxy_base_url = http://controller:6080/vnc_auto.html [oslo_messaging_rabbit] rabbit_host = controller rabbit_userid = openstack rabbit_password = password ## Replace "password" with the password you chose for the openstack account in RabbitMQ. [keystone_authtoken] auth_uri = http://controller:5000 auth_url = http://controller:35357 auth_plugin = password project_domain_id = default user_domain_id = default project_name = service username = nova password = password ## Replace "password" with the password you chose for nova user in the identity service [glance] host = controller ## Replace controller with your controller hostname [oslo_concurrency] lock_path = /var/lib/nova/tmp
Starten Sie den Rechendienst neu.
# service nova-compute restart
Entfernen Sie die SQLite-Datenbankdatei.
# rm -f /var/lib/nova/nova.sqlite
Betrieb überprüfen:
Administratoranmeldeinformationen auf Controller-Knoten laden.
# source admin-openrc.sh
Listen Sie die zu überprüfenden Compute-Service-Komponenten auf und führen Sie den folgenden Befehl auf dem Controller-Knoten aus.
# nova service-list +----+------------------+--------------------------+----------+---------+-------+----------------------------+-----------------+ | Id | Binary | Host | Zone | Status | State | Updated_at | Disabled Reason | +----+------------------+--------------------------+----------+---------+-------+----------------------------+-----------------+ | 1 | nova-consoleauth | controller.itzgeek.local | internal | enabled | up | 2015-11-25T14:11:25.000000 | - | | 2 | nova-cert | controller.itzgeek.local | internal | enabled | up | 2015-11-25T14:11:24.000000 | - | | 3 | nova-conductor | controller.itzgeek.local | internal | enabled | up | 2015-11-25T14:11:28.000000 | - | | 4 | nova-scheduler | controller.itzgeek.local | internal | enabled | up | 2015-11-25T14:11:24.000000 | - | | 5 | nova-compute | compute.itzgeek.local | nova | enabled | up | 2015-11-25T14:11:30.000000 | - | +----+------------------+--------------------------+----------+---------+-------+----------------------------+-----------------+
Sie sollten eine Ausgabe mit vier aktivierten Dienstkomponenten auf dem Controller-Knoten und einer Dienstkomponente auf dem Rechenknoten erhalten.
Bilder im Image-Service-Katalog auflisten, um die Konnektivität zwischen Compute und Image-Service zu überprüfen.
# nova image-list +--------------------------------------+---------------------+--------+--------+ | ID | Name | Status | Server | +--------------------------------------+---------------------+--------+--------+ | b19c4522-df31-4331-a2e1-5992abcd4ded | Ubuntu_14.04-x86_64 | ACTIVE | | +--------------------------------------+---------------------+--------+--------+
Das ist alles !!!, Sie haben den Nova-Dienst erfolgreich konfiguriert. Als nächstes konfigurieren Sie OpenStack Networking (Neutron).