Der Cinder AKA OpenStack-Blockspeicherdienst bietet den persistenten Speicher einer Instanz an, stellt auch eine Infrastruktur zum Verwalten von Volumes bereit und interagiert mit dem Rechendienst, um beispielsweise Volume bereitzustellen. Die bereitgestellte und verbrauchte Speichermenge wird von den Blockspeichertreibern bestimmt, es gibt eine Vielzahl von Treibern, die verfügbar sind:NAS/SAN, NFS, iSCSI, Ceph und mehr.
Die Blockspeicher-API und der Scheduler-Dienst werden normalerweise auf den Controller-Knoten ausgeführt. Abhängig von den verwendeten Treibern kann der Volume-Dienst auf Controllern, Rechenknoten oder eigenständigen Speicherknoten ausgeführt werden.
Dieses Handbuch hilft Ihnen bei der Installation und Konfiguration von Cinder auf dem Controller-Knoten. Dieser Dienst erfordert mindestens einen zusätzlichen Speicherknoten, der Volumes für Instanzen bereitstellt.
Installieren und konfigurieren Sie den Controller-Knoten:
Melden Sie sich als Root-Benutzer beim MySQL-Server an.
# mysql -u root -p
Erstellen Sie die Nova-Datenbank.
CREATE DATABASE cinder;
Erteilen Sie der nova-Datenbank eine ordnungsgemäße Berechtigung.
GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'localhost' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'%' IDENTIFIED BY 'password';
Ersetzen Sie „Passwort“ durch ein passendes Passwort. Beenden Sie MySQL.
Laden Sie Ihre Admin-Anmeldeinformationen aus dem Umgebungsskript.
# source admin-openrc.sh
Erstellen Sie den Cinder-Benutzer zum Erstellen von Service-Anmeldeinformationen.
# openstack user create --password-prompt cinder User Password: Repeat User Password: +----------+----------------------------------+ | Field | Value | +----------+----------------------------------+ | email | None | | enabled | True | | id | f02a9693b5dd4f328e8f1a292f372782 | | name | cinder | | username | cinder | +----------+----------------------------------+
Fügen Sie dem Cinder-Benutzer die Administratorrolle hinzu.
# openstack role add --project service --user cinder admin +-------+----------------------------------+ | Field | Value | +-------+----------------------------------+ | id | 33af4f957aa34cc79451c23bf014af6f | | name | admin | +-------+----------------------------------+
Erstellen Sie die Schlackendienstentitäten.
# openstack service create --name cinder --description "OpenStack Block Storage" volume +-------------+----------------------------------+ | Field | Value | +-------------+----------------------------------+ | description | OpenStack Block Storage | | enabled | True | | id | cc16bd02429842d694ccd4a425513cfc | | name | cinder | | type | volume | +-------------+----------------------------------+
# openstack service create --name cinderv2 --description "OpenStack Block Storage" volumev2 +-------------+----------------------------------+ | Field | Value | +-------------+----------------------------------+ | description | OpenStack Block Storage | | enabled | True | | id | 926e5dcb46654d228987d61978903b27 | | name | cinderv2 | | type | volumev2 | +-------------+----------------------------------+
Erstellen Sie die API-Endpunkte des Blockspeicherdienstes.
# openstack endpoint create --publicurl http://controller:8776/v2/%\(tenant_id\)s --internalurl http://controller:8776/v2/%\(tenant_id\)s --adminurl http://controller:8776/v2/%\(tenant_id\)s --region RegionOne volume +--------------+-----------------------------------------+ | Field | Value | +--------------+-----------------------------------------+ | adminurl | http://controller:8776/v2/%(tenant_id)s | | id | 4b38b10d227a48cfaf1d6356d23a6481 | | internalurl | http://controller:8776/v2/%(tenant_id)s | | publicurl | http://controller:8776/v2/%(tenant_id)s | | region | RegionOne | | service_id | cc16bd02429842d694ccd4a425513cfc | | service_name | cinder | | service_type | volume | +--------------+-----------------------------------------+
# openstack endpoint create --publicurl http://controller:8776/v2/%\(tenant_id\)s --internalurl http://controller:8776/v2/%\(tenant_id\)s --adminurl http://controller:8776/v2/%\(tenant_id\)s --region RegionOne volumev2 +--------------+-----------------------------------------+ | Field | Value | +--------------+-----------------------------------------+ | adminurl | http://controller:8776/v2/%(tenant_id)s | | id | dcf45538165b40f2a6736bcf5276b319 | | internalurl | http://controller:8776/v2/%(tenant_id)s | | publicurl | http://controller:8776/v2/%(tenant_id)s | | region | RegionOne | | service_id | 926e5dcb46654d228987d61978903b27 | | service_name | cinderv2 | | service_type | volumev2 | +--------------+-----------------------------------------+
Installieren und konfigurieren Sie Cinder (Block Storage) Controller-Komponenten:
Installieren Sie die folgenden Pakete auf dem Controller-Knoten.
# apt-get install cinder-api cinder-scheduler python-cinderclient
Bearbeiten Sie die Datei /etc/cinder/cinder.conf.
# nano /etc/cinder/cinder.conf
Ändern Sie die folgenden Einstellungen und stellen Sie sicher, dass Sie Einträge in den richtigen Abschnitten platzieren. Manchmal müssen Sie möglicherweise Abschnitte hinzufügen, wenn diese nicht vorhanden sind, und Sie müssen auch einige Einträge hinzufügen, die in der Datei fehlen, nicht alle.
[database] connection = mysql://cinder:password@controller/cinder ## Replace "password" with the password you chose for cinder database [DEFAULT] ... rpc_backend = rabbit auth_strategy = keystone verbose = True my_ip = 192.168.12.21 ## Management IP of Controller Node [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 = cinder password = password ## Replace "password" with the password you chose for cinder user in the identity service ## Comment out or remove any other options in the [keystone_authtoken] section [oslo_concurrency] lock_path = /var/lock/cinder ## Comment out the lock_path in (DEFAULT) section.
Befüllen Sie die Cinder-Datenbank.
# su -s /bin/sh -c "cinder-manage db sync" cinder
Starten Sie die Dienste neu.
# service cinder-scheduler restart # service cinder-api restart
Entfernen Sie die SQLite-Datenbankdatei.
# rm -f /var/lib/cinder/cinder.sqlite
Listen Sie die Dienste auf, Sie können die Warnungen ignorieren.
# cinder-manage service list Binary Host Zone Status State Updated At cinder-scheduler controller nova enabled :-) 2015-07-06 18:35:55
Das ist alles!!. Als nächstes konfigurieren Sie einen Storage Node.