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

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:

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:

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

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