Object Storage
Fallen große Datenmengen an oder braucht eine Anwendung mehr Flexibilität, bietet sich Object Storage an. Hierbei handelt es sich nicht um ein Dateisystem auf einem Volume, sondern um eine Menge auf einem Storage-Cluster vorgehaltener Datenobjekte, die via API nur im Ganzen gelesen, gespeichert oder gelöscht werden können. Datenobjekte werden in Buckets organisiert.
Object Storage verfügt über folgende Eigenschaften:
- Zugriff über REST-API
- Keine festen Größenlimits, skalierbar bis >100 TiB
- Redundanzlevel konfigurierbar
- verschiedene Performanceklassen (SSD und HDD).
Zugang
Der Zugang erfolgt über eine S3-kompatible Schnittstelle über den API-Endpunkt https://rgw.fc.eah-jena.de.
Wir benutzen Path-Style-Buckets, d.h. Buckets sind über URLs der Form https://rgw.fc.eah-jena.de/{BUCKET}/ erreichbar, nicht über {BUCKET}.rgw.fc.eah-jena.de.
Bei Beantragung eines Zugangs über den Support werden folgende Angaben benötigt:
- Projektname
- Initiale Quota
Die beiden für S3 notwendigen Credentials ACCESS_KEY und SECRET_KEY werden beim Erstellen des Zugangs mitgeteilt.
Benutzung
Der Object-Storage-Dienst in der Forschungscloud ist mittels Ceph RadosGW realisiert. Implementierungsdetails können in der Ceph-Dokumentation nachgeschlagen werden.
Jeder Benutzer kann selbst beliebig viele Buckets mit beliebig vielen Objekten pro Bucket erzeugen. Die Anzahl der Objekte pro Bucket ist für die Performance beim Objektzugriff nicht relevant.
Obwohl Objektnamen Slashes enthalten dürfen, handelt es sich nicht um Dateisystem-Pfade im herkömmlichen Sinne. Nur der erste Slash ist technisch relevant.
Beispielsweise besteht der Pfad A/B/C/D aus dem Bucket-Namen A und dem Objektnamen B/C/D.
Bucket-Namen müssen pro Projekt eindeutig sein. D.h. es gibt die Möglichkeit, dass man ein Bucket nicht anlegen kann, da im selben Projekt bereits ein anderer Benutzer ein Bucket mit demselben Namen angelegt hat.
Aktuell sind zwei Storage-Klassen eingerichtet:
- STANDARD für Speicherung auf SSD
- STANDARD_IA für Speicherung auf HDD.
Clients
Viele Anwendungen haben externen Storage über eine S3-Schnittstelle bereits eingebaut oder stellen ein entsprechendes Plugin bereit. Für selbstprogrammierte Anwendungen gibt es eine Vielzahl von Bibliotheken für fast jede Programmiersprache.
Als CLI-Clients für Entwicklung und Debugging bieten sich AWS-CLI oder MinIO-Client an.
Backup
Aktuell wird für Object Storage kein Backup innerhalb der Forschungscloud-Infrastruktur angeboten.