Cloud TPU-Reservierung freigeben

In diesem Dokument wird beschrieben, wie Sie die Freigabe von Reservierungen aktivieren. Mit der Freigabe von Reservierungen können Sie TPU-VMs in einem Projekt (Nutzerprojekt) erstellen und eine Reservierung verwenden, die zu einem anderen Projekt (Inhaberprojekt) gehört. Durch die Freigabe von Reservierungen können Sie auch benutzerdefinierte Trainings- oder Vorhersagejobs in Vertex AI mit einer TPU-Reservierung ausführen.

Das Inhaberprojekt ist das Projekt, in dem Sie die Reservierung erstellt haben. Nutzerprojekte sind ein oder mehrere Projekte, für die die Reservierung freigegeben ist. Sie können TPU-VMs im Inhaberprojekt und in Nutzerprojekten mithilfe der Reservierung im Inhaberprojekt erstellen.

Weitere Informationen zum Erhalt einer TPU-Reservierung finden Sie unter Cloud TPU-Reservierungen.

Beschränkungen

Beachten Sie Folgendes, bevor Sie eine TPU-Reservierung freigeben:

  • Sie können eine freigegebene Reservierung nur über das Inhaberprojekt ändern.

  • Sie können eine kurzfristige Reservierung im Kalendermodus oder eine langfristige Reservierung nur so ändern:

    • Sie können die Reservierung erst nach ihrer Startzeit ändern.

    • Sie können die Reservierung nur so ändern, dass Jobs in Vertex AI sie nutzen dürfen oder nicht.

Cloud TPU-Reservierung freigeben

In den folgenden Abschnitten werden die verschiedenen Methoden zum Teilen einer Reservierung beschrieben.

Freigabe einer TPU-Reservierung aktivieren

Sie können TPU-VMs in einem Nutzerprojekt mit einer Reservierung erstellen, die zu einem anderen Projekt gehört. Alle Projekte, die eine TPU-Reservierung gemeinsam nutzen, müssen zu derselben Organisation gehören.

So aktivieren Sie die Freigabe einer TPU-Reservierung:

  1. Erteilen Sie dem Inhaberprojekt mit dem Befehl gcloud resource-manager org-policies allow die Berechtigung zum Erstellen und Ändern freigegebener Reservierungen:

    gcloud resource-manager org-policies allow \
        compute.sharedReservationsOwnerProjects \
        projects/OWNER_PROJECT_NUMBER --organization=ORGANIZATION_ID

    Ersetzen Sie Folgendes:

    • OWNER_PROJECT_NUMBER: Die Projektnummer (nicht die Projekt-ID) eines Projekts in Ihrer Organisation, für das Sie das Erstellen und Ändern freigegebener Reservierungen ermöglichen möchten.
    • ORGANIZATION_ID: Die Ressourcen-ID der Organisation.
  2. Aktivieren Sie die Freigabe des Rabatts für zugesicherte Nutzung über die Google Cloud Konsole. Eine Anleitung finden Sie unter Freigabe von CUDs für ressourcenbasierte Zusicherungen aktivieren.

  3. Verwenden Sie den Befehl gcloud beta compute reservations update mit den Flags --share-setting=projects und --share-with, um die Freigabe zu aktivieren:

    gcloud beta compute reservations update RESERVATION_NAME \
        --project=OWNER_PROJECT_ID \
        --share-setting=projects \
        --share-with=CONSUMER_PROJECT_IDS \
        --zone=ZONE

    Ersetzen Sie Folgendes:

    • RESERVATION_NAME: Der Name der Reservierung.
    • OWNER_PROJECT_ID: Die ID des Projekts, das die Reservierung enthält.
    • CONSUMER_PROJECT_IDS: Eine durch Kommas getrennte Liste von IDs von Projekten, die diese Reservierung nutzen können. Beispiel: project-1,project-2 Sie können bis zu 100 Nutzerprojekte hinzufügen. Diese Projekte müssen sich in derselben Organisation wie das Inhaberprojekt befinden. Geben Sie nicht das Inhaberprojekt an. Standardmäßig darf das Inhaberprojekt die Reservierung bereits nutzen.
    • ZONE: Die Zone, in der sich die Reservierung befindet.

Freigabe einer TPU-Reservierung deaktivieren

Wenn Sie die Freigabe einer TPU-Reservierung für eine Liste von Nutzerprojekten deaktivieren möchten, verwenden Sie den Befehl gcloud beta compute reservations update mit den Flags --share-setting=projects und --remove-share-with:

gcloud compute reservations update RESERVATION_NAME \
    --project=OWNER_PROJECT_ID \
    --share-setting=projects \
    --remove-share-with=CONSUMER_PROJECT_IDS \
    --zone=ZONE

Ersetzen Sie Folgendes:

  • RESERVATION_NAME: Der Name der Reservierung.
  • OWNER_PROJECT_ID: Die ID des Projekts, das die Reservierung enthält.
  • CONSUMER_PROJECT_IDS: Eine durch Kommas getrennte Liste von IDs von Projekten, für die Sie die Reservierung nicht mehr freigeben möchten. Beispiel: project-1,project-2
  • ZONE: Die Zone, in der sich die Reservierung befindet.

Wenn Sie die Freigabe einer TPU-Reservierung für alle Nutzerprojekte deaktivieren möchten, ändern Sie die Reservierung mit dem Befehl gcloud beta compute reservations update und dem Flag --share-setting=local in eine lokale Reservierung:

gcloud beta compute reservations update RESERVATION_NAME \
    --project=OWNER_PROJECT_ID \
    --share-setting=local \
    --zone=ZONE

Ersetzen Sie Folgendes:

  • RESERVATION_NAME: Der Name der Reservierung.
  • OWNER_PROJECT_ID: Die ID des Projekts, das die Reservierung enthält.
  • ZONE: Die Zone, in der sich die Reservierung befindet.

Vertex AI die Nutzung einer TPU-Reservierung erlauben

Sie können festlegen, dass Trainings- oder Vorhersagejobs in Vertex AI eine kurzfristige Reservierung im Kalendermodus oder eine langfristige Reservierung erst nach ihrer Startzeit nutzen dürfen.

Wenn Sie Vertex AI erlauben möchten, eine TPU-Reservierung zu nutzen, verwenden Sie den Befehl gcloud beta compute reservations update mit dem Flag --reservation-sharing-policy=ALLOW_ALL:

gcloud beta compute reservations update RESERVATION_NAME \
    --project=OWNER_PROJECT_ID \
    --zone=ZONE \
    --reservation-sharing-policy=ALLOW_ALL

Ersetzen Sie Folgendes:

  • RESERVATION_NAME: Der Name der Reservierung.
  • OWNER_PROJECT_ID: Die ID des Projekts, das die Reservierung enthält.
  • ZONE: Die Zone der Reservierung.

Vertex AI die Verwendung einer TPU-Reservierung untersagen

Bevor Sie Vertex AI die Nutzung einer TPU-Reservierung untersagen, beenden Sie alle Vertex AI-Jobs, die sie verwenden. Andernfalls treten Fehler auf.

Wenn Sie Vertex AI nicht erlauben möchten, eine TPU-Reservierung zu nutzen, verwenden Sie den Befehl gcloud beta compute reservations update mit dem Flag --reservation-sharing-policy=DISALLOW_ALL:

gcloud beta compute reservations update RESERVATION_NAME \
    --project=OWNER_PROJECT_ID \
    --zone=ZONE \
    --reservation-sharing-policy=DISALLOW_ALL

Ersetzen Sie Folgendes:

  • RESERVATION_NAME: Der Name der Reservierung.
  • OWNER_PROJECT_ID: Die ID des Projekts, das die Reservierung enthält.
  • ZONE: Die Zone der Reservierung.

Informationen zu einer freigegebenen Reservierung abrufen

Informationen zu einer freigegebenen Reservierung erhalten Sie nur über das Inhaberprojekt.

Mit dem Befehl gcloud compute reservations describe können Sie Informationen zu einer freigegebenen Reservierung abrufen:

gcloud compute reservations describe RESERVATION_NAME \
    --project=OWNER_PROJECT_ID \
    --zone=ZONE

Ersetzen Sie Folgendes:

  • RESERVATION_NAME: Der Name der Reservierung.
  • OWNER_PROJECT_ID: Die ID des Projekts, das die Reservierung enthält.
  • ZONE: Die Zone der Reservierung.

Die Antwort ähnelt dem folgenden Beispiel.

aggregateReservation:
[...]
name: RESERVATION_NAME
reservationSharingPolicy:
  serviceShareType: ALLOW_ALL
resourceStatus: {}
selfLink: https://www.googleapis.com/compute/v1/projects/OWNER_PROJECT_ID/zones/ZONE/reservations/RESERVATION_NAME
shareSettings:
  projectMap:
    'CONSUMER_PROJECT_1':
      projectId: 'CONSUMER_PROJECT_1'
    'CONSUMER_PROJECT_2':
      projectId: 'CONSUMER_PROJECT_2'
  shareType: SPECIFIC_PROJECTS
specificReservationRequired: true
status: READY
zone: https://www.googleapis.com/compute/v1/projects/OWNER_PROJECT_ID/zones/ZONE

Nächste Schritte