Wie man mit dem OpenStack CLI auf Objektspeicher zugreift auf EO-Lab

Cloud Computing bietet die Möglichkeit, große Datenmengen direkt auf dem Remote-Server zu verarbeiten. Das OpenStack-Modul Swift wurde ausdrücklich entwickelt, um den Zugriff auf unstrukturierte Datenarchive zu ermöglichen, die grenzenlos wachsen können. Folgende Designziele wurden dabei berücksichtigt:

  • Robustheit,

  • Skalierbarkeit,

  • Kongruenz über den gesamten Datensatz hinweg

  • zusammengefasst in einer einfachen API.

Swift wird als unabhängiges Modul in der Cloud installiert. Auf der Ebene der Syntax wird es über Parameter des Befehls openstack gesteuert.

Was wir behandeln werden

  • Wie man Swift installiert

  • Wie man Swift mit der OpenStack-Cloud verbindet

  • Grundlegende Openstack-Operationen mit Containern

  • Grundlegende Openstack-Operationen mit Objekten

Voraussetzungen

Nr. 1 Konto

Sie benötigen ein EO-Lab Konto, zugreifbar über https://tenant-manager.eo-lab.org/login. Wenn Sie weitere Artikel über Objektspeicherung auf Horizon lesen möchten, besuchen Sie diesen Link: https://cloud.fra1-1.cloudferro.com/auth/login/?next=/.

Nr. 2 Openstack-CLI installieren oder aktivieren

Um eine Verbindung zur Cloud herstellen zu können, muss die Befehlszeilenschnittstelle openstack betriebsbereit sein. Falls noch nicht installiert, verwenden Sie dazu den Artikel Wie installiert man den OpenStackClient (Linux)?

Nr. 3 Authentifizierung bei OpenStack mit Anmeldedaten

Sie müssen Ihr Konto über OpenStack CLI bei der Cloud authentifizieren. Der übliche Weg ist die Aktivierung des Befehls openstack mit einer RC-Datei für die Ein- oder Zwei-Faktor Authentifizierung. Das funktioniert im Falle des Swift-Moduls nicht. Das Modul wird mit den Anmeldedaten der Anwendung authentifiziert, wie hier beschrieben:

So erzeugen und verwenden Sie Anwendungsinformationen über CLI auf EO-Lab.

Nr. 4 Vertrautheit mit Objektspeicher in EO-Lab OpenStack

In diesem Artikel werden die Grundlagen für die Verwendung von Objektspeicher mit Hilfe der Horizon-Schnittstelle erläutert:

See Wie verwendet man den Objektspeicher?.

Swift kann als das CLI-Tool für den Zugriff auf Objektspeicher unter OpenStack verstanden werden.

Nr. 5 Python ist installiert

Die folgenden Artikel enthalten Abschnitte über die Installation von Python:

Unter Ubuntu können Sie auch virtualenvwrapper: Wie installiert man Python virtualenv/virtualenvwrapper verwenden.

Installation von Swift

So installieren Sie Swift unter Ubuntu 22.04:

sudo apt-get install python3-pip # if not already installed, install pip on Ubuntu 22.04
pip install python-swiftclient # install python openstack client

Verwenden Sie dann die Anleitung in Voraussetzung Nr. 3 , um Swift in EO-Lab zu authentifizieren .

Grundlegende Openstack-Befehle für Objektdaten

Mit OpenStack können große Datenmengen in sogenannten

  • „Containern“ abgelegt werden, die mit Ordnern auf einem Desktop-Computer vergleichbar sind. Container können

  • „Dateien“ enthalten, die hier als „Objekte“ bezeichnet werden.

Die Befehle für die Arbeit mit Datencontainern und Objekten sehen wie folgt aus:

  • openstack container und

  • openstack object

Verwenden Sie die Option --help, um einzelne Parameter anzuzeigen:

openstack container --help
../_images/openstack_container_create_help.png

Grundlegende Openstack-CLI-Operationen mit Containern

Ein Containername darf keine Leerzeichen und Sonderzeichen enthalten.

Richtig

Falsch

backupvelero

backup velero

backup-velero

Container erstellen

Mit dem Befehl openstack container können Sie Container erstellen, auflisten und löschen:

openstack container create backup09
openstack container list
openstack container delete backup09

Im unteren Bild sehen sie eine Kommandofolge mit der Sie

  • einen neuen Container mit dem Namen backup09 erstellen,

  • ihn auflisten und so zeigen, dass er erstellt wurde, dann

  • ihn löschen und wieder

  • list verwenden, um zu verifizieren, dass er gelöscht wurde:

../_images/combination_swift_commands.png

Einfache Openstack-CLI-Operationen mit Objekten

Hochladen eines Objekts

Ebenso ist es möglich, Objekte (die man sich als „Dateien“ im üblichen Sinne vorstellen kann) zu erstellen, speichern, aufzulisten und löschen. Dies wäre eine allgemeine Form eines solchen Befehls:

openstack object create <container_name> <object_name>

Zum Beispiel:

../_images/object_create_container_name.png

Lassen Sie uns den Inhalt des Containers auflisten und überprüfen, ob die Datei test.txt vorhanden ist:

../_images/object_list_backup09.png

Um diese Datei lokal zu speichern, fügen Sie --file hinzu, um den Namen der lokalen Datei anzugeben:

openstack object save backup09 test.txt --file test32.txt

Um das Objekt zu löschen, verwenden Sie:

openstack object delete <container_name> <object_name>

Metadaten eingeben

Metadaten können dazu verwendet werden, Objekte zu kennzeichnen und zu kategorisieren, so dass später große Datenmengen nach Kategorien durchsucht werden können. Wenn Sie z.B. Medienarchive erstellen, können Sie Bilder, Videos, reine Text- und PDF-Dateien unterschiedlich kennzeichnen. Sie können auch das Erstellungsdatum als Metatag hinzufügen.

Dies ist ein allgemeiner Befehl zum Hinzufügen von Metadaten zu einem Objekt:

openstack object set --property <key=value> <container_name> <object_name>

Und hier ist ein konkreteres Beispiel für

  • Hochladen eines Bildes in den Container und

  • Einstufung als Bild über einen Meta-Tag:

# First create a new container, solar_system, to contain images of solar system
openstack container create solar_system
# Upload an image and add metadata to categorize it
openstack object create solar_system image1.jpg
# Tag it as an image and with the date of creation
openstack object set \
--property type=image \
--property created=2024-06-12 solar_system image1.jpg

Wenn Sie die Versionen verfolgen möchten, können Sie das Bild wie folgt kennzeichnen:

openstack object set \
--property version=2 \
--property modified=2024-06-12 solar_system image1.jpg

Was als nächstes zu tun ist

Sie können bash-Standardbefehle mit grundlegenden Objekt- und Containerbefehlen kombinieren, um

  • Backups durchzuführen,

  • Daten in andere Container zu kopieren und/oder zu migrieren,

  • Container anhand von Metadaten zu durchsuchen, die Sie zuvor eingegeben haben

und vieles mehr.

Diese Art der bash-Programmierung ist jedoch nicht Gegenstand dieses Artikels.

Ebenfalls von Interesse:

Wie man mit boto3 auf den Objektspeicher von EO-Lab zugreift

Wie man auf Objektspeicher auf der EO-Lab Cloud mit s3cmd zugreift