Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
78 changes: 46 additions & 32 deletions content/de/administration/data/bucket/on-demand-migration.md
Original file line number Diff line number Diff line change
@@ -1,15 +1,21 @@
---
title: "On-demand Migration aus Cloudflare R2"
description: "Hängen Sie einen Cloudflare-R2-Bucket als reine Lesequelle an und ziehen Sie Objekte bei einem Lese-Miss oder per Backfill nach RustFS."
title: "On-demand Migration"
description: "Ziehen Sie fehlende Objekte bei einem Lesevorgang oder per Backfill aus einer externen Quelle in einen RustFS-Bucket, mit Cloudflare R2 als Beispiel."
---

Die On-demand Migration zieht Objekte aus einem externen Bucket in einen RustFS-Bucket, wenn ein Client einen fehlenden Schlüssel liest oder wenn Sie einen Backfill starten. **Dieses Dokument verwendet Cloudflare R2 als Beispiel** von Anfang bis Ende. Die folgenden Schritte folgen einer Console-v1.0.3-Durchführung: Ein R2-Bucket wurde an einen leeren lokalen Bucket gehängt, die Verbindung geprüft und danach drei Abrufe ausgeführt — ein Objekt mit `rc cp`, ein Präfix-Backfill und ein Backfill des gesamten Quell-Namespace mit Testlauf.
Diese Seite erklärt die On-demand Migration, die Voraussetzungen und eine Migrationsdurchführung. Die Durchführung verwendet Cloudflare R2 als Beispiel.

RustFS liest die Quelle. Das Aktivierungsformular sagt, dass RustFS dort weder schreibt noch löscht. Die Migrationsseite sagt, dass RustFS Objekte nur beim Lesen oder beim Backfill zieht, dass neue `PUT`- und `DELETE`-Operationen in RustFS nicht zur Quelle synchronisiert werden und dass spätere Änderungen an der Quelle lokale Kopien nicht aktualisieren.
## 1. Überblick

Die Screenshots dieser Durchführung verwenden Platzhalter für die R2-Konto-ID und den Zugriffsschlüssel. Der Host in der Terminal-Eingabeaufforderung ist `localhost`.
Die On-demand Migration ist ein eingehender Abruf. Wenn ein Client einen Schlüssel liest, der im lokalen Bucket fehlt, liest RustFS das Objekt von der konfigurierten Quelle, liefert es aus und speichert es lokal. Sie können auch einen Backfill starten, um Schlüssel zu ziehen, die noch kein Client angefordert hat. Das Aktivierungsformular sagt, dass RustFS auf der Quelle weder schreibt noch löscht. Die Migrationsseite sagt, dass neue `PUT`- und `DELETE`-Operationen in RustFS nicht zur Quelle synchronisiert werden und dass spätere Änderungen an der Quelle lokale Kopien nicht aktualisieren. Die On-demand Migration ist keine fortlaufende Replikation von der Quelle.

## Quell-Provider
| Ziel | Verwenden |
| --- | --- |
| Objekte aus einem Provider der Liste unten nach RustFS ziehen, bei einem Lese-Miss oder per Backfill | On-demand Migration |
| Objektversionen aus einem RustFS-Bucket in einen anderen Bucket schieben | [Bucket-Replikation](./replication.md) |
| Standortkonfiguration und Identitätsdaten zwischen Bereitstellungen synchronisieren | [Site-Replikation](/de/operations/high-availability/site-replication) |

Die [Bucket-Replikation](./replication.md) ist eine ausgehende Kopie von Objektversionen und setzt Versionierung auf beiden Buckets voraus. Nachdem ein Schlüssel lokal gespeichert ist, folgt die On-demand Migration der Quelle nicht weiter.

**Source connection** → **Provider** listet diese Quellen. Die Namen sind die Console-Beschriftungen. Google Cloud Storage erscheint zweimal: HMAC und Native.

Expand All @@ -24,29 +30,37 @@ Die Screenshots dieser Durchführung verwenden Platzhalter für die R2-Konto-ID

![Provider-Menü der RustFS-Console für die On-demand Migration mit Amazon S3, S3-compatible storage, MinIO, RustFS, Cloudflare R2, Google Cloud Storage (HMAC), Azure Blob Storage (Native) und Google Cloud Storage (Native)](./images/rustfs-console-on-demand-migration-source-providers.png)

Eine Migration von einem anderen Provider in dieser Liste folgt demselben Ablauf: einen leeren lokalen Bucket erstellen, die On-demand Migration aktivieren, **Provider** wählen, **Test connection** auswählen, **Enable migration** auswählen und danach bei einem GET-Miss oder per Backfill ziehen. Nur Endpunkt, Zugangsdaten und Bucket-Felder unterscheiden sich je nach Provider. Die R2-Durchführung unten füllt diese Felder für Cloudflare R2.
Wenn Sie einen Provider benötigen, der nicht in dieser Liste steht, öffnen Sie einen Pull Request im [RustFS-Repository](https://github.com/rustfs/rustfs) zur offiziellen Prüfung.

## On-demand Migration und Bucket-Replikation
:::warning[Schließen Sie keine Replikationsschleife]

| Ziel | Verwenden |
| --- | --- |
| Objekte aus einem Provider der Liste oben nach RustFS ziehen, bei einem Lese-Miss oder per Backfill | On-demand Migration |
| Objektversionen aus einem RustFS-Bucket in einen anderen Bucket schieben | [Bucket-Replikation](./replication.md) |
| Standortkonfiguration und Identitätsdaten zwischen Bereitstellungen synchronisieren | [Site-Replikation](/operations/high-availability/site-replication) |
Wählen Sie keinen Bucket als Quelle der On-demand Migration, der bereits Replikationsziel dieses lokalen Buckets ist.

Die On-demand Migration ist ein eingehender Abruf. Die [Bucket-Replikation](./replication.md) ist eine ausgehende Kopie von Objektversionen und setzt Versionierung auf beiden Buckets voraus. Nachdem ein Schlüssel lokal gespeichert ist, folgt die On-demand Migration der Quelle nicht weiter.
:::

:::note[Das Aktivieren der Quelle kopiert keine Daten]

**Migration active** bedeutet, dass der Bucket an die Quelle gehängt ist. Die Laufzeitzähler bleiben bei null, bis ein Client einen fehlenden Schlüssel liest oder Sie einen Backfill starten.

:::warning[Schließen Sie keine Replikationsschleife]
Wählen Sie keinen Bucket als Quelle der On-demand Migration, der bereits Replikationsziel dieses lokalen Buckets ist.
:::

## Bevor Sie beginnen
## 2. Voraussetzung

- Eine installierte RustFS-Instanz. Installieren Sie RustFS mit dem [Linux-Schnellstart](/de/installation/linux/quick-start), melden Sie sich an der Console an und erstellen Sie einen Bucket. Diese Durchführung nutzte Console v1.0.3 auf Port `9001`.
- Die RustFS-CLI [`rc`](/de/operations/rc) auf dem Host, der den lokalen Bucket liest.
- Ein [Cloudflare-R2](https://developers.cloudflare.com/r2/)-Bucket für dieses Beispiel.

## 3. Migration

Dieser Abschnitt verwendet **Cloudflare R2 als Beispiel**. Eine Migration von einem anderen Provider in der Liste im Überblick folgt demselben Ablauf: einen leeren lokalen Bucket erstellen, die On-demand Migration aktivieren, **Provider** wählen, **Test connection** auswählen, **Enable migration** auswählen und danach bei einem GET-Miss oder per Backfill ziehen. Nur Endpunkt, Zugangsdaten und Bucket-Felder unterscheiden sich je nach Provider.

Die Screenshots dieser Durchführung verwenden Platzhalter für die R2-Konto-ID und den Zugriffsschlüssel. Der Host in der Terminal-Eingabeaufforderung ist `localhost`.

Zugangsdaten und Endpunkt in diesem Abschnitt gelten für das Cloudflare-R2-Beispiel. Für einen anderen Provider tragen Sie Endpunkt, lesende Zugangsdaten und Bucket-Namen dieses Systems in dieselben Console-Felder ein.

- Eine RustFS-Console mit **On-demand migration**. Diese Durchführung nutzte Console v1.0.3 auf Port `9001`.
- Ein Console-Konto, das die **Settings** des lokalen Buckets öffnen kann.
- Die RustFS-CLI [`rc`](/operations/rc) auf dem Host, der den lokalen Bucket liest.
- Die RustFS-CLI [`rc`](/de/operations/rc) auf dem Host, der den lokalen Bucket liest.
- Ein Cloudflare-R2-API-Token, das Objekte im Quell-Bucket lesen kann. Begrenzen Sie das Token nach Möglichkeit auf diesen Bucket. Öffentlicher Zugriff auf den R2-Bucket gehört nicht zu diesem Ablauf.
- Der R2-S3-Endpunkt des Quell-Buckets, `https://<account-id>.r2.cloudflarestorage.com`. Wenn der Bucket eine Jurisdiction nutzt, kopieren Sie den Endpunkt aus dem R2-Dashboard.

Expand All @@ -59,20 +73,18 @@ rc alias set rustfs http://localhost:9000 <your-access-key> <your-secret-key> --
Der lokale Bucket in dieser Durchführung heißt `migration`. Der R2-Bucket heißt `dl-rustfs`. Für `migration` war die Versionierung aktiviert und Object Lock deaktiviert. Object Lock war zum Aktivieren der On-demand Migration nicht nötig, und die Versionierung war keine Voraussetzung für das Aktivieren. Mit aktivierter Versionierung kann ein lokaler Löschmarker den Quellschlüssel verdecken.

:::warning[Verwenden Sie ein lesendes Quell-Token]

Erstellen Sie ein R2-Token, das den Quell-Bucket lesen, dort aber nicht schreiben oder löschen kann. Das Formular sagt, dass RustFS das Geheimnis speichert und es nicht an die Console zurückgibt.
:::

:::note[Das Aktivieren der Quelle kopiert keine Daten]
**Migration active** bedeutet, dass der Bucket an die Quelle gehängt ist. Die Laufzeitzähler bleiben bei null, bis ein Client einen fehlenden Schlüssel liest oder Sie einen Backfill starten.
:::

## 1. Einen leeren lokalen Bucket erstellen
### 1. Einen leeren lokalen Bucket erstellen

Öffnen Sie in der Console **Browser** → **Buckets**, erstellen Sie einen Bucket namens `migration` und prüfen Sie, dass er keine Objekte enthält. Öffnen Sie **Settings** dieses Buckets, wenn Sie die Quelle anhängen.

![RustFS-Console-Browser mit dem leeren Bucket migration vor der On-demand Migration](./images/rustfs-console-empty-bucket-before-on-demand-migration.png)

## 2. On-demand Migration öffnen
### 2. On-demand Migration öffnen

1. Öffnen Sie den Bucket `migration` und wählen Sie **Settings**.
2. Wählen Sie **Automation**.
Expand All @@ -87,7 +99,7 @@ Nachdem die Quelle aktiviert ist, zeigt **Automation** den Status **Migration ac

![Automation-Einstellungen des Buckets migration in der RustFS-Console mit aktiver On-demand Migration](./images/rustfs-console-bucket-automation-on-demand-migration.png)

## 3. Den Bucket auf Cloudflare R2 richten
### 3. Den Bucket auf Cloudflare R2 richten

Setzen Sie die Quelle in **Enable on-demand migration** wie folgt. Ersetzen Sie Konto-ID und Schlüssel durch Ihr eigenes R2-Token. Lassen Sie das Sitzungstoken leer, sofern das Token keines verlangt. Lassen Sie **Local prefix** leer, damit der gesamte Quell-Namespace sichtbar ist. Diese Durchführung speicherte kein zusätzliches Präfix (**All keys**, **No added prefix**).

Expand All @@ -105,7 +117,7 @@ Setzen Sie die Quelle in **Enable on-demand migration** wie folgt. Ersetzen Sie

![Formular Enable on-demand migration für eine Cloudflare-R2-Quelle, Endpunkt und Zugriffsschlüssel durch Platzhalter ersetzt](./images/rustfs-console-on-demand-migration-r2-source-form.png)

## 4. Die Verbindung testen und die Migration aktivieren
### 4. Die Verbindung testen und die Migration aktivieren

Wählen Sie **Test connection**. Eine erfolgreiche Prüfung meldet **Connection test passed** und zeigt einen Beispiel-Objektschlüssel aus dem Quell-Bucket. Wählen Sie danach **Enable migration**.

Expand All @@ -119,7 +131,7 @@ Der Konfigurationsstatus wird **Migration active**. Bis etwas gelesen oder per B

![On-demand Migration für den Bucket migration aktiv, Laufzeitzähler noch bei null](./images/rustfs-console-on-demand-migration-active-zero-runtime.png)

## 5. Ein Objekt mit rc cp abrufen
### 5. Ein Objekt mit rc cp abrufen

Lesen Sie den lokalen Bucket mit `rc`. Senden Sie diese Anfrage nicht an den R2-Endpunkt. In dieser Durchführung war der lokale Bucket noch leer, und ein fehlendes Objekt wurde gezogen. Der erste Miss liefert das Objekt an den Client und speichert es lokal. Ein späteres Lesen desselben Schlüssels bedient RustFS.

Expand All @@ -145,7 +157,7 @@ Nach dem Abruf des einzelnen Objekts zeigt der Console-**Browser** dieses Objekt

![RustFS-Console-Browser mit rustfs-nightly-2026-11-02.deb nach einem Lesevorgang der On-demand Migration](./images/rustfs-console-browser-single-object-on-demand-migration.png)

## 6. Ein Präfix per Backfill übernehmen
### 6. Ein Präfix per Backfill übernehmen

**Start backfill** durchsucht die Quelle und zieht Schlüssel, die lokal noch nicht vorhanden sind. Der Dialog in dieser Durchführung verwendete diese Einstellungen:

Expand Down Expand Up @@ -174,7 +186,7 @@ Während ein Backfill Objekte schreibt, zeigt die Console aufgelistete und gezog

![Dialog Backfill in progress mit aufgelisteten Objekten, gezogenen Objekten und migrierten Daten](./images/rustfs-console-on-demand-migration-backfill-in-progress.png)

## 7. Einen Testlauf ausführen und dann den Quell-Namespace übernehmen
### 7. Einen Testlauf ausführen und dann den Quell-Namespace übernehmen

Lassen Sie **Source listing prefix** leer, um den konfigurierten Quell-Namespace zu durchsuchen. Führen Sie zuerst **Dry run** aus und prüfen Sie die aufgelistete Menge. Schalten Sie **Dry run** danach aus und starten Sie den Backfill.

Expand All @@ -194,7 +206,7 @@ Der anschließende vollständige Backfill mit leerem Präfix endete so:

![Background backfill für den Quell-Namespace abgeschlossen, 127 Objekte gezogen und keine fehlgeschlagenen Objekte](./images/rustfs-console-on-demand-migration-backfill-completed.png)

## 8. Den Bucket prüfen
### 8. Den Bucket prüfen

Prüfen Sie auf der Seite der On-demand Migration:

Expand All @@ -211,11 +223,13 @@ Die Bucket-Liste nach der Durchführung zeigt `migration` mit 128 Objekten und 8
![RustFS-Console-Bucket-Liste mit dem Bucket migration nach der On-demand Migration](./images/rustfs-console-bucket-list-after-on-demand-migration.png)

:::warning[Die lokale Kopie folgt der Quelle nicht]

Eine spätere Änderung desselben Schlüssels in R2 wird nicht über das lokale Objekt gezogen. Ein lokales `PUT` dieses Schlüssels wird nicht zur Quelle zurückgeschrieben und bleibt vor dem Quellschlüssel. Die On-demand Migration ist keine fortlaufende Replikation von der Quelle.

:::

## Nächste Schritte
### Nächste Schritte

- [Bucket-Replikation konfigurieren](./replication.md), wenn Sie eine ausgehende Kopie brauchen
- [rc installieren und verwenden](/operations/rc)
- [Site-Replikation konfigurieren](/operations/high-availability/site-replication) für Standortkonfiguration und Identitätsdaten
- [rc installieren und verwenden](/de/operations/rc)
- [Site-Replikation konfigurieren](/de/operations/high-availability/site-replication) für Standortkonfiguration und Identitätsdaten
Loading
Loading