Installieren und Konfigurieren eines Speicherknotens

Installieren und Konfigurieren eines Speicherknotens

Dieser Abschnitt beschreibt wie Storage Nodes für die Nutzung des Block-Storage-Dienstes installiert und konfiguriert werden. Zur Vereinfachung bezieht sich diese Konfiguration auf einen Storage Node mit einem leeren Block-Storage-Gerät. In der Anleitung wird /dev/sdb verwendet, Sie können für Ihren Node jedoch auch andere Werte verwenden.

Der Dienst sieht logische Datenträger auf diesem Gerät vor, die den Treiber LVM verwenden. Die Datenträger werden den Instanzen mittels iSCSI bereitgestellt. Um die Umgebung mit zusätzlichen Storage Nodes horizontal zu skalieren, können Sie mit kleineren Anpassungen diese Anleitung befolgen.

Voraussetzungen

Bevor Sie den Block-Speicherdienst auf dem Speicher-Knoten installieren und konfigurieren, müssen SIe das Speichergerät vorbereiten.

Bemerkung

Führen Sie diese Schritte auf dem Storage Node aus.

  1. Installieren Sie die unterstützenden Werkzeugpakete:

    • Installieren Sie die LVM-Pakete:

      # zypper install lvm2
      
    • (Optional) Wenn Sie beabsichtigen, keine rohen Abbildtypen wie QCOW2 und VMDK zu verwenden, installieren Sie das QEMU-Paket:

      # zypper install qemu
      

    Bemerkung

    Einige Distributionen beinhalten LVM standardmäßig.

  2. Erstellen Sie den LVM physikalischen Datenträger /dev/sdb:

    # pvcreate /dev/sdb
    Physical volume "/dev/sdb" successfully created
    
  3. Erstellen Sie die LVM Datenträgergruppe cinder-volumes:

    # vgcreate cinder-volumes /dev/sdb
    Volume group "cinder-volumes" successfully created
    

    Der Block-Storage-Dienst erstellt logische Datenträger in dieser Datenträger-Gruppe.

  4. Nur Instanzen haben Zugriff auf Block-Storage-Datenträger. Das darunterliegende Betriebssystem verwaltet die den Datenträgern zugewiesenen Geräte. Standardmäßig scannt das LVM Datenträger Scan-Werkzeug das Verzeichnis /dev nach Block-Storage-geräten, die Datenträger enthalten. Wenn Projekte LVM auf ihren Datenträgern verwenden, erkennt das Scan-Werkzeug diese und speichert sie zwischen, was zu verschiedenen Problemen sowohl im darunterliegenden Betriebssystem als auch auf dem Projektdatenträger führen kann. Sie müssen LVM so konfigurieren, dass nur Geräte gescannt werden, die die Datenträgergruppe cinder-volume enthalten. Bearbeiten Sie die Datei /etc/lvm/lvm.conf und vervollständigen Sie folgende Aktionen:

    • Fügen Sie in der Sektion devices einen Filter hinzu, der das Gerät /dev/sdb akzeptiert und alle andere Geräte abweist.

      devices {
      ...
      filter = [ "a/sdb/", "r/.*/"]
      

      Jeder Eintrag im Filter beginnt mit einem a für accept oder r für reject und beinhaltet einen regulären Ausdruck für den Gerätenamen. Der Filtereintrag muss zum Abweisen aller übrigen Geräte mit r/.*/ enden. Sie können den Befehl `vgs -vvvv`zum Testen der Filter verwenden.

      Warnung

      Wenn Ihre Storage Nodes LVM für die Betriebssystemfestplatten verwenden, müssen Sie zusätzlich das entsprechende Gerät zum Filter hinzufügen. Zum Beispiel, wenn das Gerät /dev/sda das Betriebssystem enthält:

      filter = [ "a/sda/", "a/sdb/", "r/.*/"]
      

      Gleichermaßen müssen Sie den Filter in der Datei /etc/lvm/lvm.conf auf allen betroffenen Nodes anpassen , um nur die Betriebssystemfestplatten einzuschliessen, wenn Ihre Compute Nodes LVM für die Betriebssystemfestplatten verwenden. Zum Beispiel, wenn das Gerät /dev/sda Ihr Betriebssystem enthält:

      filter = [ "a/sda/", "r/.*/"]
      

Installieren und konfigurieren von Komponenten

  1. Installieren Sie die Pakete:

    # zypper install openstack-cinder-volume tgt
    
  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:

      [DEFAULT]
      ...
      my_ip = MANAGEMENT_INTERFACE_IP_ADDRESS
      

      Ersetzen Sie MANAGEMENT_INTERFACE_IP_ADDRESS durch die IP-Adresse der Management-Netzwerkschnittstelle Ihres Storage Nodes, typischerweise 10.0.0.41 für den ersten Node in der Beispiel-Architektur.

    • Konfigurieren Sie das LVM-Backend in der Sektion [lvm] mit dem LVM-Treiber, die Datenträgergruppe cinder-volumes, das iSCSI-Protokol und entsprechenden iSCSI-Dienst:

      [lvm]
      ...
      volume_driver = cinder.volume.drivers.lvm.LVMVolumeDriver
      volume_group = cinder-volumes
      iscsi_protocol = iscsi
      iscsi_helper = tgtadm
      
    • Aktivieren Sie das LVM-Backend in der Sektion [DEFAULT]:

      [DEFAULT]
      ...
      enabled_backends = lvm
      

      Bemerkung

      Backend-Namen sind frei wählbar. Als Beispiel verwendet diese Anleitung den Namen des Treibers als Backend-Namen.

    • Konfigurieren Sie den Ort des Abbilddienstes in der Sektion [DEFAULT]:

      [DEFAULT]
      ...
      glance_api_servers = http://controller:9292
      
    • Konfigurieren Sie den Sperrpfad in der Sektion [oslo_concurrency]:

      [oslo_concurrency]
      ...
      lock_path = /var/lib/cinder/tmp
      

Installation abschließen

  • Starten Sie den Block-Storage-Dienst mit seinen Abhängigkeiten und konfigurieren ihn so, dass er startet wenn das System bootet:

    # systemctl enable openstack-cinder-volume.service tgtd.service
    # systemctl start openstack-cinder-volume.service tgtd.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.