Controller Node installieren und konfigurieren

Controller Node installieren und konfigurieren

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.

Voraussetzungen

Bevor Sie den Dienst Block-Storage installieren und konfigurieren, müssen Sie eine Datenbank anlegen und Dienstanmeldeinformationen und API Endpunkte erstellen.

  1. 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:

      CREATE DATABASE cinder;
      
    • Vergeben Sie die richtigen Zugriffsberechtigungen für die Datenbank cinder:

      GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'localhost' \
        IDENTIFIED BY 'CINDER_DBPASS';
      GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'%' \
        IDENTIFIED BY 'CINDER_DBPASS';
      

      Ersetzen Sie CINDER_DBPASS durch ein geeignetes Passwort.

    • Beenden Sie den Datenbank-Client.

  2. Sourcen Sie die admin Anmeldeinformationen, um Zugriff auf die Admin-Kommandos zu bekommen:

    $ . admin-openrc
    
  3. 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 | e0353a670a9e496da891347c589539e9 |
      | enabled   | True                             |
      | id        | bb279f8ffc444637af38811a5e1f0562 |
      | name      | cinder                           |
      +-----------+----------------------------------+
      
    • 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.

  4. 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 und konfigurieren von Komponenten

  1. Installieren Sie die Pakete:

    # zypper install openstack-cinder-api openstack-cinder-scheduler
    
  1. 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.

    • Konfigurieren Sie den RabbitMQ Nachrichtenwarteschlangen-Zugriff in den Sektionen [DEFAULT] und [oslo_messaging_rabbit] :

      [DEFAULT]
      ...
      rpc_backend = rabbit
      
      [oslo_messaging_rabbit]
      ...
      rabbit_host = controller
      rabbit_userid = openstack
      rabbit_password = RABBIT_PASS
      

      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
      

Konfigurieren Sie Compute zur Benutzung des von Block-Storage

  • Bearbeiten Sie die Datei /etc/nova/nova.conf und fügen Sie Folgendes hinzu:

    [cinder]
    os_region_name = RegionOne
    

Installation abschließen

  1. Starten Sie den Compute API-Dienst neu:

    # systemctl restart openstack-nova-api.service
    
  2. Starten Sie die Block-Storage 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
    
Creative Commons Attribution 3.0 License

Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.