Skip to main content
Eine neuere Version dieses Produkts ist erhältlich.
Die deutsche Sprachversion wurde als Serviceleistung für Sie durch maschinelle Übersetzung erstellt. Bei eventuellen Unstimmigkeiten hat die englische Sprachversion Vorrang.

Konfiguration eines CVS für GCP-Backend

Beitragende

Erfahren Sie, wie Sie NetApp Cloud Volumes Service (CVS) für die Google Cloud Platform (GCP) als Backend für Ihre Astra Trident Installation mit den angegebenen Beispielkonfigurationen konfigurieren.

Hinweis NetApp Cloud Volumes Service für Google Cloud unterstützt keine CVS-Performance Volumes mit einer Größe von weniger als 100 gib oder CVS Volumes mit einer Größe von weniger als 300 gib. Astra Trident erstellt automatisch Volumes mit der Mindestgröße, wenn das angeforderte Volume kleiner als die Mindestgröße ist.
Was Sie benötigen

Um den zu konfigurieren und zu verwenden "Cloud Volumes Service für Google Cloud" Back-End, Sie benötigen Folgendes:

  • Ein Google Cloud Konto, der mit NetApp CVS konfiguriert ist

  • Projektnummer Ihres Google Cloud-Kontos

  • Google Cloud-Servicekonto bei netappcloudvolumes.admin Rolle

  • API-Schlüsseldatei für Ihr CVS-Servicekonto

Astra Trident unterstützt jetzt auch kleinere Volumes – standardmäßig "CVS-Servicetyp auf GCP". Für mit erstellte Back-Ends storageClass=software, Volumes verfügen jetzt über eine minimale Bereitstellungsgröße von 300 gib. CVS bietet diese Funktion derzeit unter Controlled Availability und bietet keinen technischen Support. Benutzer müssen sich für den Zugriff auf Sub-1-tib-Volumes anmelden "Hier". NetApp empfiehlt Kunden, Sub-1-tib-Volumes für nicht produktive-Workloads zu nutzen.

Hinweis Bei der Bereitstellung von Back-Ends mithilfe des standardmäßigen CVS-Servicetyps (storageClass=software), Benutzer müssen Zugriff auf die Sub-1-tib-Volumes-Funktion in GCP für die Projektnummer(n) und Projekt-ID(s) in Frage erhalten. Dieser ist für die Bereitstellung von Sub-1-tib-Volumes durch Astra Trident erforderlich. Wenn nicht, schlagen Volumenkreationen bei VES fehl, die weniger als 600 gib betragen. Zugriff auf Sub-1-tib-Volumes mit "Dieses Formular".

Von Astra Trident erstellte Volumes für den CVS Standard-Service-Level werden wie folgt bereitgestellt:

  • PVCs, die kleiner als 300 gib sind, führen dazu, dass Astra Trident ein CVS-Volumen von 300 gib erstellt.

  • PVCs, die zwischen 300 gib und 600 gib liegen, führen dazu, dass Astra Trident ein CVS-Volumen der angeforderten Größe erstellt.

  • PVCs, die zwischen 600 gib und 1 tib liegen, führen dazu, dass Astra Trident ein CVS Volume mit 1 tib erstellt.

  • PVCs, die mehr als 1 tib sind, führen dazu, dass Astra Trident ein CVS Volume der angeforderten Größe erstellt.

Back-End-Konfigurationsoptionen

Die Back-End-Konfigurationsoptionen finden Sie in der folgenden Tabelle:

Parameter Beschreibung Standard

version

Immer 1

storageDriverName

Name des Speichertreibers

„gcp-cvs“

backendName

Benutzerdefinierter Name oder das Storage-Backend

Treibername + „_“ + Teil des API-Schlüssels

storageClass

Art des Storage: Wählen Sie aus hardware (Performance optimiert) oder software (CVS-Servicetyp)

projectNumber

Google Cloud Account Projektnummer. Der Wert ist auf der Homepage des Google Cloud Portals zu finden.

apiRegion

CVS-Account-Region. Es ist der Bereich, in dem das Backend die Volumen bereitstellen wird.

apiKey

API-Schlüssel für das Google Cloud-Dienstkonto bei netappcloudvolumes.admin Rolle: Er enthält den JSON-formatierten Inhalt der privaten Schlüsseldatei eines Google Cloud-Dienstkontos (wortgetreu in die Back-End-Konfigurationsdatei kopiert).

proxyURL

Proxy-URL, wenn Proxyserver für die Verbindung mit CVS-Konto benötigt wird. Der Proxy-Server kann entweder ein HTTP-Proxy oder ein HTTPS-Proxy sein. Bei einem HTTPS-Proxy wird die Zertifikatvalidierung übersprungen, um die Verwendung von selbstsignierten Zertifikaten im Proxyserver zu ermöglichen. Proxy-Server mit aktivierter Authentifizierung werden nicht unterstützt.

nfsMountOptions

Engmaschige Kontrolle der NFS-Mount-Optionen

„Nfsvers=3“

limitVolumeSize

Bereitstellung fehlgeschlagen, wenn die angeforderte Volume-Größe über diesem Wert liegt

„“ (nicht standardmäßig durchgesetzt)

serviceLevel

CVS Service-Level für neue Volumes Die Werte sind „Standard“, „Premium“ und „extrem“.

„Standard“

network

Für CVS Volumes verwendetes GCP-Netzwerk

„Standard“

debugTraceFlags

Fehler-Flags bei der Fehlerbehebung beheben. Beispiel: \{"api":false, "method":true}. Verwenden Sie dies nur, wenn Sie Fehler beheben und einen detaillierten Log Dump benötigen.

Null

Bei der Verwendung eines gemeinsamen VPC-Netzwerks von beiden projectNumber Und hostProjectNumber Muss angegeben werden. In diesem Fall projectNumber Ist das Service-Projekt, und hostProjectNumber Ist das Hostprojekt.

Der apiRegion Repräsentiert die GCP-Region, in der Astra Trident CVS Volumes erstellt Wenn über Regionen hinweg Kubernetes Cluster erstellt werden, werden CVS Volumes in einem erstellt apiRegion Kann in Workloads verwendet werden, die auf Nodes über mehrere GCP-Regionen hinweg geplant sind. Beachten Sie, dass der Verkehr in der Region mit zusätzlichen Kosten verbunden ist.

Hinweis
  • Damit Sie regionsübergreifenden Zugriff ermöglichen, wird Ihre StorageClass-Definition für verwendet allowedTopologies Muss alle Regionen umfassen. Beispiel:

    - key: topology.kubernetes.io/region
      values:
      - us-east1
      - europe-west1
  • storageClass Ist ein optionaler Parameter, mit dem Sie das gewünschte auswählen können "CVS-Diensttyp". Sie haben die Wahl zwischen dem Basistyp CVS (storageClass=software) Oder den Servicetyp CVS-Performance (storageClass=hardware), die Trident standardmäßig verwendet. Stellen Sie sicher, dass Sie ein angeben apiRegion Das bietet das jeweilige CVS storageClass Back-End-Definition:

Achtung Die Integration von Astra Trident mit dem Basis-CVS-Servicetyp auf Google Cloud ist eine Beta-Funktion, die nicht für Produktions-Workloads bestimmt ist. Trident wird vollständig unterstützt mit dem Service-Typ CVS-Performance und verwendet ihn standardmäßig.

Jedes Back-End stellt Volumes in einer einzigen Google Cloud-Region bereit. Um Volumes in anderen Regionen zu erstellen, können Sie zusätzliche Back-Ends definieren.

Sie können festlegen, wie jedes Volume standardmäßig bereitgestellt wird, indem Sie die folgenden Optionen in einem speziellen Abschnitt der Konfigurationsdatei angeben. Sehen Sie sich die Konfigurationsbeispiele unten an.

Parameter Beschreibung Standard

exportRule

Die Exportregel(n) für neue Volumes

„0.0.0.0/0“

snapshotDir

Zugriff auf die .snapshot Verzeichnis

„Falsch“

snapshotReserve

Prozentsatz des für Snapshots reservierten Volumes

"" (CVS Standard 0 akzeptieren)

size

Die Größe neuer Volumes

„100 Gi“

Der exportRule Wert muss eine kommagetrennte Liste beliebiger Kombinationen von IPv4-Adressen oder IPv4-Subnetzen in CIDR-Notation sein.

Hinweis Trident kopiert bei allen Volumes, die auf einem Google Cloud Backend von CVS erstellt wurden, alle auf einem Storage-Pool vorhandenen Labels zum Zeitpunkt der Bereitstellung auf das Storage-Volume. Storage-Administratoren können Labels pro Storage-Pool definieren und alle Volumes gruppieren, die in einem Storage-Pool erstellt wurden. Dies bietet eine praktische Möglichkeit, Volumes anhand einer Reihe anpassbarer Etiketten, die in der Backend-Konfiguration bereitgestellt werden, zu unterscheiden.

Beispiel 1: Minimale Konfiguration

Dies ist die absolute minimale Backend-Konfiguration.

{
    "version": 1,
    "storageDriverName": "gcp-cvs",
    "projectNumber": "012345678901",
    "apiRegion": "us-west2",
    "apiKey": {
        "type": "service_account",
        "project_id": "my-gcp-project",
        "private_key_id": "<id_value>",
        "private_key": "
        -----BEGIN PRIVATE KEY-----
        <key_value>
        -----END PRIVATE KEY-----\n",
        "client_email": "cloudvolumes-admin-sa@my-gcp-project.iam.gserviceaccount.com",
        "client_id": "123456789012345678901",
        "auth_uri": "https://accounts.google.com/o/oauth2/auth",
        "token_uri": "https://oauth2.googleapis.com/token",
        "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
        "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/cloudvolumes-admin-sa%40my-gcp-project.iam.gserviceaccount.com"
    }
}

Beispiel 2: Konfiguration des Basis-CVS-Diensttyps

Dieses Beispiel zeigt eine Backend-Definition, die den CVS Basis-Service-Typ nutzt, der für allgemeine Workloads gedacht ist und eine geringe/mittlere Performance bietet, sowie eine hohe zonale Verfügbarkeit.

{
    "version": 1,
    "storageDriverName": "gcp-cvs",
    "projectNumber": "012345678901",
    "storageClass": "software",
    "apiRegion": "us-east4",
    "apiKey": {
        "type": "service_account",
        "project_id": "my-gcp-project",
        "private_key_id": "<id_value>",
        "private_key": "
        -----BEGIN PRIVATE KEY-----
        <key_value>
        -----END PRIVATE KEY-----\n",
        "client_email": "cloudvolumes-admin-sa@my-gcp-project.iam.gserviceaccount.com",
        "client_id": "123456789012345678901",
        "auth_uri": "https://accounts.google.com/o/oauth2/auth",
        "token_uri": "https://oauth2.googleapis.com/token",
        "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
        "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/cloudvolumes-admin-sa%40my-gcp-project.iam.gserviceaccount.com"
    }
}

Beispiel 3: Einzel-Service Level-Konfiguration

Dieses Beispiel zeigt eine Backend-Datei, die dieselben Aspekte auf allen mit Astra Trident erstellten Storage in der Region Google Cloud US-west2 anwendet. In diesem Beispiel wird auch die Verwendung von angezeigt proxyURL In der Back-End-Konfigurationsdatei

{
    "version": 1,
    "storageDriverName": "gcp-cvs",
    "projectNumber": "012345678901",
    "apiRegion": "us-west2",
    "apiKey": {
        "type": "service_account",
        "project_id": "my-gcp-project",
        "private_key_id": "<id_value>",
        "private_key": "
        -----BEGIN PRIVATE KEY-----
        <key_value>
        -----END PRIVATE KEY-----\n",
        "client_email": "cloudvolumes-admin-sa@my-gcp-project.iam.gserviceaccount.com",
        "client_id": "123456789012345678901",
        "auth_uri": "https://accounts.google.com/o/oauth2/auth",
        "token_uri": "https://oauth2.googleapis.com/token",
        "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
        "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/cloudvolumes-admin-sa%40my-gcp-project.iam.gserviceaccount.com"
    },
    "proxyURL": "http://proxy-server-hostname/",
    "nfsMountOptions": "vers=3,proto=tcp,timeo=600",
    "limitVolumeSize": "10Ti",
    "serviceLevel": "premium",
    "defaults": {
        "snapshotDir": "true",
        "snapshotReserve": "5",
        "exportRule": "10.0.0.0/24,10.0.1.0/24,10.0.2.100",
        "size": "5Ti"
    }
}

Beispiel 4: Konfiguration des virtuellen Speicherpools

Dieses Beispiel zeigt die Back-End-Definitionsdatei, die mit virtuellen Speicherpools konfiguriert ist StorageClasses Die sich auf sie beziehen.

In der unten gezeigten Beispiel-Backend-Definitionsdatei werden für alle Speicherpools spezifische Standardwerte festgelegt, die die definieren snapshotReserve Bei 5% und der exportRule Zu 0.0.0.0/0. Die virtuellen Speicherpools werden im definiert storage Abschnitt. In diesem Beispiel legt jeder einzelne Storage-Pool seinen eigenen fest serviceLevel, Und einige Pools überschreiben die Standardwerte.

{
    "version": 1,
    "storageDriverName": "gcp-cvs",
    "projectNumber": "012345678901",
    "apiRegion": "us-west2",
    "apiKey": {
        "type": "service_account",
        "project_id": "my-gcp-project",
        "private_key_id": "<id_value>",
        "private_key": "
        -----BEGIN PRIVATE KEY-----
        <key_value>
        -----END PRIVATE KEY-----\n",
        "client_email": "cloudvolumes-admin-sa@my-gcp-project.iam.gserviceaccount.com",
        "client_id": "123456789012345678901",
        "auth_uri": "https://accounts.google.com/o/oauth2/auth",
        "token_uri": "https://oauth2.googleapis.com/token",
        "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
        "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/cloudvolumes-admin-sa%40my-gcp-project.iam.gserviceaccount.com"
    },
    "nfsMountOptions": "vers=3,proto=tcp,timeo=600",

    "defaults": {
        "snapshotReserve": "5",
        "exportRule": "0.0.0.0/0"
    },

    "labels": {
        "cloud": "gcp"
    },
    "region": "us-west2",

    "storage": [
        {
            "labels": {
                "performance": "extreme",
                "protection": "extra"
            },
            "serviceLevel": "extreme",
            "defaults": {
                "snapshotDir": "true",
                "snapshotReserve": "10",
                "exportRule": "10.0.0.0/24"
            }
        },
        {
            "labels": {
                "performance": "extreme",
                "protection": "standard"
            },
            "serviceLevel": "extreme"
        },
        {
            "labels": {
                "performance": "premium",
                "protection": "extra"
            },
            "serviceLevel": "premium",
            "defaults": {
                "snapshotDir": "true",
                "snapshotReserve": "10"
            }
        },

        {
            "labels": {
                "performance": "premium",
                "protection": "standard"
            },
            "serviceLevel": "premium"
        },

        {
            "labels": {
                "performance": "standard"
            },
            "serviceLevel": "standard"
        }
    ]
}

Die folgenden StorageClass-Definitionen beziehen sich auf die oben genannten Speicherpools. Durch Verwendung des parameters.selector Feld können Sie für jede StorageClass den virtuellen Pool angeben, der zum Hosten eines Volumes verwendet wird. Im Volume werden die Aspekte definiert, die im ausgewählten Pool definiert sind.

Die erste StorageClass (cvs-extreme-extra-protection) Zuordnung zum ersten virtuellen Speicherpool. Dies ist der einzige Pool, der eine extreme Performance mit einer Snapshot-Reserve von 10 % bietet. Die letzte StorageClass (cvs-extra-protection) Ruft alle Speicher-Pool, die eine Snapshot-Reserve von 10% bietet. Astra Trident entscheidet, welcher Virtual Storage Pool ausgewählt wird und stellt sicher, dass die Anforderungen an die Snapshot-Reserve erfüllt werden.

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: cvs-extreme-extra-protection
provisioner: netapp.io/trident
parameters:
  selector: "performance=extreme; protection=extra"
allowVolumeExpansion: true
---
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: cvs-extreme-standard-protection
provisioner: netapp.io/trident
parameters:
  selector: "performance=premium; protection=standard"
allowVolumeExpansion: true
---
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: cvs-premium-extra-protection
provisioner: netapp.io/trident
parameters:
  selector: "performance=premium; protection=extra"
allowVolumeExpansion: true
---
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: cvs-premium
provisioner: netapp.io/trident
parameters:
  selector: "performance=premium; protection=standard"
allowVolumeExpansion: true
---
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: cvs-standard
provisioner: netapp.io/trident
parameters:
  selector: "performance=standard"
allowVolumeExpansion: true
---
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: cvs-extra-protection
provisioner: netapp.io/trident
parameters:
  selector: "protection=extra"
allowVolumeExpansion: true

Was kommt als Nächstes?

Führen Sie nach dem Erstellen der Back-End-Konfigurationsdatei den folgenden Befehl aus:

tridentctl create backend -f <backend-file>

Wenn die Backend-Erstellung fehlschlägt, ist mit der Back-End-Konfiguration ein Fehler aufgetreten. Sie können die Protokolle zur Bestimmung der Ursache anzeigen, indem Sie den folgenden Befehl ausführen:

tridentctl logs

Nachdem Sie das Problem mit der Konfigurationsdatei identifiziert und korrigiert haben, können Sie den Befehl „Erstellen“ erneut ausführen.