Dieser Abschnitt beschreibt wie der Dienst Block-Storage auf dem Controller Node zu installieren und zu konfigurieren ist, Codename cinder. Dieser Dienst benötigt mindestens einen zusätzlichen Storage Node, der Datenräger für Instanzen zur Verfügung stellt.
Bevor Sie den Dienst Block-Storage installieren und konfigurieren, müssen Sie eine Datenbank anlegen und Dienstanmeldeinformationen und API Endpunkte erstellen.
Führen Sie diese Schritte zum Erstellen der Datenbank aus:
Benutzen Sie den Datenbank-Client zur Verbindung zum Datenbank-Server als Benutzer root
:
$ mysql -u root -p
Erstellen Sie die Datenbank cinder
:
mysql> CREATE DATABASE cinder;
Vergeben Sie die richtigen Zugriffsberechtigungen für die Datenbank cinder
:
mysql> GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'localhost' \
IDENTIFIED BY 'CINDER_DBPASS';
mysql> GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'%' \
IDENTIFIED BY 'CINDER_DBPASS';
Ersetzen Sie CINDER_DBPASS
durch ein geeignetes Passwort.
Beenden Sie den Datenbank-Client.
Sourcen Sie die admin
Anmeldeinformationen, um Zugriff auf die Admin-Kommandos zu bekommen:
$ . admin-openrc
Um die Dienstanmeldeinformationen zu erstellen, vervollständigen Sie folgende Schritte:
Erstellen Sie einen Benutzer cinder
:
$ openstack user create --domain default --password-prompt cinder
User Password:
Repeat User Password:
+---------------------+----------------------------------+
| Field | Value |
+---------------------+----------------------------------+
| domain_id | default |
| enabled | True |
| id | 0dbcdd0968dd4c948eacf9eb60d82b46 |
| name | cinder |
| password_expires_at | None |
+---------------------+----------------------------------+
Fügen Sie die Rolle admin
zum Benutzer cinder
hinzu:
$ openstack role add --project service --user cinder admin
Bemerkung
Das Kommando erzeugt keine Ausgabe.
Erstellen Sie die Dienstinstanzen cinder
und cinderv2
:
$ openstack service create --name cinder \
--description "OpenStack Block Storage" volume
+-------------+----------------------------------+
| Field | Value |
+-------------+----------------------------------+
| description | OpenStack Block Storage |
| enabled | True |
| id | ab3bbbef780845a1a283490d281e7fda |
| name | cinder |
| type | volume |
+-------------+----------------------------------+
$ openstack service create --name cinderv2 \
--description "OpenStack Block Storage" volumev2
+-------------+----------------------------------+
| Field | Value |
+-------------+----------------------------------+
| description | OpenStack Block Storage |
| enabled | True |
| id | eb9fd245bdbc414695952e93f29fe3ac |
| name | cinderv2 |
| type | volumev2 |
+-------------+----------------------------------+
Bemerkung
Der Dienst Block-Storage erfordert zwei Dienstinstanzen.
Erstellen Sie die API-Endpunkte für Block-Storage:
$ openstack endpoint create --region RegionOne \
volume public http://controller:8776/v1/%\(tenant_id\)s
+--------------+-----------------------------------------+
| Field | Value |
+--------------+-----------------------------------------+
| enabled | True |
| id | 03fa2c90153546c295bf30ca86b1344b |
| interface | public |
| region | RegionOne |
| region_id | RegionOne |
| service_id | ab3bbbef780845a1a283490d281e7fda |
| service_name | cinder |
| service_type | volume |
| url | http://controller:8776/v1/%(tenant_id)s |
+--------------+-----------------------------------------+
$ openstack endpoint create --region RegionOne \
volume internal http://controller:8776/v1/%\(tenant_id\)s
+--------------+-----------------------------------------+
| Field | Value |
+--------------+-----------------------------------------+
| enabled | True |
| id | 94f684395d1b41068c70e4ecb11364b2 |
| interface | internal |
| region | RegionOne |
| region_id | RegionOne |
| service_id | ab3bbbef780845a1a283490d281e7fda |
| service_name | cinder |
| service_type | volume |
| url | http://controller:8776/v1/%(tenant_id)s |
+--------------+-----------------------------------------+
$ openstack endpoint create --region RegionOne \
volume admin http://controller:8776/v1/%\(tenant_id\)s
+--------------+-----------------------------------------+
| Field | Value |
+--------------+-----------------------------------------+
| enabled | True |
| id | 4511c28a0f9840c78bacb25f10f62c98 |
| interface | admin |
| region | RegionOne |
| region_id | RegionOne |
| service_id | ab3bbbef780845a1a283490d281e7fda |
| service_name | cinder |
| service_type | volume |
| url | http://controller:8776/v1/%(tenant_id)s |
+--------------+-----------------------------------------+
$ openstack endpoint create --region RegionOne \
volumev2 public http://controller:8776/v2/%\(tenant_id\)s
+--------------+-----------------------------------------+
| Field | Value |
+--------------+-----------------------------------------+
| enabled | True |
| id | 513e73819e14460fb904163f41ef3759 |
| interface | public |
| region | RegionOne |
| region_id | RegionOne |
| service_id | eb9fd245bdbc414695952e93f29fe3ac |
| service_name | cinderv2 |
| service_type | volumev2 |
| url | http://controller:8776/v2/%(tenant_id)s |
+--------------+-----------------------------------------+
$ openstack endpoint create --region RegionOne \
volumev2 internal http://controller:8776/v2/%\(tenant_id\)s
+--------------+-----------------------------------------+
| Field | Value |
+--------------+-----------------------------------------+
| enabled | True |
| id | 6436a8a23d014cfdb69c586eff146a32 |
| interface | internal |
| region | RegionOne |
| region_id | RegionOne |
| service_id | eb9fd245bdbc414695952e93f29fe3ac |
| service_name | cinderv2 |
| service_type | volumev2 |
| url | http://controller:8776/v2/%(tenant_id)s |
+--------------+-----------------------------------------+
$ openstack endpoint create --region RegionOne \
volumev2 admin http://controller:8776/v2/%\(tenant_id\)s
+--------------+-----------------------------------------+
| Field | Value |
+--------------+-----------------------------------------+
| enabled | True |
| id | e652cf84dd334f359ae9b045a2c91d96 |
| interface | admin |
| region | RegionOne |
| region_id | RegionOne |
| service_id | eb9fd245bdbc414695952e93f29fe3ac |
| service_name | cinderv2 |
| service_type | volumev2 |
| url | http://controller:8776/v2/%(tenant_id)s |
+--------------+-----------------------------------------+
Bemerkung
Der Dienst Block-Storage erfordert Endpunkte für jede Dienstinstanz.
Installieren Sie die Pakete:
# yum install openstack-cinder
Bearbeiten Sie die Datei /etc/cinder/cinder.conf
und vervollständigen Sie folgende Aktionen:
Konfigurieren Sie den Datenbankzugriff in der Sektion [database]
:
[database]
...
connection = mysql+pymysql://cinder:CINDER_DBPASS@controller/cinder
Ersetzen Sie CINDER_DBPASS
durch das Passwort, das Sie für die Block-Storage-Datenbank gewählt haben.
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 Identitätsdienst-Zugriff in den Sektionen [DEFAULT]
und [keystone_authtoken]
:
[DEFAULT]
...
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 = cinder
password = CINDER_PASS
Ersetzen Sie CINDER_PASS
durch das Passwort, das Sie für den Benutzer cinder
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
so, dass die IP-Adresse der Management-Schnittstelle des Controller Nodes genutzt wird.
[DEFAULT]
...
my_ip = 10.0.0.11
Konfigurieren Sie den Sperrpfad in der Sektion [oslo_concurrency]
:
[oslo_concurrency]
...
lock_path = /var/lib/cinder/tmp
Befüllen der Block-Storage-Datenbank:
# su -s /bin/sh -c "cinder-manage db sync" cinder
Bemerkung
Ignorieren Sie in dieser Ausgabe sämliche Warnungen zur Ablaufwarnung.
Bearbeiten Sie die Datei /etc/nova/nova.conf
und fügen Sie Folgendes hinzu:
[cinder]
os_region_name = RegionOne
Starten Sie den Compute API-Dienst neu:
# systemctl restart openstack-nova-api.service
Starten Sie die Block-Speicher Dienste und konfigurieren Sie sie so, dass sie starten, wenn das System bootet:
# systemctl enable openstack-cinder-api.service openstack-cinder-scheduler.service
# systemctl start openstack-cinder-api.service openstack-cinder-scheduler.service
Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.