Best Practices für Dateisystemübertragungen

Auf dieser Seite werden Best Practices für Dateisystemübertragungen beschrieben.

Best Practices für die Leistung

Die folgenden Best Practices sorgen für eine gute Übertragungsleistung:

  • Maximieren Sie die Leistung Ihres Übertragungs-Agents.

  • Vergleichen Sie die Leistung durch Übertragen eines großen Datenkorpus von mindestens 100 GB.

    Storage Transfer Service ist ein umfangreicher, durchsatzoptimierter Dienst. Ihre Leistung bei sehr kleinen Test-Datasets ist daher kein Indikator für die Leistung großer Datasets in der Produktion.

  • Beschränken Sie einzelne Quellordner auf 1 Million Dateien. Verzeichnisse mit Millionen von Dateien können die gesamte Übertragung verlangsamen.

  • Führen Sie Agents auf separaten virtuellen Maschinen (VMs) aus, damit Sie den Ressourcenverbrauch effizienter skalieren können

  • Prüfen Sie, ob die Netzwerkschnittstelle auf den Agent-Computern für die benötigte Bandbreite von Lese-/Schreibvorgängen ausgelegt ist.

    Wenn Sie beispielsweise ein WAN (Wide Area Network) mit 20 Gbit/s verwenden möchten, muss die Netzwerkschnittstelle der Agent-Maschine 20 Gbit/s zum Lesen von Daten aus Ihrem Netzwerksystem und weitere 20 Gbit/s unterstützen, um Daten an Cloud Storage zu übertragen, oder 40 Gbit/s Gesamtbandbreite.

  • Überwachen Sie die CPU, den Arbeitsspeicher und das Netzwerk auf Agent-Maschinen, um zu vermeiden, dass die Rechner von anderen Arbeitslasten überlastet werden, da dies negative Auswirkungen auf die Leistung haben kann. Informationen zu den vorgeschlagenen Arbeitsspeicher- und CPU-Zahlen finden Sie unter Hardwareanforderungen für Agents.

Mehrteilige Uploads

Wenn die Übertragung von einem POSIX-Dateisystem zu Cloud Storage oder zwischen POSIX-Dateisystemen erfolgt, sollten Sie mehrteilige Uploads aktivieren. Mehrteilige Uploads können Übertragungen, die große Dateien enthalten, um bis zu 300 % beschleunigen, indem große Dateien (> 1 GiB) in kleinere Teile aufgeteilt und parallel hochgeladen werden.

HDFS- und S3-kompatible Dateisysteme unterstützen keine mehrteiligen Uploads.

Mehrteilige Uploads aktivieren

So aktivieren Sie mehrteilige Uploads:

  • Sie müssen dem Konto, das Übertragungs-Agents autorisieren, die erforderlichen Berechtigungen gewähren, entweder ein Nutzerkonto oder ein Dienstkonto.

  • Der Ziel- oder Zwischen-Bucket darf keine Aufbewahrungsrichtlinie und keinen Objekt-Hold haben.

Nach der Aktivierung verwendet der Storage Transfer Service ein mehrteiliges Upload automatisch, damit dadurch eine Übertragung wahrscheinlich beschleunigt wird.

Mehrteilige Objektlebenszyklusregeln konfigurieren

Mit der Verwaltung des Cloud Storage-Objektlebenszyklus können Sie einen unvollständigen mehrteiligen Upload abbrechen und die zugehörigen Teile löschen. Weitere Informationen finden Sie in der Cloud Storage-Dokumentation unter Unvollständige mehrteilige Uploads abbrechen.

Wir empfehlen, für age einen Wert von 7 Tagen festzulegen.

Mehrteilige Uploads deaktivieren

Wenn Sie mehrteilige Uploads deaktivieren möchten, installieren Sie die Übertragungs-Agents mit docker run neu und übergeben Sie --enable-multipart=false:

sudo docker run --ulimit memlock=64000000 -d --rm \
-v /usr/local/research:/usr/local/research \
gcr.io/cloud-ingest/tsop-agent:latest \
--project-id=PROJECT_ID \
--agent-pool=AGENT_POOL \
--creds-file=CREDENTIAL_FILE \
--hostname=$(hostname) \
--enable-multipart=false

Ersetzen Sie Folgendes:

  • PROJECT_ID die ID des Projekts angibt, in dem die Übertragung gehostet wird.
  • CREDENTIAL_FILE: Wenn der Übertragungs-Agent ein Dienstkonto zur Authentifizierung verwendet, geben Sie den Pfad zu einer Datei mit Anmeldedaten für Dienstkonten im JSON-Format an.

Alternativ können Sie die erforderlichen Berechtigungen des Kontos widerrufen, das Übertragungs-Agents autorisiert (entweder ein Nutzer- oder ein Dienstkonto).

Leistung des Übertragungs-Agents maximieren

Die Übertragungsleistung wird von folgenden Variablen beeinflusst:

  • Dateisystemfunktionen.

  • Zugrunde liegende Hardware-Einschränkungen.

    Der Medientyp der Festplatte, der Eingabe-/Ausgabebus und die LAN-Verbindung (Local Area Network) beeinflussen alle die Leistung.

  • WAN-Durchsatz und -Auslastung

    Ein langsameres oder stark ausgelastetes WAN beeinträchtigt die Leistung.

  • Dateieigenschaften.

    Beispielsweise haben viele große Dateien einen höheren Netzwerkdurchsatz als viele kleine Dateien aufgrund des Netzwerk-Overheads.

Aufgrund dieser Variablen können wir die tatsächliche Leistung nicht vorhersagen oder eine optimale Anzahl zu verwendender Agents nennen.

Sie sollten mindestens drei Agents auf verschiedenen Computern verwenden, damit Ihre Übertragung fehlertolerant bleibt. Sie können Übertragungs-Agents während der Ausführung von Übertragungen hinzufügen, wenn die Leistung dynamisch steigt.

Gehen Sie so vor, um die Auswirkungen des Hinzufügens von Agents zu beobachten und die für Ihre Umgebung geeignete Anzahl von Agents auszuwählen:

  1. Starten Sie eine große Übertragung, deren Ausführung mindestens eine Stunde dauert. Sie können beispielsweise eine Übertragung beginnen, die mindestens 100.000 Dateien enthält und mindestens 100 GB groß ist.

  2. Verwenden Sie Cloud Monitoring, um den gesamten Agent-Durchsatz zu beobachten.

  3. Warten Sie, bis der Durchsatz deaktiviert ist, und bestimmen Sie, ob Sie durch Ihre WAN-Kapazität oder Ihre Bandbreitenobergrenze eingeschränkt sind.

  4. Wenn Ihre WAN-Kapazität noch nicht erschöpft ist und das gewünschte Übertragungslimit noch nicht erreicht wurde, können Sie einen weiteren Agent hinzufügen. Der zusätzliche Agent erhöht automatisch den Übertragungsdurchsatz. Warten Sie ungefähr drei Minuten, bis der Durchsatz in Cloud Monitoring stabil ist.

Wiederholen Sie die Schritte 3 und 4, um jeweils nur einen Agent hinzuzufügen, bis Sie das gewünschte Limit erreichen. Solange Rechen-, Dateisystem- und Netzwerkressourcen verfügbar sind, können Sie pro Agent-Pool bis zu 100 Agents ausführen.

Wenn die ausgehende Bandbreite erschöpft ist, bevor Sie Ihr gewünschtes Limit erreichen, haben Sie folgende Möglichkeiten:

Wenn Sie Agents hinzugefügt haben, der Durchsatz aber nicht zunimmt und Ihr WAN nicht erschöpft ist, prüfen Sie den Dateisystemdurchsatz. In seltenen Fällen ist der Dateisystemdurchsatz erschöpft und damit die Fähigkeit eingeschränkt, die Übertragungsleistung zu steigern.

Agents benennen

Beim Benennen von Agents empfehlen wir Folgendes:

  • Geben Sie in Ihrem Agent immer den Hostnamen an. Dies hilft Ihnen dabei, die Maschine zu finden, auf der ein Agent ausgeführt wird. Wir empfehlen die Übergabe von --hostname=$(hostname) an den Docker-Befehl run.

  • Wählen Sie ein Agent-Präfixschema aus, mit dem Sie Agents im Kontext Ihrer Monitoring- und Infrastrukturorganisation identifizieren können. Beispiel:

    • Wenn Sie drei separate Übertragungsprojekte haben, können Sie den Namen des Teams in Ihren Agent aufnehmen. z. B. logistics

    • Wenn Sie zwei verschiedene Übertragungsprojekte für zwei verschiedene Rechenzentren ausführen, können Sie den Namen des Rechenzentrums in das Agent-Präfix aufnehmen. Beispiel: omaha.