Konfigurieren Sie S3 Blob Storage für ownCloud Infinite Scale

Um Benutzerdateien mit ownCloud Infinite Scale (oCIS) in S3 zu speichern, konfigurieren Sie den Dienst „Storage-Users“ so, dass er den s3ngTreiber verwendet, verweisen Sie ihn auf einen zuvor erstellten Bucket und speichern Sie das Metadatenverzeichnis des Dienstes auf einem persistenten POSIX-Speicher. S3 speichert die Dateiblobs; es ersetzt nicht jeden lokalen oCIS-Datenpfad.

Die folgende Konfiguration orientiert sich an der ownCloud Infinite Scale 8.2-Dokumentation. Vergleichen Sie Variablennamen und Bereitstellungsbeispiele mit der Dokumentation Ihrer installierten Version, bevor Sie Änderungen an einem Produktivsystem vornehmen.

Überprüfen Sie das Speicherlayout vor der Konfiguration.

In diesem Kontext bezeichnet ein Blob den gespeicherten Dateiinhalt, während Metadaten die Informationen sind, die oCIS zur Organisation und zum Auffinden von Dateien verwendet. Mit S3NG werden Blobs im S3-kompatiblen Objektspeicher abgelegt, während Metadaten auf einem POSIX-Dateisystem verbleiben. Dieses Dateisystem muss dauerhaft eingebunden und in Backups einbezogen werden. Der Systemspeichertreiber sollte beibehalten werden ocis.

Nutzen Sie diese kurze Checkliste vor dem Flug:

  • Wählen Sie einen S3-Anbieter aus und bestätigen Sie dessen Endpunkt, Region, Bucket-Namen, unterstützte S3-API-Operationen und Multipart-Limits.
  • Erstellen Sie den Bucket, bevor Sie oCIS starten. Die dokumentierte S3NG-Einrichtung setzt einen vorhandenen Bucket voraus.
  • Erstellen Sie eine dedizierte Zugriffsidentität für oCIS und speichern Sie deren Schlüssel und Geheimnis im Secret Manager Ihrer Bereitstellung oder in den Einstellungen der geschützten Umgebung.
  • Wählen Sie einen persistenten lokalen Metadatenpfad und vergewissern Sie sich, dass der oCIS-Prozess diesen lesen und beschreiben kann.
  • Bei einer bestehenden Installation sollten Sie vor dem Wechsel des Speichertreibers eine unterstützte Migration planen. Das Ändern einer Backend-Einstellung stellt keine Kopie oder Migration vorhandener Dateidaten dar.

Die Hinweise zum ownCloud-Speicherlayout beschreiben, welche Informationen außerhalb des S3-Buckets verbleiben. Daher stellt die alleinige Wiederherstellung des Buckets keine vollständige Wiederherstellungslösung dar.

Beispielkonfigurationseditor, der den s3ng-Speichertreiber, ein POSIX-Metadaten-Root und den ocis-Systemspeichertreiber zeigt.
Beispiel für die drei Kernspeichereinstellungen: S3NG für Benutzerblobs, ein persistentes POSIX-Metadaten-Root und der oCIS-Systemtreiber.

Erstellen Sie den Bucket und gewähren Sie den erforderlichen Zugriff.

Konfigurieren Sie den Bucket in der Konsole oder den Infrastrukturtools Ihres Anbieters und gewähren Sie der oCIS-Dienstidentität anschließend nur die für ihren Bucket erforderlichen Zugriffsrechte. Die ownCloud S3-Seite dokumentiert eine Basisrichtlinie für eine AWS-ähnliche S3-API. Ersetzen Sie `<Bucket>` bucket-namedurch Ihren Bucket und passen Sie die Richtliniensyntax an Ihren Anbieter an, falls dieser S3-kompatibel und nicht Amazon S3 ist.

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": ["s3:ListBucket"],
      "Resource": ["arn:aws:s3:::bucket-name"]
    },
    {
      "Effect": "Allow",
      "Action": [
        "s3:*Object",
        "s3:*MultipartUpload",
        "s3:ListMultipartUploadParts"
      ],
      "Resource": ["arn:aws:s3:::bucket-name/*"]
    }
  ]
}

Bucket- und Objekt-ARN unterscheiden sich: Erstere ermöglicht das Auflisten des Buckets, letztere wendet Aktionen auf die darin enthaltenen Objekte an. Beachten Sie die Richtlinien für ownCloud S3-Buckets und die aktuelle Richtliniendokumentation Ihres Anbieters. Fügen Sie keine Anmeldeinformationen in eine Richtliniendatei, ein Quellcode-Repository oder einen Screenshot ein.

Beispiel eines JSON-Richtlinieneditors, der Bucket-Berechtigungen und Objektberechtigungen für einen Platzhalter-S3-Bucket auflistet.
Das Beispiel trennt die Bucket-Listing-Berechtigung von den Objekt- und Multipart-Upload-Berechtigungen; ersetzen Sie den Platzhalter-Bucket-ARN.

Setzen Sie die Storage-Users S3NG-Variablen.

Für eine Serviceumgebung oder eine Compose-Datei, die Standard-Umgebungsvariablen von oCIS akzeptiert, legen Sie die folgenden Werte fest. Diese Beispielwerte sind Platzhalter; verwenden Sie den von Ihrem Anbieter zugewiesenen Endpunkt und die Region.

STORAGE_USERS_DRIVER: s3ng
STORAGE_USERS_S3NG_ROOT: /var/lib/ocis/storage/users
STORAGE_SYSTEM_DRIVER: ocis
STORAGE_USERS_S3NG_ENDPOINT: https://s3.example.com
STORAGE_USERS_S3NG_REGION: us-east-1
STORAGE_USERS_S3NG_ACCESS_KEY: ${OCIS_S3_ACCESS_KEY}
STORAGE_USERS_S3NG_SECRET_KEY: ${OCIS_S3_SECRET_KEY}
STORAGE_USERS_S3NG_BUCKET: ocis-user-blobs

Mounten Sie /var/lib/ocis/storage/users(oder Ihr ausgewähltes Stammverzeichnis) auf einem dauerhaften POSIX-Speicher. Verweisen Sie diesen Metadatenpfad nicht auf den S3-Bucket. Übermitteln Sie Zugriffsschlüssel und Geheimnis sicher; die oben genannten Variablenreferenzen setzen voraus, dass Ihre Bereitstellung diese geheimen Werte bereitstellt. Der Endpunkt muss vom oCIS-Dienst aus erreichbar sein, und Bucket-Name, Region und Anmeldeinformationen müssen auf dasselbe Provider-Konto und denselben Bucket verweisen.

Wenn Sie das modulare ocis_fullCompose-Beispiel von ownCloud verwenden, nutzt dessen optionales S3-Overlay eine beispielspezifische S3NGEinstellung und eine separate s3ng.ymlKonfigurationsdatei. Orientieren Sie sich an diesem Beispiel als vollständiges Bereitstellungsmuster und kombinieren Sie es nicht einfach mit einer anderen Compose-Datei. Weitere Informationen finden Sie im offiziellen oCIS Compose-Bereitstellungsbeispiel und in der Referenz zur Speicherbenutzerumgebung .

Beispiel einer Umgebungsdatei mit S3-Endpunkt, Region, Bucket-Name sowie maskiertem Zugriffsschlüssel und geheimem Schlüssel.
Geben Sie Endpunkt, Region und Bucket für Ihren Provider ein; Zugriffsschlüssel und geheime Schlüssel sollten nicht in die Konfiguration aufgenommen werden.

Größe der Multipart-Uploads für die erwarteten Dateien

Große Dateien werden in Multipart-Chunks hochgeladen. Amazon S3 gibt eine maximale Objektgröße von 5 TiB und eine Beschränkung auf 10.000 Teile an; die Teilgröße muss zwischen 5 MiB und 5 GiB liegen. Die dokumentierte Standardteilgröße von S3NG beträgt 16 MiB. Bei diesem Standardwert kann die Beschränkung der Teilanzahl die praktische Obergrenze darstellen, bevor die maximale Objektgröße des Anbieters erreicht ist. Die ownCloud-Seite zu Version 8.2 schätzt die Standardobergrenze auf 160 GiB; verwenden Sie die konfigurierte Teilgröße und die Regeln Ihres Anbieters, um ein sicheres Maximum zu berechnen und einen Sicherheitsspielraum einzuplanen.

Der einzige von ownCloud als konfigurierbar angegebene Multipart-Parameter ist STORAGE_USERS_S3NG_PUT_OBJECT_PART_SIZEdie Teilgröße. Erhöhen Sie die Teilgröße, falls Ihre unterstützte Dateigröße mehr als 10.000 Teile erfordert. Der Wert ist eine uint64vorzeichenlose Ganzzahl (MiB). Konfigurieren Sie ihn daher als Anzahl der Bytes und nicht als Zeichenkette mit angehängtem „MiB“. Halten Sie sich an den dokumentierten Bereich von 5 MiB bis 5 GiB und vergewissern Sie sich, dass Ihr S3-Anbieter den gewählten Wert unterstützt. Für ein 5 TiB großes Objekt mit 10.000 Teilen müsste die durchschnittliche Teilgröße 500 MiB betragen.

Reservieren Sie außerdem temporären Speicherplatz auf dem oCIS-Host oder -Container: ownCloud weist darauf hin, dass mindestens so viel temporärer Speicherplatz benötigt wird wie die größte erwartete Datei, um eingehende Daten zu puffern. Ein gültiger Bucket und gültige Zugangsdaten verhindern keine Fehler, die durch ein zu geringes Partitionslimit oder einen vollen temporären Speicherplatz verursacht werden. Weitere Informationen finden Sie in den Upload-Limits für S3 von ownCloud und der Referenz der Umgebungsvariablen .

Anwenden, überprüfen und schützen Sie die Daten

Nach dem Speichern der Konfiguration starten Sie oCIS neu oder stellen Sie es gemäß der für Ihre Installation geltenden Vorgehensweise erneut bereit. Überprüfen Sie die Dienstprotokolle auf Konfigurations-, Endpunkt-, Berechtigungs- oder Verbindungsfehler. Führen Sie anschließend die Blobstore-Prüfung in derselben konfigurierten Laufzeitumgebung wie oCIS aus.

ocis storage-users blobstore check

Dieser Wartungsbefehl nutzt den konfigurierten Blobstore und führt einen Upload-, Download- und Löschvorgang mit einer zufälligen Testnutzlast durch. Es handelt sich um eine gezielte Speicherprüfung, nicht um einen Beweis dafür, dass jeder benutzerbezogene Workflow oder sehr große Upload erfolgreich sein wird. Die Befehlsreferenz für den Blobstore beschreibt seine Optionen, einschließlich der konfigurierbaren Größe der Testnutzlast.

Terminalfenster mit dem Befehl ocis storage-users blobstore check, aber keine Ausgabe wird angezeigt.
Führen Sie diesen Befehl mit derselben oCIS-Konfiguration aus, um den konfigurierten Blobstore zu überprüfen; das Bild zeigt kein Testergebnis.

Laden Sie abschließend eine kleine Testdatei über den Client oder die Weboberfläche hoch und prüfen Sie, ob sie angezeigt und geöffnet werden kann. Testen Sie bei der Bereitstellung großer Dateien ebenfalls eine repräsentative Dateigröße, bevor Sie sich auf die Einrichtung verlassen. Ein erfolgreicher Roundtrip mit einer kleinen Datei bestätigt weder die Multipart-Kapazität noch den verfügbaren temporären Speicherplatz.

Sichern Sie die S3-Objekte und die POSIX-Metadaten, Konfigurationen und andere erforderliche oCIS-Daten als zusammenhängendes Set. Die ownCloud-Backup-Richtlinien empfehlen, die Instanz für ein Backup anzuhalten und extern gespeicherte S3-Blobs separat zu behandeln. Bewahren Sie wiederherstellbare Kopien beider Speicherebenen auf und testen Sie ein Wiederherstellungsverfahren, bevor Sie die Bereitstellung als geschützt betrachten: ownCloud-Backup-Überlegungen .

Checkliste zur Schnellvalidierung

  • STORAGE_USERS_DRIVERist s3ng; Systemspeicher bleibt ocis.
  • Das Metadaten-Root ist ein persistenter POSIX-Speicher, und der S3-Bucket existiert bereits.
  • Endpunkt, Region, Bucket, Anmeldeinformationen und Richtlinie stimmen mit demselben Anbieterkonto überein.
  • Die größte geplante Datei umfasst die Möglichkeit, Teile in mehreren Teilen zu verarbeiten, eine Kapazität von 10.000 Teilen und einen temporären Speicher.
  • Die Blobstore-Prüfung ist erfolgreich, ein Upload durch einen echten Client wird korrekt geöffnet, und sowohl Metadaten als auch Bucket-Inhalte werden in die Sicherungs- und Wiederherstellungspläne aufgenommen.

Einen Kommentar hinterlassen

Festlegen von Standard-Speicherkontingenten nach Benutzerrolle in ownCloud oCIS

Festlegen von Standard-Speicherkontingenten nach Benutzerrolle in ownCloud oCIS

Weisen Sie neuen ownCloud Infinite Scale-Benutzern rollenbasierte Speicherlimits auf Byte-Basis zu, inklusive eines proxy.yaml-Beispiels und einer Checkliste zur sicheren Überprüfung.

Behebung von ownCloud-Synchronisierungszertifikatfehlern an der TLS-Quelle

Behebung von ownCloud-Synchronisierungszertifikatfehlern an der TLS-Quelle

Stellen Sie die ownCloud-Desktop-Synchronisierung wieder her, indem Sie den Server-Hostnamen, die Zertifikatskette, die Vertrauensstellung der privaten Zertifizierungsstelle und Probleme mit dem Captive Portal überprüfen, ohne die TLS-Verifizierung zu deaktivieren.

ownCloud-Integritätswarnung nach einem Upgrade löschen

Verwenden Sie den Bericht über ungültige Dateien, um nicht übereinstimmende Kerndateien oder App-Signaturen zu identifizieren, die korrekten Release-Dateien wiederherzustellen und die Integritätsprüfung sicher durchzuführen.

ownCloud Infinite Scale mit Docker Compose installieren

Stellen Sie ownCloud Infinite Scale anhand des offiziellen Compose-Beispiels bereit, konfigurieren Sie Domänen und persistenten Speicher und überprüfen Sie anschließend TLS, Container und die erste Anmeldung.

Konfigurieren Sie S3 Blob Storage für ownCloud Infinite Scale

Konfigurieren Sie S3 Blob Storage für ownCloud Infinite Scale

Richten Sie den S3NG-Treiber, die Bucket-Berechtigungen, die persistente Metadatenspeicherung und die Upload-Größe so ein, dass ownCloud Infinite Scale Dateiinhalte zuverlässig speichern kann.

Wenn ownCloud-Uploads bei 99 % hängen bleiben, überprüfen Sie diese Grenzwerte.

Wenn ownCloud-Uploads bei 99 % hängen bleiben, überprüfen Sie diese Grenzwerte.

Finden Sie heraus, warum ein Upload auf einem ownCloud-Server kurz vor Abschluss abbricht, indem Sie den Dateistatus, das Kontingent, den temporären Speicherplatz, die PHP-Limits und die Proxy-Timeouts überprüfen.

ownCloud Apache .htaccess-Warnung sicher löschen

ownCloud Apache .htaccess-Warnung sicher löschen

Setzen Sie AllowOverride All nur für das Web-Root-Verzeichnis von ownCloud, überprüfen Sie den aktiven Apache-Vhost und laden Sie die Seite sicher neu, um die .htaccess-Regeln wiederherzustellen.

ownCloud Enterprise-Auditing einrichten und Protokolle überprüfen

Aktivieren Sie die ownCloud Enterprise Auditing App, leiten Sie admin_audit-Ereignisse in eine geschützte Protokolldatei um und vergewissern Sie sich, dass echte Benutzeraktionen aufgezeichnet werden.

Verbinden Sie ownCloud Infinite Scale mit Keycloak über OIDC.

Verbinden Sie ownCloud Infinite Scale mit Keycloak über OIDC.

Die Realm Issuer-, Webclient- und Benutzeransprüche von Keycloak müssen aufeinander abgestimmt werden, damit ownCloud Infinite Scale-Benutzer zuverlässig über Web- und mobile Clients anmelden können.

ownCloud-Dateien an einen neuen Besitzer übertragen, ohne die Anteile zu verlieren

Übertragen Sie eigene Dateien und ausgehende Freigaben mit dem ownCloud-Befehl occ, sehen Sie, was zurückbleibt, und überprüfen Sie den Zugriff, bevor Sie das alte Konto löschen.