Diese Sektion beschreibt wie Speicher-Knoten für den Block-Speicherdienst zu installieren und konfigurieren sind. Zur Vereinfachung referenziert diese Konfiguration auf einen Speicher-Knoten mit einem leeren lokalen Block-Speicher-Gerät. DIe Anleitung benutzt /dev/sdb
, aber Sie können andere Werte für Ihren Knoten 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.
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.
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.
Erstellen Sie den LVM physikalischen Datenträger /dev/sdb
:
# pvcreate /dev/sdb
Physical volume "/dev/sdb" successfully created
Erstellen Sie die LVM Datenträgergruppe cinder-volumes
:
# vgcreate cinder-volumes /dev/sdb
Volume group "cinder-volumes" successfully created
Der Block-Speicher-Dienst erstellt logische Datenträger in dieser Datenträger-Gruppe.
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-volumes
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 Sie die Pakete:
# zypper install openstack-cinder-volume tgt
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
:
[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
Erstellen Sie die Datei /etc/tgt/conf.d/cinder.conf
mit folgenden Daten:
include /var/lib/cinder/volumes/*
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
Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.