Cloud TPU-Reservierung freigeben

In diesem Dokument wird beschrieben, wie Sie die gemeinsame Nutzung von Reservierungen aktivieren. Mithilfe freigegebener Reservierungen ist es möglich, in einem Projekt (einem Nutzerprojekt) TPU-VMs zu erstellen und Reservierungen zu verwenden, die einem anderen Projekt (dem Inhaberprojekt) gehören. Außerdem können Sie in Vertex AI nutzerdefinierte Trainings- oder Vorhersagejobs 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. Mithilfe der Reservierung im Inhaberprojekt können Sie im Inhaberprojekt und in Nutzerprojekten TPU-VMs erstellen.

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

Beschränkungen

Beachten Sie die folgenden Punkte, bevor Sie eine TPU-Reservierung freigeben:

  • Freigegebene Reservierungen können nur im Inhaberprojekt geändert werden.

  • Kurzfristige Reservierungen im Kalendermodus oder langfristige Reservierungen können nur unter folgenden Voraussetzungen geändert werden:

    • Die Startzeit ist vorüber.

    • Wenn Jobs in Vertex AI die Nutzung der Reservierung ermöglicht oder verweigert werden soll.

Cloud TPU-Reservierung freigeben

In den folgenden Abschnitten wird beschrieben, mit welchen Methoden Reservierungen freigegeben werden.

Freigabe einer TPU-Reservierung aktivieren

Für die Erstellung von TPU-VMs können Sie Reservierungen nutzen, die einem anderen Projektinhaber gehören. TPU-Reservierungen dürfen nur von Projekten gemeinsam genutzt werden, die Teil derselben Organisation sind.

So aktivieren Sie die Freigabe einer TPU-Reservierung:

  1. Erteilen Sie dem Inhaberprojekt mit dem Befehl gcloud resource-manager org-policies allow die Berechtigung, freigegebene Reservierungen zu erstellen und zu ändern:

    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, das gemeinsam genutzte Reservierungen erstellen und ändern darf.
    • ORGANIZATION_ID: Die ID der Organisationsressource.
  2. Aktivieren Sie die Freigabe eines Rabatts für zugesicherte Nutzung (CUD) über die Google Cloud Console. Eine Anleitung hierzu finden Sie unter Ressourcenbasierte CUDs projektübergreifend freigeben.

  3. Aktivieren Sie die Freigabe mit dem Befehl gcloud beta compute reservations update und den Flags --share-setting=projects und --share-with:

    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 der IDs von Projekten, die diese Reservierung nutzen können. Beispiel: project-1,project-2 Sie können bis zu 100 Nutzerprojekte angeben. Alle Projekte müssen sich in derselben Organisation wie das Inhaberprojekt befinden. Geben Sie nicht das Inhaberprojekt an. Dem Inhaberprojekt ist es bereits per Standard gestattet, die Reservierung zu nutzen.
    • ZONE: Die Zone, in der sich die Reservierung befindet

Freigabe einer TPU-Reservierung deaktivieren

Die Freigabe einer TPU-Reservierung kann für eine Liste von Nutzerprojekten deaktiviert werden. Verwenden Sie dafür 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 in eine lokale Reservierung. Verwenden Sie dafür den Befehl gcloud beta compute reservations update mit dem Flag --share-setting=local:

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 Verwendung einer TPU-Reservierung erlauben

Sie können festlegen, dass Trainings- oder Vorhersagejobs in Vertex AI kurzfristiger Reservierungen im Kalendermodus oder langfristiger Reservierungen nach deren Startzeit nutzen dürfen.

Um Vertex AI die Nutzung einer TPU-Reservierung zu erlauben, 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 diese Reservierung verwenden. Andernfalls treten Fehler auf.

Um Vertex AI die Nutzung einer TPU-Reservierung zu untersagen, 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 nur über das Inhaberprojekt abgerufen werden.

Um Informationen zu einer freigegebenen Reservierung abzurufen, 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

Das Ergebnis sieht etwa so aus:

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