跳到主要内容

配置 LUN

可以使用 DM 系列 Unified Manager 中提供的配置 API 在存储虚拟机(SVM)上配置 LUN。此配置工作流程详细介绍了在创建 LUN 之前检索 SVM、性能服务级别和存储效率策略的键值的步骤。

下图显示了 LUN 配置工作流程中的步骤。

此工作流程假设 ONTAP 集群已添加到 Unified Manager,并且已获取集群键值。此工作流还假设已在集群上创建 SVM。
  1. 获取要创建 LUN 的 SVM 键值,如 验证集群上的 SVM 工作流程主题中所述。
  2. 通过运行以下 API 并从响应中检索键值,获得性能服务级别的键值。

    类别HTTP 动词路径
    storage-providerGET/storage-provider/performance-service-levels
    可以通过将 system_defined 输入参数设置为 true 来检索系统定义的性能服务级别的详细信息。从输出中,获取要在 LUN 上应用的性能服务级别的键值。
  3. (可选)通过运行以下 API 并从响应中检索键值,获得要在 LUN 上应用的存储效率策略键值。
    类别HTTP 动词路径
    storage-providerGET/storage-provider/storage-efficiency-policies
  4. 确定是否已创建发起方组(igroup)来授予对要创建的 LUN 目标的访问权限。

    类别HTTP 动词路径
    datacenterGET/datacenter/protocols/san/igroups

    /datacenter/protocols/san/igroups/{key}

    必须输入参数值以指示 igroup 有权访问的 SVM。此外,如果要查询特定的 igroup,请输入 igroup 名称(键值)作为输入参数。

  5. 在输出中,如果可以找到要授予访问权限的 igroup,请获取相应的键值。否则,请创建 igroup。

    类别HTTP 动词路径
    datacenterPOST/datacenter/protocols/san/igroups

    必须输入要创建的 igroup 的详细信息作为输入参数。这是一个同步调用,可以在输出中验证是否创建了 igroup。如果发生错误,则会显示一条消息,用于进行故障诊断和重新运行 API。

  6. 创建 LUN。

    类别HTTP 动词Path(路径)
    存储提供程序POST/storage-provider/luns
    要创建 LUN,请确保已将检索到的值添加为强制输入参数。
    存储效率策略是用于创建 LUN 的可选参数。
    示例 cURL

    必须输入要创建的 LUN 的所有详细信息作为输入参数。

    curl -X POST "https://<hostname>/api/storage-provider/luns" -H "accept: application/json" -H
    "Content-Type: application/json" -H "Authorization: Basic <Base64EncodedCredentials>" -d
    "{ \"name\": \"MigrationLunWithVol\", \"os_type\": \"windows\",
    \"performance_service_level\": { \"key\": \"7873dc0d-0ee5-11ea-82d7-fa163ea0eb69\" },
    \"space\": { \"size\": 1024000000 }, \"svm\": { \"key\":
    \"333fbcfa-0ace-11ea-9d6d-00a09897cc15:type=vserver,uuid=4d462ec8-0f56-11ea-9d6d-00a09897cc15\"
    }}"

    JSON 输出中显示一个作业对象键值,可以使用该键值来验证创建的 LUN。

  7. 使用查询作业时返回的作业对象键值来验证是否创建了 LUN:

    类别HTTP 动词路径
    management-serverGET

    /management-server/jobs/{key}

    在响应的结尾,您将看到创建的 LUN 的键值。

        {
    "name": "lunKey",
    "value": "key": "f963839f-0f95-11ea-9963-00a098884af5:type=lun,uuid=71f3187e-bf19-4f34-ba34-b1736209b45a"
    }
    ],
    "_links": {
    "self": {
    "href": "/api/management-server/jobs/fa7c856d29e2b80f%3A-8d3325d%3A16e9eb5ed6d%3A-548b"
    }
    }
    }

  8. 使用返回的键值运行以下 API 来验证是否创建了 LUN:
    类别HTTP 动词路径
    storage-providerGET/storage-provider/luns/{key}

    示例 JSON 输出

    可以看到 /storage-provider/luns 的 POST 方法会在内部调用每个功能所需的所有 API 并创建对象。例如,它会调用 /storage-provider/performance-service-levels/ API 在 LUN 上分配性能服务级别。

    {
    "key": "f963839f-0f95-11ea-9963-00a098884af5:type=lun,uuid=71f3187e-bf19-4f34-ba34-b1736209b45a",
    "name": "/vol/NSLM_VOL_LUN_1574753881051/LunForTesting1",
    "uuid": "71f3187e-bf19-4f34-ba34-b1736209b45a",
    "cluster": {
    "uuid": "f963839f-0f95-11ea-9963-00a098884af5",
    "key": "f963839f-0f95-11ea-9963-00a098884af5:type=cluster,uuid=f963839f-0f95-11ea-9963-00a098884af5",
    "name": "sti2552-4451574693410",
    "_links": {
    "self": {
    "href": "/api/datacenter/cluster/clusters/f963839f-0f95-11ea-9963-00a098884af5:type=cluster,uuid=f963839f-0f95-11ea-9963-00a098884af5"
    }
    }
    },
    "svm": {
    "uuid": "7754a99c-101f-11ea-9963-00a098884af5",
    "key": "f963839f-0f95-11ea-9963-00a098884af5:type=vserver,uuid=7754a99c-101f-11ea-9963-00a098884af5",
    "name": "Testingsvm1",
    "_links": {
    "self": {
    "href": "/api/datacenter/svm/svms/f963839f-0f95-11ea-9963-00a098884af5:type=vserver,uuid=7754a99c-101f-11ea-9963-00a098884af5"
    }
    }
    },
    "volume": {
    "uuid": "961778bb-2be9-4b4a-b8da-57c7026e52ad",
    "key": "f963839f-0f95-11ea-9963-00a098884af5:type=volume,uuid=961778bb-2be9-4b4a-b8da-57c7026e52ad",
    "name": "NSLM_VOL_LUN_1574753881051",
    "_links": {
    "self": {
    "href": "/api/datacenter/storage/volumes/f963839f-0f95-11ea-9963-00a098884af5:type=volume,uuid=961778bb-2be9-4b4a-b8da-57c7026e52ad"
    }
    }
    },
    "assigned_performance_service_level": {
    "key": "861f6e4d-0c35-11ea-9d73-fa163e706bc4",
    "name": "Value",
    "peak_iops": 75,
    "expected_iops": 75,
    "_links": {
    "self": {
    "href": "/api/storage-provider/performance-service-levels/861f6e4d-0c35-11ea-9d73-fa163e706bc4"
    }
    }
    },
    "recommended_performance_service_level": {
    "key": null,
    "name": "Idle",
    "peak_iops": null,
    "expected_iops": null,
    "_links": {}
    },
    "assigned_storage_efficiency_policy": {
    "key": null,
    "name": "Unassigned",
    "_links": {}
    },
    "space": {
    "size": 1024458752
    },
    "os_type": "linux",
    "_links": {
    "self": {
    "href": "/api/storage-provider/luns/f963839f-0f95-11ea-9963-00a098884af5%3Atype%3Dlun%2Cuuid%3D71f3187e-bf19-4f34-ba34-b1736209b45a"
    }
    }
    }

LUN 创建或映射失败的故障诊断步骤

完成此工作流程后,LUN 创建仍可能会失败。即使已成功创建 LUN,如果创建 LUN 的节点上的 SAN LIF 或访问端点不可用,则与 igroup 之间的 LUN 映射也可能会失败。如果失败,系统将显示以下消息:
The nodes <node_name> and <partner_node_name> have no LIFs configured with the iSCSI or FCP protocol for Vserver <server_name>. Use the access-endpoints API to create a LIF for the LUN.

请按照以下故障诊断步骤来解决此失败情况。
  1. 在尝试创建 LUN 的 SVM 上创建支持 ISCSI/FCP 协议的访问端点。

    类别HTTP 动词路径
    storage-providerPOST/storage-provider/access-endpoints

    示例 cURL

    必须输入要创建的访问端点的详细信息作为输入参数。

    确保在输入参数中添加了 address 来指示 LUN 的主节点,并添加了 ha_address 来指示主节点的伙伴节点。运行此操作时,它将在主节点和伙伴节点上创建访问端点。
    curl -X POST "https://<hostname>/api/storage-provider/access-endpoints" -H "accept:
    application/json" -H "Content-Type: application/json" -H "Authorization: Basic <Base64EncodedCredentials>" -d "{ \"data_protocols\": [ \"iscsi\" ], \"ip\": {
    \"address\": \"10.162.83.126\", \"ha_address\": \"10.142.83.126\", \"netmask\":
    \"255.255.0.0\" }, \"lun\": { \"key\":
    \"e4f33f90-f75f-11e8-9ed9-00a098e3215f:type=lun,uuid=b8e0c1ae-0997-47c5-97d2-1677d3ec08ff\" },
    \"name\": \"aep_example\" }"

  2. 使用在 JSON 输出中返回的作业对象键值来查询该作业,以确认在 SVM 上添加访问端点的作业已成功运行,同时 SVM 上已启用 iSCSI/FCP 服务。
    类别HTTP 动词路径
    management-serverGET/management-server/jobs/{key}

    示例 JSON 输出

    在输出的结尾,可以看到创建的访问端点的键值。在以下输出中,"name": "accessEndpointKey" 值表示在 LUN 的主节点上创建的访问端点,其键值为 9c964258-14ef-11ea-95e2-00a098e32c28"name": "accessEndpointHAKey" 值表示在主节点的伙伴节点上创建的访问端点,其键值为 9d347006-14ef-11ea-8760-00a098e3215f

      "job_results": [
    {
    "name": "accessEndpointKey",
    "value": "e4f33f90-f75f-11e8-9ed9-00a098e3215f:type=network_lif,lif_uuid=9c964258-14ef-11ea-95e2-00a098e32c28"
    },
    {
    "name": "accessEndpointHAKey",
    "value": "e4f33f90-f75f-11e8-9ed9-00a098e3215f:type=network_lif,lif_uuid=9d347006-14ef-11ea-8760-00a098e3215f"
    }
    ],
    "_links": {
    "self": {
    "href": "/api/management-server/jobs/71377eeea0b25633%3A-30a2dbfe%3A16ec620945d%3A-7f5a"
    }
    }
    }

  3. 修改 LUN 以更新 igroup 映射。有关修改工作流程的更多信息,请参阅“修改存储工作负载”。
    类别HTTP 动词Path(路径)
    存储提供程序PATCH/storage-provider/lun/{key}

    在输入中,指定要用来更新 LUN 映射的 igroup 键值以及 LUN 键值。

    示例 cURL

    curl -X PATCH "https://<hostname>/api/storage-provider/luns/e4f33f90-f75f-11e8-9ed9-00a098e3215f%3Atype%3Dlun%2Cuuid%3Db8e0c1ae-0997-47c5-97d2-1677d3ec08ff" 
    -H "accept: application/json" -H "Content-Type: application/json" -H "Authorization: Basic <Base64EncodedCredentials>" -d
    "{ \"lun_maps\": [ { \"igroup\":
    { \"key\": \"e4f33f90-f75f-11e8-9ed9-00a098e3215f:type=igroup,uuid=d19ec2fa-fec7-11e8-b23d-00a098e32c28\" },
    \"logical_unit_number\": 3 } ]}"

    JSON 输出中显示一个作业对象键值,可以使用该键值来验证映射是否成功。

  4. 使用 LUN 键值进行查询以验证 LUN 映射。
    类别HTTP 动词路径
    storage-providerGET/storage-provider/luns/{key}

    示例 JSON 输出

    在输出中,可以看到 LUN 与最初配置时使用的 igroup(键值为 d19ec2fa-fec7-11e8-b23d-00a098e32c28)之间已成功映射。

    {
    "key": "e4f33f90-f75f-11e8-9ed9-00a098e3215f:type=lun,uuid=b8e0c1ae-0997-47c5-97d2-1677d3ec08ff",
    "name": "/vol/NSLM_VOL_LUN_1575282642267/example_lun",
    "uuid": "b8e0c1ae-0997-47c5-97d2-1677d3ec08ff",
    "cluster": {
    "uuid": "e4f33f90-f75f-11e8-9ed9-00a098e3215f",
    "key": "e4f33f90-f75f-11e8-9ed9-00a098e3215f:type=cluster,uuid=e4f33f90-f75f-11e8-9ed9-00a098e3215f",
    "name": "umeng-dm5000f-01-02",
    "_links": {
    "self": {
    "href": "/api/datacenter/cluster/clusters/e4f33f90-f75f-11e8-9ed9-00a098e3215f:type=cluster,uuid=e4f33f90-f75f-11e8-9ed9-00a098e3215f"
    }
    }
    },
    "svm": {
    "uuid": "97f47088-fa8e-11e8-9ed9-00a098e3215f",
    "key": "e4f33f90-f75f-11e8-9ed9-00a098e3215f:type=vserver,uuid=97f47088-fa8e-11e8-9ed9-00a098e3215f",
    "name": "NSLM12_SVM_ritu",
    "_links": {
    "self": {
    "href": "/api/datacenter/svm/svms/e4f33f90-f75f-11e8-9ed9-00a098e3215f:type=vserver,uuid=97f47088-fa8e-11e8-9ed9-00a098e3215f"
    }
    }
    },
    "volume": {
    "uuid": "a1e09503-a478-43a0-8117-d25491840263",
    "key": "e4f33f90-f75f-11e8-9ed9-00a098e3215f:type=volume,uuid=a1e09503-a478-43a0-8117-d25491840263",
    "name": "NSLM_VOL_LUN_1575282642267",
    "_links": {
    "self": {
    "href": "/api/datacenter/storage/volumes/e4f33f90-f75f-11e8-9ed9-00a098e3215f:type=volume,uuid=a1e09503-a478-43a0-8117-d25491840263"
    }
    }
    },
    "lun_maps": [
    {
    "igroup": {
    "uuid": "d19ec2fa-fec7-11e8-b23d-00a098e32c28",
    "key": "e4f33f90-f75f-11e8-9ed9-00a098e3215f:type=igroup,uuid=d19ec2fa-fec7-11e8-b23d-00a098e32c28",
    "name": "lun55_igroup",
    "_links": {
    "self": {
    "href": "/api/datacenter/protocols/san/igroups/e4f33f90-f75f-11e8-9ed9-00a098e3215f:type=igroup,uuid=d19ec2fa-fec7-11e8-b23d-00a098e32c28"
    }
    }
    },
    "logical_unit_number": 3
    }
    ],
    "assigned_performance_service_level": {
    "key": "cf2aacda-10df-11ea-bbe6-fa163e599489",
    "name": "Value",
    "peak_iops": 75,
    "expected_iops": 75,
    "_links": {
    "self": {
    "href": "/api/storage-provider/performance-service-levels/cf2aacda-10df-11ea-bbe6-fa163e599489"
    }
    }
    },
    "recommended_performance_service_level": {
    "key": null,
    "name": "Idle",
    "peak_iops": null,
    "expected_iops": null,
    "_links": {}
    },
    "assigned_storage_efficiency_policy": {
    "key": null,
    "name": "Unassigned",
    "_links": {}
    },
    "space": {
    "size": 1073741824
    },
    "os_type": "linux",
    "_links": {
    "self": {
    "href": "/api/storage-provider/luns/e4f33f90-f75f-11e8-9ed9-00a098e3215f%3Atype%3Dlun%2Cuuid%3Db8e0c1ae-0997-47c5-97d2-1677d3ec08ff"
    }
    }
    }