Gérer ONTAP en mode ONTAP

Cette page explique comment gérer ONTAP en mode ONTAP.

Pour des raisons de sécurité et de journalisation, NetApp Volumes n'autorise pas les connexions directes à la LIF de gestion ONTAP. Par conséquent, vous ne pouvez pas utiliser d'outils tels que SystemManager ou SSH pour gérer directement le système ONTAP. À la place, vous pouvez envoyer des opérations ONTAP à votre pool de stockage en mode ONTAP à l'aide d'une API proxy Google pour les appels d'API REST ONTAP.

Les outils de gestion, tels que Terraform, utilisent le proxy d'API Google pour gérer les ressources ONTAP.

Utiliser une API de proxy Google pour les appels d'API REST ONTAP

NetApp Volumes fournit un point de terminaison d'API Google pour chaque pool de stockage en mode FlexUnified ONTAP, ce qui vous permet d'envoyer des appels d'API REST ONTAP au cluster ONTAP sous-jacent. Cela vous permet de contrôler les fonctionnalités ONTAP à l'aide d'API.

Les appels au proxy ONTAP doivent utiliser le format d'URL suivant :

  https://netapp.googleapis.com/v1beta1/projects/PROJECT/locations/LOCATION/storagePools/POOL_NAME/ontap/ONTAP_REST_URL
 

Cette URL se compose des éléments suivants :

  • URL de référence : https://netapp.googleapis.com/v1beta1/projects

  • URN Google pour le pool de stockage : /PROJECT/locations/LOCATION/storagePools/POOL_NAME

    Remplacez les informations suivantes :

    • PROJECT : votre project ID ou numéro.

    • LOCATION : nom de la zone pour les pools zonaux ou région pour les pools régionaux.

    • POOL_NAME : nom de votre pool.

  • Chemin d'accès à l'API REST ONTAP : /ontap/ONTAP_REST_URL. Pour en savoir plus, consultez la documentation de référence de l'API REST ONTAP.

Lister tous les volumes d'un pool de stockage

L'exemple suivant montre l'URL complète permettant de lister tous les volumes du pool de stockage mypool dans us-central1-a du projet myproject.

https://netapp.googleapis.com/v1beta1/projects/myproject/locations/us-central1-a/storagePools/mypool/ontap/api/storage/volumes

Comme tous les appels d'API Google, celui-ci doit être authentifié. L'exemple CLI suivant récupère un jeton d'API, puis appelle l'URL à l'aide de curl pour lister tous les volumes du pool :

   TOKEN=$(gcloud auth print-access-token)
   curl --location
   'https://netapp.googleapis.com/v1beta1/projects/myproject/locations/us-central1-a/storagePools/mypool/ontap/api/storage/volumes' 
--header "Authorization: Bearer $TOKEN"
--header "Content-Type: application/json"

Créer un volume

Cette section explique comment créer un volume nommé myvolume dans un pool de stockage Flex Unified en mode ONTAP existant, identifié par l'URN /projects/myproject/locations/us-central1-a/storagePools/mypool, à l'aide de l'API REST ONTAP.

Pour créer un volume, consultez la documentation en ligne de l'API REST ONTAP. Dans la documentation, accédez à la section Stockage, puis développez Gérer les volumes de stockage. Cette section fournit plusieurs exemples.

Suivez les instructions ci-dessous pour créer un volume.

  1. Déterminez le point de terminaison de l'API REST ONTAP.

    En utilisant l'exemple de base dans NetApp Volumes, le point de terminaison de l'API ONTAP requis est /api/storage/volumes. Ce point de terminaison crée l'URL : https://netapp.googleapis.com/v1beta1/projects/myproject/locations/us-central1-a/storagePools/mypool/ontap/api/storage/volumes.

  2. Construisez la charge utile de la requête.

    Utilisez l'exemple de charge utile de la documentation ONTAP pour l'adapter à votre environnement spécifique. Exemple :

    {
      "name": "vol1",
      "aggregates": [
        {
          "name": "aggr1"
        }
      ],
      "svm": {
        "name": "vs1"
      }
    }
    

    Lorsque vous créez un volume, utilisez le champ name pour lui attribuer un nom. Le payload de création de volume nécessite les noms de l'agrégat et de la machine virtuelle de stockage (SVM) attribués par NetApp Volumes lors de la création du pool en mode ONTAP. En mode ONTAP, chaque pool de stockage possède un SVM et un agrégat de stockage. Ces informations peuvent être récupérées en interrogeant ONTAP pour toutes les SVM.

    Pour récupérer les noms de la SVM et de l'agrégat :

    1. Utiliser ontap_fields pour la sélection des champs : dans les pools en mode ONTAP de NetApp Volumes, utilisez le paramètre de requête ontap_fields= au lieu du paramètre ONTAP standard fields= pour spécifier les champs demandés.

    2. Facultatif : Utilisezjq pour extraire des champs : l'exemple suivant utilise l'outil Open Source jq pour extraire name (nom du SVM) et aggregates de la réponse JSON, ce qui est utile pour le traitement dans les scripts shell.

      TOKEN=$(gcloud auth print-access-token)
      curl --location
      'https://netapp.googleapis.com/v1beta1/projects/myproject/locations/us-central1-a/storagePools/mypool/ontap/api/svm/svms?ontap_fields=name,aggregates' \
      --header "Authorization: Bearer $TOKEN" \
      --header "Content-Type: application/json" | jq '.rawResponse.records[] | {name: .name, aggregates: .aggregates[].name}'
      

      Exemple de réponse :

      {
       "name": "gcnv-7cf6ee41c1a94f0-svm-01",
       "aggregates": "aggr1"
      }
      
  3. Exécutez l'appel d'API de création de volumes.

    Avec le nom d'agrégat (aggr1) et le nom de la SVM (gcnv-7cf6ee41c1a94f0-svm-01), créez la charge utile finale de création de volume et envoyez l'appel d'API. Notez que la charge utile de l'API ONTAP doit être placée dans une enveloppe body: {} pour les NetApp Volumes.

    L'exemple suivant crée un volume nommé myvolume d'une taille de 2 Go :

    curl --location
    'https://netapp.googleapis.com/v1beta1/projects/myproject/locations/us-central1-a/storagePools/mypool/ontap/api/storage/volumes' \
    --header "Authorization: Bearer $TOKEN" \
    --header "Content-Type: application/json" \
    --data '{
      "body": {
        "name": "myvolume",
        "aggregates": [
          {
            "name": "aggr1"
          }
        ],
        "svm": {
          "name": "gcnv-7cf6ee41c1a94f0-svm-01"
        },
        "size": "2GB"
      }
    }'
    

    La création de volumes est compatible avec de nombreux paramètres facultatifs, tels que size. Par exemple, la charge utile spécifie une taille de 2 Go. La page de documentation de la ressource liste tous les paramètres disponibles, y compris les paramètres obligatoires et facultatifs. Il fournit également des exemples détaillés de corps de charge utile et de corps de réponse.

  4. Surveillez le job ONTAP.

    La plupart des appels d'API ONTAP, tels que les opérations POST ou PATCH qui créent ou mettent à jour des ressources, ne s'exécutent pas de manière synchrone. Ces appels renvoient plutôt une ressource de tâche ONTAP, comme illustré dans l'exemple de création de volume.

    Exemple de réponse à une offre d'emploi :

    {
      "body": {
        "job": {
          "_links": {
            "self": {
              "href": "curl --location
    'https://netapp.googleapis.com/v1beta1/projects/myproject/locations/us-central1-a/storagePools/mypool/ontap/api/cluster/jobs/15be1c46-fd2c-11f0-b3c2-7f15697be61c' \
    --header "Authorization: Bearer $TOKEN" \
    --header "Content-Type: application/json""
            }
          },
          "uuid": "15be1c46-fd2c-11f0-b3c2-7f15697be61c"
        }
      }
    }
    

    Pour vérifier l'état du job, interrogez la ressource de job à l'aide de l'uuid renvoyé :

    curl --location
    'https://netapp.googleapis.com/v1beta1/projects/myproject/locations/us-central1-a/storagePools/mypool/ontap/api/cluster/jobs/15be1c46-fd2c-11f0-b3c2-7f15697be61c' \
    --header "Authorization: Bearer $TOKEN" \
    --header "Content-Type: application/json"
    

    Exemple de réponse :

    {
      "rawResponse": {
        "uuid": "15be1c46-fd2c-11f0-b3c2-7f15697be61c",
        "description": "POST
    /api/storage/volumes/15be0ad9-fd2c-11f0-b3c2-7f15697be61c",
        "state": "success",
        "message": "success",
        "code": 0,
        "start_time": "2026-01-29T16:03:43+00:00",
        "end_time": "2026-01-29T16:03:44+00:00",
        "svm": {
          "name": "gcnv-7cf6ee41c1a94f0-svm-01",
          "uuid": "8a29c15d-fb31-11f0-ab03-03e1bb49206d"
       }
      }
    }
    

    Si la valeur de state est success, le volume est créé.

    Cet exemple de workflow vous explique comment rechercher des actions ONTAP dans la documentation de l'API REST ONTAP. Il vous montre également comment créer le format de charge utile requis et l'envoyer au pool de stockage à l'aide d'une API Google. Enfin, il explique comment surveiller un job ONTAP jusqu'à la création de la ressource. Cette approche vous permet de contrôler la plupart des paramètres ONTAP pour votre pool de stockage.

Actions ONTAP autorisées

Lorsque vous accédez à un pool via le proxy API ou CLI, vos autorisations sont limitées et vous ne pouvez pas exécuter toutes les commandes ONTAP. Cela permet de protéger l'intégrité du système. Pour certaines API, le système filtre les charges utiles des requêtes et des réponses d'API. Par exemple, comme NetApp Volumes facture la capacité logique, le système bloque les paramètres de configuration de la capacité physique. Si vous envoyez un paramètre non autorisé, l'API renvoie une erreur.

Supprimer un pool en mode ONTAP

Pour supprimer un pool en mode ONTAP, vous devez d'abord supprimer tous les volumes du pool.