Gerenciar o ONTAP no modo ONTAP

Nesta página, descrevemos como gerenciar o ONTAP no modo ONTAP.

Por motivos de segurança e geração de registros, o NetApp Volumes não permite conexões diretas com a LIF de gerenciamento do ONTAP. Portanto, não é possível usar ferramentas como SystemManager ou SSH para gerenciar o sistema ONTAP diretamente. Em vez disso, você pode enviar operações do ONTAP ao seu pool de armazenamento no modo ONTAP usando uma API de proxy do Google para chamadas da API REST do ONTAP.

As ferramentas de gerenciamento, como o Terraform, usam o proxy de API do Google para gerenciar recursos do ONTAP.

Usar uma API de proxy do Google para chamadas da API REST do ONTAP

O NetApp Volumes fornece um endpoint de API do Google para cada pool de armazenamento unificado do modo ONTAP Flex, permitindo enviar chamadas da API REST do ONTAP para o cluster do ONTAP subjacente. Isso permite controlar os recursos do ONTAP usando APIs.

As chamadas ao proxy do ONTAP precisam usar o seguinte formato de URL:

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

Esse URL consiste nos seguintes elementos:

  • URL de comparativo de mercado: https://netapp.googleapis.com/v1beta1/projects

  • URN do Google para o pool de armazenamento: /PROJECT/locations/LOCATION/storagePools/POOL_NAME

    Substitua as seguintes informações:

    • PROJECT: seu project ID ou número.

    • LOCATION: o nome da zona para pools zonais ou a região para pools regionais.

    • POOL_NAME: o nome do pool.

  • Caminho da API REST do ONTAP: /ontap/ONTAP_REST_URL. Para mais informações, consulte a referência da API REST do ONTAP.

Listar todos os volumes de um pool de armazenamento

O exemplo a seguir mostra o URL completo para listar todos os volumes do pool de armazenamento mypool em us-central1-a no projeto myproject.

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

Como todas as chamadas de API do Google, essa chamada precisa ser autenticada. O exemplo de CLI a seguir busca um token de API e chama o URL usando curl para listar todos os volumes no 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"

Criar um volume

Nesta seção, mostramos como criar um volume chamado myvolume em um pool de armazenamento unificado do Flex no modo ONTAP, identificado pelo URN: /projects/myproject/locations/us-central1-a/storagePools/mypool, usando a API REST do ONTAP.

Para criar um volume, consulte a documentação on-line da API REST do ONTAP. Na documentação, navegue até a seção Armazenamento e expanda Gerenciar volumes de armazenamento. Esta seção fornece vários exemplos.

Use as instruções a seguir para criar um volume.

  1. Determine o endpoint de API REST do ONTAP.

    Usando o exemplo básico (link em inglês) no NetApp Volumes, o endpoint de API ONTAP necessário é /api/storage/volumes. Esse endpoint cria o URL: https://netapp.googleapis.com/v1beta1/projects/myproject/locations/us-central1-a/storagePools/mypool/ontap/api/storage/volumes.

  2. Crie o payload da solicitação.

    Use o exemplo de payload da documentação do ONTAP para corresponder ao seu ambiente específico. Exemplo:

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

    Ao criar um volume, use o campo name para atribuir o nome dele. O payload de criação de volume exige os nomes do agregado e da máquina virtual de armazenamento (SVM) atribuídos pelos NetApp Volumes durante a criação do pool no modo ONTAP. No modo ONTAP, cada pool de armazenamento tem uma SVM e um agregado de armazenamento. Essas informações podem ser recuperadas consultando o ONTAP para todas as SVMs.

    Para recuperar os nomes da SVM e do agregado:

    1. Use ontap_fields para seleção de campos: em pools do modo ONTAP do NetApp Volumes, use o parâmetro de consulta ontap_fields= em vez do parâmetro padrão fields= do ONTAP para especificar os campos solicitados.

    2. Opcional: Usejq para extrair campos: o exemplo a seguir usa a ferramenta de código aberto jq para extrair o name (nome da SVM) e aggregates da resposta JSON, o que é útil para processamento em 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}'
      

      Exemplo de resposta:

      {
       "name": "gcnv-7cf6ee41c1a94f0-svm-01",
       "aggregates": "aggr1"
      }
      
  3. Execute a chamada de API de criação de volume.

    Com o nome agregado (aggr1) e o nome da SVM (gcnv-7cf6ee41c1a94f0-svm-01), crie o payload final de criação de volume e envie a chamada de API. O payload da API ONTAP precisa estar dentro de um envelope body: {} para NetApp Volumes.

    O exemplo a seguir cria um volume chamado myvolume com um tamanho de 2 GB:

    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"
      }
    }'
    

    A criação de volumes é compatível com vários parâmetros opcionais, como size. Por exemplo, o payload especifica um tamanho de 2 GB. A página de documentação do recurso lista todos os parâmetros disponíveis, incluindo os obrigatórios e opcionais. Ele também fornece exemplos detalhados de payloads e corpos de resposta.

  4. Monitore o job do ONTAP.

    A maioria das chamadas de API do ONTAP, como operações POST ou PATCH que criam ou atualizam recursos, não são executadas de forma síncrona. Em vez disso, essas chamadas retornam um recurso de job do ONTAP, conforme mostrado no exemplo de criação de volume.

    Exemplo de resposta de trabalho:

    {
      "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"
        }
      }
    }
    

    Para verificar o status do job, consulte o recurso usando o uuid retornado:

    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"
    

    Exemplo de resposta:

    {
      "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"
       }
      }
    }
    

    Se o state for success, o volume será criado.

    Este exemplo de fluxo de trabalho mostra como pesquisar ações do ONTAP na documentação da API REST do ONTAP. Ele também mostra como criar o formato de payload necessário e enviá-lo ao pool de armazenamento usando uma API do Google. Por fim, ele demonstra como monitorar um job do ONTAP até que o recurso seja criado. Com essa abordagem, é possível controlar a maioria das configurações do ONTAP para seu pool de armazenamento.

Ações permitidas do ONTAP

Ao acessar um pool pelo proxy da API ou da CLI, você tem permissões limitadas e não pode executar todos os comandos do ONTAP. Isso protege a integridade do sistema. Para algumas APIs, o sistema filtra payloads de solicitação e resposta da API. Por exemplo, como o NetApp Volumes cobra pela capacidade lógica, o sistema bloqueia os parâmetros para configurar a capacidade física. Se você enviar um parâmetro que não é permitido, a API vai retornar um erro.

Excluir um pool no modo ONTAP

Para excluir um pool no modo ONTAP, primeiro é necessário excluir todos os volumes dele.