Cloud TPU-Reservierung freigeben

In diesem Dokument wird beschrieben, wie Sie die gemeinsame Nutzung von Reservierungen aktivieren. Mit der gemeinsamen Nutzung von Reservierungen können Sie TPU-VMs in einem Projekt (einem Nutzerprojekt) erstellen und eine Reservierung verwenden, die einem anderen Projekt (dem 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, die die Reservierung gemeinsam nutzen. Sie können TPU-VMs im Inhaberprojekt und in den Nutzerprojekten mit der Reservierung im Inhaberprojekt erstellen.

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

Beschränkungen

Bevor Sie eine TPU-Reservierung freigeben, sollten Sie Folgendes beachten:

  • Sie können eine freigegebene Reservierung nur über das zugehörige 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 ändern, um zu erlauben oder zu verhindern, dass Jobs in Vertex AI sie nutzen.

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 einem anderen Projekt gehört. Alle Projekte, die eine TPU-Reservierung gemeinsam nutzen, müssen Teil derselben Organisation sein.

So aktivieren Sie die Freigabe einer TPU-Reservierung:

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

    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 Organisations-Ressourcen-ID Ihrer Organisation.
  2. Aktivieren Sie die Freigabe des Rabatts für zugesicherte Nutzung über die Google Cloud Konsole. Eine Anleitung finden Sie unter CUD-Freigabe 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 erlauben, eine TPU-Reservierung zu verwenden

Sie können zulassen, dass Trainings- oder Vorhersagejobs in Vertex AI eine kurzfristige Reservierung im Kalendermodus oder eine langfristige Reservierung erst nach deren Startzeit nutzen.

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 verhindern, dass Vertex AI eine TPU-Reservierung nutzt, müssen Sie alle Vertex AI-Jobs beenden, die sie verwenden. Andernfalls treten Fehler auf.

Wenn Sie verhindern möchten, dass Vertex AI eine TPU-Reservierung nutzt, 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 können Sie nur über das Inhaberprojekt abrufen.

Wenn Sie Informationen zu einer freigegebenen Reservierung abrufen möchten, verwenden Sie den Befehl gcloud compute reservations describe:

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