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.
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:
# yum install lvm2
Starten Sie den LVM Metadaten-Dienst und konfigurieren ihn so, dass er startet wenn das System bootet:
# systemctl enable lvm2-lvmetad.service
# systemctl start lvm2-lvmetad.service
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-Storage-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-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 Sie die Pakete:
# yum install openstack-cinder targetcli python-keystone
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 = lioadm
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
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 target.service
# systemctl start openstack-cinder-volume.service target.service
Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.