Auf dieser Seite erfahren Sie, wie Sie Daten zwischen zwei POSIX-Dateisystemen übertragen. Zu den häufigsten Anwendungsfällen gehören:
- Bursting in die Cloud und Hybrid-HC: Übertragen Sie schnell große Datasets zur lokalen Verarbeitung in die Cloud.
- Migration und Synchronisierung mit Filestore´: Migrieren oder synchronisieren Sie Daten von einem lokalen Dateisystem zu Filestore.
- Verwaltete Dateiübertragung: Sichere und zuverlässige Übertragung von Daten zwischen Rechenzentren oder zwischen zwei Dateisystemen in der Cloud.
Richtlinien zur Übertragungsleistung
Die folgenden Richtlinien können dabei helfen, die Leistung während der Übertragung von Dateisystem zu Dateisystem zu maximieren.
Agent-Bereitstellung
Im Allgemeinen empfehlen wir, in jedem Quell- und Ziel-Agent-Pool drei Agents zu verwenden. Überwachen Sie die Übertragung und fügen Sie bei Bedarf weitere Agents hinzu. Jeder Agent benötigt 4 vCPUs und 8 GiB RAM.
Wenn Sie zu einer Filestore-Instanz migrieren, empfiehlt Filestore die Verwendung des Instanztyps n2-standard-8
für jeden Agent. Geben Sie nconnect=2
an, wenn Sie die Instanz auf einer Compute Engine-VM bereitstellen. Weitere Informationen zum Optimieren und Testen der Instanzleistung finden Sie in den Leistungsrichtlinien von Filestore.
Große Anzahl kleiner Dateien übertragen
Für eine bessere Leistung bei der Übertragung vieler kleiner Dateien empfehlen wir, die Dateien in mehrere Verzeichnisse aufzuteilen und ein einzelnes Verzeichnis mit Millionen von Dateien zu vermeiden.
Hinweis
Bevor Sie die auf dieser Seite beschriebenen Aufgaben ausführen können, müssen Sie die Voraussetzungen erfüllen.
Agent-Pools erstellen und Agents installieren
Damit Übertragungen von Dateisystem auf Dateisysteme möglich sind, müssen Sie Agent-Pools und Agents für die Quell- und Zieldateisysteme erstellen. Agents für den Quell-Agent-Pool müssen auf Rechnern oder VMs installiert werden, die Zugriff auf das Quelldateisystem haben. Agents für den Ziel-Agent-Pool müssen auf Rechnern oder VMs installiert werden, die Zugriff auf das Zieldateisystem haben.
Quell-Agent-Pool erstellen
Erstellen Sie einen Quell-Agent-Pool mit einer der folgenden Methoden:
gcloud-CLI
Erstellen Sie mit folgendem Befehl einen Quell-Agent-Pool:
gcloud transfer agent-pools create SOURCE_AGENT_POOL
Ersetzen Sie SOURCE_AGENT_POOL durch den Namen, den Sie dem Quell-Agent-Pool geben möchten.
Google Cloud Console
Rufen Sie in der Google Cloud Console die Seite Agent-Pools auf.
Die Seite Agent-Pools wird angezeigt, auf der die vorhandenen Agent-Pools aufgeführt sind.
Klicken Sie auf Weiteren Pool erstellen.
Geben Sie einen Namen für den Pool ein.
Klicken Sie auf Erstellen.
Agents für den Quell-Agent-Pool installieren
Installieren Sie Agents für den Quell-Agent-Pool auf einem Rechner oder einer VM, die Zugriff auf das Quelldateisystem hat:
gcloud-CLI
Installieren Sie die Agents für den Quell-Agent-Pool, indem Sie Folgendes ausführen:
gcloud transfer agents install --pool=SOURCE_AGENT_POOL --count=NUMBER_OF_AGENTS \
--mount-directories=MOUNT_DIRECTORIES
Dabei gilt:
- SOURCE_AGENT_POOL durch den Namen des Quell-Agent-Pools.
- NUMBER_OF_AGENTS durch die Anzahl der Agents, die Sie für den Quell-Agent-Pool installieren möchten. Informationen zum Ermitteln der optimalen Anzahl von Agents für Ihre Umgebung finden Sie unter Anforderungen und Best Practices für Agents.
- MOUNT_DIRECTORIES ist eine durch Kommas getrennte Liste von Verzeichnissen im Quelldateisystem, aus denen kopiert werden soll. Bei Auslassen dieses Flags wird das gesamte Dateisystem bereitgestellt. Dies könnte ein Sicherheitsrisiko darstellen.
Google Cloud Console
Rufen Sie in der Google Cloud Console die Seite Agent-Pools auf.
Die Seite Agent-Pools wird angezeigt, auf der die vorhandenen Agent-Pools aufgeführt sind.
Klicken Sie auf den Namen des Quell-Agent-Pools, den Sie gerade erstellt haben.
Klicken Sie auf dem Tab Agents auf Agent installieren.
Folgen Sie der Anleitung in der Google Cloud Console, um die Pub/Sub-Ressource zu erstellen, Docker zu installieren und den Agent zu starten.
Ziel-Agent-Pool erstellen und Agents installieren
Wiederholen Sie die vorherigen Schritte, um einen Ziel-Agent-Pool zu erstellen und Agents zu installieren.
Cloud Storage-Bucket als Vermittler erstellen
Für Übertragungen zwischen zwei Dateisystemen ist ein Cloud Storage-Bucket als Vermittler für die Datenübertragung erforderlich.
Erstellen Sie einen Cloud Storage-Bucket der Standardklasse mit den folgenden Einstellungen:
- Verschlüsselung: Sie können einen vom Kunden verwalteten Verschlüsselungsschlüssel (Customer-Managed Encryption Key, CMEK) angeben. Andernfalls wird ein von Google verwalteter Verschlüsselungsschlüssel verwendet.
- Objektversionierung, Bucket-Sperre und Standard-Objekt-Holds: Lassen Sie diese Features deaktiviert.
Mit der folgenden Methode können Sie Berechtigungen und Rollen erteilen:
- Gewähren Sie dem Storage Transfer Service-Dienstkonto die Rolle „Storage-Administrator“ (
roles/storage.admin
) für den Bucket. Verwenden Sie
gcloud transfer authorize
, um Ihr Konto für alle Storage Transfer Service-Funktionen zu autorisieren. Dieser Befehl gewährt projektweite Berechtigungen für Storage-Administratoren:gcloud transfer authorize --add-missing
- Gewähren Sie dem Storage Transfer Service-Dienstkonto die Rolle „Storage-Administrator“ (
Übertragungsjob erstellen
gcloud-CLI
Führen Sie Folgendes aus, um eine Übertragung vom Quelldateisystem in das Zieldateisystem zu erstellen:
gcloud transfer jobs create SOURCE_DIRECTORY DESTINATION_DIRECTORY \
--source-agent-pool=SOURCE_AGENT_POOL \
--destination-agent-pool=DESTINATION_AGENT_POOL \
--intermediate-storage-path= gs://STORAGE_BUCKET/FOLDER/
Ersetzen Sie die folgenden Variablen:
- SOURCE_DIRECTORY durch den Pfad des Quellverzeichnisses.
- DESTINATION_DIRECTORY durch den Pfad des Zielverzeichnisses.
- SOURCE_AGENT_POOL durch den Namen des Quell-Agent-Pools.
- DESTINATION_AGENT_POOL durch den Namen des Ziel-Agent-Pools.
- STORAGE_BUCKET durch den Namen des Cloud Storage-Buckets.
- FOLDER durch den Namen des Ordners, in den die Daten übertragen werden sollen.
Wenn Sie einen Übertragungsjob starten, berechnet das System zuerst die Daten in der Quelle und dem Ziel, um die Quelldaten zu ermitteln, die seit der vorherigen Übertragung neu oder aktualisiert sind. Nur die neuen Daten werden übertragen.
Clientbibliotheken
Einfach loslegen (Go)
Java
Node.js
Python
Vermittler-Buckets verwalten
Nach Abschluss eines Übertragungsjobs speichert Storage Transfer Service Übertragungslogs, in denen übertragene und fehlgeschlagene Daten im Bucket aufgelistet sind. Nach der Übertragung werden Bereinigungsaufgaben automatisch gestartet, um die Zwischendaten zu löschen. In einigen Fällen können Bereinigungsdaten nicht alle Daten im Bucket löschen. Wenn Sie Daten löschen möchten, die bei der Bereinigung nicht gelöscht wurden, verwenden Sie die folgende Anleitung, um die Daten entweder manuell zu löschen oder eine Lebenszyklusregel festzulegen, um die Daten automatisch zu löschen.
Manuelle Bereinigung
Löschen Sie Daten aus dem Zwischen-Bucket. Führen Sie dazu die folgenden gsutil
-Befehle mit dem Datentyp aus, den Sie löschen möchten.
Führen Sie den folgenden Befehl aus, um Daten im Zwischen-Bucket zu löschen, die während der Bereinigung nicht gelöscht wurden:
gsutil -m rm gs://STORAGE_BUCKET/PREFIX**
Wenn Sie alle Daten einschließlich Übertragungslogs löschen möchten, geben Sie das Stammverzeichnis des Buckets mit dem Platzhalter „match-all“ (*) an.
gsutil -m rm gs://STORAGE_BUCKET/*
Führen Sie den folgenden Befehl aus, um den Bucket zu löschen:
gsutil -m rm gs://STORAGE_BUCKET
Ersetzen Sie die folgenden Variablen:
STORAGE_BUCKET durch den Namen des Zwischen-Buckets.
PREFIX durch den Namen des Ordners, in den die Daten im Zwischen-Bucket übertragen wurden.
Lebenszyklusregel festlegen
Legen Sie eine Lebenszyklusregel für den Cloud Storage-Bucket fest, um Daten zu löschen, die nicht durch den automatischen Bereinigungszyklus gelöscht werden. Verwenden Sie die age
-Bedingung, um Zwischendaten im Bucket zu löschen. Geben Sie dazu einen Zeitraum an, der länger ist als der längste Übertragungsjob, der den Bucket als Vermittler verwendet. Wenn die angegebene Altersbedingung kürzer ist als die Zeit, die zum Herunterladen der Datei aus dem Zwischen-Bucket in das Ziel benötigt wird, schlägt die Dateiübertragung fehl.
Optional können Sie mit der matchesPrefix
-Bedingung Daten in dem Ordner löschen, den Sie für den Zwischen-Bucket angegeben haben. Zum Löschen von Übertragungslogs zusammen mit Daten im Bucket ist die Bedingung matchesPrefix
nicht erforderlich.
Dateimetadaten beibehalten
So behalten Sie Dateimetadaten wie numerische UID-, GID-, MODE- und symbolische Links bei:
gcloud-CLI
Geben Sie im Feld --preserve-metadata
das Beibehaltungsverhalten für diese Übertragung an. Optionen für Dateisystemübertragungen sind: gid
, mode
, symlink
, uid
.
REST API
Geben Sie die entsprechenden Optionen in einem metadataOptions
-Objekt an.
Weitere Informationen finden Sie unter Optionale POSIX-Attribute beibehalten.
Beispielübertragung mit der gcloud-CLI
In diesem Beispiel übertragen wir Daten aus dem Verzeichnis /tmp/datasource
auf VM1 an /tmp/destination
zu VM2.
Richten Sie die Quelle der Übertragung ein.
Erstellen Sie den Quell-Agent-Pool:
gcloud transfer agent-pools create source_agent_pool
Installieren Sie auf VM1 Agents für
source_agent_pool
, indem Sie Folgendes ausführen:gcloud transfer agents install --pool=source_agent_pool \ --count=1 \ --mount-directories="/tmp/datasource"
Richten Sie das Ziel der Übertragung ein.
Erstellen Sie den Ziel-Agent-Pool:
gcloud transfer agent-pools create destination_agent_pool
Installieren Sie auf VM2 Agents für
destination_agent_pool
, indem Sie Folgendes ausführen:gcloud transfer agents install --pool=destination_agent_pool \ --count=3 \ --mount-directories="/tmp/destination"
Erstellen Sie einen Cloud Storage-Vermittler-Bucket.
Erstellen Sie einen Bucket mit dem Namen
my-intermediary-bucket
.gsutil mb gs://my-intermediary-bucket
Autorisieren Sie Ihr Konto für alle Features des Storage Transfer Service, indem Sie Folgendes ausführen:
gcloud transfer authorize --add-missing
Erstellen Sie einen Übertragungsjob mit folgendem Befehl:
gcloud transfer jobs create posix:///tmp/datasource posix:///tmp/destination \ --source-agent-pool=source_agent_pool \ --destination-agent-pool=destination_agent_pool \ --intermediate-storage-path=gs://my-intermediary-bucket
Nächste Schritte
- Weitere Informationen zum Verwalten von Jobs.