Bevor Sie eine Übertragung starten können, müssen Sie einen Übertragungsjob erstellen und einen oder mehrere Agents installiert und mit dem Übertragungsjob verbunden haben. In diesem Dokument wird beschrieben, wie Sie Übertragungsjobs erstellen, Übertragungs-Agents installieren und Übertragungsjobs verwalten.
Vorbereitung
Für die Verwendung von Transfer for On Premises benötigen Sie:
Eine POSIX-konforme Quelle.
Ein von Docker unterstützter 64-Bit-Linux-Server oder eine virtuelle Maschine, die auf die Daten zugreifen kann, die Sie übertragen möchten.
Die Docker Community Edition unterstützt die Betriebssysteme CentOs, Debian, Fedora und Ubuntu.
Informationen zur Verwendung anderer Linux-Betriebssysteme finden Sie unter Docker Enterprise.
Ein Cloud Storage-Bucket ohne Aufbewahrungsrichtlinie.
Zum Übertragen an einen Bucket mit einer Aufbewahrungsrichtlinie empfehlen wir Folgendes:
Erstellen Sie einen Cloud Storage-Bucket in derselben Region wie der endgültige Bucket. Sorgen Sie dafür, dass dieser temporäre Bucket keine Aufbewahrungsrichtlinie hat.
Weitere Informationen zu Regionen finden Sie unter Bucket-Standorte.
Verwenden Sie Transfer Service for On-Premises Data, um Ihre Daten in einen von Ihnen erstellten temporären Bucket ohne Aufbewahrungsrichtlinie zu übertragen.
Führen Sie eine Bucket-zu-Bucket-Übertragung durch, um die Daten mit einer Aufbewahrungsrichtlinie in den Bucket zu übertragen.
Löschen Sie den Cloud Storage-Bucket, den Sie Ihnen erstellten, um Ihre Daten vorübergehend zu speichern.
Schließen Sie die Ersteinrichtung von Transfer for On Premises ab.
Prüfen Sie vor dem Starten einer Übertragung Folgendes:
- TCP-Ports 80 (HTTP) und 443 (HTTPS) sind für ausgehende Verbindungen offen.
Für alle Agent-Prozesse innerhalb eines Google Cloud-Projekts wird dasselbe Dateisystem an demselben Bereitstellungspunkt bereitgestellt.
Skalierungseinschränkungen für Jobs und Agents
Für Transfer for On Premises gelten die folgenden Skalierungsbeschränkungen für Übertragungsjobs und Agents:
- Weniger als eine Milliarde Dateien pro Job
- Maximal 100 Agents pro Übertragungsprojekt
- Die Bandbreitenobergrenze muss über 1 Mbit/s liegen
Übertragungsjob erstellen
Bevor Sie eine Übertragung starten können, müssen Sie einen Übertragungsjob erstellen. Der Übertragungsjob koordiniert und steuert Ihre lokalen Agents beim Verschieben Ihrer Daten.
So erstellen Sie einen Übertragungsjob:
gcloud-CLI
Wenn Sie für diese Übertragung noch keinen Agent-Pool und keine Agents haben:
Erstellen Sie einen Agent-Pool:
gcloud transfer agent-pools create my-agent-pool
Installieren Sie Übertragungs-Agents:
gcloud transfer agents install --pool=my-agent-pool --count=3
Informationen zum Ermitteln der optimalen Anzahl von Agents für Ihre Umgebung finden Sie unter Agent-Anforderungen und Best Practices.
Verwenden Sie die Option
--creds-file
, um Agents mit einem Dienstkontoschlüssel auszuführen:gcloud transfer agents install --pool=my-agent-pool --count=3 \ --creds-file=/relative/path/to/service-account-key.json
Eine vollständige Liste der optionalen Flags erhalten Sie mit dem Befehl
gcloud transfer agents install --help
.
Verwenden Sie dann den Befehl gcloud transfer jobs create
.
gcloud transfer jobs create \
SOURCE DESTINATION \
[--source-agent-pool=projects/$PROJECT_ID/agentPools/my-source-agent-pool] \
[--destination-agent-pool=projects/$PROJECT_ID/agentPools/my-destination-agent-pool] \
[--intermediate-storage-path=gs://INTERMEDIATE_BUCKET_NAME]
Wobei:
Der
SOURCE
ist einer der folgenden:- Ein POSIX-Dateisystem im Format
posix:///path/to/folder
. Dies muss ein absoluter Pfad vom Stammverzeichnis des Agent-Hostcomputers sein. - Einen Cloud Storage-Bucket im Format
gs://bucket-name
. - Einen Amazon S3-Bucket oder einen Microsoft Azure Storage-Container.
- Ein POSIX-Dateisystem im Format
Der
DESTINATION
ist einer der folgenden:- Ein POSIX-Dateisystem im Format
posix:///path/to/folder
. Dies muss ein absoluter Pfad vom Stammverzeichnis des Agent-Hostcomputers sein. - Einen Cloud Storage-Bucket im Format
gs://bucket-name
.
- Ein POSIX-Dateisystem im Format
--source-agent-pool
gibt den Quell-Agent-Pool für diese Übertragung an, wenn von einem Dateisystem übertragen wird.--destination-agent-pool
gibt den Ziel-Agent-Pool an, der für diese Übertragung verwendet werden soll, wenn in ein Dateisystem übertragen wird.--intermediate-storage-path
gibt den Pfad zu einem Ordner in einem Cloud Storage-Bucket (gs://example-bucket/example-folder
) an, der beim Übertragen zwischen zwei Dateisystemen als Zwischenspeicher dient. Wir empfehlen die Verwendung eines leeren Ordners, der für diesen Übertragungsjob reserviert ist, um sicherzustellen, dass die übertragenen Daten nicht mit vorhandenen Cloud Storage-Daten interagieren.
Weitere Optionen:
Jobinformationen: Sie können
name
unddescription
angeben.Zeitplan: Geben Sie
schedule-starts
,schedule-repeats-every
undschedule-repeats-until
oderdo-not-run
an.Übertragungsoptionen: Bestimmen Sie, ob Zieldateien überschrieben werden sollen (
--overwrite-when=different
oderalways
) und ob bestimmte Dateien während oder nach der Übertragung gelöscht werden sollen (--delete-from=destination-if-unique
odersource-after-transfer
); welche Metadatenwerte beibehalten werden (--preserve-metadata
); und legen Sie optional eine Speicherklasse für übertragene Objekte fest (--custom-storage-class
).Benachrichtigungen: Konfigurieren Sie Pub/Sub-Benachrichtigungen für Übertragungen mit
notification-pubsub-topic
,notification-event-types
undnotification-payload-format
.Logging: Konfigurieren Sie, welche Übertragungsaktionen und Aktionszustände gemeldet werden, wenn Logs für diesen Job generiert werden.
Objektbedingungen (Optionen, die mit --include-
oder --exclude-
beginnen) werden für Übertragungen mit POSIX-Dateisystemen nicht unterstützt.
Führen Sie beispielsweise den folgenden Befehl aus, um einen Übertragungsjob zum Verschieben von Daten aus einem lokalen Dateisystem in einen Google Cloud Storage-Bucket mit dem Namen my-unique-bucket
zu erstellen:
gcloud transfer jobs create \
posix:///usr/local/my_dir gs://my-unique-bucket \
--source-agent-pool=projects/PROJECT_ID/agentPools/SOURCE_POOL`
Führen Sie gcloud transfer jobs create --help
aus, um alle Optionen anzuzeigen.
Cloud Console
Rufen Sie in der Google Cloud Console die Transfer Service for On Premises Data-Webkonsole auf.
Klicken Sie auf Übertragungsjob erstellen.
Die Seite Übertragungsjob erstellen wird angezeigt.
Wählen Sie einen Agent-Pool für die Übertragung aus. So erstellen Sie einen neuen Agent-Pool:
Klicken Sie auf Agent-Pool erstellen.
Das Formular Agent-Pool erstellen wird angezeigt.
Füllen Sie das Formular aus und klicken Sie auf Erstellen.
Der neue Agent-Pool wird auf der Seite Übertragungsjob erstellen hervorgehoben. Wählen Sie ihn zur Bestätigung aus.
Geben Sie als Quelle den vollständig qualifizierten Pfad des Quelldateisystems der Quelldatei ein.
Geben Sie einen Cloud Storage-Ziel-Bucket an. Sie können einen Cloud Storage-Bucket-Namen eingeben oder einen neuen Bucket erstellen.
So erstellen Sie einen neuen Bucket und wählen ihn aus:
Klicken Sie auf Durchsuchen.
Klicken Sie auf Neuer Bucket.
Das Formular Bucket erstellen wird angezeigt.
Füllen Sie das Formular aus, klicken Sie auf Erstellen und klicken Sie dann auf Auswählen.
Optional: Geben Sie den Namen des Ordners und den vollständigen Pfad an, um Dateien in einen Ordner anstelle der obersten Ebene des Buckets zu übertragen.
Übertragungsjob beschreiben Geben Sie eine kurze Beschreibung der Übertragung ein, um sie besser nachverfolgen zu können.
Optional: Erstellen Sie einen Zeitplan für den Job.
Klicken Sie auf Erstellen.
REST API
Verwenden Sie transferJobs.create mit einer posixDataSource
:
POST https://storagetransfer.googleapis.com/v1/transferJobs
{
"name":"transferJobs/sample_transfer",
"description": "My First Transfer",
"status": "ENABLED",
"projectId": "my_transfer_project_id",
"schedule": {
"scheduleStartDate": {
"year": 2022,
"month": 5,
"day": 2
},
"startTimeOfDay": {
"hours": 22,
"minutes": 30,
"seconds": 0,
"nanos": 0
}
"scheduleEndDate": {
"year": 2022,
"month": 12,
"day": 31
},
"repeatInterval": {
"259200s"
},
},
"transferSpec": {
"posixDataSource": {
"rootDirectory": "/bar/",
},
"gcsDataSink": {
"bucketName": "destination_bucket"
"path": "foo/bar/"
},
}
}
Das Feld schedule
ist optional. Ist dies nicht der Fall, muss der Übertragungsjob mit einer transferJobs.run
-Anfrage gestartet werden.
Mit transferJobs.get
können Sie den Status Ihrer Übertragung nach dem Erstellen eines Jobs prüfen:
GET https://storagetransfer.googleapis.com/v1/transferJobs/sample_transfer?project_id=my_transfer_project_id
Sie müssen auf allen verwendeten Rechnern Transfer for On Premises-Agents installieren und ausführen, falls noch nicht geschehen.
Bandbreitennutzung für Transfer Service for On Premises Data steuern
Bandbreitenlimits sind nützlich, wenn Sie die Datenmenge begrenzen müssen, die Transfer Service for On Premises Data zum Übertragen von Daten an Cloud Storage verwendet. Die Verwendung eines Bandbreitenlimits gewährleistet Folgendes:
Die Netzwerkverbindungen werden bei der Verwendung von Transfer Service for On Premises Data nicht beeinträchtigt.
Das Verhalten Ihrer Anwendung während der Übertragung bleibt unverändert.
Wenn Sie eine Netzwerkverbindung haben, bei der Gebühren anhand der maximalen Bandbreite berechnet werden, lösen Sie keine plötzliche Preiserhöhung aus.
Bandbreitenlimits werden auf Agent-Poolebene angewendet und durch alle Agents im Pool geteilt.
Bandbreitenlimit festlegen
So legen Sie ein Bandbreitenlimit fest:
gcloud-CLI
Sie können zur Zeit der Erstellung oder jederzeit nach der Erstellung eines Agent-Pool ein Bandbreitenlimit für den Agent-Pool festlegen.
Geben Sie das --bandwidth-limit
-Flag an, um ein Bandbreitenlimit beim Erstellen eines Agent-Pools festzulegen:
gcloud transfer agent-pools create POOL_NAME --bandwidth-limit=BANDWIDTH_LIMIT
Verwenden Sie den gcloud transfer agent-pools update
-Befehl, um ein Bandbreitenlimit für einen vorhandenen Agent-Pool festzulegen:
gcloud transfer agent-pools update POOL_NAME --bandwidth-limit=BANDWIDTH_LIMIT
Ersetzen Sie POOL_NAME durch den Namen des Pools, der erstellt oder aktualisiert werden soll.
Ersetzen Sie BANDWIDTH_LIMIT durch einen Wert, der die maximale Bandbreite in MB/s darstellt. Wenn Sie beispielsweise für alle Agents im Pool eine maximale Bandbreite von 50 MB pro Sekunde festlegen möchten, geben Sie --bandwidth-limit=50
an.
Cloud Console
Rufen Sie in der Cloud Console die Seite Transfer Service for On Premises Data auf.
Klicken Sie auf Verbindungseinstellungen.
Wählen Sie den zu aktualisierenden Agent-Pool aus.
Klicken Sie auf Bandbreitenlimit festlegen.
Geben Sie das gewünschte Netzwerklimit in Megabyte pro Sekunde (MB/s) ein und klicken Sie auf Limit festlegen.
Das Bandbreitenlimit für das Projekt wird angezeigt.
Bandbreitenlimit bearbeiten
gcloud-CLI
Das Bandbreitenlimit eines Agent-Pools bearbeiten Sie mit dem gcloud transfer agent-pools update
-Befehl:
gcloud transfer agent-pools update POOL_NAME --bandwidth-limit=BANDWIDTH_LIMIT
Ersetzen Sie POOL_NAME durch den Namen des zu aktualisierenden Pools. Ersetzen Sie BANDWIDTH_LIMIT durch einen Wert, der die neue maximale Bandbreite in MB/s darstellt. Wenn Sie beispielsweise für alle Agents im Pool eine maximale Bandbreite von 50 MB pro Sekunde festlegen möchten, geben Sie --bandwidth-limit=50
an.
Verwenden Sie zum Entfernen eines Limits das --clear-bandwidth-limit
-Flag:
gcloud transfer agent-pools update POOL_NAME --clear-bandwidth-limit
Cloud Console
Klicken Sie auf der Seite Verbindungseinstellungen auf Limit bearbeiten, um ein vorhandenes Bandbreitenlimit zu bearbeiten.
Klicken Sie zum Entfernen eines Limits auf Gesamte Bandbreite verwenden.
Monitoring von Jobs
Sie können Ihre Transfer Service for On Premises Data-Jobs überwachen, um zu prüfen, ob sie wie erwartet funktionieren.
So überwachen Sie Ihre Übertragungsjobs:
gcloud-CLI
Führen Sie den Befehl transfer jobs monitor
aus:
gcloud transfer jobs monitor JOB_NAME
Verwenden Sie den von diesem Befehl zurückgegebenen "Vorgangsnamen" als Eingabe für den operations describe
-Befehl, um weitere Details zurückzugeben:
gcloud transfer operations describe OPERATION_NAME
Cloud Console
Rufen Sie in der Google Cloud Console die Seite Transfer Service for On Premises Data-Jobs auf.
Zur Seite "Transfer Service for On Premises Data-Jobs"
Eine Liste der Jobs wird angezeigt. Diese Liste enthält laufende und abgeschlossene Jobs.
Zum Aufrufen detaillierter Informationen zu einem Übertragungsjob klicken Sie auf die Jobbeschreibung des entsprechenden Jobs.
Die Seite Jobdetails wird angezeigt.
Auf der Seite Jobdetails wird Folgendes angezeigt:
Anzahl der übertragenen Daten.
Konfigurationsinformationen zum Übertragungsjob.
Informationen zu geplanten oder wiederkehrenden Jobs.
Details zur letzten Jobausführung.
Verlauf aller früheren Jobausführungen.
REST API
Verwenden Sie transferJobs.list
, um eine Liste aller Übertragungsjobs zurückzugeben.
Um weitere Informationen zu einem bestimmten Übertragungsjob zu erhalten, verwenden Sie transferJobs.get
, um ein TransferJob
-Objekt zurückzugeben.
Übergeben Sie den Wert TransferJob.latestOperationName
an transferOperations.get
, um den Status einer laufenden Übertragung zu prüfen.
Jobs filtern
Wenn Sie viele Jobs haben und nur einen Teil davon überwachen möchten, können Sie die Jobs anhand von Filtern sortieren und nur diejenigen anzeigen, die für Sie relevant sind.
So filtern Sie Übertragungsjobs:
gcloud-CLI
Verwenden Sie die Flags --job-statuses
und --job-names
im transfer jobs list
-Befehl, um Jobs mit den angegebenen Status(en) und/oder Namen aufzulisten.
gcloud transfer jobs list --job-statuses=[JOB_STATUSES,…] --job-names=[JOB_NAMES,…]
Zulässige Werte für JOB_STATUSES sind enabled
, disabled
und deleted
. Trennen Sie mehrere Statuswerte durch Kommas.
Cloud Console
Klicken Sie auf Filterliste filter_list.
Wählen Sie die gewünschten Filter aus.
REST API
Geben Sie zum Filtern von Übertragungsjobs den Abfrageparameter filter
für transferJobs.list
an.
Jobkonfigurationen bearbeiten
So bearbeiten Sie eine Jobkonfiguration:
gcloud-CLI
Verwenden Sie zum Bearbeiten eines vorhandenen Jobs den transfer jobs update
-Befehl:
gcloud transfer jobs update NAME
Eine vollständige Liste der aktualisierbaren Felder finden Sie in der Referenz zu transfer jobs update
.
Cloud Console
Rufen Sie in der Google Cloud Console die Seite Transfer Service for On Premises Data-Jobs auf.
Klicken Sie auf die Jobbeschreibung für den Job, den Sie gerade bearbeiten.
Die Seite Jobdetails wird angezeigt.
Klicken Sie auf Konfiguration.
Klicken Sie neben dem Konfigurationselement, das Sie bearbeiten möchten, auf edit.
REST API
Sie können einen Überweisungsjob nach seiner Erstellung mit transferJobs.patch
aktualisieren.
Jobs noch einmal ausführen
Transfer Service for On Premises Data unterstützt das wiederholte Ausführen eines abgeschlossenen Jobs. Dies kann hilfreich sein, wenn Sie weitere Daten verschieben müssen und eine vorhandene Jobkonfiguration wiederverwenden möchten.
So führen Sie einen Job noch einmal aus:
gcloud-CLI
Führen Sie den Befehl transfer jobs run
aus:
gcloud transfer jobs run NAME
Fügen Sie das Flag --no-async
ein, um den Job auszuführen und gleichzeitig andere Aufgaben in Ihrem Terminal zu blockieren, bis der Übertragungsvorgang abgeschlossen ist. Falls nicht angegeben, werden Aufgaben asynchron ausgeführt.
gcloud transfer jobs run NAME --no-async
Cloud Console
Rufen Sie in der Google Cloud Console die Seite Transfer Service for On Premises Data-Jobs auf.
Klicken Sie auf die Jobbeschreibung für den Job, den Sie gerade bearbeiten.
Die Seite Jobdetails wird angezeigt.
Klicken Sie auf replayWieder ausführen.
Der Job wird gestartet.
REST API
Sie können einen Übertragungsjob mit transferJobs.run
noch einmal ausführen und den jobName
angeben.
Fehler ansehen
So rufen Sie ein Beispiel für Fehler auf, die während der Übertragung aufgetreten sind:
gcloud-CLI
Führen Sie den Befehl transfer jobs monitor
aus:
gcloud transfer jobs monitor JOB_NAME
Übergeben Sie den vom gcloud transfer jobs monitor JOB_NAME
-Befehl zurückgegebenen "Vorgangsnamen" als Eingabe an den operations describe
-Befehl, um weitere Details zurückzugeben:
gcloud transfer operations describe OPERATION_NAME
Cloud Console
Rufen Sie in der Google Cloud Console die Seite Transfer Service for On Premises Data-Jobs auf.
Klicken Sie auf die Jobbeschreibung für den Job, den Sie gerade bearbeiten.
Die Seite Jobdetails wird angezeigt.
Klicken Sie auf Fehlerdetails ansehen.
Die Seite Fehlerdetails wird angezeigt. Hier sehen Sie ein Beispiel für Fehler, die während der Übertragung aufgetreten sind.
REST API
Sie können den Übertragungsfehlerjob mit transferOperations.get
aufrufen.
Übertragungslogs ansehen
Transfer Service for On Premises Data erzeugt detaillierte Übertragungslogs, mit denen Sie die Ergebnisse des Übertragungsjobs prüfen können. Jeder Job erzeugt eine Sammlung von Übertragungslogs, die im Cloud Storage-Ziel-Bucket gespeichert werden.
Logs werden erstellt, während der Übertragungsjob ausgeführt wird. Die vollständigen Logs stehen normalerweise innerhalb von 15 Minuten nach Abschluss des Jobs zur Verfügung.
Sie haben folgende Möglichkeiten, um Logs aufzurufen:
Fehler in der Google Cloud Console ansehen
So zeigen Sie alle Fehler an, die während der Übertragung in der Google Cloud Console aufgetreten sind:
Klicken Sie auf Übertragungslogs anzeigen.
Die Seite Bucket-Details wird angezeigt. Dies ist ein Ziel in Ihrem Cloud Storage-Bucket.
Klicken Sie auf das Übertragungslog, das Sie ansehen möchten.
Die Übertragungslogs werden angezeigt. Weitere Informationen finden Sie unter Übertragungslogformat.
Logs im Ziel-Bucket aufrufen
Übertragungslogs werden im Ziel-Bucket unter folgendem Pfad gespeichert:
destination-bucket-name/storage-transfer/logs/transferJobs/job-name/transferOperations/operation-name
Dabei gilt:
destination-bucket-name
ist der Name des Cloud Storage-Ziel-Buckets des Jobs.job-name
ist der Jobname, wie in der Jobliste angezeigt.operation-name
ist der Name des einzelnen Übertragungsvorgangs, der aus dem Zeitstempel IS08601 und der generierten ID besteht.
Logs werden zusammengefasst und als Objekte gespeichert. Jeder Batch Logs wird nach seiner Erstellungszeit benannt. Beispiel:
my
bucket/storage-transfer/logs/transferOperations/job1/2019-10-19T10_52_56.519081644-07_00.log
Die Übertragungslogs werden angezeigt. Weitere Informationen finden Sie unter Übertragungslogformat.
BigQuery-Abfragen für Übertragungslogs ausführen
So führen Sie BigQuery-Abfragen zu Ihren Übertragungslogs aus:
Führen Sie die BigQuery-Abfrage aus.
Beispielabfragen
Anzahl der Dateien mit versuchter Übertragung und Status "Fehlgeschlagen"/"Erfolg" ansehen
select ActionStatus, count(*) as num_files from big-query-table where Action="TRANSFER" group by 1;
Dabei ist big-query-table
der Name der BigQuery-Tabelle, die das Übertragungslog enthält.
Alle Dateien ansehen, deren Übertragung fehlgeschlagen ist
select Src_File_Path from big-query-table where Action="TRANSFER" and ActionStatus="FAILED";
Dabei ist big-query-table
der Name der BigQuery-Tabelle, die das Übertragungslog enthält.
Prüfsumme und Zeitstempel für jede erfolgreich übertragene Datei anzeigen
select Timestamp, Action, ActionStatus, Src_File_Path, Src_File_Size, Src_File_Crc32C, Dst_Gcs_BucketName, Dst_Gcs_ObjectName, Dst_Gcs_Size, Dst_Gcs_Crc32C, Dst_Gcs_Md5 from big-query-table where Action="TRANSFER" and ActionStatus="SUCCEEDED";
Dabei ist big-query-table
der Name der BigQuery-Tabelle, die das Übertragungslog enthält.
Alle Fehlerinformationen für Verzeichnisse ansehen, die nicht übertragen werden konnten
select FailureDetails_ErrorType, FailureDetails_GrpcCode, FailureDetails_Message from big-query-table where Action="FIND" and ActionStatus="FAILED";
Dabei ist big-query-table
der Name der BigQuery-Tabelle, die das Übertragungslog enthält.
Nächste Schritte
Informationen zur Optimierung der Agent-Einrichtung finden Sie unter Agent-Anforderungen und Best Practices.