Transfer for On Premises-Jobs verwalten

Mit Sammlungen den Überblick behalten Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.

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:

    1. 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.

    2. Verwenden Sie Transfer Service for On-Premises Data, um Ihre Daten in einen von Ihnen erstellten temporären Bucket ohne Aufbewahrungsrichtlinie zu übertragen.

    3. Führen Sie eine Bucket-zu-Bucket-Übertragung durch, um die Daten mit einer Aufbewahrungsrichtlinie in den Bucket zu übertragen.

    4. 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:

  1. Erstellen Sie einen Agent-Pool:

    gcloud transfer agent-pools create my-agent-pool
    
  2. 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.
  • 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.
  • --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 und description angeben.

  • Zeitplan: Geben Sie schedule-starts, schedule-repeats-every und schedule-repeats-until oder do-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 und notification-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

  1. Rufen Sie in der Google Cloud Console die Transfer Service for On Premises Data-Webkonsole auf.

    Zur Seite "Transfer Service for On Premises Data"

  2. Klicken Sie auf Übertragungsjob erstellen.

    Die Seite Übertragungsjob erstellen wird angezeigt.

  3. Wählen Sie einen Agent-Pool für die Übertragung aus. So erstellen Sie einen neuen Agent-Pool:

    1. Klicken Sie auf Agent-Pool erstellen.

      Das Formular Agent-Pool erstellen wird angezeigt.

    2. 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.

  4. Geben Sie als Quelle den vollständig qualifizierten Pfad des Quelldateisystems der Quelldatei ein.

  5. 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:

    1. Klicken Sie auf Durchsuchen.

    2. Klicken Sie auf Neuer Bucket.

      Das Formular Bucket erstellen wird angezeigt.

    3. Füllen Sie das Formular aus, klicken Sie auf Erstellen und klicken Sie dann auf Auswählen.

  6. 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.

  7. Übertragungsjob beschreiben Geben Sie eine kurze Beschreibung der Übertragung ein, um sie besser nachverfolgen zu können.

  8. Optional: Erstellen Sie einen Zeitplan für den Job.

  9. 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

  1. Rufen Sie in der Cloud Console die Seite Transfer Service for On Premises Data auf.

    Zu „Transfer Service for On Premises Data“

  2. Klicken Sie auf Verbindungseinstellungen.

  3. Wählen Sie den zu aktualisierenden Agent-Pool aus.

  4. Klicken Sie auf Bandbreitenlimit festlegen.

  5. 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

  1. 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.

  2. 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

  1. Klicken Sie auf Filterliste .

  2. 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

  1. 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“

  2. Klicken Sie auf die Jobbeschreibung für den Job, den Sie gerade bearbeiten.

    Die Seite Jobdetails wird angezeigt.

  3. Klicken Sie auf Konfiguration.

  4. Klicken Sie neben dem Konfigurationselement, das Sie bearbeiten möchten, auf .

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

  1. 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“

  2. Klicken Sie auf die Jobbeschreibung für den Job, den Sie gerade bearbeiten.

    Die Seite Jobdetails wird angezeigt.

  3. Klicken Sie auf Wieder 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

  1. 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“

  2. Klicken Sie auf die Jobbeschreibung für den Job, den Sie gerade bearbeiten.

    Die Seite Jobdetails wird angezeigt.

  3. 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:

  1. Klicken Sie auf Übertragungslogs anzeigen.

    Die Seite Bucket-Details wird angezeigt. Dies ist ein Ziel in Ihrem Cloud Storage-Bucket.

  2. 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:

  1. CSV-Logdaten in BigQuery laden

  2. 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.