Google Cloud Managed Lustre kann Daten aus Cloud Storage importieren und Daten in Cloud Storage exportieren. Datenübertragungen sind inkrementell. Es werden nur Dateien kopiert, die noch nicht im Ziel vorhanden sind oder die sich seit der Übertragung geändert haben.
Cloud Storage-Buckets mit aktiviertem hierarchischem Namespace bieten im Vergleich zu Standard- Buckets schnellere Übertragungsgeschwindigkeiten zu und von Managed Lustre.
Leistung
Übertragungen zwischen Managed Lustre und Cloud Storage können folgende Geschwindigkeiten erreichen:
- Bei Dateien über 32 MB bis zu 100 Gbit/s. Die Übertragungsgeschwindigkeit ist durch den maximalen Durchsatz einer Instanz begrenzt (Instanzkapazität multipliziert mit der Leistungsstufe).
Überlegungen zur Bandbreite für ausgehenden Traffic von Cloud Storage
Cloud Storage bietet eine Standardbandbreite für ausgehenden Traffic von bis zu 200 Gbit/s pro Region und Projekt. Wenn Sie mehrere Managed Lustre-Instanzen im selben Projekt und in derselben Region haben, können Sie eine Erhöhung des Limits für die Bandbreite für ausgehenden Traffic beantragen. Weitere Informationen finden Sie unter den Bandbreitenkontingenten für Cloud Storage.
Erforderliche Berechtigungen
Berechtigungen zum Starten der Übertragung
Das Nutzer- oder Dienstkonto, das zum Starten der Übertragung verwendet wird, benötigt die folgenden Berechtigungen:
lustre.instances.exportDatafür die Übertragung von Managed Lustre zu Cloud Storage.lustre.instances.importDatafür die Übertragung von Cloud Storage.
Beide Berechtigungen werden mit der Rolle roles/lustre.admin gewährt. Sie können eine benutzerdefinierte Rolle erstellen, um
Berechtigungen unabhängig zu gewähren.
Berechtigungen für den Dienst-Agent von Managed Lustre
Dienst-Agent von Managed Lustre abrufen
Ein Dienst-Agent von Managed Lustre wird erstellt, wenn Sie zum ersten Mal eine Managed Lustre-Instanz im Projekt erstellen. Die Dienst
Agent-Identität hat das Format
service-PROJECT_NUMBER@gcp-sa-lustre.iam.gserviceaccount.com.
Wenn Sie noch keinen Dienst-Agent von Managed Lustre haben
Führen Sie den
services identity createBefehl aus:gcloud beta services identity create \ --service=lustre.googleapis.com \ --project=PROJECT_NUMBER_OR_IDErsetzen Sie PROJECT_NUMBER_OR_ID durch die Projektnummer oder ID des Projekts, in dem Sie die Managed Lustre Instanz erstellen möchten. Die Ausgabe sieht etwa so aus:
Service identity created: service-1234567890@gcp-sa-lustre.iam.gserviceaccount.comKopieren Sie den Wert der Dienst-Agent-Identität, um ihn im nächsten Schritt zu verwenden.
Wenn Sie bereits eine Managed Lustre-Instanz erstellt haben
Rufen Sie Ihre Projektnummer ab, um die Dienst-Agent-Identität zu erstellen. Ein PROJECT_NUMBER ist nicht dasselbe wie eine Projekt-ID:
- Eine Projekt-ID ist ein eindeutiger String, der eine Kombination aus Buchstaben, Zahlen und Bindestrichen sein kann. Sie geben eine Projekt-ID an, wenn Sie Ihr Projekt erstellen. Beispiel:
example-project-123. - Eine Projektnummer ist eine automatisch generierte eindeutige Kennung für Ihr Projekt, die nur aus Zahlen besteht. Beispiel:
1234567890.
Verwenden Sie den
gcloud projects describeBefehl, um die PROJECT_NUMBER für eine bestimmte Projekt-ID abzurufen:gcloud projects describe PROJECT_ID --format="value(projectNumber)"- Eine Projekt-ID ist ein eindeutiger String, der eine Kombination aus Buchstaben, Zahlen und Bindestrichen sein kann. Sie geben eine Projekt-ID an, wenn Sie Ihr Projekt erstellen. Beispiel:
Kopieren Sie die zurückgegebene Projektnummer in die Dienst-Agent-Identität:
service-PROJECT_NUMBER@gcp-sa-lustre.iam.gserviceaccount.comKopieren Sie die Dienst-Agent-Identität, um sie im nächsten Schritt zu verwenden.
Berechtigungen erteilen
Der Dienst-Agent von Managed Lustre benötigt eine der folgenden Cloud Storage-Rollen:
- Für die Übertragung von Daten zu und von Cloud Storage:
roles/storage.objectUserfür den Cloud Storage-Bucket. - Für die Übertragung nur von Cloud Storage:
roles/storage.objectViewerfür den Cloud Storage-Bucket.
Führen Sie den folgenden gcloud-Befehl aus, um eine dieser Rollen zu erteilen:
gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME \
--member=serviceAccount:SERVICE_AGENT_IDENTITY \
--role=roles/storage.objectViewer_OR_objectUser
SERVICE_AGENT_IDENTITY ist die Dienst Agent-Identität von Managed Lustre aus dem vorherigen Schritt.
Daten in Managed Lustre importieren
Sie können Daten aus einem Cloud Storage-Bucket importieren. Der Bucket kann sich im selben oder in einem anderen Projekt befinden. Der Bucket kann sich in einer anderen Zone oder Region
als Ihre Managed Lustre-Instanz befinden. Übertragungen zwischen Regionen
sind jedoch möglicherweise langsamer als Übertragungen innerhalb einer Region.
gcloud
gcloud lustre instances import-data INSTANCE_ID \
--location=LOCATION \
--gcs-path-uri=gs://BUCKET_NAME/ \
--lustre-path=PS_PATH
Wobei:
- INSTANCE_ID ist der Name Ihrer Managed Lustre-Instanz.
--locationist die Zone Ihrer Managed Lustre-Instanz. Beispiel:us-central1-a.--gcs-path-urigibt den URI zu einem Cloud Storage-Bucket oder einen Pfad innerhalb eines Buckets im Formatgs://<bucket_name>/<optional_path_inside_bucket>/an. Wenn ein Pfad innerhalb des Buckets angegeben wird, muss er mit einem Schrägstrich (/) enden.--lustre-pathgibt den Pfad des Stammverzeichnisses zum Managed Lustre-Dateisystem an. Muss mit/beginnen. Der Standardwert ist/. Wenn Sie einen anderen Wert als den Standardwert angeben, muss das Verzeichnis bereits im Dateisystem vorhanden sein.
Folgende Parameter sind optional:
- Mit
--request-idkönnen Sie dieser Anfrage eine eindeutige ID zuweisen. Wenn Sie diese Anfrage mit derselben Anfrage-ID wiederholen, ignoriert der Server die Anfrage, wenn sie bereits abgeschlossen wurde. Muss eine gültige UUID sein, die nicht nur aus Nullen besteht. --asyncgibt sofort eine Antwort zurück, ohne auf den Abschluss des Vorgangs zu warten.
Weitere Informationen finden Sie in der Cloud SDK-Dokumentation.
REST
POST https://lustre.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID:importData
Authorization: Bearer [YOUR_ACCESS_TOKEN]
{
"gcsPath" : {
"uri" : "gs://BUCKET_NAME/"
},
"lustrePath" : {
"path" : "/PATH"
}
}
Wobei:
- PROJECT_ID ist Ihr Google Cloud Projektname.
- LOCATION ist die Zone Ihrer Managed Lustre
Instanz. Beispiel:
us-central1-a. - INSTANCE_ID ist der Name Ihrer Managed Lustre-Instanz.
gcsPathenthält einenuri-Schlüssel, dessen Wert den URI zu einem Cloud Storage-Bucket oder einen Pfad innerhalb eines Buckets im Formatgs://<bucket_name>/<optional_path_inside_bucket>/angibt. Wenn ein Pfad innerhalb des Buckets angegeben wird, muss er mit einem Schrägstrich (/) enden.lustrePathenthält einenpath-Schlüssel, dessen Wert den Pfad des Stammverzeichnisses zum Managed Lustre-Dateisystem angibt. Muss mit/beginnen. Der Standardwert ist/. Wenn Sie einen anderen Wert als den Standardwert angeben, muss das Verzeichnis bereits im Dateisystem vorhanden sein.
Wenn Sie anstelle des von Google verwalteten Dienst-Agents Ihr eigenes Dienstkonto verwenden möchten, unterstützt die Anfrage ein serviceAccount-Feld im JSON-Objekt:
"serviceAccount" : "projects/PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT_ID"
Ein Beispiel für einen curl-Befehl sieht so aus:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token