在 ONTAP 模式下管理 ONTAP

本页面介绍了如何在 ONTAP 模式下管理 ONTAP。

出于安全和日志记录方面的考虑,NetApp Volumes 不允许直接连接到 ONTAP 管理 LIF。因此,您无法使用 SystemManager 或 SSH 等工具直接管理 ONTAP 系统。不过,您可以使用以下方法向 ONTAP 模式存储池提交 ONTAP 操作:

Terraform 等管理工具使用 Google API 代理来管理 ONTAP 资源。

准备工作

您的 Google Cloud CLI 版本必须至少为 559.0.0 ,才能管理 ONTAP 模式存储池的 ONTAP 操作。如果您的版本较旧,Google Cloud CLI 会返回错误,指出命令或标志未定义。

使用 Google Cloud CLI ONTAP CLI 代理

虽然无法直接通过 SSH 访问 ONTAP CLI,但您可以使用 Google Cloud CLI 向存储池发送 ONTAP CLI 命令。

gcloud

运行 ONTAP 命令:

gcloud netapp storage-pools execute POOL-NAME ONTAP-COMMAND --project PROJECT \
  --location=LOCATION

替换以下信息:

  • POOL-NAME:Flex Unified ONTAP 模式存储池的名称。

  • ONTAP-COMMAND:您要在集群或存储池上运行的 ONTAP 命令。

  • PROJECT:您的项目 ID。

  • LOCATION:存储池的位置。

使用用于 ONTAP REST API 调用的 Google 代理 API

NetApp Volumes 为每个 Flex Unified ONTAP 模式存储池提供了一个 Google API 端点,让您可以向底层 ONTAP 集群发送 ONTAP REST API 调用 。这样,您就可以使用 API 控制 ONTAP 功能。

对 ONTAP 代理的调用必须使用以下网址格式:

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

此网址包含以下元素:

  • 基准网址https://netapp.googleapis.com/v1

  • 存储池的 Google URN:/projects/PROJECT/locations/LOCATION/storagePools/POOL_NAME

    替换以下信息:

    • PROJECT:您的项目 ID 或编号。

    • LOCATION:可用区池的可用区名称或区域池的区域。

    • POOL_NAME:池的名称。

  • ONTAP REST API 路径:/ontap/ONTAP_REST_URL。 如需了解详情,请参阅 ONTAP REST API 参考文档。

列出存储池的所有卷

以下示例展示了完整的网址,用于列出项目 myprojectus-central1-a 内存储池 mypool 的所有卷。

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

与所有 Google API 调用一样,此调用必须经过身份验证。以下 CLI 示例会提取 API 令牌,然后使用 curl 调用该网址以列出池中的所有卷:

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

列出卷的所有快照

以下示例展示了完整的网址,用于列出项目 myprojectus-central1-a 内存储池 mypool 和卷 volume-uuid 的所有快照。

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

与所有 Google API 调用一样,此调用必须经过身份验证。以下 CLI 示例会提取 API 令牌,然后使用 curl 调用该网址以列出卷的所有快照:

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

创建卷

本部分介绍了如何使用 ONTAP REST API 在现有 Flex Unified ONTAP 模式存储池(由 URN:/projects/myproject/locations/us-central1-a/storagePools/mypool 标识)中创建名为 myvolume 的卷。

如需创建卷,请参阅 ONTAP REST API 在线文档。在文档中, 前往存储部分,然后展开 管理存储卷。 本部分提供了多个示例。

按照以下说明创建卷。

  1. 确定 ONTAP REST API 端点。

    使用 NetApp Volumes 中的基本示例 ,所需的 ONTAP API 端点为 /api/storage/volumes。此端点会创建网址:https://netapp.googleapis.com/v1/projects/myproject/locations/us-central1-a/storagePools/mypool/ontap/api/storage/volumes

  2. 构建请求载荷。

    使用 ONTAP 文档中的示例载荷来匹配您的特定环境。例如:

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

    创建卷时,请使用 name 字段分配卷名称。卷创建载荷需要聚合和存储虚拟机 (SVM) 的名称,这些名称由 NetApp Volumes 在 ONTAP 模式池创建期间分配。在 ONTAP 模式下,每个存储池都有一个 SVM 和一个存储聚合。您可以通过查询 ONTAP 以获取 所有 SVM来检索此信息。

    如需检索 SVM 和聚合名称,请执行以下操作:

    1. 使用 ontap_fields 进行字段选择:在 NetApp Volumes ONTAP 模式池中,使用查询参数 ontap_fields=而不是标准 ONTAP fields=参数来 指定请求的字段

    2. 可选:使用jq 提取字段:以下示例使用 jq开源工具从 JSON 响应中提取 name(SVM 名称)和 aggregates,这对于在 shell 脚本中进行处理非常有用。

      TOKEN=$(gcloud auth print-access-token)
      curl --location 'https://netapp.googleapis.com/v1/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}'
      

      示例响应:

      {
       "name": "gcnv-7cf6ee41c1a94f0-svm-01",
       "aggregates": "aggr1"
      }
      
  3. 执行卷创建 API 调用。

    使用聚合名称 (aggr1) 和 SVM 名称 (gcnv-7cf6ee41c1a94f0-svm-01),创建最终的卷创建载荷并提交 API 调用。请注意,ONTAP API 载荷必须包含在 NetApp Volumes 的 body: {} 信封内。

    以下示例创建了一个名为 myvolume 的卷,大小为 2 GB:

    curl --location 'https://netapp.googleapis.com/v1/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"
      }
    }'
    

    卷创建支持许多 可选参数, 例如 size。例如,载荷指定了 2 GB 的大小。资源的文档页面列出了所有可用参数,包括必需参数和可选参数。它还提供了载荷和响应正文的详细示例。

  4. 监控 ONTAP 作业。

    大多数 ONTAP API 调用(例如创建或更新资源的 POSTPATCH 操作)不会同步运行。相反,这些调用会返回 ONTAP 作业资源,如卷创建示例所示。

    示例作业响应:

    {
      "body": {
        "job": {
          "_links": {
            "self": {
              "href": "curl --location
    'https://netapp.googleapis.com/v1/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"
        }
      }
    }
    

    如需检查作业的状态,请使用返回的 uuid 查询作业资源:

    curl --location 'https://netapp.googleapis.com/v1/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"
    

    示例响应:

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

    如果 statesuccess,则表示卷已创建。

    此示例工作流将引导您在 ONTAP REST API 文档中查找 ONTAP 操作。它还向您展示了如何创建所需的载荷格式,以及如何使用 Google API 将其提交到存储池。最后,它演示了如何监控 ONTAP 作业,直到资源创建完成。 使用这种方法,您可以控制存储池的大多数 ONTAP 设置。

使用 Terraform 管理 ONTAP 模式

您可以使用 CLI 代理管理 ONTAP 模式资源。CLI 代理适用于交互式使用,但自动化可能会更复杂。Terraform 可以一致地管理云资源的生命周期,您可以使用它来管理 NetApp Volumes 和 ONTAP 资源。

使用功能管理概览 表来帮助您确定要使用的提供程序。

  • Google 提供程序通过 NetApp Volumes API 管理资源。

  • NetApp-ONTAP 提供程序通过 ONTAP REST API 管理资源。

例如,您可以使用 Google 提供方(版本 7.27.0 或更高版本)创建 ONTAP 模式存储池。然后,如需在该 ONTAP 模式池中创建卷,您可以使用 NetApp-ONTAP 提供程序(版本 2.6.0 或更高版本)。

如需详细了解设置和示例,请参阅 NetApp-ONTAP 提供程序文档

允许的 ONTAP 操作

当您通过 API 或 CLI 代理访问 ONTAP 模式池时,您没有完整权限,也无法运行所有 ONTAP 命令。此限制有助于保护系统完整性,并防止更改由服务管理的底层物理资源。

对于某些 API,系统会过滤 API 请求和响应载荷。例如,由于 NetApp Volumes 按逻辑容量收费,因此系统会阻止用于配置物理容量的参数。如果您发送不允许的参数,API 会返回错误。

支持的 ONTAP 命令

您可以使用 Google Cloud CLI ONTAP CLI 代理提交 ONTAP 命令来管理 ONTAP 模式。 NetApp Volumes 支持大多数用于管理 SVM、LUN、卷和 ONTAP 功能的命令。某些命令会被阻止,以保护系统完整性,或者因为它们管理在 NetApp Volumes 等代管式服务中不相关的物理资源。

您可以在 ONTAP 管理员权限级别运行命令。如需将权限级别切换为高级,请在命令开头添加 set advanced;set -privilege advanced;。一组有限的命令还支持诊断 (diag) 权限级别,您可以通过在命令开头添加 set diag; 来访问此级别。这些权限切换不是永久性的。

由于代理不是交互式 shell,因此您一次只能运行一个命令。此限制意味着代理不支持请求其他信息的交互式命令。例如,您无法创建需要 Active Directory 管理员凭据的 CIFS 或 SMB vserver (SVM)。CLI 代理也不支持集群对等互连,因为它是一个交互式命令。 如需执行这些操作,您必须使用 ONTAP REST API

下表列出了 ONTAP CLI 代理支持的命令系列、命令和限制:

命令系列 用途 支持的命令 备注
集群 对等互连 SnapMirror 和 FlexCache 的集群,并显示有关集群的选择信息 cluster peer - 完整访问权限

cluster showidentity showdate showha showstatistics showtime-service ntp server show - 只读
CLI 代理不支持交互式 cluster peer create 命令;请改用 REST API。您可以使用其他 cluster peer 命令,例如 show
调试 支持数据包跟踪 (tcpdump)、LUN 和锁定问题排查 debug network tcpdumpdebug san lundebug lock persistence \- 完整访问权限 所有允许的调试命令都需要 diag 权限级别。这些是常见的调试命令。
事件 创建过滤条件,以将感兴趣的 ONTAP 事件发送到 SMTP 或 syslog 目标 event catalog showevent log show - 只读

event configevent filter事件通知 - 完整访问权限
让您可以将事件记录到自定义目标。您可以使用 event log show 按时间或类型显示日志事件。
作业 在节点和集群级别管理 ONTAP 作业 job showjob schedulejob privatejob stopjob resume - 完整访问权限
LUN 创建和管理 LUN 和启动器组,以及导入外部 LUN lun createlun bindigroup \- 完整访问权限 虽然允许导入 LUN,但无法将外部磁盘连接到 ONTAP 模式系统。
网络 显示网络端口、接口、路由和 ipspace 配置,运行 ping 和 traceroute 到外部 IP 地址,并按协议显示客户端连接 network pingnetwork traceroutenetwork port interfacenetwork ipspacenetwork connections - 只读
QoS 创建和管理 QoS 政策组并显示其性能 所有 QoS 命令 - 只读 QoS 设置是只读的。
安全 显示审核配置、启用反勒索软件功能,以及创建和安装证书 security audit - 只读

security anti-ransomware volumesecurity certificate - 完整访问权限
您可以在创建卷时设置反勒索软件参数。您只能创建服务器证书和客户端证书。
SnapLock 管理 SnapLock 时钟和日志,以及控制 SnapLock 基于事件的保留和诉讼保全操作 snaplock compliance-clocksnaplock log \- 完整访问权限 使用 volume snaplock modify 命令在各个卷上配置 SnapLock。您只能使用 ONTAP REST API 管理 SnapLock 命令 snaplock event-retentionsnaplock legal-hold
SnapMirror 创建和管理 SnapMirror 关系 snapmirror createsnapmirror initializesnapmirror breaksnapmirror resync \- 完整访问权限
统计信息 显示定期系统统计信息或创建特定统计信息的样本 statistics samplesstatistics startstatistics stopstatistics show-periodic \- 完整访问权限

statistics volumestatistics lunstatistics aggregatestatistics qtreestatistics SVM \- 只读
许多命令需要高级模式才能指定其参数。
系统 系统命令通常不受支持,但可以调用 AutoSupport 和性能归档传输 system node autosupport invokesystem node autosupport invoke-performance-archive \- 完整访问权限 NetApp 支持提供 AutoSupport 文件。
创建和管理卷 volume createvolume deletevolume modifyvolume clonevolume expand (FlexGroup)、volume flexcachevolume flexgroupqtreequotasnaplocksnapshot - 完整访问权限 某些卷功能(例如逻辑空间报告/强制执行和空间保证(无))由系统自动管理。设置卷分层政策以使用在池级别设置的自动分层。
Vserver 管理 SVM (vserver),以实现对卷的文件(SMB、NFS)、块(iSCSI、NVMe)和对象 (S3) 访问。

管理用于卷的政策,例如 NFS 的导出政策。

启用 SVM 功能,例如审核日志记录(文件访问)、一致性组、政策、名称服务(DNS、LDAP)和防病毒 (vscan)。

对等互连 SnapMirror 和 FlexCache 的 SVM。
vserver cifs create (加入 Active Directory 网域)、vserver nfs createvserver iscsi createvserver nvme create \- 完整访问权限

vserver object-store-server \- 完整访问权限
使用 vserver modify 命令为所有卷设置默认语言、安全样式以及快照和配额政策。

目前不支持 vserver create
密码更改命令不能作为交互式命令运行,必须使用命令参数或使用 REST API 指定。
旧版命令 timezoneversion - 完整访问权限

删除 ONTAP 模式池

如需删除 ONTAP 模式池,您必须先删除池中的所有卷。